[LLVMdev] Predictive Commoning / Scalar Replacement

Daniel Berlin dberlin at dberlin.org
Sat Dec 1 20:38:24 PST 2012


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.


On Sat, Dec 1, 2012 at 8:36 PM, Krzysztof Parzyszek
<kparzysz at codeaurora.org> wrote:
> 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
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev



More information about the llvm-dev mailing list