Remember to filter out reserved rergisters from the allocation order.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 9 Dec 2010 21:20:46 +0000 (21:20 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 9 Dec 2010 21:20:46 +0000 (21:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121411 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/RegAllocGreedy.cpp

index eae4cccb54943abf9ce71d70da373a69336dc0eb..3c166bac4b483022a510c2720aa681cffb52452a 100644 (file)
@@ -165,7 +165,7 @@ bool RAGreedy::reassignVReg(LiveInterval &InterferingVReg,
          E = TRC->allocation_order_end(*MF);
        I != E; ++I) {
     unsigned PhysReg = *I;
-    if (PhysReg == OldPhysReg)
+    if (PhysReg == OldPhysReg || ReservedRegs.test(PhysReg))
       continue;
 
     // Instantiate a "subquery", not to be confused with the Queries array.