Simplify my (il)logic.
authorEvan Cheng <evan.cheng@apple.com>
Wed, 7 Nov 2007 08:08:25 +0000 (08:08 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 7 Nov 2007 08:08:25 +0000 (08:08 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43819 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/LiveIntervalAnalysis.cpp

index 929b1e7e92d50cdf8d63a1f1f52c698a30f53a17..5c4697850aeeea64e61340f433da2bca14921596 100644 (file)
@@ -316,6 +316,7 @@ addIntervalsForSpills(const LiveInterval &li, VirtRegMap &vrm, unsigned reg) {
         if (!mop.isRegister())
           continue;
         unsigned Reg = mop.getReg();
+        unsigned RegI = Reg;
         if (Reg == 0 || MRegisterInfo::isPhysicalRegister(Reg))
           continue;
         bool isSubReg = RegMap->isSubRegister(Reg);
@@ -381,17 +382,7 @@ addIntervalsForSpills(const LiveInterval &li, VirtRegMap &vrm, unsigned reg) {
           unsigned RegJ = MI->getOperand(j).getReg();
           if (RegJ == 0 || MRegisterInfo::isPhysicalRegister(RegJ))
             continue;
-          bool isSubRegJ = RegMap->isSubRegister(RegJ);
-          if (isSubRegJ) {
-            assert(!isSubReg || RegMap->getSubRegisterIndex(RegJ) == SubIdx);
-            RegJ = RegMap->getSuperRegister(RegJ);
-          }
-          // Important to check "isSubRegJ == isSubReg".
-          // e.g. %reg1024 = MOVSX32rr16 %reg1025. It's possible that both
-          // registers are coalesced to the same register but only %reg1025 is
-          // a sub-register use. They should not be rewritten to the same
-          // register.
-          if (RegJ == li.reg && isSubRegJ == isSubReg) {
+          if (RegJ == RegI) {
             MI->getOperand(j).setReg(NewVReg);
             HasUse |= MI->getOperand(j).isUse();
             HasDef |= MI->getOperand(j).isDef();