You really need to address these to Evan. I asked him what to do for LiveIntervalAnalysis, and this is what he told me :-)

--Owen

On Jan 9, 2008, at 10:08 PM, Chris Lattner wrote:

URL: http://llvm.org/viewvc/llvm-project?rev=45815&view=rev
Log:
Don't use LiveVariables::VarInfo::DefInst.

Cool, question though:

+++ llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp Wed Jan  9
21:12:54 2008
@@ -309,7 +309,14 @@
     // are actually two values in the live interval.  Because of
this we
     // need to take the LiveRegion that defines this register and
split it
     // into two values.
-      unsigned DefIndex =
getDefIndex(getInstructionIndex(vi.DefInst));

In the old code, when it introduces multiple definitions of a vreg,
did it clear DefInst?  If so, this code can only be triggered for
vregs with a single def.


+      MachineRegisterInfo& MRI = mbb->getParent()->getRegInfo();

I think that MRI should become and ivar in liveintervalanalysis.


+      unsigned lowIndex = ~0U;
+      for (MachineRegisterInfo::def_iterator DI =
MRI.def_begin(interval.reg),
+          DE = MRI.def_end(); DI != DE; ++DI)
+        if (getInstructionIndex(&*DI) < lowIndex)
+          lowIndex = getInstructionIndex(&*DI);
+
+      unsigned DefIndex = getDefIndex(lowIndex);

It would be really nice if you could drop the loop.  It's unclear why
it's right anyway, the numbering is not necessarily contiguous across
code...

-Chris

_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to