[llvm-commits] [llvm] r72735 - /llvm/trunk/lib/CodeGen/RegAllocLinearScan.cpp

Lang Hames lhames at gmail.com
Tue Jun 2 13:30:04 PDT 2009


Author: lhames
Date: Tue Jun  2 15:30:03 2009
New Revision: 72735

URL: http://llvm.org/viewvc/llvm-project?rev=72735&view=rev
Log:
Fixed warning, removed some temporary validation code that snuck in during my last commit.

Modified:
    llvm/trunk/lib/CodeGen/RegAllocLinearScan.cpp

Modified: llvm/trunk/lib/CodeGen/RegAllocLinearScan.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegAllocLinearScan.cpp?rev=72735&r1=72734&r2=72735&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/RegAllocLinearScan.cpp (original)
+++ llvm/trunk/lib/CodeGen/RegAllocLinearScan.cpp Tue Jun  2 15:30:03 2009
@@ -312,93 +312,6 @@
 static RegisterPass<RALinScan>
 X("linearscan-regalloc", "Linear Scan Register Allocator");
 
-bool validateRegAlloc(MachineFunction *mf, LiveIntervals *lis,
-                      VirtRegMap *vrm) {
-
-  MachineRegisterInfo *mri = &mf->getRegInfo();
-  const TargetRegisterInfo *tri = mf->getTarget().getRegisterInfo();
-  bool allocationValid = true;
-
-
-  for (LiveIntervals::iterator itr = lis->begin(), end = lis->end();
-       itr != end; ++itr) {
-
-    LiveInterval *li = itr->second;
-
-    if (TargetRegisterInfo::isPhysicalRegister(li->reg)) {
-      continue;
-    }
-
-    if (vrm->hasPhys(li->reg)) {
-      const TargetRegisterClass *trc = mri->getRegClass(li->reg);
-      
-      if (lis->hasInterval(vrm->getPhys(li->reg))) {
-        if (li->overlaps(lis->getInterval(vrm->getPhys(li->reg)))) {
-          std::cerr << "vreg " << li->reg << " overlaps its assigned preg "
-                    << vrm->getPhys(li->reg) << "(" << tri->getName(vrm->getPhys(li->reg)) << ")\n";
-        }
-      }
-
-      TargetRegisterClass::iterator fReg =
-        std::find(trc->allocation_order_begin(*mf), trc->allocation_order_end(*mf),
-                  vrm->getPhys(li->reg));
-
-      if (fReg == trc->allocation_order_end(*mf)) {
-        std::cerr << "preg " << vrm->getPhys(li->reg) 
-                  << "(" << tri->getName(vrm->getPhys(li->reg)) << ") is not in the allocation set for vreg "
-                  << li->reg << "\n";
-        allocationValid &= false;
-      }
-    }
-    else {
-      std::cerr << "No preg for vreg " << li->reg << "\n";
-      // What about conflicting loads/stores?
-      continue;
-    }
-
-    for (LiveIntervals::iterator itr2 = next(itr); itr2 != end; ++itr2) {
-
-      LiveInterval *li2 = itr2->second;
-
-      if (li2->empty())
-        continue;
-
-      if (TargetRegisterInfo::isPhysicalRegister(li2->reg)) {
-        if (li->overlaps(*li2)) {
-          if (vrm->getPhys(li->reg) == li2->reg ||
-              tri->areAliases(vrm->getPhys(li->reg), li2->reg)) {
-            std::cerr << "vreg " << li->reg << " overlaps preg "
-                      << li2->reg << "(" << tri->getName(li2->reg) << ") which aliases "
-                      << vrm->getPhys(li->reg) << "(" << tri->getName(vrm->getPhys(li->reg)) << ")\n";
-            allocationValid &= false;
-          }
-        }
-      }
-      else {
-
-        if (!vrm->hasPhys(li2->reg)) {
-          continue;
-        }
-
-        if (li->overlaps(*li2)) {
-          if (vrm->getPhys(li->reg) == vrm->getPhys(li2->reg) ||
-              tri->areAliases(vrm->getPhys(li->reg), vrm->getPhys(li2->reg))) {
-            std::cerr << "vreg " << li->reg << " (preg " << vrm->getPhys(li->reg)
-                      << ") overlaps vreg " << li2->reg << " (preg " << vrm->getPhys(li2->reg)
-                      << ") and " << vrm->getPhys(li->reg) << " aliases " << vrm->getPhys(li2->reg) << "\n";
-            allocationValid &= false;
-          } 
-        }
-      }
-    } 
-
-  } 
-
-  return allocationValid;
-
-}
-
-
 void RALinScan::ComputeRelatedRegClasses() {
   // First pass, add all reg classes to the union, and determine at least one
   // reg class that each register is in.
@@ -526,10 +439,6 @@
 
   linearScan();
 
-  if (NewSpillFramework) {
-    bool allocValid = validateRegAlloc(mf_, li_, vrm_);
-  }
-
   // Rewrite spill code and update the PhysRegsUsed set.
   rewriter_->runOnMachineFunction(*mf_, *vrm_, li_);
 





More information about the llvm-commits mailing list