[LLVMdev] Coalescing and VNInfo

David Greene dag at cray.com
Tue Sep 25 12:24:39 PDT 2007


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.

I believe I've discovered a problem with my new code so I'll go investigate
that.

                                            -Dave



More information about the llvm-dev mailing list