LLVM API Documentation
#include <MachineInstrBuilder.h>
Public Member Functions | |
MIBundleBuilder (MachineBasicBlock &BB, MachineBasicBlock::iterator Pos) | |
MIBundleBuilder (MachineBasicBlock &BB, MachineBasicBlock::iterator B, MachineBasicBlock::iterator E) | |
Create a bundle from the sequence of instructions between B and E. | |
MIBundleBuilder (MachineInstr *MI) | |
MachineBasicBlock & | getMBB () const |
Return a reference to the basic block containing this bundle. | |
bool | empty () const |
MachineBasicBlock::instr_iterator | begin () const |
Return an iterator to the first bundled instruction. | |
MachineBasicBlock::instr_iterator | end () const |
Return an iterator beyond the last bundled instruction. | |
MIBundleBuilder & | insert (MachineBasicBlock::instr_iterator I, MachineInstr *MI) |
MIBundleBuilder & | prepend (MachineInstr *MI) |
MIBundleBuilder & | append (MachineInstr *MI) |
Helper class for constructing bundles of MachineInstrs.
MIBundleBuilder can create a bundle from scratch by inserting new MachineInstrs one at a time, or it can create a bundle from a sequence of existing MachineInstrs in a basic block.
Definition at line 416 of file MachineInstrBuilder.h.
llvm::MIBundleBuilder::MIBundleBuilder | ( | MachineBasicBlock & | BB, |
MachineBasicBlock::iterator | Pos | ||
) | [inline] |
Create an MIBundleBuilder that inserts instructions into a new bundle in BB above the bundle or instruction at Pos.
Definition at line 424 of file MachineInstrBuilder.h.
llvm::MIBundleBuilder::MIBundleBuilder | ( | MachineBasicBlock & | BB, |
MachineBasicBlock::iterator | B, | ||
MachineBasicBlock::iterator | E | ||
) | [inline] |
Create a bundle from the sequence of instructions between B and E.
Definition at line 429 of file MachineInstrBuilder.h.
References llvm::MachineInstr::bundleWithPred(), and llvm::AArch64CC::MI.
llvm::MIBundleBuilder::MIBundleBuilder | ( | MachineInstr * | MI | ) | [inline, explicit] |
Create an MIBundleBuilder representing an existing instruction or bundle that has MI as its head.
Definition at line 444 of file MachineInstrBuilder.h.
MIBundleBuilder& llvm::MIBundleBuilder::append | ( | MachineInstr * | MI | ) | [inline] |
Insert MI into MBB by appending it to the instructions in the bundle. MI will become the last instruction in the bundle.
Definition at line 490 of file MachineInstrBuilder.h.
References end(), and insert().
Referenced by insertDelayFiller().
MachineBasicBlock::instr_iterator llvm::MIBundleBuilder::begin | ( | ) | const [inline] |
Return an iterator to the first bundled instruction.
Definition at line 455 of file MachineInstrBuilder.h.
Referenced by prepend().
bool llvm::MIBundleBuilder::empty | ( | ) | const [inline] |
Return true if no instructions have been inserted in this bundle yet. Empty bundles aren't representable in a MachineBasicBlock.
Definition at line 452 of file MachineInstrBuilder.h.
Referenced by insert().
MachineBasicBlock::instr_iterator llvm::MIBundleBuilder::end | ( | ) | const [inline] |
Return an iterator beyond the last bundled instruction.
Definition at line 458 of file MachineInstrBuilder.h.
Referenced by append().
MachineBasicBlock& llvm::MIBundleBuilder::getMBB | ( | ) | const [inline] |
Return a reference to the basic block containing this bundle.
Definition at line 448 of file MachineInstrBuilder.h.
MIBundleBuilder& llvm::MIBundleBuilder::insert | ( | MachineBasicBlock::instr_iterator | I, |
MachineInstr * | MI | ||
) | [inline] |
Insert MI into this bundle before I which must point to an instruction in the bundle, or end().
Definition at line 462 of file MachineInstrBuilder.h.
References llvm::MachineInstr::BundledPred, llvm::MachineInstr::BundledSucc, llvm::MachineInstr::bundleWithPred(), llvm::MachineInstr::bundleWithSucc(), empty(), llvm::MachineBasicBlock::insert(), llvm::AArch64CC::MI, and llvm::MachineInstr::setFlag().
MIBundleBuilder& llvm::MIBundleBuilder::prepend | ( | MachineInstr * | MI | ) | [inline] |
Insert MI into MBB by prepending it to the instructions in the bundle. MI will become the first instruction in the bundle.
Definition at line 484 of file MachineInstrBuilder.h.