[tree-ssa] Maintaining/representing def-use/use-def information

Daniel Berlin dberlin@dberlin.org
Mon Dec 15 23:46:00 GMT 2003


On Dec 15, 2003, at 6:28 PM, Chris Lattner wrote:

> On Mon, 15 Dec 2003, Daniel Berlin wrote:
>> On Dec 15, 2003, at 5:07 PM, Chris Lattner wrote:
>>>> Yes, you could do E-Path PRE, but it's harder to extend it to 
>>>> perform
>>>> strength reduction or load speculation.
>>>
>>> Yup, and FWIW, LLVM uses an e-path based formulation of PRE on SSA
>>> form.
>> I remember looking at it.
>> Did I mention we can do LFTR too :P.
>
> Something I've never understood about the SSAPRE paper and subsequent
> extensions: why does it make sense to incorporate things like LFTR into
> PRE?  I understand the idea of integrating load/store motion into it, 
> but
> LFTR?  It seems like a simplish problem.  What am I missing?
>
It was easy?

Strength reduction i know they do because it does *straight line code* 
strength reduction, not just traditional loop based strength reduction.

IE it'll transform

a = b * 5
if (whatever)
{
	b = b + 1
}
a =  b * 5

into

pretmp = b * 5
a = pretmp
if (whatever)
{
	pretmp = pretmp + <i'm working on a final and i don't feel like 
calculating the increment in my head :P>
	b = b + 1
}
a = pretmp


The ability to repair "injuries" exposes quite a few more redundancies.



More information about the Gcc mailing list