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)

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

llvm::MachineFunction& F
llvm::MachineInstr* I

MachineInstrBuilder(llvm::MachineFunction& F,
                    MachineBasicBlock::iterator I)

Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:79

Parameters

llvm::MachineFunction& F
MachineBasicBlock::iterator I

MachineInstrBuilder()

Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:74

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

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

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

Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:247

Parameters

unsigned int CFIIndex

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

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

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

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

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

Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:141

Parameters

const llvm::ConstantFP* Val

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

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

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

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

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

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

Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:202

Parameters

llvm::MachineMemOperand* MMO

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

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

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

Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:197

Parameters

const uint32_t* Mask

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

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

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

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

Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:213

Parameters

const llvm::MachineInstr& OtherMI

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

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

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

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

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

Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:85

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

Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:278

Parameters

MachineInstr::MIFlag Flag

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

Declared at: llvm/include/llvm/CodeGen/MachineInstrBuilder.h:208

Parameters

ArrayRef<llvm::MachineMemOperand*> MMOs