It seems there is the no redundancy elimination over loop iterations, such
as predictive communing or scalar replacement in LLVM. They are quite
usefully
for computation code. I am wondering if any party is working or has plan to
implement those optimizations?
I don't know of any, but I was wondering if you could point me to the paper that describes predictive commoning? I could only find the second-order predictive commoning paper, which if I understand correctly is a much newer and different algorithm.
K.O'Brien, B.Hay, J.Minish, H.Schaffer, B.Schloss, A.Shepherd, and M.Zaleski, "Advanced compiler technology for the RISC System/6000 Architecture," IBM RISC System/6000 Technology, SA23-2619, IBM Corp., 1990, pp. 154-161.
There is a non-internal techpub for this somewhere, though it escapes me.
My recollection is that TPO (the middle end of XLC) had moved on to
2nd order predictive quite a while ago.
At least, the implementation I saw 6+ years ago in TPO was much closer
to what is described in the 2nd order paper.
Sort of. If I remember correctly, the first working implementation might have been simpler, but the final version came shortly thereafter. For all intents and purposes, I consider it to have been implemented in one shot. Look it up in CMVC if you want all the gory details...