Hello, 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? Thanks, Yin Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121128/52ecfa5e/attachment.html>
Yin Ma wrote:> Hello, > > 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. Nick
Krzysztof Parzyszek
2012-Dec-02 01:36 UTC
[LLVMdev] Predictive Commoning / Scalar Replacement
On 12/1/2012 7:10 PM, Nick Lewycky wrote:> > 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.I think the original paper was some internal IBM publication. The idea is basically to reuse values loaded in previous loop iterations. For example for (i) { x += 2*t[i-1] - t[i+1]; } would become for (i) { tm1 = tz; // t-minus-1 = t-zero tz = tp1; // t-zero = t-plus-1 tp1 = t[i+1]; // t-plus-1 = load x += 2*tm1 - tp1; } -Krzysztof -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation