diff options
Diffstat (limited to 'llvm/lib')
| -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; | 

