39 while (LUI != LiveUnits.
end()) {
41 LUI = LiveUnits.
erase(LUI);
54 unsigned Reg = O->getReg();
58 }
else if (O->isRegMask()) {
64 if (!O->isReg() || !O->readsReg() || O->isUndef())
66 unsigned Reg = O->getReg();
82 unsigned Reg = O->getReg();
94 }
else if (O->isRegMask()) {
99 for (
unsigned i = 0, e = Defs.
size(); i != e; ++i) {
void push_back(const T &Elt)
bool isValid() const
Check if the iterator is at the end of the list.
bool isValid() const
isValid - returns true if this iterator is not yet at the end.
std::vector< unsigned >::const_iterator livein_iterator
void stepForward(const MachineInstr &MI, const MCRegisterInfo &MCRI)
Simulates liveness when stepping forward over an instruction(bundle): Remove killed-uses, add defs.
livein_iterator livein_begin() const
const_iterator end() const
MCRegUnitRootIterator enumerates the root registers of a register unit.
iterator erase(iterator I)
static bool operClobbersUnit(const MachineOperand *MO, unsigned Unit, const MCRegisterInfo *MCRI)
void addLiveIns(const MachineBasicBlock *MBB, const MCRegisterInfo &MCRI)
Adds all registers in the live-in list of block BB.
livein_iterator livein_end() const
void removeRegsInMask(const MachineOperand &Op, const MCRegisterInfo &MCRI)
Removes registers clobbered by the regmask operand Op.
const_iterator begin() const
void addReg(unsigned Reg, const MCRegisterInfo &MCRI)
Adds a register to the set.
static bool clobbersPhysReg(const uint32_t *RegMask, unsigned PhysReg)
void stepBackward(const MachineInstr &MI, const MCRegisterInfo &MCRI)
Simulates liveness when stepping backwards over an instruction(bundle): Remove Defs, add uses.
bool isValid() const
isValid - Returns true until all the operands have been visited.
void removeReg(unsigned Reg, const MCRegisterInfo &MCRI)
Removes a register from the set.