[LLVMdev] undefs in phis

Evan Cheng evan.cheng at apple.com
Thu Feb 5 17:55:41 PST 2009


On Feb 5, 2009, at 5:30 PM, David Greene wrote:

> On Monday 02 February 2009 23:55, Evan Cheng wrote:
>
>>>> Think about what will happen the 2nd iteration.  %v1177 will have
>>>> the value of
>>>> %v1645 which is wrong.  This is because %v1176 in bb74 will be
>>>> replaced with
>>>> %v1177.  That's incorrect.
>>>
>>> Ok, right. The trick to fixing is to make sure the valno of the  
>>> def of
>>> v1177 hasPHIKill to true and make sure the coalescer checks it.
>
> What does hasPHIKill mean, what are the consequences of using it and  
> how do I
> know when I can set it?  I assume this would have been set by  
> someone.  Or is
> that part of the bug?

hasPHIKill just means it has a phi use so it's not possible to  
determine where the value is killed. Look for LiveIntervalAnalysis.cpp.

>
>
>> Actually liveintervals can construct a v1177 live range starting from
>> the beginning mbb with a val# of unknown def.
>
> What's "the beginning mbb?"  The start of the bb containing the phi  
> (bb74 in
> this case)?  Again, how would I instruct liveintervals to do this?   
> The
> IMPLICIT_DEF is already gone by that point.

%v1645 =  ...
loop:
%v1176 = %v1645
...
= %v1176
= %v1177
%v1645 = op ...
%v1177 = %v1176
jmp loop

When the live interval for v1177 is created, the code should recognize  
v1177 is live-in to the MBB. So even though it's not clear where it's  
defined, it's still clear it's live-in to the MBB.

Evan

>
>
>                                                   -Dave
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090205/9922fd00/attachment.html>


More information about the llvm-dev mailing list