LLVM API Documentation

Public Member Functions
llvm::MachineInstrBuilder Class Reference

#include <MachineInstrBuilder.h>

List of all members.

Public Member Functions

 MachineInstrBuilder ()
 MachineInstrBuilder (MachineFunction &F, MachineInstr *I)
 operator MachineInstr * () const
MachineInstroperator-> () const
 operator MachineBasicBlock::iterator () const
MachineInstrgetInstr () 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 MachineInstrBuilderaddCFIIndex (unsigned CFIIndex) 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.

Detailed Description

Definition at line 45 of file MachineInstrBuilder.h.


Constructor & Destructor Documentation

Definition at line 49 of file MachineInstrBuilder.h.

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::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::addGlobalAddress ( const GlobalValue GV,
int64_t  Offset = 0,
unsigned char  TargetFlags = 0 
) const [inline]

addImm - Add a new immediate operand.

Definition at line 87 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::ARMFrameLowering::adjustForSegmentedStacks(), llvm::MipsSEInstrInfo::adjustStackPtr(), llvm::ARMBaseInstrInfo::breakPartialRegDependency(), llvm::Mips16InstrInfo::BuildAddiuSpImm(), llvm::R600InstrInfo::buildDefaultInstruction(), llvm::SIInstrInfo::buildIndirectRead(), llvm::SIInstrInfo::buildIndirectWrite(), llvm::BuildMI(), llvm::SIInstrInfo::calculateLDSSpillAddress(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::copyFromCPSR(), llvm::MipsSEInstrInfo::copyPhysReg(), llvm::XCoreInstrInfo::copyPhysReg(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyToCPSR(), llvm::MSP430FrameLowering::eliminateCallFramePseudoInstr(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), llvm::emitARMRegPlusImmediate(), llvm::InstrEmitter::EmitDbgValue(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::AArch64InstrInfo::emitFrameIndexDebugValue(), llvm::emitFrameOffset(), emitIncrement(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::Thumb2RegisterInfo::emitLoadConstPool(), llvm::Thumb1RegisterInfo::emitLoadConstPool(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), llvm::TargetLoweringBase::emitPatchPoint(), emitPostLd(), emitPostSt(), llvm::MSP430FrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitSPUpdate(), llvm::emitT2RegPlusImmediate(), llvm::emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), llvm::SparcTargetLowering::expandAtomicRMW(), expandLoadStackGuard(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::AArch64InstrInfo::expandPostRAPseudo(), llvm::SparcTargetLowering::expandSelectCC(), 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::ARMFrameLowering::fixTCReturn(), llvm::ARMBaseInstrInfo::FoldImmediate(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), foldPatchpoint(), forceReg(), llvm::AArch64InstrInfo::genAlternativeCodeSequence(), HandleVRSaveUpdate(), llvm::SparcInstrInfo::InsertBranch(), llvm::MSP430InstrInfo::InsertBranch(), llvm::ARMBaseInstrInfo::InsertBranch(), llvm::PPCInstrInfo::InsertBranch(), llvm::SystemZInstrInfo::InsertBranch(), insertDivByZeroTrap(), InsertFPImmInst(), InsertLDR_STR(), llvm::SIInstrInfo::insertNOPs(), llvm::AArch64InstrInfo::insertSelect(), InsertSPImmInst(), llvm::SIInstrInfo::legalizeOperands(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::Mips16InstrInfo::loadImmediate(), llvm::XCoreInstrInfo::loadImmediate(), llvm::SystemZInstrInfo::loadImmediate(), llvm::Mips16InstrInfo::loadRegFromStack(), llvm::MipsSEInstrInfo::loadRegFromStack(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::XCoreInstrInfo::loadRegFromStackSlot(), llvm::SparcInstrInfo::loadRegFromStackSlot(), llvm::HexagonInstrInfo::loadRegFromStackSlot(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::Mips16InstrInfo::makeFrame(), MakeM0Inst(), llvm::AArch64RegisterInfo::materializeFrameBaseRegister(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), llvm::SIInstrInfo::moveSMRDToVALU(), llvm::AArch64InstrInfo::optimizeCondBranch(), llvm::ARMBaseInstrInfo::optimizeSelect(), llvm::SystemZInstrInfo::PredicateInstruction(), llvm::ARMBaseInstrInfo::reMaterialize(), replaceFI(), llvm::SystemZFrameLowering::restoreCalleeSavedRegisters(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::Mips16InstrInfo::restoreFrame(), llvm::FastISel::selectIntrinsicCall(), llvm::FastISel::selectStackmap(), llvm::ARMBaseInstrInfo::setExecutionDomain(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::SIInstrInfo::splitSMRD(), llvm::Mips16InstrInfo::storeRegToStack(), llvm::MipsSEInstrInfo::storeRegToStack(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), tryOrrMovk(), trySequenceOfOnes(), and tryToreplicateChunks().

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::addReg ( unsigned  RegNo,
unsigned  flags = 0,
unsigned  SubReg = 0 
) const [inline]

addReg - Add a new virtual register operand...

Definition at line 68 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(), addSaveRestoreRegs(), AddSubReg(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::MipsSEInstrInfo::adjustStackPtr(), llvm::R600InstrInfo::buildDefaultInstruction(), llvm::SIInstrInfo::buildIndirectRead(), llvm::SIInstrInfo::buildIndirectWrite(), llvm::BuildMI(), llvm::SIInstrInfo::buildMovInstr(), llvm::SIInstrInfo::calculateLDSSpillAddress(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::copyFromCPSR(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::Mips16InstrInfo::copyPhysReg(), llvm::MipsSEInstrInfo::copyPhysReg(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::MSP430InstrInfo::copyPhysReg(), llvm::XCoreInstrInfo::copyPhysReg(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::SparcInstrInfo::copyPhysReg(), llvm::SIInstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysReg(), llvm::PPCInstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyPhysReg(), llvm::SystemZInstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyToCPSR(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), llvm::emitARMRegPlusImmediate(), llvm::PPCTargetLowering::EmitAtomicBinary(), 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::AArch64TargetLowering::EmitF128CSEL(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::Thumb2RegisterInfo::emitLoadConstPool(), llvm::Thumb1RegisterInfo::emitLoadConstPool(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), emitPostLd(), emitPostSt(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::MSP430TargetLowering::EmitShiftInstr(), llvm::emitT2RegPlusImmediate(), llvm::emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), Expand2AddrUndef(), llvm::SparcTargetLowering::expandAtomicRMW(), expandLoadStackGuard(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::AArch64InstrInfo::expandPostRAPseudo(), llvm::SparcTargetLowering::expandSelectCC(), 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::ARMFrameLowering::fixTCReturn(), llvm::ARMBaseInstrInfo::FoldImmediate(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), forceReg(), llvm::MachineSSAUpdater::GetValueInMiddleOfBlock(), llvm::XCoreInstrInfo::InsertBranch(), llvm::NVPTXInstrInfo::InsertBranch(), llvm::HexagonInstrInfo::InsertBranch(), llvm::ARMBaseInstrInfo::InsertBranch(), llvm::R600InstrInfo::InsertBranch(), insertDivByZeroTrap(), InsertFPConstInst(), InsertFPImmInst(), InsertLDR_STR(), llvm::PPCInstrInfo::insertSelect(), llvm::AArch64InstrInfo::insertSelect(), InsertSPConstInst(), llvm::SIInstrInfo::legalizeOperands(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::Mips16InstrInfo::loadImmediate(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::Mips16InstrInfo::makeFrame(), llvm::SIInstrInfo::moveSMRDToVALU(), llvm::PPCInstrInfo::optimizeCompareInstr(), llvm::SystemZInstrInfo::PredicateInstruction(), llvm::R600InstrInfo::PredicateInstruction(), replaceFI(), llvm::SystemZFrameLowering::restoreCalleeSavedRegisters(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::Mips16InstrInfo::restoreFrame(), llvm::Thumb1RegisterInfo::saveScavengerRegister(), llvm::FastISel::selectIntrinsicCall(), llvm::ARMBaseInstrInfo::setExecutionDomain(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::SIInstrInfo::splitSMRD(), llvm::Mips16InstrInfo::storeRegToStack(), llvm::MipsSEInstrInfo::storeRegToStack(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::ScheduleDAGInstrs::toggleKillFlag(), and UpdatePredRedefs().

const MachineInstrBuilder& llvm::MachineInstrBuilder::addTargetIndex ( unsigned  Idx,
int64_t  Offset = 0,
unsigned char  TargetFlags = 0 
) const [inline]

Copy all the implicit operands from OtherMI onto this one.

Definition at line 225 of file MachineInstrBuilder.h.

References llvm::MachineInstr::copyImplicitOps().

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

If conversion operators fail, use this method to get the MachineInstr explicitly.

Definition at line 63 of file MachineInstrBuilder.h.

Referenced by expandLoadStackGuard(), and llvm::XCoreInstrInfo::loadImmediate().

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.


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