class MachineInstrBuilder
Declaration
class MachineInstrBuilder { /* full declaration omitted */ };
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:69
Member Variables
- private llvm::MachineFunction* MF = nullptr
- private llvm::MachineInstr* MI = nullptr
Method Overview
- public MachineInstrBuilder(llvm::MachineFunction & F, llvm::MachineInstr * I)
- public MachineInstrBuilder(llvm::MachineFunction & F, MachineBasicBlock::iterator I)
- public MachineInstrBuilder()
- public const llvm::MachineInstrBuilder & add(ArrayRef<llvm::MachineOperand> MOs) const
- public const llvm::MachineInstrBuilder & add(const llvm::MachineOperand & MO) const
- public const llvm::MachineInstrBuilder & addBlockAddress(const llvm::BlockAddress * BA, int64_t Offset = 0, unsigned int TargetFlags = 0) const
- public const llvm::MachineInstrBuilder & addCFIIndex(unsigned int CFIIndex) const
- public const llvm::MachineInstrBuilder & addCImm(const llvm::ConstantInt * Val) const
- public const llvm::MachineInstrBuilder & addConstantPoolIndex(unsigned int Idx, int Offset = 0, unsigned int TargetFlags = 0) const
- public const llvm::MachineInstrBuilder & addDef(llvm::Register RegNo, unsigned int Flags = 0, unsigned int SubReg = 0) const
- public const llvm::MachineInstrBuilder & addDisp(const llvm::MachineOperand & Disp, int64_t off, unsigned char TargetFlags = 0) const
- public const llvm::MachineInstrBuilder & addExternalSymbol(const char * FnName, unsigned int TargetFlags = 0) const
- public const llvm::MachineInstrBuilder & addFPImm(const llvm::ConstantFP * Val) const
- public const llvm::MachineInstrBuilder & addFrameIndex(int Idx) const
- public const llvm::MachineInstrBuilder & addGlobalAddress(const llvm::GlobalValue * GV, int64_t Offset = 0, unsigned int TargetFlags = 0) const
- public const llvm::MachineInstrBuilder & addImm(int64_t Val) const
- public const llvm::MachineInstrBuilder & addIntrinsicID(Intrinsic::ID ID) const
- public const llvm::MachineInstrBuilder & addJumpTableIndex(unsigned int Idx, unsigned int TargetFlags = 0) const
- public const llvm::MachineInstrBuilder & addMBB(llvm::MachineBasicBlock * MBB, unsigned int TargetFlags = 0) const
- public const llvm::MachineInstrBuilder & addMemOperand(llvm::MachineMemOperand * MMO) const
- public const llvm::MachineInstrBuilder & addMetadata(const llvm::MDNode * MD) const
- public const llvm::MachineInstrBuilder & addPredicate(CmpInst::Predicate Pred) const
- public const llvm::MachineInstrBuilder & addReg(llvm::Register RegNo, unsigned int flags = 0, unsigned int SubReg = 0) const
- public const llvm::MachineInstrBuilder & addRegMask(const uint32_t * Mask) const
- public const llvm::MachineInstrBuilder & addShuffleMask(ArrayRef<int> Val) const
- public const llvm::MachineInstrBuilder & addSym(llvm::MCSymbol * Sym, unsigned char TargetFlags = 0) const
- public const llvm::MachineInstrBuilder & addTargetIndex(unsigned int Idx, int64_t Offset = 0, unsigned int TargetFlags = 0) const
- public const llvm::MachineInstrBuilder & addUse(llvm::Register RegNo, unsigned int Flags = 0, unsigned int SubReg = 0) const
- public const llvm::MachineInstrBuilder & cloneMemRefs(const llvm::MachineInstr & OtherMI) const
- public const llvm::MachineInstrBuilder & cloneMergedMemRefs(ArrayRef<const llvm::MachineInstr *> OtherMIs) const
- public bool constrainAllUses(const llvm::TargetInstrInfo & TII, const llvm::TargetRegisterInfo & TRI, const llvm::RegisterBankInfo & RBI) const
- public const llvm::MachineInstrBuilder & copyImplicitOps(const llvm::MachineInstr & OtherMI) const
- public llvm::MachineInstr * getInstr() const
- public llvm::Register getReg(unsigned int Idx) const
- public MachineBasicBlock::iterator operator MachineInstrBundleIterator() const
- public llvm::MachineInstr * operator llvm::MachineInstr *() const
- public const llvm::MachineInstrBuilder & setMIFlag(MachineInstr::MIFlag Flag) const
- public const llvm::MachineInstrBuilder & setMIFlags(unsigned int Flags) const
- public const llvm::MachineInstrBuilder & setMemRefs(ArrayRef<llvm::MachineMemOperand *> MMOs) const
Methods
¶MachineInstrBuilder(llvm::MachineFunction& F,
llvm::MachineInstr* I)
MachineInstrBuilder(llvm::MachineFunction& F,
llvm::MachineInstr* I)
Description
Create a MachineInstrBuilder for manipulating an existing instruction. F must be the machine function that was used to allocate I.
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:78
Parameters
¶MachineInstrBuilder(llvm::MachineFunction& F,
MachineBasicBlock::iterator I)
MachineInstrBuilder(llvm::MachineFunction& F,
MachineBasicBlock::iterator I)
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:79
Parameters
¶MachineInstrBuilder()
MachineInstrBuilder()
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:74
¶const llvm::MachineInstrBuilder& add(
ArrayRef<llvm::MachineOperand> MOs) const
const llvm::MachineInstrBuilder& add(
ArrayRef<llvm::MachineOperand> MOs) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:229
Parameters
- ArrayRef<llvm::MachineOperand> MOs
¶const llvm::MachineInstrBuilder& add(
const llvm::MachineOperand& MO) const
const llvm::MachineInstrBuilder& add(
const llvm::MachineOperand& MO) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:224
Parameters
- const llvm::MachineOperand& MO
¶const llvm::MachineInstrBuilder& addBlockAddress(
const llvm::BlockAddress* BA,
int64_t Offset = 0,
unsigned int TargetFlags = 0) const
const llvm::MachineInstrBuilder& addBlockAddress(
const llvm::BlockAddress* BA,
int64_t Offset = 0,
unsigned int TargetFlags = 0) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:190
Parameters
- const llvm::BlockAddress* BA
- int64_t Offset = 0
- unsigned int TargetFlags = 0
¶const llvm::MachineInstrBuilder& addCFIIndex(
unsigned int CFIIndex) const
const llvm::MachineInstrBuilder& addCFIIndex(
unsigned int CFIIndex) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:247
Parameters
- unsigned int CFIIndex
¶const llvm::MachineInstrBuilder& addCImm(
const llvm::ConstantInt* Val) const
const llvm::MachineInstrBuilder& addCImm(
const llvm::ConstantInt* Val) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:136
Parameters
- const llvm::ConstantInt* Val
¶const llvm::MachineInstrBuilder&
addConstantPoolIndex(
unsigned int Idx,
int Offset = 0,
unsigned int TargetFlags = 0) const
const llvm::MachineInstrBuilder&
addConstantPoolIndex(
unsigned int Idx,
int Offset = 0,
unsigned int TargetFlags = 0) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:158
Parameters
- unsigned int Idx
- int Offset = 0
- unsigned int TargetFlags = 0
¶const llvm::MachineInstrBuilder& addDef(
llvm::Register RegNo,
unsigned int Flags = 0,
unsigned int SubReg = 0) const
const llvm::MachineInstrBuilder& addDef(
llvm::Register RegNo,
unsigned int Flags = 0,
unsigned int SubReg = 0) const
Description
Add a virtual register definition operand.
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:116
Parameters
- llvm::Register RegNo
- unsigned int Flags = 0
- unsigned int SubReg = 0
¶const llvm::MachineInstrBuilder& addDisp(
const llvm::MachineOperand& Disp,
int64_t off,
unsigned char TargetFlags = 0) const
const llvm::MachineInstrBuilder& addDisp(
const llvm::MachineOperand& Disp,
int64_t off,
unsigned char TargetFlags = 0) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:284
Parameters
- const llvm::MachineOperand& Disp
- int64_t off
- unsigned char TargetFlags = 0
¶const llvm::MachineInstrBuilder&
addExternalSymbol(
const char* FnName,
unsigned int TargetFlags = 0) const
const llvm::MachineInstrBuilder&
addExternalSymbol(
const char* FnName,
unsigned int TargetFlags = 0) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:184
Parameters
- const char* FnName
- unsigned int TargetFlags = 0
¶const llvm::MachineInstrBuilder& addFPImm(
const llvm::ConstantFP* Val) const
const llvm::MachineInstrBuilder& addFPImm(
const llvm::ConstantFP* Val) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:141
Parameters
- const llvm::ConstantFP* Val
¶const llvm::MachineInstrBuilder& addFrameIndex(
int Idx) const
const llvm::MachineInstrBuilder& addFrameIndex(
int Idx) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:152
Parameters
- int Idx
¶const llvm::MachineInstrBuilder& addGlobalAddress(
const llvm::GlobalValue* GV,
int64_t Offset = 0,
unsigned int TargetFlags = 0) const
const llvm::MachineInstrBuilder& addGlobalAddress(
const llvm::GlobalValue* GV,
int64_t Offset = 0,
unsigned int TargetFlags = 0) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:177
Parameters
- const llvm::GlobalValue* GV
- int64_t Offset = 0
- unsigned int TargetFlags = 0
¶const llvm::MachineInstrBuilder& addImm(
int64_t Val) const
const llvm::MachineInstrBuilder& addImm(
int64_t Val) const
Description
Add a new immediate operand.
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:131
Parameters
- int64_t Val
¶const llvm::MachineInstrBuilder& addIntrinsicID(
Intrinsic::ID ID) const
const llvm::MachineInstrBuilder& addIntrinsicID(
Intrinsic::ID ID) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:252
Parameters
- Intrinsic::ID ID
¶const llvm::MachineInstrBuilder&
addJumpTableIndex(
unsigned int Idx,
unsigned int TargetFlags = 0) const
const llvm::MachineInstrBuilder&
addJumpTableIndex(
unsigned int Idx,
unsigned int TargetFlags = 0) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:171
Parameters
- unsigned int Idx
- unsigned int TargetFlags = 0
¶const llvm::MachineInstrBuilder& addMBB(
llvm::MachineBasicBlock* MBB,
unsigned int TargetFlags = 0) const
const llvm::MachineInstrBuilder& addMBB(
llvm::MachineBasicBlock* MBB,
unsigned int TargetFlags = 0) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:146
Parameters
- llvm::MachineBasicBlock* MBB
- unsigned int TargetFlags = 0
¶const llvm::MachineInstrBuilder& addMemOperand(
llvm::MachineMemOperand* MMO) const
const llvm::MachineInstrBuilder& addMemOperand(
llvm::MachineMemOperand* MMO) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:202
Parameters
¶const llvm::MachineInstrBuilder& addMetadata(
const llvm::MDNode* MD) const
const llvm::MachineInstrBuilder& addMetadata(
const llvm::MDNode* MD) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:236
Parameters
- const llvm::MDNode* MD
¶const llvm::MachineInstrBuilder& addPredicate(
CmpInst::Predicate Pred) const
const llvm::MachineInstrBuilder& addPredicate(
CmpInst::Predicate Pred) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:257
Parameters
- CmpInst::Predicate Pred
¶const llvm::MachineInstrBuilder& addReg(
llvm::Register RegNo,
unsigned int flags = 0,
unsigned int SubReg = 0) const
const llvm::MachineInstrBuilder& addReg(
llvm::Register RegNo,
unsigned int flags = 0,
unsigned int SubReg = 0) const
Description
Add a new virtual register operand.
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:97
Parameters
- llvm::Register RegNo
- unsigned int flags = 0
- unsigned int SubReg = 0
¶const llvm::MachineInstrBuilder& addRegMask(
const uint32_t* Mask) const
const llvm::MachineInstrBuilder& addRegMask(
const uint32_t* Mask) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:197
Parameters
- const uint32_t* Mask
¶const llvm::MachineInstrBuilder& addShuffleMask(
ArrayRef<int> Val) const
const llvm::MachineInstrBuilder& addShuffleMask(
ArrayRef<int> Val) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:262
Parameters
- ArrayRef<int> Val
¶const llvm::MachineInstrBuilder& addSym(
llvm::MCSymbol* Sym,
unsigned char TargetFlags = 0) const
const llvm::MachineInstrBuilder& addSym(
llvm::MCSymbol* Sym,
unsigned char TargetFlags = 0) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:267
Parameters
- llvm::MCSymbol* Sym
- unsigned char TargetFlags = 0
¶const llvm::MachineInstrBuilder& addTargetIndex(
unsigned int Idx,
int64_t Offset = 0,
unsigned int TargetFlags = 0) const
const llvm::MachineInstrBuilder& addTargetIndex(
unsigned int Idx,
int64_t Offset = 0,
unsigned int TargetFlags = 0) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:164
Parameters
- unsigned int Idx
- int64_t Offset = 0
- unsigned int TargetFlags = 0
¶const llvm::MachineInstrBuilder& addUse(
llvm::Register RegNo,
unsigned int Flags = 0,
unsigned int SubReg = 0) const
const llvm::MachineInstrBuilder& addUse(
llvm::Register RegNo,
unsigned int Flags = 0,
unsigned int SubReg = 0) const
Description
Add a virtual register use operand. It is an error for Flags to contain `RegState::Define` when calling this function.
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:123
Parameters
- llvm::Register RegNo
- unsigned int Flags = 0
- unsigned int SubReg = 0
¶const llvm::MachineInstrBuilder& cloneMemRefs(
const llvm::MachineInstr& OtherMI) const
const llvm::MachineInstrBuilder& cloneMemRefs(
const llvm::MachineInstr& OtherMI) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:213
Parameters
- const llvm::MachineInstr& OtherMI
¶const llvm::MachineInstrBuilder&
cloneMergedMemRefs(
ArrayRef<const llvm::MachineInstr*> OtherMIs)
const
const llvm::MachineInstrBuilder&
cloneMergedMemRefs(
ArrayRef<const llvm::MachineInstr*> OtherMIs)
const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:219
Parameters
- ArrayRef<const llvm::MachineInstr*> OtherMIs
¶bool constrainAllUses(
const llvm::TargetInstrInfo& TII,
const llvm::TargetRegisterInfo& TRI,
const llvm::RegisterBankInfo& RBI) const
bool constrainAllUses(
const llvm::TargetInstrInfo& TII,
const llvm::TargetRegisterInfo& TRI,
const llvm::RegisterBankInfo& RBI) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:320
Parameters
- const llvm::TargetInstrInfo& TII
- const llvm::TargetRegisterInfo& TRI
- const llvm::RegisterBankInfo& RBI
¶const llvm::MachineInstrBuilder& copyImplicitOps(
const llvm::MachineInstr& OtherMI) const
const llvm::MachineInstrBuilder& copyImplicitOps(
const llvm::MachineInstr& OtherMI) const
Description
Copy all the implicit operands from OtherMI onto this one.
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:315
Parameters
- const llvm::MachineInstr& OtherMI
¶llvm::MachineInstr* getInstr() const
llvm::MachineInstr* getInstr() const
Description
If conversion operators fail, use this method to get the MachineInstr explicitly.
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:89
¶llvm::Register getReg(unsigned int Idx) const
llvm::Register getReg(unsigned int Idx) const
Description
Get the register for the operand index. The operand at the index should be a register (asserted by MachineOperand).
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:94
Parameters
- unsigned int Idx
¶MachineBasicBlock::iterator
operator MachineInstrBundleIterator() const
MachineBasicBlock::iterator
operator MachineInstrBundleIterator() const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:85
¶llvm::MachineInstr* operator llvm::MachineInstr*()
const
llvm::MachineInstr* operator llvm::MachineInstr*()
const
Description
Allow automatic conversion to the machine instruction we are working on.
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:83
¶const llvm::MachineInstrBuilder& setMIFlag(
MachineInstr::MIFlag Flag) const
const llvm::MachineInstrBuilder& setMIFlag(
MachineInstr::MIFlag Flag) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:278
Parameters
- MachineInstr::MIFlag Flag
¶const llvm::MachineInstrBuilder& setMIFlags(
unsigned int Flags) const
const llvm::MachineInstrBuilder& setMIFlags(
unsigned int Flags) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:273
Parameters
- unsigned int Flags
¶const llvm::MachineInstrBuilder& setMemRefs(
ArrayRef<llvm::MachineMemOperand*> MMOs) const
const llvm::MachineInstrBuilder& setMemRefs(
ArrayRef<llvm::MachineMemOperand*> MMOs) const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:208
Parameters
- ArrayRef<llvm::MachineMemOperand*> MMOs