[LLVMdev] undefs in phis

Evan Cheng
Fri, 30 Jan 2009 07:41:21 -0000

On Jan 29, 2009, at 5:29 PM, David Greene wrote:

> On Thursday 29 January 2009 18:04, Eli Friedman wrote:
>> On Thu, Jan 29, 2009 at 2:47 PM, David Greene <dag at cray.com>
wrote:
>>> After phi elimination we have:
>>>
>>> bb134:
>>> %reg1645 = 1.0
>>>
>>> bb74:
>>> %reg1176 = MOVAPS %reg1645
>>> %reg1177 = MOVAPS %reg1646
>>> [...]
>>>
>>> bb108:
>>> %reg1645 = <expr>
>>> %reg1646 = %reg1176
>>
>> I find it a little strange that the IMPLICIT_DEF disappears.  Besides
>> that, it looks okay up to here.
>
> I just verified that it does disappear.

It's intentional. We don't want a live interval defined by an
implicit_def. It unnecessarily increases register pressure.

Evan

>
>
>>> Should llvm be able to handle situations like
>>> this or is the result undefined?
>>
>> LLVM should be able to handle the IL in question, I think.  Using
>> undef in the way the given IL is using it is looks legitimate.
>
> Ok, that's good to know.  I'll continue tracking this one down.
>
>                                       -Dave
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev