allow a virtual register to be associated with live-in values.
[oota-llvm.git] / lib / CodeGen / LiveIntervalAnalysis.cpp
index c0d1b2a89f571fe466a8d4dd6744376cbd9fe010..d75bf3fb0efd1d59ddfb057663e9feaa7b477e83 100644 (file)
@@ -95,7 +95,7 @@ bool LiveIntervals::runOnMachineFunction(MachineFunction &fn) {
   // beginning of the function that we will pretend "defines" the values.  This
   // is to make the interval analysis simpler by providing a number.
   if (fn.livein_begin() != fn.livein_end()) {
-    unsigned FirstLiveIn = *fn.livein_begin();
+    unsigned FirstLiveIn = fn.livein_begin()->first;
 
     // Find a reg class that contains this live in.
     const TargetRegisterClass *RC = 0;
@@ -128,11 +128,11 @@ bool LiveIntervals::runOnMachineFunction(MachineFunction &fn) {
   // Note intervals due to live-in values.
   if (fn.livein_begin() != fn.livein_end()) {
     MachineBasicBlock *Entry = fn.begin();
-    for (MachineFunction::liveinout_iterator I = fn.livein_begin(),
+    for (MachineFunction::livein_iterator I = fn.livein_begin(),
            E = fn.livein_end(); I != E; ++I) {
       handlePhysicalRegisterDef(Entry, Entry->begin(),
-                                getOrCreateInterval(*I), 0, 0);
-      for (const unsigned* AS = mri_->getAliasSet(*I); *AS; ++AS)
+                                getOrCreateInterval(I->first), 0, 0);
+      for (const unsigned* AS = mri_->getAliasSet(I->first); *AS; ++AS)
         handlePhysicalRegisterDef(Entry, Entry->begin(),
                                   getOrCreateInterval(*AS), 0, 0);
     }
@@ -742,7 +742,7 @@ bool LiveIntervals::differingRegisterClasses(unsigned RegA,
 
   // Get the register classes for the first reg.
   if (MRegisterInfo::isPhysicalRegister(RegA)) {
-    assert(MRegisterInfo::isVirtualRegister(RegB) && 
+    assert(MRegisterInfo::isVirtualRegister(RegB) &&
            "Shouldn't consider two physregs!");
     return !mf_->getSSARegMap()->getRegClass(RegB)->contains(RegA);
   }
@@ -775,7 +775,7 @@ bool LiveIntervals::overlapsAliases(const LiveInterval *LHS,
 }
 
 LiveInterval LiveIntervals::createInterval(unsigned reg) {
-  float Weight = MRegisterInfo::isPhysicalRegister(reg) ? 
+  float Weight = MRegisterInfo::isPhysicalRegister(reg) ?
                        (float)HUGE_VAL :0.0F;
   return LiveInterval(reg, Weight);
 }