[LLVMdev] GSoC 2009 application
Benoit Boissinot
bboissin+llvm at gmail.com
Sun Mar 29 16:39:04 PDT 2009
On Mon, Mar 30, 2009 at 1:05 AM, Eli Friedman <eli.friedman at gmail.com> wrote:
> On Sun, Mar 29, 2009 at 3:33 PM, Benoit Boissinot
> <bboissin+llvm at gmail.com> wrote:
>> While it is not described in the litterature, I don't think you need
>> to introduce a new
>> function:
>> x0 = ...
>> x1, x2 = \sigma (x0)
>> |
>> +----+------+
>> | |
>> v v
>> ... = x1 ... = x2
>>
>> Can be transformed to:
>>
>> x0 = ...
>> |
>> +-------+------+
>> | |
>> v v
>> x1 = \phi(x0) x2 = \phi(x0)
>>
>> This comes from the fact that the sigma function, like the phi, function has
>> the semantic that the copies are done on the edges.
>
> This is assuming you run a pass like BreakCriticalEdges first? Looks
> like it would work. My concern here would be performance...
You don't need to break any edges, the copies are "semantically" done on
the edge. When you have a critical edge, you can simply fold the sigma into
the following phi's.
Where is the performance a concern? Using phi's instead of sigma's? Or all
the new variables introduced by SSI? (I think that's a real concern,
if I remember
correctly the numbers from Ananian and Singer).
regards,
Benoit
More information about the llvm-dev
mailing list