[llvm-commits] [llvm] r132701 - /llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

Andrew Trick atrick at apple.com
Mon Jun 6 17:38:12 PDT 2011


Author: atrick
Date: Mon Jun  6 19:38:12 2011
New Revision: 132701

URL: http://llvm.org/viewvc/llvm-project?rev=132701&view=rev
Log:
Fix a merge bug in preRAsched for handling physreg aliases.

I've been sitting on this long enough trying to find a test case. I
think the fix should go in now, but I'll keep working on the test case.

Modified:
    llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp?rev=132701&r1=132700&r2=132701&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp Mon Jun  6 19:38:12 2011
@@ -1008,14 +1008,16 @@
   for (const unsigned *AliasI = TRI->getOverlaps(Reg); *AliasI; ++AliasI) {
 
     // Check if Ref is live.
-    if (!LiveRegDefs[Reg]) continue;
+    if (!LiveRegDefs[*AliasI]) continue;
 
     // Allow multiple uses of the same def.
-    if (LiveRegDefs[Reg] == SU) continue;
+    if (LiveRegDefs[*AliasI] == SU) continue;
 
     // Add Reg to the set of interfering live regs.
-    if (RegAdded.insert(Reg))
-      LRegs.push_back(Reg);
+    if (RegAdded.insert(*AliasI)) {
+      assert(*AliasI == Reg && "alias clobber"); //!!!
+      LRegs.push_back(*AliasI);
+    }
   }
 }
 





More information about the llvm-commits mailing list