LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
llvm::MachineInstrBuilder Class Reference

#include <MachineInstrBuilder.h>

Public Member Functions

 MachineInstrBuilder ()
 
 MachineInstrBuilder (MachineFunction &F, MachineInstr *I)
 
 operator MachineInstr * () const
 
MachineInstroperator-> () const
 
 operator MachineBasicBlock::iterator () const
 
const MachineInstrBuilderaddReg (unsigned RegNo, unsigned flags=0, unsigned SubReg=0) const
 
const MachineInstrBuilderaddImm (int64_t Val) const
 
const MachineInstrBuilderaddCImm (const ConstantInt *Val) const
 
const MachineInstrBuilderaddFPImm (const ConstantFP *Val) const
 
const MachineInstrBuilderaddMBB (MachineBasicBlock *MBB, unsigned char TargetFlags=0) const
 
const MachineInstrBuilderaddFrameIndex (int Idx) const
 
const MachineInstrBuilderaddConstantPoolIndex (unsigned Idx, int Offset=0, unsigned char TargetFlags=0) const
 
const MachineInstrBuilderaddTargetIndex (unsigned Idx, int64_t Offset=0, unsigned char TargetFlags=0) const
 
const MachineInstrBuilderaddJumpTableIndex (unsigned Idx, unsigned char TargetFlags=0) const
 
const MachineInstrBuilderaddGlobalAddress (const GlobalValue *GV, int64_t Offset=0, unsigned char TargetFlags=0) const
 
const MachineInstrBuilderaddExternalSymbol (const char *FnName, unsigned char TargetFlags=0) const
 
const MachineInstrBuilderaddBlockAddress (const BlockAddress *BA, int64_t Offset=0, unsigned char TargetFlags=0) const
 
const MachineInstrBuilderaddRegMask (const uint32_t *Mask) const
 
const MachineInstrBuilderaddMemOperand (MachineMemOperand *MMO) const
 
const MachineInstrBuildersetMemRefs (MachineInstr::mmo_iterator b, MachineInstr::mmo_iterator e) const
 
const MachineInstrBuilderaddOperand (const MachineOperand &MO) const
 
const MachineInstrBuilderaddMetadata (const MDNode *MD) const
 
const MachineInstrBuilderaddSym (MCSymbol *Sym) const
 
const MachineInstrBuildersetMIFlags (unsigned Flags) const
 
const MachineInstrBuildersetMIFlag (MachineInstr::MIFlag Flag) const
 
const MachineInstrBuilderaddDisp (const MachineOperand &Disp, int64_t off, unsigned char TargetFlags=0) const
 
const MachineInstrBuildercopyImplicitOps (const MachineInstr *OtherMI)
 Copy all the implicit operands from OtherMI onto this one. More...
 

Detailed Description

Definition at line 45 of file MachineInstrBuilder.h.

Constructor & Destructor Documentation

llvm::MachineInstrBuilder::MachineInstrBuilder ( )
inline

Definition at line 49 of file MachineInstrBuilder.h.

llvm::MachineInstrBuilder::MachineInstrBuilder ( MachineFunction F,
MachineInstr I 
)
inline

Create a MachineInstrBuilder for manipulating an existing instruction. F must be the machine function that was used to allocate I.

Definition at line 53 of file MachineInstrBuilder.h.

Member Function Documentation

