diff options
author | Lang Hames <lhames@gmail.com> | 2009-06-02 20:30:03 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2009-06-02 20:30:03 +0000 |
commit | 7ccf4a05e8452feffd5ae90b68d700f113e83923 (patch) | |
tree | 3573174a9535d7c5e87e1da7112a6ccd49f40a25 /lib/CodeGen/RegAllocLinearScan.cpp | |
parent | da9863fa414558127e001197961ce93c0049cbf5 (diff) | |
download | external_llvm-7ccf4a05e8452feffd5ae90b68d700f113e83923.zip external_llvm-7ccf4a05e8452feffd5ae90b68d700f113e83923.tar.gz external_llvm-7ccf4a05e8452feffd5ae90b68d700f113e83923.tar.bz2 |
Fixed warning, removed some temporary validation code that snuck in during my last commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72735 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/RegAllocLinearScan.cpp')
-rw-r--r-- | lib/CodeGen/RegAllocLinearScan.cpp | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/lib/CodeGen/RegAllocLinearScan.cpp b/lib/CodeGen/RegAllocLinearScan.cpp index ee118de..8520888 100644 --- a/lib/CodeGen/RegAllocLinearScan.cpp +++ b/lib/CodeGen/RegAllocLinearScan.cpp @@ -312,93 +312,6 @@ namespace { 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 @@ bool RALinScan::runOnMachineFunction(MachineFunction &fn) { linearScan(); - if (NewSpillFramework) { - bool allocValid = validateRegAlloc(mf_, li_, vrm_); - } - // Rewrite spill code and update the PhysRegsUsed set. rewriter_->runOnMachineFunction(*mf_, *vrm_, li_); |