[LLVMdev] Coalescing and VNInfo

Evan Cheng evan.cheng at apple.com
Tue Sep 25 12:51:10 PDT 2007



On Sep 25, 2007, at 12:24 PM, David Greene <dag at cray.com> wrote:

> On Tuesday 25 September 2007 13:28, David Greene wrote:
>
>>> So VNI->def is always modulo 2. For coalescing, it's checking if the
>>> RHS is live at the "use" cycle. So it's checking VNI->def-1.
>>
>> But why is it looking at a use slot in this case, where the  
>> coalescer is
>> trying to get the vaue number for the def of the RHS register so it  
>> can
>> use that value number in the resulting merged live interval?
>>
>> The comment at the top of the loop is:
>>
>> 00695     // Loop over the value numbers of the LHS, seeing if any  
>> are
>> defined from
>> 00696     // the RHS.
>>
>> As I understyand it, it's looking for def-use chains from the RHS  
>> interval
>> to the LHS interval.
>
> Ah, that's where I got it wrong.  I think I get it now.  We're  
> looking at the
> copy "LHS = RHS" so it takes the def index from the LHS interval and
> "def-1" is the use index for "RHS" in the copy.  It then tries to  
> look up
> the live range for that use index.

Yep, you got it.

Evan


>
>
> I believe I've discovered a problem with my new code so I'll go  
> investigate
> that.
>
>
>                                            -Dave
> _______________________________________________
> 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