Remove some redundant LIS->hasInterval() checks.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 22 Jun 2012 17:49:44 +0000 (17:49 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 22 Jun 2012 17:49:44 +0000 (17:49 +0000)
These functions only operate on virtual registers now, and they all have
live ranges.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159015 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/RegisterCoalescer.cpp

index 4f3027731707bda4bec88a7409f3eb2b42b901db..7ef525d9f3c62d84daa6859260d97657eb91a6b0 100644 (file)
@@ -398,11 +398,6 @@ bool RegisterCoalescer::adjustCopiesBackFrom(const CoalescerPair &CP,
   assert(!CP.isPartial() && "This doesn't work for partial copies.");
   assert(!CP.isPhys() && "This doesn't work for physreg copies.");
 
-  // Bail if there is no dst interval - can happen when merging physical subreg
-  // operations.
-  if (!LIS->hasInterval(CP.getDstReg()))
-    return false;
-
   LiveInterval &IntA =
     LIS->getInterval(CP.isFlipped() ? CP.getDstReg() : CP.getSrcReg());
   LiveInterval &IntB =
@@ -464,19 +459,6 @@ bool RegisterCoalescer::adjustCopiesBackFrom(const CoalescerPair &CP,
   // two value numbers.
   IntB.addRange(LiveRange(FillerStart, FillerEnd, BValNo));
 
-  // If the IntB live range is assigned to a physical register, and if that
-  // physreg has sub-registers, update their live intervals as well.
-  if (TargetRegisterInfo::isPhysicalRegister(IntB.reg)) {
-    for (MCSubRegIterator SR(IntB.reg, TRI); SR.isValid(); ++SR) {
-      if (!LIS->hasInterval(*SR))
-        continue;
-      LiveInterval &SRLI = LIS->getInterval(*SR);
-      SRLI.addRange(LiveRange(FillerStart, FillerEnd,
-                              SRLI.getNextValue(FillerStart,
-                                                LIS->getVNInfoAllocator())));
-    }
-  }
-
   // Okay, merge "B1" into the same value number as "B0".
   if (BValNo != ValLR->valno) {
     // If B1 is killed by a PHI, then the merged live range must also be killed
@@ -558,10 +540,6 @@ bool RegisterCoalescer::removeCopyByCommutingDef(const CoalescerPair &CP,
                                                  MachineInstr *CopyMI) {
   assert (!CP.isPhys());
 
-  // Bail if there is no dst interval.
-  if (!LIS->hasInterval(CP.getDstReg()))
-    return false;
-
   SlotIndex CopyIdx = LIS->getInstructionIndex(CopyMI).getRegSlot();
 
   LiveInterval &IntA =