const MachineInstrBuilder& llvm::MachineInstrBuilder::addBlockAddress ( const BlockAddress BA,
int64_t  Offset = 0,
unsigned char  TargetFlags = 0 
) const
inline
const MachineInstrBuilder& llvm::MachineInstrBuilder::addCImm ( const ConstantInt Val) const
inline
const MachineInstrBuilder& llvm::MachineInstrBuilder::addConstantPoolIndex ( unsigned  Idx,
int  Offset = 0,
unsigned char  TargetFlags = 0 
) const
inline
const MachineInstrBuilder& llvm::MachineInstrBuilder::addDisp ( const MachineOperand Disp,
int64_t  off,
unsigned char  TargetFlags = 0 
) const
inline
const MachineInstrBuilder& llvm::MachineInstrBuilder::addExternalSymbol ( const char *  FnName,
unsigned char  TargetFlags = 0 
) const
inline
const MachineInstrBuilder& llvm::MachineInstrBuilder::addFPImm ( const ConstantFP Val) const
inline
const MachineInstrBuilder& llvm::MachineInstrBuilder::addFrameIndex ( int  Idx) const
inline
const MachineInstrBuilder& llvm::MachineInstrBuilder::addGlobalAddress ( const GlobalValue GV,
int64_t  Offset = 0,
unsigned char  TargetFlags = 0 
) const
inline
const MachineInstrBuilder& llvm::MachineInstrBuilder::addImm ( int64_t  Val) const
inline

addImm - Add a new immediate operand.

Definition at line 83 of file MachineInstrBuilder.h.

References llvm::MachineInstr::addOperand(), and llvm::MachineOperand::CreateImm().

