[llvm-commits] [llvm] r150531 - /llvm/trunk/lib/CodeGen/InterferenceCache.cpp

Jakob Stoklund Olesen stoklund at 2pi.dk
Tue Feb 14 15:53:23 PST 2012


Author: stoklund
Date: Tue Feb 14 17:53:23 2012
New Revision: 150531

URL: http://llvm.org/viewvc/llvm-project?rev=150531&view=rev
Log:
Fix global live range splitting regmask accuracy.

Pretend that regmask interference ends at the 'dead' slot, even when
there is other interference ending at the 'reg' slot of the same
instruction.

Modified:
    llvm/trunk/lib/CodeGen/InterferenceCache.cpp

Modified: llvm/trunk/lib/CodeGen/InterferenceCache.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/InterferenceCache.cpp?rev=150531&r1=150530&r2=150531&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/InterferenceCache.cpp (original)
+++ llvm/trunk/lib/CodeGen/InterferenceCache.cpp Tue Feb 14 17:53:23 2012
@@ -185,7 +185,8 @@
 
   // Also check for register mask interference.
   SlotIndex Limit = BI->Last.isValid() ? BI->Last : Start;
-  for (unsigned i = RegMaskSlots.size(); i && RegMaskSlots[i-1] > Limit; --i)
+  for (unsigned i = RegMaskSlots.size();
+       i && RegMaskSlots[i-1].getDeadSlot() > Limit; --i)
     if (MachineOperand::clobbersPhysReg(RegMaskBits[i-1], PhysReg)) {
       // Register mask i-1 clobbers PhysReg after the LIU interference.
       // Model the regmask clobber as a dead def.





More information about the llvm-commits mailing list