Go to the documentation of this file.
35 if (ImpDef ==
Reg || (
MRI &&
MRI->isSubRegister(
Reg, ImpDef)))
43 if (
MI.getOperand(
i).isReg() &&
48 if (
MI.getOperand(
i).isReg() &&
This is an optimization pass for GlobalISel generic memory operations.
bool isBranch() const
Returns true if this is a conditional, unconditional, or indirect branch.
Reg
All possible values of the reg field in the ModR/M byte.
Instances of this class represent a single low-level machine instruction.
bool isIndirectBranch() const
Return true if this is an indirect branch, such as a branch through a register.
bool isSubRegisterEq(MCRegister RegA, MCRegister RegB) const
Returns true if RegB is a sub-register of RegA or if RegB == RegA.
bool hasImplicitDefOfPhysReg(unsigned Reg, const MCRegisterInfo *MRI=nullptr) const
Return true if this instruction implicitly defines the specified physical register.
unsigned short NumOperands
bool isCall() const
Return true if the instruction is a call.
ArrayRef< MCPhysReg > implicit_defs() const
Return a list of registers that are potentially written by any instance of this machine instruction.
bool variadicOpsAreDefs() const
Return true if variadic operands of this instruction are definitions.
bool hasDefOfPhysReg(const MCInst &MI, unsigned Reg, const MCRegisterInfo &RI) const
Return true if this instruction defines the specified physical register, either explicitly or implici...
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
unsigned const MachineRegisterInfo * MRI
bool mayAffectControlFlow(const MCInst &MI, const MCRegisterInfo &RI) const
Return true if this is a branch or an instruction which directly writes to the program counter.
MCRegister getProgramCounter() const
Return the register which is the program counter.
bool isReturn() const
Return true if the instruction is a return.