OSDN Git Service

Fix a compiler crash bootstrapping llvm-gcc.
authorChris Lattner <sabre@nondot.org>
Wed, 30 Aug 2006 23:02:29 +0000 (23:02 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 30 Aug 2006 23:02:29 +0000 (23:02 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29989 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/LiveIntervalAnalysis.cpp

index a26feb3..0e9609c 100644 (file)
@@ -570,7 +570,7 @@ void LiveIntervals::handleRegisterDef(MachineBasicBlock *MBB,
   else if (allocatableRegs_[reg]) {
     handlePhysicalRegisterDef(MBB, MI, getOrCreateInterval(reg));
     for (const unsigned* AS = mri_->getAliasSet(reg); *AS; ++AS)
-      handlePhysicalRegisterDef(MBB, MI, getOrCreateInterval(*AS));
+      handlePhysicalRegisterDef(MBB, MI, getOrCreateInterval(*AS), true);
   }
 }
 
@@ -684,7 +684,11 @@ bool LiveIntervals::AdjustCopiesBackFrom(LiveInterval &IntA, LiveInterval &IntB,
   if (ValLR+1 != BLR) return false;
   
   DEBUG(std::cerr << "\nExtending: "; IntB.print(std::cerr, mri_));
-    
+  
+  // We are about to delete CopyMI, so need to remove it as the 'instruction
+  // that defines this value #'.
+  IntB.setInstDefiningValNum(BValNo, ~0U);
+  
   // Okay, we can merge them.  We need to insert a new liverange:
   // [ValLR.end, BLR.begin) of either value number, then we merge the
   // two value numbers.