diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/CodeGen/LivePhysRegs.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/lib/CodeGen/LivePhysRegs.cpp | 42 | 
1 files changed, 19 insertions, 23 deletions
diff --git a/contrib/llvm-project/llvm/lib/CodeGen/LivePhysRegs.cpp b/contrib/llvm-project/llvm/lib/CodeGen/LivePhysRegs.cpp index cd3d248ac878..7a5cffca3470 100644 --- a/contrib/llvm-project/llvm/lib/CodeGen/LivePhysRegs.cpp +++ b/contrib/llvm-project/llvm/lib/CodeGen/LivePhysRegs.cpp @@ -13,6 +13,7 @@  //===----------------------------------------------------------------------===//  #include "llvm/CodeGen/LivePhysRegs.h" +#include "llvm/CodeGen/LiveRegUnits.h"  #include "llvm/CodeGen/MachineFrameInfo.h"  #include "llvm/CodeGen/MachineFunction.h"  #include "llvm/CodeGen/MachineInstrBundle.h" @@ -42,28 +43,23 @@ void LivePhysRegs::removeRegsInMask(const MachineOperand &MO,  /// Remove defined registers and regmask kills from the set.  void LivePhysRegs::removeDefs(const MachineInstr &MI) { -  for (ConstMIBundleOperands O(MI); O.isValid(); ++O) { -    if (O->isReg()) { -      if (!O->isDef() || O->isDebug()) -        continue; -      unsigned Reg = O->getReg(); -      if (!TargetRegisterInfo::isPhysicalRegister(Reg)) -        continue; -      removeReg(Reg); -    } else if (O->isRegMask()) -      removeRegsInMask(*O); +  for (const MachineOperand &MOP : phys_regs_and_masks(MI)) { +    if (MOP.isRegMask()) { +      removeRegsInMask(MOP); +      continue; +    } + +    if (MOP.isDef()) +      removeReg(MOP.getReg());    }  }  /// Add uses to the set.  void LivePhysRegs::addUses(const MachineInstr &MI) { -  for (ConstMIBundleOperands O(MI); O.isValid(); ++O) { -    if (!O->isReg() || !O->readsReg() || O->isDebug()) -      continue; -    unsigned Reg = O->getReg(); -    if (!TargetRegisterInfo::isPhysicalRegister(Reg)) +  for (const MachineOperand &MOP : phys_regs_and_masks(MI)) { +    if (!MOP.isReg() || !MOP.readsReg())        continue; -    addReg(Reg); +    addReg(MOP.getReg());    }  } @@ -86,8 +82,8 @@ void LivePhysRegs::stepForward(const MachineInstr &MI,    // Remove killed registers from the set.    for (ConstMIBundleOperands O(MI); O.isValid(); ++O) {      if (O->isReg() && !O->isDebug()) { -      unsigned Reg = O->getReg(); -      if (!TargetRegisterInfo::isPhysicalRegister(Reg)) +      Register Reg = O->getReg(); +      if (!Register::isPhysicalRegister(Reg))          continue;        if (O->isDef()) {          // Note, dead defs are still recorded.  The caller should decide how to @@ -116,7 +112,7 @@ void LivePhysRegs::stepForward(const MachineInstr &MI,    }  } -/// Prin the currently live registers to OS. +/// Print the currently live registers to OS.  void LivePhysRegs::print(raw_ostream &OS) const {    OS << "Live Registers:";    if (!TRI) { @@ -292,10 +288,10 @@ void llvm::recomputeLivenessFlags(MachineBasicBlock &MBB) {        if (!MO->isReg() || !MO->isDef() || MO->isDebug())          continue; -      unsigned Reg = MO->getReg(); +      Register Reg = MO->getReg();        if (Reg == 0)          continue; -      assert(TargetRegisterInfo::isPhysicalRegister(Reg)); +      assert(Register::isPhysicalRegister(Reg));        bool IsNotLive = LiveRegs.available(MRI, Reg);        MO->setIsDead(IsNotLive); @@ -309,10 +305,10 @@ void llvm::recomputeLivenessFlags(MachineBasicBlock &MBB) {        if (!MO->isReg() || !MO->readsReg() || MO->isDebug())          continue; -      unsigned Reg = MO->getReg(); +      Register Reg = MO->getReg();        if (Reg == 0)          continue; -      assert(TargetRegisterInfo::isPhysicalRegister(Reg)); +      assert(Register::isPhysicalRegister(Reg));        bool IsNotLive = LiveRegs.available(MRI, Reg);        MO->setIsKill(IsNotLive);  | 
