15 #ifndef LLVM_CODEGEN_MACHINEINSTRBUNDLE_H
16 #define LLVM_CODEGEN_MACHINEINSTRBUNDLE_H
48 while (I->isBundledWithPred())
55 while (I->isBundledWithPred())
64 while (I->isBundledWithSucc())
73 while (I->isBundledWithSucc())
103 if (++InstrI == InstrE || !InstrI->isInsideBundle())
105 OpI = InstrI->operands_begin();
106 OpE = InstrI->operands_end();
122 InstrI = InstrE =
MI;
125 OpI = InstrI->operands_begin();
126 OpE = InstrI->operands_end();
139 assert(
isValid() &&
"Cannot advance MIOperands beyond the last operand");
148 return OpI - InstrI->operands_begin();
MachineBasicBlock::instr_iterator getBundleEnd(MachineInstr *MI)
Return an iterator pointing beyond the bundle containing MI.
instr_iterator instr_end()
VirtRegInfo analyzeVirtReg(unsigned Reg, SmallVectorImpl< std::pair< MachineInstr *, unsigned > > *Ops=0)
MachineOperand & operator*() const
MachineOperandIteratorBase(MachineInstr *MI, bool WholeBundle)
Instructions::const_iterator const_instr_iterator
MachineOperand & deref() const
const MachineOperand * operator->() const
Instructions::iterator instr_iterator
void operator++()
Preincrement. Move to the next operand.
MachineOperand * operator->() const
bool DefinesDead
DefinesDead - All defs of a Reg or a super-register are dead.
const MachineOperand & operator*() const
ConstMIBundleOperands(const MachineInstr *MI)
MIBundleOperands(MachineInstr *MI)
PhysRegInfo analyzePhysReg(unsigned Reg, const TargetRegisterInfo *TRI)
const MachineBasicBlock * getParent() const
bool Kills
There is a kill of Reg or a super-register.
bool ReadsOverlap
ReadsOverlap - Reg or an overlapping register is read.
bool Writes
Writes - One of the operands writes the virtual register.
MachineOperand * operator->() const
MIOperands(MachineInstr *MI)
MachineOperand & operator*() const
bool finalizeBundles(MachineFunction &MF)
bool Reads
Reads - Read or a super-register is read.
ConstMIOperands(const MachineInstr *MI)
MachineInstr * getBundleStart(MachineInstr *MI)
const MachineOperand * operator->() const
bool Defines
Defines - Reg or a super-register is defined.
bool isValid() const
isValid - Returns true until all the operands have been visited.
void finalizeBundle(MachineBasicBlock &MBB, MachineBasicBlock::instr_iterator FirstMI, MachineBasicBlock::instr_iterator LastMI)
const MachineOperand & operator*() const
unsigned getOperandNo() const