Referenced by llvm::addConstantPoolReference(), llvm::AddDefaultPred(), llvm::addDirectMem(), addDisp(), llvm::addFrameReference(), llvm::addFullAddress(), llvm::addOffset(), llvm::addRegReg(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::MipsSEInstrInfo::adjustStackPtr(), llvm::Mips16InstrInfo::basicLoadImmediate(), llvm::ARMBaseInstrInfo::breakPartialRegDependency(), llvm::Mips16InstrInfo::BuildAddiuSpImm(), llvm::R600InstrInfo::buildDefaultInstruction(), llvm::SIInstrInfo::buildIndirectRead(), llvm::SIInstrInfo::buildIndirectWrite(), llvm::BuildMI(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::AArch64InstrInfo::copyPhysReg(), llvm::MipsSEInstrInfo::copyPhysReg(), llvm::XCoreInstrInfo::copyPhysReg(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::SparcFrameLowering::eliminateCallFramePseudoInstr(), llvm::MSP430FrameLowering::eliminateCallFramePseudoInstr(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), llvm::AArch64TargetLowering::emitAtomicBinary(), llvm::AArch64TargetLowering::emitAtomicBinaryMinMax(), llvm::AArch64TargetLowering::emitAtomicCmpSwap(), llvm::InstrEmitter::EmitDbgValue(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::SparcFrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::AArch64TargetLowering::EmitF128CSEL(), llvm::AArch64FrameLowering::emitFrameMemOps(), emitIncrement(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::SparcTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::Thumb2RegisterInfo::emitLoadConstPool(), llvm::Thumb1RegisterInfo::emitLoadConstPool(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), emitPostLd(), emitPostSt(), llvm::SparcFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitSPUpdate(), emitThumbConstant(), emitThumbRegPlusImmInReg(), expandPseudoDIV(), llvm::FastISel::FastEmitInst_i(), llvm::FastISel::FastEmitInst_ii(), llvm::FastISel::FastEmitInst_ri(), llvm::FastISel::FastEmitInst_rii(), llvm::FastISel::FastEmitInst_rri(), llvm::FastISel::FastEmitInst_rrii(), llvm::ARMBaseInstrInfo::FoldImmediate(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), forceReg(), HandleVRSaveUpdate(), llvm::ARMBaseInstrInfo::InsertBranch(), llvm::SparcInstrInfo::InsertBranch(), llvm::MSP430InstrInfo::InsertBranch(), llvm::PPCInstrInfo::InsertBranch(), llvm::SystemZInstrInfo::InsertBranch(), InsertLDR_STR(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::Mips16InstrInfo::loadImmediate(), llvm::SystemZInstrInfo::loadImmediate(), llvm::Mips16InstrInfo::loadRegFromStack(), llvm::MipsSEInstrInfo::loadRegFromStack(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::XCoreInstrInfo::loadRegFromStackSlot(), llvm::SparcInstrInfo::loadRegFromStackSlot(), llvm::HexagonInstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::Mips16InstrInfo::makeFrame(), MakeM0Inst(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseInstrInfo::optimizeSelect(), llvm::SystemZInstrInfo::PredicateInstruction(), llvm::ARMBaseInstrInfo::reMaterialize(), llvm::SystemZFrameLowering::restoreCalleeSavedRegisters(), llvm::Mips16InstrInfo::restoreFrame(), llvm::ARMBaseInstrInfo::setExecutionDomain(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::Mips16InstrInfo::storeRegToStack(), llvm::MipsSEInstrInfo::storeRegToStack(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), and storeToStack().

const MachineInstrBuilder& llvm::MachineInstrBuilder::addJumpTableIndex ( unsigned  Idx,
unsigned char  TargetFlags = 0 
) const
inline
const MachineInstrBuilder& llvm::MachineInstrBuilder::addMBB ( MachineBasicBlock MBB,
unsigned char  TargetFlags = 0 
) const
inline
const MachineInstrBuilder& llvm::MachineInstrBuilder::addMemOperand ( MachineMemOperand MMO) const
inline
const MachineInstrBuilder& llvm::MachineInstrBuilder::addMetadata ( const MDNode MD) const
inline
const MachineInstrBuilder& llvm::MachineInstrBuilder::addOperand ( const MachineOperand MO) const
inline
const MachineInstrBuilder& llvm::MachineInstrBuilder::addReg ( unsigned  RegNo,
unsigned  flags = 0,
unsigned  SubReg = 0 
) const
inline

addReg - Add a new virtual register operand...

Definition at line 64 of file MachineInstrBuilder.h.

References llvm::MachineInstr::addOperand(), llvm::MachineOperand::CreateReg(), llvm::RegState::Dead, llvm::RegState::Debug, llvm::RegState::Define, llvm::RegState::EarlyClobber, llvm::RegState::Implicit, llvm::RegState::InternalRead, llvm::RegState::Kill, and llvm::RegState::Undef.

Referenced by llvm::addConstantPoolReference(), llvm::AddDefaultCC(), llvm::AddDefaultPred(), llvm::AddDefaultT1CC(), llvm::addDirectMem(), llvm::ARMBaseInstrInfo::AddDReg(), llvm::addFrameReference(), llvm::addFullAddress(), llvm::AddNoT1CC(), llvm::addOffset(), llvm::addRegOffset(), llvm::addRegReg(), addSavedGPR(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::MipsSEInstrInfo::adjustStackPtr(), llvm::X86InstrInfo::breakPartialRegDependency(), llvm::R600InstrInfo::buildDefaultInstruction(), llvm::SIInstrInfo::buildIndirectRead(), llvm::R600InstrInfo::buildIndirectRead(), llvm::SIInstrInfo::buildIndirectWrite(), llvm::R600InstrInfo::buildIndirectWrite(), llvm::BuildMI(), llvm::SIInstrInfo::buildMovInstr(), llvm::X86InstrInfo::classifyLEAReg(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::SIInstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysReg(), llvm::Mips16InstrInfo::copyPhysReg(), llvm::MipsSEInstrInfo::copyPhysReg(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::MSP430InstrInfo::copyPhysReg(), llvm::XCoreInstrInfo::copyPhysReg(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::SparcInstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyPhysReg(), llvm::PPCInstrInfo::copyPhysReg(), llvm::SystemZInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), llvm::AArch64TargetLowering::emitAtomicBinary(), llvm::PPCTargetLowering::EmitAtomicBinary(), llvm::AArch64TargetLowering::emitAtomicBinaryMinMax(), llvm::AArch64TargetLowering::emitAtomicCmpSwap(), llvm::InstrEmitter::EmitDbgValue(), llvm::PPCTargetLowering::emitEHSjLjLongJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::HexagonFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::SparcTargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::Thumb2RegisterInfo::emitLoadConstPool(), llvm::Thumb1RegisterInfo::emitLoadConstPool(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), emitPostLd(), emitPostSt(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitThumbRegPlusImmInReg(), Expand2AddrUndef(), expandPseudoDIV(), llvm::FastISel::FastEmitInst_r(), llvm::FastISel::FastEmitInst_rf(), llvm::FastISel::FastEmitInst_ri(), llvm::FastISel::FastEmitInst_rii(), llvm::FastISel::FastEmitInst_rr(), llvm::FastISel::FastEmitInst_rri(), llvm::FastISel::FastEmitInst_rrii(), llvm::FastISel::FastEmitInst_rrr(), llvm::finalizeBundle(), llvm::ARMBaseInstrInfo::FoldImmediate(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), forceReg(), llvm::MachineSSAUpdater::GetValueInMiddleOfBlock(), llvm::XCoreInstrInfo::InsertBranch(), llvm::ARMBaseInstrInfo::InsertBranch(), llvm::HexagonInstrInfo::InsertBranch(), llvm::NVPTXInstrInfo::InsertBranch(), llvm::PPCInstrInfo::InsertBranch(), llvm::R600InstrInfo::InsertBranch(), InsertLDR_STR(), llvm::PPCInstrInfo::insertSelect(), llvm::X86InstrInfo::insertSelect(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::Mips16InstrInfo::loadImmediate(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::Mips16InstrInfo::makeFrame(), llvm::PPCInstrInfo::optimizeCompareInstr(), llvm::SystemZInstrInfo::PredicateInstruction(), llvm::R600InstrInfo::PredicateInstruction(), replaceFI(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), llvm::SystemZFrameLowering::restoreCalleeSavedRegisters(), llvm::Mips16InstrInfo::restoreFrame(), llvm::Thumb1RegisterInfo::saveScavengerRegister(), llvm::ARMBaseInstrInfo::setExecutionDomain(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::X86InstrInfo::storeRegToAddr(), llvm::Mips16InstrInfo::storeRegToStack(), llvm::MipsSEInstrInfo::storeRegToStack(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::unfoldMemoryOperand(), and UpdatePredRedefs().

const MachineInstrBuilder& llvm::MachineInstrBuilder::addRegMask ( const uint32_t *  Mask) const
inline
const MachineInstrBuilder& llvm::MachineInstrBuilder::addSym ( MCSymbol Sym) const
inline
const MachineInstrBuilder& llvm::MachineInstrBuilder::addTargetIndex ( unsigned  Idx,
int64_t  Offset = 0,
unsigned char  TargetFlags = 0 
) const
inline
const MachineInstrBuilder& llvm::MachineInstrBuilder::copyImplicitOps ( const MachineInstr OtherMI)
inline

Copy all the implicit operands from OtherMI onto this one.

Definition at line 214 of file MachineInstrBuilder.h.

References llvm::MachineInstr::copyImplicitOps().

Referenced by llvm::Thumb1FrameLowering::emitEpilogue(), and llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters().

llvm::MachineInstrBuilder::operator MachineBasicBlock::iterator ( ) const
inline

Definition at line 59 of file MachineInstrBuilder.h.

llvm::MachineInstrBuilder::operator MachineInstr * ( ) const
inline

Allow automatic conversion to the machine instruction we are working on.

Definition at line 57 of file MachineInstrBuilder.h.

MachineInstr* llvm::MachineInstrBuilder::operator-> ( ) const
inline

Definition at line 58 of file MachineInstrBuilder.h.

const MachineInstrBuilder& llvm::MachineInstrBuilder::setMemRefs ( MachineInstr::mmo_iterator  b,
MachineInstr::mmo_iterator  e 
) const
inline
const MachineInstrBuilder& llvm::MachineInstrBuilder::setMIFlag ( MachineInstr::MIFlag  Flag) const
inline
const MachineInstrBuilder& llvm::MachineInstrBuilder::setMIFlags ( unsigned  Flags) const
inline

The documentation for this class was generated from the following file: