diff options
| author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2009-08-06 21:19:03 +0000 |
|---|---|---|
| committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2009-08-06 21:19:03 +0000 |
| commit | 1e455c0f3bf789fe6db08fafd54dead214cfe396 (patch) | |
| tree | ec2749de46ad186d56eeee969bb4aefbeb5dcf91 /llvm/lib/CodeGen | |
| parent | 1a9db9993243358211e90c88a464401c88b3a14e (diff) | |
| download | bcm5719-llvm-1e455c0f3bf789fe6db08fafd54dead214cfe396.tar.gz bcm5719-llvm-1e455c0f3bf789fe6db08fafd54dead214cfe396.zip | |
Get rid of RegScavenger::backwards() before the bitrot spreads.
If we need it one day, there is nothing wrong with putting it back in.
llvm-svn: 78337
Diffstat (limited to 'llvm/lib/CodeGen')
| -rw-r--r-- | llvm/lib/CodeGen/RegisterScavenging.cpp | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/llvm/lib/CodeGen/RegisterScavenging.cpp b/llvm/lib/CodeGen/RegisterScavenging.cpp index c3e03ab676e..79ea579492c 100644 --- a/llvm/lib/CodeGen/RegisterScavenging.cpp +++ b/llvm/lib/CodeGen/RegisterScavenging.cpp @@ -294,70 +294,6 @@ void RegScavenger::forward() { } } -void RegScavenger::backward() { - assert(Tracking && "Not tracking states!"); - assert(MBBI != MBB->begin() && "Already at start of basic block!"); - // Move ptr backward. - MBBI = prior(MBBI); - - MachineInstr *MI = MBBI; - DistanceMap.erase(MI); - --CurrDist; - - // Separate register operands into 3 classes: uses, defs, earlyclobbers. - SmallVector<std::pair<const MachineOperand*,unsigned>, 4> UseMOs; - SmallVector<std::pair<const MachineOperand*,unsigned>, 4> DefMOs; - SmallVector<std::pair<const MachineOperand*,unsigned>, 4> EarlyClobberMOs; - for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) { - const MachineOperand &MO = MI->getOperand(i); - if (!MO.isReg() || MO.getReg() == 0 || MO.isUndef()) - continue; - if (MO.isUse()) - UseMOs.push_back(std::make_pair(&MO,i)); - else if (MO.isEarlyClobber()) - EarlyClobberMOs.push_back(std::make_pair(&MO,i)); - else - DefMOs.push_back(std::make_pair(&MO,i)); - } - - - // Process defs first. - unsigned NumECs = EarlyClobberMOs.size(); - unsigned NumDefs = DefMOs.size(); - for (unsigned i = 0, e = NumECs + NumDefs; i != e; ++i) { - const MachineOperand &MO = (i < NumDefs) - ? *DefMOs[i].first : *EarlyClobberMOs[i-NumDefs].first; - unsigned Idx = (i < NumECs) - ? DefMOs[i].second : EarlyClobberMOs[i-NumDefs].second; - if (MO.isUndef()) - continue; - - // Skip two-address destination operand. - if (MI->isRegTiedToUseOperand(Idx)) - continue; - - unsigned Reg = MO.getReg(); - assert(isUsed(Reg)); - if (!isReserved(Reg)) - setUnused(Reg, MI); - } - - // Process uses. - BitVector UseRegs(NumPhysRegs); - for (unsigned i = 0, e = UseMOs.size(); i != e; ++i) { - const MachineOperand MO = *UseMOs[i].first; - unsigned Reg = MO.getReg(); - assert(isUnused(Reg) || isReserved(Reg)); - UseRegs.set(Reg); - - // Set the sub-registers as "used". - for (const unsigned *SubRegs = TRI->getSubRegisters(Reg); - unsigned SubReg = *SubRegs; ++SubRegs) - UseRegs.set(SubReg); - } - setUsed(UseRegs); -} - void RegScavenger::getRegsUsed(BitVector &used, bool includeReserved) { if (includeReserved) used = ~RegsAvailable; |

