LLVM API Documentation

Public Types | Public Member Functions
llvm::MachineFunction Class Reference

#include <MachineFunction.h>

List of all members.

Public Types

typedef
BasicBlockListType::iterator 
iterator
typedef
BasicBlockListType::const_iterator 
const_iterator
typedef std::reverse_iterator
< const_iterator
const_reverse_iterator
typedef std::reverse_iterator
< iterator
reverse_iterator
typedef ArrayRecycler
< MachineOperand >::Capacity 
OperandCapacity

Public Member Functions

 MachineFunction (const Function *Fn, const TargetMachine &TM, unsigned FunctionNum, MachineModuleInfo &MMI, GCModuleInfo *GMI)
 ~MachineFunction ()
MachineModuleInfogetMMI () const
GCModuleInfogetGMI () const
MCContextgetContext () const
const FunctiongetFunction () const
StringRef getName () const
unsigned getFunctionNumber () const
const TargetMachinegetTarget () const
const TargetSubtargetInfogetSubtarget () const
void setSubtarget (TargetSubtargetInfo *ST)
MachineRegisterInfogetRegInfo ()
const MachineRegisterInfogetRegInfo () const
MachineFrameInfogetFrameInfo ()
const MachineFrameInfogetFrameInfo () const
const MachineJumpTableInfogetJumpTableInfo () const
MachineJumpTableInfogetJumpTableInfo ()
MachineJumpTableInfogetOrCreateJumpTableInfo (unsigned JTEntryKind)
MachineConstantPoolgetConstantPool ()
const MachineConstantPoolgetConstantPool () const
unsigned getAlignment () const
void setAlignment (unsigned A)
void ensureAlignment (unsigned A)
 ensureAlignment - Make sure the function is at least 1 << A bytes aligned.
bool exposesReturnsTwice () const
void setExposesReturnsTwice (bool B)
bool hasInlineAsm () const
 Returns true if the function contains any inline assembly.
void setHasInlineAsm (bool B)
 Set a flag that indicates that the function contains inline assembly.
template<typename Ty >
Ty * getInfo ()
template<typename Ty >
const Ty * getInfo () const
MachineBasicBlockgetBlockNumbered (unsigned N) const
bool shouldSplitStack ()
 Should we be emitting segmented stack stuff for the function.
unsigned getNumBlockIDs () const
void RenumberBlocks (MachineBasicBlock *MBBFrom=nullptr)
void print (raw_ostream &OS, SlotIndexes *=nullptr) const
void viewCFG () const
void viewCFGOnly () const
void dump () const
void verify (Pass *p=nullptr, const char *Banner=nullptr) const
unsigned addLiveIn (unsigned PReg, const TargetRegisterClass *RC)
iterator begin ()
const_iterator begin () const
iterator end ()
const_iterator end () const
reverse_iterator rbegin ()
const_reverse_iterator rbegin () const
reverse_iterator rend ()
const_reverse_iterator rend () const
unsigned size () const
bool empty () const
const MachineBasicBlockfront () const
MachineBasicBlockfront ()
const MachineBasicBlockback () const
MachineBasicBlockback ()
void push_back (MachineBasicBlock *MBB)
void push_front (MachineBasicBlock *MBB)
void insert (iterator MBBI, MachineBasicBlock *MBB)
void splice (iterator InsertPt, iterator MBBI)
void splice (iterator InsertPt, iterator MBBI, iterator MBBE)
void remove (iterator MBBI)
void erase (iterator MBBI)
unsigned addToMBBNumbering (MachineBasicBlock *MBB)
 Adds the MBB to the internal numbering. Returns the unique number assigned to the MBB.
void removeFromMBBNumbering (unsigned N)
MachineInstrCreateMachineInstr (const MCInstrDesc &MCID, DebugLoc DL, bool NoImp=false)
MachineInstrCloneMachineInstr (const MachineInstr *Orig)
void DeleteMachineInstr (MachineInstr *MI)
MachineBasicBlockCreateMachineBasicBlock (const BasicBlock *bb=nullptr)
void DeleteMachineBasicBlock (MachineBasicBlock *MBB)
MachineMemOperandgetMachineMemOperand (MachinePointerInfo PtrInfo, unsigned f, uint64_t s, unsigned base_alignment, const AAMDNodes &AAInfo=AAMDNodes(), const MDNode *Ranges=nullptr)
MachineMemOperandgetMachineMemOperand (const MachineMemOperand *MMO, int64_t Offset, uint64_t Size)
MachineOperandallocateOperandArray (OperandCapacity Cap)
void deallocateOperandArray (OperandCapacity Cap, MachineOperand *Array)
uint32_t * allocateRegisterMask (unsigned NumRegister)
 Allocate and initialize a register mask with NumRegister bits.
MachineInstr::mmo_iterator allocateMemRefsArray (unsigned long Num)
std::pair
< MachineInstr::mmo_iterator,
MachineInstr::mmo_iterator
extractLoadMemRefs (MachineInstr::mmo_iterator Begin, MachineInstr::mmo_iterator End)
std::pair
< MachineInstr::mmo_iterator,
MachineInstr::mmo_iterator
extractStoreMemRefs (MachineInstr::mmo_iterator Begin, MachineInstr::mmo_iterator End)
MCSymbolgetJTISymbol (unsigned JTI, MCContext &Ctx, bool isLinkerPrivate=false) const
MCSymbolgetPICBaseSymbol () const

Detailed Description

Definition at line 77 of file MachineFunction.h.


Member Typedef Documentation

Definition at line 309 of file MachineFunction.h.

Definition at line 310 of file MachineFunction.h.

Definition at line 308 of file MachineFunction.h.

Definition at line 420 of file MachineFunction.h.

typedef std::reverse_iterator<iterator> llvm::MachineFunction::reverse_iterator

Definition at line 311 of file MachineFunction.h.


Constructor & Destructor Documentation

MachineFunction::MachineFunction ( const Function Fn,
const TargetMachine TM,
unsigned  FunctionNum,
MachineModuleInfo MMI,
GCModuleInfo GMI 
)

Member Function Documentation

Adds the MBB to the internal numbering. Returns the unique number assigned to the MBB.

Definition at line 363 of file MachineFunction.h.

Allocate an array of MachineOperands. This is only intended for use by internal MachineInstr functions.

Definition at line 424 of file MachineFunction.h.

References llvm::ArrayRecycler< T, Align >::allocate().

Referenced by llvm::MachineInstr::addOperand().

uint32_t* llvm::MachineFunction::allocateRegisterMask ( unsigned  NumRegister) [inline]

Allocate and initialize a register mask with NumRegister bits.

Definition at line 436 of file MachineFunction.h.

References llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold >::Allocate().

Definition at line 334 of file MachineFunction.h.

References llvm::iplist< NodeTy, Traits >::back().

Definition at line 335 of file MachineFunction.h.

References llvm::iplist< NodeTy, Traits >::back().

Definition at line 321 of file MachineFunction.h.

References llvm::iplist< NodeTy, Traits >::begin().

CloneMachineInstr - Create a new MachineInstr which is a copy of the 'Orig' instruction, identical in all ways except the instruction has no parent, prev, or next.

See also TargetInstrInfo::duplicate() for target-specific fixes to cloned instructions.

CloneMachineInstr - Create a new MachineInstr which is a copy of the 'Orig' instruction, identical in all ways except the instruction has no parent, prev, or next.

Definition at line 194 of file MachineFunction.cpp.

References llvm::Recycler< T, Size, Align >::Allocate().

Referenced by llvm::TargetInstrInfo::commuteInstruction(), llvm::TargetInstrInfo::duplicate(), insertDelayFiller(), llvm::ARMBaseInstrInfo::reMaterialize(), and llvm::TargetInstrInfo::reMaterialize().

CreateMachineInstr - Allocate a new MachineInstr. Use this instead of `new MachineInstr'.

Definition at line 183 of file MachineFunction.cpp.

References llvm::Recycler< T, Size, Align >::Allocate().

Referenced by llvm::BuildMI(), foldPatchpoint(), FuseInst(), and FuseTwoAddrInst().

Dellocate an array of MachineOperands and recycle the memory. This is only intended for use by internal MachineInstr functions. Cap must be the same capacity that was used to allocate the array.

Definition at line 431 of file MachineFunction.h.

References llvm::ArrayRecycler< T, Align >::deallocate().

Referenced by llvm::MachineInstr::addOperand(), and DeleteMachineInstr().

DeleteMachineBasicBlock - Delete the given MachineBasicBlock.

Definition at line 227 of file MachineFunction.cpp.

References llvm::Recycler< T, Size, Align >::Deallocate(), and llvm::MachineBasicBlock::getParent().

DeleteMachineInstr - Delete the given MachineInstr.

DeleteMachineInstr - Delete the given MachineInstr.

This function also serves as the MachineInstr destructor - the real ~MachineInstr() destructor must be empty.

Definition at line 204 of file MachineFunction.cpp.

References llvm::Recycler< T, Size, Align >::Deallocate(), and deallocateOperandArray().

Referenced by llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters().

void MachineFunction::dump ( ) const

dump - Print the current MachineFunction to cerr, useful for debugger use.

Definition at line 328 of file MachineFunction.cpp.

References llvm::dbgs(), and print().

Referenced by llvm::AMDGPUAsmPrinter::runOnMachineFunction().

bool llvm::MachineFunction::empty ( ) const [inline]

Definition at line 331 of file MachineFunction.h.

References llvm::iplist< NodeTy, Traits >::empty().

Referenced by RenumberBlocks().

Definition at line 323 of file MachineFunction.h.

References llvm::iplist< NodeTy, Traits >::end().

ensureAlignment - Make sure the function is at least 1 << A bytes aligned.

Definition at line 212 of file MachineFunction.h.

References llvm::ARM_PROC::A.

void llvm::MachineFunction::erase ( iterator  MBBI) [inline]

exposesReturnsTwice - Returns true if the function calls setjmp or any other similar functions with attribute "returns twice" without having the attribute itself.

Definition at line 219 of file MachineFunction.h.

extractLoadMemRefs - Allocate an array and populate it with just the load information from the given MachineMemOperand sequence.

Definition at line 264 of file MachineFunction.cpp.

References allocateMemRefsArray(), getMachineMemOperand(), llvm::MachineMemOperand::getSize(), and I.

extractStoreMemRefs - Allocate an array and populate it with just the store information from the given MachineMemOperand sequence.

Definition at line 296 of file MachineFunction.cpp.

References allocateMemRefsArray(), getMachineMemOperand(), llvm::MachineMemOperand::getSize(), and I.

Definition at line 333 of file MachineFunction.h.

References llvm::iplist< NodeTy, Traits >::front().

getAlignment - Return the alignment (log2, not bytes) of the function.

Definition at line 205 of file MachineFunction.h.

Referenced by llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::MipsAsmPrinter::EmitFunctionEntryLabel(), and llvm::AsmPrinter::EmitFunctionHeader().

getBlockNumbered - MachineBasicBlocks are automatically numbered when they are inserted into the machine function. The block number for a machine basic block can be found by using the MBB::getBlockNumber method, this method provides the inverse mapping.

Definition at line 259 of file MachineFunction.h.

Referenced by llvm::SplitEditor::splitLiveThroughBlock().

Definition at line 201 of file MachineFunction.h.

getFrameInfo - Return the frame info object for the current function. This object contains information about objects allocated on the stack frame of the current function in an abstract way.

Definition at line 182 of file MachineFunction.h.

Referenced by llvm::addFrameReference(), llvm::PPCFrameLowering::addScavengingSpillSlot(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::CCState::AllocateStack(), llvm::X86FrameLowering::assignCalleeSavedSpillSlots(), llvm::VirtRegMap::assignVirt2StackSlot(), CalculateTailCallArgDest(), llvm::AArch64RegisterInfo::cannotEliminateFrame(), llvm::ARMBaseRegisterInfo::cannotEliminateFrame(), llvm::ARMFrameLowering::canSimplifyCallFramePseudos(), llvm::AArch64FrameLowering::canUseRedZone(), llvm::MipsFunctionInfo::createEhDataRegsFI(), llvm::XCoreFunctionInfo::createEHSpillSlot(), llvm::XCoreFunctionInfo::createFPSpillSlot(), llvm::XCoreFunctionInfo::createLRSpillSlot(), llvm::SelectionDAG::CreateStackTemporary(), llvm::PPCFrameLowering::determineFrameLayout(), llvm::TargetOptions::DisableFramePointerElim(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::NVPTXRegisterInfo::eliminateFrameIndex(), llvm::Thumb1RegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::MipsRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Spills(), llvm::AArch64FrameLowering::emitCalleeSavedFrameMoves(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), emitComments(), llvm::Mips16FrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::MipsAsmPrinter::emitFrameDirective(), llvm::TargetLoweringBase::emitPatchPoint(), llvm::Mips16FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::HexagonFrameLowering::emitPrologue(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), EmitTailCallStoreFPAndRetAddr(), EmitTailCallStoreRetAddr(), llvm::MipsFrameLowering::estimateStackSize(), estimateStackSize(), fixupFuncForFI(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::SystemZFrameLowering::getAllocatedStackSize(), getFRAMEADDR(), getFrameIndexMMO(), llvm::AMDGPUFrameLowering::getFrameIndexOffset(), llvm::HexagonFrameLowering::getFrameIndexOffset(), llvm::SystemZFrameLowering::getFrameIndexOffset(), llvm::X86FrameLowering::getFrameIndexOffset(), llvm::TargetFrameLowering::getFrameIndexOffset(), llvm::AMDGPUInstrInfo::getIndirectIndexBegin(), llvm::AMDGPUInstrInfo::getIndirectIndexEnd(), getMemcpyLoadsAndStores(), getMemmoveLoadsAndStores(), llvm::MipsInstrInfo::GetMemOperand(), getMemsetStores(), llvm::MipsFunctionInfo::getMoveF64ViaSpillFI(), getPrologueDeath(), llvm::MSP430TargetLowering::getReturnAddressFrameIndex(), llvm::SIMachineFunctionInfo::getSpilledReg(), GetTLSADDR(), llvm::CCState::HandleByVal(), llvm::AArch64RegisterInfo::hasBasePointer(), llvm::ARMBaseRegisterInfo::hasBasePointer(), llvm::MipsFrameLowering::hasFP(), llvm::SparcFrameLowering::hasFP(), llvm::PPCFrameLowering::hasFP(), llvm::ARMFrameLowering::hasFP(), llvm::HexagonFrameLowering::hasFP(), llvm::SystemZFrameLowering::hasFP(), llvm::MSP430FrameLowering::hasFP(), llvm::XCoreFrameLowering::hasFP(), llvm::AArch64FrameLowering::hasFP(), llvm::X86FrameLowering::hasFP(), llvm::SparcFrameLowering::hasReservedCallFrame(), llvm::MipsSEFrameLowering::hasReservedCallFrame(), llvm::Thumb1FrameLowering::hasReservedCallFrame(), llvm::Mips16FrameLowering::hasReservedCallFrame(), llvm::ARMFrameLowering::hasReservedCallFrame(), llvm::MSP430FrameLowering::hasReservedCallFrame(), llvm::AArch64FrameLowering::hasReservedCallFrame(), llvm::X86FrameLowering::hasReservedCallFrame(), llvm::SelectionDAG::InferPtrAlignment(), llvm::RegScavenger::initRegState(), llvm::SelectionDAG::isConsecutiveLoad(), isConsecutiveLSLoc(), llvm::XCoreFunctionInfo::isLargeFrame(), llvm::SystemZInstrInfo::isStackSlotCopy(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::XCoreInstrInfo::loadRegFromStackSlot(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::SparcInstrInfo::loadRegFromStackSlot(), llvm::HexagonInstrInfo::loadRegFromStackSlot(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::PPCInstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), LowerAsSplatVectorLoad(), llvm::SparcTargetLowering::LowerCall_32(), llvm::TargetLowering::LowerCallTo(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::SparcTargetLowering::LowerF128_LibCallArg(), llvm::SparcTargetLowering::LowerF128Op(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::MSP430TargetLowering::LowerFRAMEADDR(), llvm::HexagonTargetLowering::LowerFRAMEADDR(), llvm::AMDGPUTargetLowering::LowerGlobalAddress(), llvm::SparcTargetLowering::LowerGlobalTLSAddress(), LowerINTRINSIC_W_CHAIN(), llvm::MSP430TargetLowering::LowerRETURNADDR(), llvm::HexagonTargetLowering::LowerRETURNADDR(), LowerRETURNADDR(), LowerVASTART(), llvm::SparcTargetLowering::makeAddress(), llvm::Mips16InstrInfo::makeFrame(), llvm::PPCFrameLowering::needsFP(), llvm::AArch64RegisterInfo::needsFrameBaseReg(), llvm::ARMBaseRegisterInfo::needsFrameBaseReg(), llvm::PPCRegisterInfo::needsStackRealignment(), llvm::ARMBaseRegisterInfo::needsStackRealignment(), llvm::MipsAsmPrinter::printSavedRegsBitmask(), llvm::SystemZFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::MipsSEFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::PPCFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::X86FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::XCoreFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::ARMFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::AArch64FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::SystemZFrameLowering::processFunctionBeforeFrameFinalized(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), llvm::MSP430FrameLowering::processFunctionBeforeFrameFinalized(), llvm::XCoreFrameLowering::processFunctionBeforeFrameFinalized(), llvm::SIRegisterInfo::requiresRegisterScavenging(), llvm::AArch64FrameLowering::resolveFrameIndexReference(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::Mips16InstrInfo::restoreFrame(), llvm::PEI::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::FastISel::selectPatchpoint(), llvm::FastISel::selectStackmap(), llvm::FunctionLoweringInfo::set(), llvm::Mips16FrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::MipsSEFrameLowering::spillCalleeSavedRegisters(), llvm::CriticalAntiDepBreaker::StartBlock(), llvm::AggressiveAntiDepBreaker::StartBlock(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::PPCInstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::AArch64RegisterInfo::useFPForScavengingIndex(), llvm::SelectionDAGBuilder::visitSPDescriptorParent(), and WindowsRequiresStackProbe().

Definition at line 183 of file MachineFunction.h.

getFunction - Return the LLVM function that this machine code represents

Definition at line 154 of file MachineFunction.h.

Referenced by llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::NVPTXTargetLowering::allowFMA(), llvm::AMDGPUMachineFunction::AMDGPUMachineFunction(), llvm::WinCodeViewLineTables::beginFunction(), llvm::DwarfDebug::beginFunction(), llvm::PPCRegisterInfo::canRealignStack(), llvm::ARMBaseRegisterInfo::canRealignStack(), llvm::AArch64FrameLowering::canUseRedZone(), checkNumAlignedDPRCS2Regs(), llvm::XCoreFunctionInfo::createLRSpillSlot(), llvm::PPCFrameLowering::determineFrameLayout(), llvm::TargetOptions::DisableFramePointerElim(), duplicateCPV(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::ARMFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::MipsAsmPrinter::EmitFunctionBodyStart(), llvm::AsmPrinter::EmitFunctionHeader(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::NVPTXAsmPrinter::emitLineNumberAsDotLoc(), llvm::Thumb2RegisterInfo::emitLoadConstPool(), llvm::Thumb1RegisterInfo::emitLoadConstPool(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), llvm::XCoreFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::ARMException::endFunction(), llvm::WinCodeViewLineTables::endFunction(), llvm::DwarfDebug::endFunction(), ExpandPowI(), findDeadCallerSavedReg(), get64BitArgumentXMMs(), llvm::MSP430RegisterInfo::getCalleeSavedRegs(), llvm::AArch64RegisterInfo::getCalleeSavedRegs(), llvm::ARMBaseRegisterInfo::getCalleeSavedRegs(), getMemcpyLoadsAndStores(), getMemmoveLoadsAndStores(), getMemsetStores(), getName(), llvm::ARMBaseInstrInfo::getOperandLatency(), llvm::ARMTargetLowering::getOptimalMemOpType(), llvm::AArch64TargetLowering::getOptimalMemOpType(), llvm::MipsRegisterInfo::getReservedRegs(), GetScratchRegister(), llvm::SparcTargetLowering::getSRetArgSize(), HasNestArgument(), hasReturnsTwiceAttr(), llvm::SelectionDAG::init(), llvm::HexagonTargetLowering::IsEligibleForTailCallOptimization(), llvm::TargetLowering::isInTailCallPosition(), llvm::XCoreInstrInfo::loadImmediate(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::HexagonTargetLowering::LowerCall(), llvm::AMDGPUTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), nvptx::LowerConstant(), lowerConstant(), llvm::SITargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), LowerInterruptReturn(), llvm::NVPTXTargetLowering::LowerReturn(), llvm::SparcTargetLowering::LowerReturn_32(), llvm::AsmPrinter::needsCFIMoves(), llvm::PPCFrameLowering::needsFP(), llvm::XCoreRegisterInfo::needsFrameMoves(), llvm::AsmPrinter::needsSEHMoves(), llvm::PPCRegisterInfo::needsStackRealignment(), llvm::ARMBaseRegisterInfo::needsStackRealignment(), PerformOrCombine(), performSTORECombine(), PerformSTORECombine(), printDebugLoc(), llvm::SystemZFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::XCoreFrameLowering::processFunctionBeforeCalleeSavedScan(), ProfitableToMerge(), llvm::MipsTargetMachine::resetSubtarget(), llvm::TargetMachine::resetTargetOptions(), llvm::PEI::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::ARMAsmPrinter::runOnMachineFunction(), llvm::X86AsmPrinter::runOnMachineFunction(), llvm::VLIWMachineScheduler::schedule(), llvm::AsmPrinter::SetupMachineFunction(), shouldSplitStack(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::tryFoldSPUpdateIntoPushPop(), and llvm::ARMSubtarget::useMovt().

Definition at line 149 of file MachineFunction.h.

template<typename Ty >
Ty* llvm::MachineFunction::getInfo ( ) [inline]

getInfo - Keep track of various per-function pieces of information for backends that would like to do so.

Definition at line 243 of file MachineFunction.h.

References llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold >::Allocate().

Referenced by llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::assignCalleeSavedSpillSlots(), CalculateTailCallSPDiff(), llvm::ARMBaseRegisterInfo::canRealignStack(), llvm::AArch64FrameLowering::canUseRedZone(), checkNumAlignedDPRCS2Regs(), duplicateCPV(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::Thumb1RegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::SystemZFrameLowering::emitEpilogue(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::HexagonTargetLowering::EmitInstrWithCustomInserter(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::HexagonFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), estimateRSStackSizeLimit(), fixupFuncForFI(), llvm::X86FrameLowering::getFrameIndexOffset(), llvm::MipsDAGToDAGISel::getGlobalBaseReg(), llvm::SparcInstrInfo::getGlobalBaseReg(), llvm::MipsTargetLowering::getGlobalReg(), llvm::SIRegisterInfo::getPreloadedValue(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::MSP430TargetLowering::getReturnAddressFrameIndex(), llvm::ARMBaseRegisterInfo::hasBasePointer(), llvm::HexagonFrameLowering::hasFP(), llvm::SystemZFrameLowering::hasFP(), llvm::X86FrameLowering::hasFP(), hasNonRISpills(), llvm::PPCRegisterInfo::hasReservedSpillSlot(), hasSpills(), llvm::ARMBaseInstrInfo::InsertBranch(), llvm::ARMBaseInstrInfo::isPredicable(), llvm::PPCInstrInfo::loadRegFromStackSlot(), llvm::HexagonTargetLowering::LowerEH_RETURN(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::SITargetLowering::LowerFormalArguments(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::HexagonTargetLowering::LowerINLINEASM(), llvm::R600TargetLowering::LowerOperation(), llvm::SITargetLowering::LowerOperation(), llvm::SparcTargetLowering::LowerReturn_32(), LowerToTLSLocalDynamicModel(), llvm::MSP430TargetLowering::LowerVASTART(), llvm::HexagonTargetLowering::LowerVASTART(), LowerVASTART(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), MustSaveLR(), llvm::PPCFrameLowering::needsFP(), llvm::ARMBaseRegisterInfo::needsFrameBaseReg(), llvm::SystemZFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::SparcFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::MipsSEFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::PPCFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::X86FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::XCoreFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::ARMFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::AArch64FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), llvm::XCoreFrameLowering::processFunctionBeforeFrameFinalized(), llvm::Thumb2InstrInfo::ReplaceTailWithBranchTo(), llvm::ARMBaseRegisterInfo::resolveFrameIndex(), llvm::AArch64FrameLowering::resolveFrameIndexReference(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), llvm::SystemZFrameLowering::restoreCalleeSavedRegisters(), llvm::ARMFrameLowering::restoreCalleeSavedRegisters(), llvm::AMDGPUAsmPrinter::runOnMachineFunction(), llvm::ARMAsmPrinter::runOnMachineFunction(), llvm::MipsAsmPrinter::runOnMachineFunction(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::ARMFrameLowering::spillCalleeSavedRegisters(), llvm::XCoreFrameLowering::spillCalleeSavedRegisters(), llvm::MSP430FrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), spillsCR(), spillsVRSAVE(), llvm::PPCInstrInfo::storeRegToStackSlot(), llvm::R600InstrInfo::usesTextureCache(), and llvm::R600InstrInfo::usesVertexCache().

template<typename Ty >
const Ty* llvm::MachineFunction::getInfo ( ) const [inline]

Definition at line 250 of file MachineFunction.h.

MCSymbol * MachineFunction::getJTISymbol ( unsigned  JTI,
MCContext Ctx,
bool  isLinkerPrivate = false 
) const

getJTISymbol - Return the MCSymbol for the specified non-empty jump table. If isLinkerPrivate is specified, an 'l' label is returned, otherwise a normal 'L' label is returned.

Definition at line 464 of file MachineFunction.cpp.

References llvm::TargetSubtargetInfo::getDataLayout(), getFunctionNumber(), llvm::DataLayout::getLinkerPrivateGlobalPrefix(), llvm::MCContext::GetOrCreateSymbol(), llvm::DataLayout::getPrivateGlobalPrefix(), getSubtarget(), Name, llvm::cl::Prefix, size(), and llvm::SmallString< InternalLen >::str().

Referenced by llvm::AsmPrinter::GetJTISymbol(), and llvm::TargetLowering::getPICJumpTableRelocBaseExpr().

getJumpTableInfo - Return the jump table info object for the current function. This object contains information about jump tables in the current function. If the current function has no jump tables, this will return null.

Definition at line 189 of file MachineFunction.h.

Referenced by llvm::ARMAsmPrinter::EmitJump2Table(), llvm::ARMAsmPrinter::EmitJumpTable(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::ARMBaseInstrInfo::GetInstSizeInBytes(), llvm::HexagonTargetLowering::LowerBR_JT(), and llvm::BranchFolder::OptimizeFunction().

Definition at line 190 of file MachineFunction.h.

MachineMemOperand * MachineFunction::getMachineMemOperand ( MachinePointerInfo  PtrInfo,
unsigned  f,
uint64_t  s,
unsigned  base_alignment,
const AAMDNodes AAInfo = AAMDNodes(),
const MDNode Ranges = nullptr 
)

getMachineMemOperand - Allocate a new MachineMemOperand. MachineMemOperands are owned by the MachineFunction and need not be explicitly deallocated.

Definition at line 234 of file MachineFunction.cpp.

Referenced by llvm::addFrameReference(), llvm::FastISel::createMachineMemOperandFor(), llvm::TargetLoweringBase::emitPatchPoint(), extractLoadMemRefs(), extractStoreMemRefs(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::SelectionDAG::getAtomic(), llvm::SelectionDAG::getAtomicCmpSwap(), getFrameIndexMMO(), llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getMemIntrinsicNode(), llvm::MipsInstrInfo::GetMemOperand(), llvm::SelectionDAG::getStore(), llvm::SelectionDAG::getTruncStore(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::XCoreInstrInfo::loadRegFromStackSlot(), llvm::SparcInstrInfo::loadRegFromStackSlot(), llvm::HexagonInstrInfo::loadRegFromStackSlot(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::PPCInstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), NarrowVectorLoadToElement(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::PPCInstrInfo::storeRegToStackSlot(), and llvm::ARMBaseInstrInfo::storeRegToStackSlot().

MachineMemOperand * MachineFunction::getMachineMemOperand ( const MachineMemOperand MMO,
int64_t  Offset,
uint64_t  Size 
)

getMachineMemOperand - Allocate a new MachineMemOperand by copying an existing one, adjusting by an offset and using the given size. MachineMemOperands are owned by the MachineFunction and need not be explicitly deallocated.

Definition at line 243 of file MachineFunction.cpp.

References llvm::MachineMemOperand::getBaseAlignment(), llvm::MachineMemOperand::getFlags(), llvm::MachineMemOperand::getOffset(), llvm::MachineMemOperand::getPseudoValue(), and llvm::MachineMemOperand::getValue().

getOrCreateJumpTableInfo - Get the JumpTableInfo for this function, if it does already exist, allocate one.

Definition at line 124 of file MachineFunction.cpp.

getRegInfo - Return information about the registers currently in use.

Definition at line 175 of file MachineFunction.h.

Referenced by addLiveIn(), llvm::MachineBasicBlock::addLiveIn(), addLiveIn(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::SITargetLowering::AdjustInstrPostInstrSelection(), llvm::AllocationOrder::AllocationOrder(), llvm::VirtRegMap::assignVirt2StackSlot(), llvm::PBQPBuilder::build(), llvm::VirtRegAuxInfo::calculateSpillWeightAndHint(), llvm::calculateSpillWeightsAndHints(), canCombineWithMUL(), canCompareBeNewValueJump(), canFoldCopy(), llvm::PPCInstrInfo::canInsertSelect(), llvm::AArch64InstrInfo::canInsertSelect(), llvm::ARMBaseRegisterInfo::canRealignStack(), checkNumAlignedDPRCS2Regs(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::AMDGPUTargetLowering::CreateLiveInRegister(), llvm::HexagonInstrInfo::createVR(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::Thumb1RegisterInfo::eliminateFrameIndex(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), llvm::PPCTargetLowering::EmitAtomicBinary(), llvm::PPCTargetLowering::emitEHSjLjLongJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitThumbRegPlusImmInReg(), llvm::RegScavenger::enterBasicBlock(), llvm::MachineInstr::eraseFromParentAndMarkDBGValuesForRemoval(), llvm::SparcTargetLowering::expandAtomicRMW(), llvm::findPHICopyInsertPoint(), llvm::AArch64InstrInfo::foldMemoryOperandImpl(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), foldPatchpoint(), forceReg(), llvm::AArch64InstrInfo::genAlternativeCodeSequence(), GetCostForDef(), llvm::MipsFunctionInfo::getGlobalBaseReg(), llvm::SparcInstrInfo::getGlobalBaseReg(), llvm::AMDGPUInstrInfo::getIndirectIndexBegin(), llvm::MipsFunctionInfo::getMips16SPAliasReg(), llvm::PPCInstrInfo::getOperandLatency(), llvm::SIInstrInfo::getOpRegClass(), getPrologueDeath(), llvm::ARMBaseRegisterInfo::getRegAllocationHints(), llvm::TargetRegisterInfo::getRegAllocationHints(), GetRegistersForValue(), getRegTy(), llvm::SIMachineFunctionInfo::getSpilledReg(), llvm::VirtRegMap::grow(), HandleVRSaveUpdate(), hasVGPROperands(), llvm::RegPressureTracker::init(), llvm::PPCInstrInfo::insertSelect(), llvm::AArch64InstrInfo::insertSelect(), isEAXLiveIn(), llvm::SIInstrInfo::isOperandLegal(), isPartialRegisterLoad(), llvm::SIInstrInfo::legalizeOperands(), llvm::SIInstrInfo::legalizeOpWithMove(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::R600TargetLowering::LowerOperation(), llvm::PPCRegisterInfo::lowerVRSAVERestore(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), llvm::MachineSSAUpdater::MachineSSAUpdater(), llvm::AArch64RegisterInfo::materializeFrameBaseRegister(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), llvm::SIInstrInfo::moveToVALU(), MustSaveLR(), llvm::BranchFolder::OptimizeFunction(), llvm::ARMBaseInstrInfo::optimizeSelect(), llvm::HexagonInstrInfo::PredicateInstruction(), llvm::MachineInstr::print(), llvm::SystemZFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::MipsSEFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::PPCFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::Mips16FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::X86FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::XCoreFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::ARMFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::AArch64FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::LiveRangeCalc::reset(), llvm::PPCRegisterInfo::resolveFrameIndex(), llvm::PEI::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::MachineTraceMetrics::runOnMachineFunction(), llvm::RegisterClassInfo::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::LiveIntervals::runOnMachineFunction(), llvm::FunctionLoweringInfo::set(), llvm::CoalescerPair::setRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::SIInstrInfo::splitSMRD(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::tryFoldSPUpdateIntoPushPop(), UpdateOperandRegClass(), llvm::ARMBaseRegisterInfo::UpdateRegAllocHint(), and usesTheStack().

Definition at line 176 of file MachineFunction.h.

getSubtarget - Return the subtarget for which this machine code is being compiled.

Definition at line 170 of file MachineFunction.h.

Referenced by llvm::MachineBasicBlock::addLiveIn(), addSavedGPR(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::assignCalleeSavedSpillSlots(), llvm::PBQPBuilder::build(), llvm::VirtRegAuxInfo::calculateSpillWeightAndHint(), llvm::MachineBasicBlock::canFallThrough(), checkNumAlignedDPRCS2Regs(), llvm::TargetSchedModel::computeOutputLatency(), llvm::PPCFrameLowering::determineFrameLayout(), llvm::Mips16FrameLowering::eliminateCallFramePseudoInstr(), llvm::MipsSEFrameLowering::eliminateCallFramePseudoInstr(), llvm::AArch64FrameLowering::eliminateCallFramePseudoInstr(), llvm::MSP430FrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::Thumb1FrameLowering::eliminateCallFramePseudoInstr(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::Thumb1RegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), llvm::AArch64FrameLowering::emitCalleeSavedFrameMoves(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), llvm::Mips16FrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::HexagonFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::SystemZFrameLowering::emitEpilogue(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::Thumb2RegisterInfo::emitLoadConstPool(), llvm::Thumb1RegisterInfo::emitLoadConstPool(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), llvm::Mips16FrameLowering::emitPrologue(), llvm::HexagonFrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::MipsFrameLowering::estimateStackSize(), llvm::MachineFrameInfo::estimateStackSize(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::AArch64InstrInfo::genAlternativeCodeSequence(), llvm::MSP430RegisterInfo::getCalleeSavedRegs(), llvm::XCoreRegisterInfo::getCalleeSavedRegs(), llvm::X86FrameLowering::getFrameIndexOffset(), llvm::X86FrameLowering::getFrameIndexReference(), llvm::TargetFrameLowering::getFrameIndexReference(), llvm::MSP430RegisterInfo::getFrameRegister(), llvm::XCoreRegisterInfo::getFrameRegister(), llvm::SystemZRegisterInfo::getFrameRegister(), llvm::MipsRegisterInfo::getFrameRegister(), llvm::HexagonRegisterInfo::getFrameRegister(), llvm::AArch64RegisterInfo::getFrameRegister(), llvm::PPCRegisterInfo::getFrameRegister(), llvm::ARMBaseRegisterInfo::getFrameRegister(), llvm::MSP430InstrInfo::GetInstSizeInBytes(), getJTISymbol(), getMemcpyLoadsAndStores(), getPICBaseSymbol(), llvm::PPCFunctionInfo::getPICOffsetSymbol(), llvm::PPCRegisterInfo::getRegPressureLimit(), llvm::MipsRegisterInfo::getRegPressureLimit(), llvm::AArch64RegisterInfo::getRegPressureLimit(), llvm::ARMBaseRegisterInfo::getRegPressureLimit(), llvm::MSP430RegisterInfo::getReservedRegs(), llvm::XCoreRegisterInfo::getReservedRegs(), llvm::SystemZRegisterInfo::getReservedRegs(), llvm::PPCRegisterInfo::getReservedRegs(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::AArch64RegisterInfo::getReservedRegs(), llvm::ARMBaseRegisterInfo::getReservedRegs(), llvm::SelectionDAG::getSubtarget(), llvm::CCState::HandleByVal(), HandleVRSaveUpdate(), llvm::ARMBaseRegisterInfo::hasBasePointer(), llvm::ARMFrameLowering::hasFP(), llvm::AArch64FrameLowering::hasFP(), llvm::X86FrameLowering::hasFP(), llvm::RegPressureTracker::init(), llvm::AArch64RegisterInfo::isReservedReg(), llvm::TargetInstrInfo::isSchedulingBoundary(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::R600TargetLowering::LowerOperation(), llvm::PPCRegisterInfo::lowerVRSAVERestore(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), llvm::MachineSSAUpdater::MachineSSAUpdater(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), MIsNeedChainEdge(), llvm::AArch64RegisterInfo::needsFrameBaseReg(), llvm::PPCRegisterInfo::needsFrameBaseReg(), llvm::ARMBaseRegisterInfo::needsFrameBaseReg(), print(), llvm::MachineFrameInfo::print(), llvm::MachineBasicBlock::print(), llvm::ARMAsmPrinter::PrintAsmOperand(), llvm::ARMAsmPrinter::printOperand(), llvm::SystemZFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::PPCFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::Mips16FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::X86FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::ARMFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::AArch64FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), replaceFI(), llvm::PPCFrameLowering::replaceFPWithRealFP(), llvm::R600InstrInfo::reserveIndirectRegisters(), llvm::PPCRegisterInfo::resolveFrameIndex(), llvm::ARMBaseRegisterInfo::resolveFrameIndex(), llvm::AArch64FrameLowering::resolveFrameIndexReference(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), llvm::SystemZFrameLowering::restoreCalleeSavedRegisters(), llvm::XCoreFrameLowering::restoreCalleeSavedRegisters(), llvm::HexagonFrameLowering::restoreCalleeSavedRegisters(), llvm::MSP430FrameLowering::restoreCalleeSavedRegisters(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), llvm::X86FrameLowering::restoreCalleeSavedRegisters(), restoreCRs(), llvm::PEI::runOnMachineFunction(), llvm::MachineTraceMetrics::runOnMachineFunction(), llvm::RegisterClassInfo::runOnMachineFunction(), llvm::LiveStacks::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::Mips16RegisterInfo::saveScavengerRegister(), llvm::Thumb1RegisterInfo::saveScavengerRegister(), llvm::FunctionLoweringInfo::set(), setCallTargetReg(), llvm::HexagonFrameLowering::spillCalleeSavedRegisters(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::XCoreFrameLowering::spillCalleeSavedRegisters(), llvm::MipsSEFrameLowering::spillCalleeSavedRegisters(), llvm::MSP430FrameLowering::spillCalleeSavedRegisters(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), llvm::MachineBasicBlock::SplitCriticalEdge(), and llvm::MachineBasicBlock::updateTerminator().

getTarget - Return the target machine this machine code is compiled with

Definition at line 166 of file MachineFunction.h.

Referenced by addLiveInRegs(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::NVPTXTargetLowering::allowFMA(), llvm::PBQPBuilderWithCoalescing::build(), llvm::LiveRangeEdit::calculateRegClassAndHint(), llvm::AArch64RegisterInfo::cannotEliminateFrame(), llvm::ARMBaseRegisterInfo::cannotEliminateFrame(), llvm::ARMBaseRegisterInfo::canRealignStack(), checkNumAlignedDPRCS2Regs(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::MipsFunctionInfo::createEhDataRegsFI(), llvm::ARM::createFastISel(), llvm::PPC::createFastISel(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::Thumb1RegisterInfo::eliminateFrameIndex(), emitComments(), llvm::PPCTargetLowering::emitEHSjLjLongJmp(), llvm::HexagonFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::AMDGPUAsmPrinter::EmitInstruction(), llvm::SparcFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::DwarfDebug::endFunction(), llvm::RegScavenger::enterBasicBlock(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), llvm::AArch64InstrInfo::expandPostRAPseudo(), foldPatchpoint(), get64BitArgumentXMMs(), llvm::PPCRegisterInfo::getBaseRegister(), getFPMode(), llvm::MipsFunctionInfo::getGlobalBaseReg(), llvm::ARMHazardRecognizer::getHazardType(), llvm::AMDGPUInstrInfo::getIndirectIndexEnd(), llvm::AArch64InstrInfo::GetInstSizeInBytes(), llvm::MSP430InstrInfo::GetInstSizeInBytes(), llvm::MipsInstrInfo::GetInstSizeInBytes(), llvm::ARMBaseInstrInfo::GetInstSizeInBytes(), llvm::SystemZInstrInfo::getInstSizeInBytes(), llvm::PPCInstrInfo::GetInstSizeInBytes(), llvm::MachineFrameInfo::getPristineRegs(), llvm::PPCRegisterInfo::getReservedRegs(), llvm::MachineBasicBlock::getSymbol(), llvm::MipsFrameLowering::hasFP(), llvm::SparcFrameLowering::hasFP(), llvm::ARMFrameLowering::hasFP(), llvm::SystemZFrameLowering::hasFP(), llvm::MSP430FrameLowering::hasFP(), llvm::XCoreFrameLowering::hasFP(), llvm::X86FrameLowering::hasFP(), llvm::ConvergingVLIWScheduler::initialize(), llvm::PostGenericScheduler::initialize(), llvm::GenericScheduler::initPolicy(), initReachingDef(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCFrameLowering::needsFP(), llvm::PPCRegisterInfo::needsStackRealignment(), llvm::ARMBaseRegisterInfo::needsStackRealignment(), llvm::MachineInstr::print(), llvm::PPCFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), llvm::TargetMachine::resetTargetOptions(), llvm::Thumb1RegisterInfo::resolveFrameIndex(), llvm::X86FrameLowering::restoreCalleeSavedRegisters(), llvm::MachineTraceMetrics::runOnMachineFunction(), llvm::LiveIntervals::runOnMachineFunction(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), llvm::MachineBasicBlock::SplitCriticalEdge(), and UpdateOperandRegClass().

Returns true if the function contains any inline assembly.

Definition at line 230 of file MachineFunction.h.

void llvm::MachineFunction::insert ( iterator  MBBI,
MachineBasicBlock MBB 
) [inline]
void MachineFunction::print ( raw_ostream OS,
SlotIndexes Indexes = nullptr 
) const

Definition at line 337 of file MachineFunction.h.

References llvm::ilist< NodeTy >::push_back().

Referenced by llvm::FunctionLoweringInfo::set().

Definition at line 325 of file MachineFunction.h.

References llvm::iplist< NodeTy, Traits >::rbegin().

Definition at line 326 of file MachineFunction.h.

References llvm::iplist< NodeTy, Traits >::rbegin().

void llvm::MachineFunction::remove ( iterator  MBBI) [inline]

removeFromMBBNumbering - Remove the specific machine basic block from our tracker, this is only really to be used by the MachineBasicBlock implementation.

Definition at line 371 of file MachineFunction.h.

Definition at line 327 of file MachineFunction.h.

References llvm::iplist< NodeTy, Traits >::rend().

Definition at line 328 of file MachineFunction.h.

References llvm::iplist< NodeTy, Traits >::rend().

RenumberBlocks - This discards all of the MachineBasicBlock numbers and recomputes them. This guarantees that the MBB numbers are sequential, dense, and match the ordering of the blocks within the function. If a specific MachineBasicBlock is specified, only that block and those after it are renumbered.

Definition at line 142 of file MachineFunction.cpp.

References begin(), empty(), and end().

setAlignment - Set the alignment (log2, not bytes) of the function.

Definition at line 209 of file MachineFunction.h.

References llvm::ARM_PROC::A.

setCallsSetJmp - Set a flag that indicates if there's a call to a "returns twice" function.

Definition at line 225 of file MachineFunction.h.

Set a flag that indicates that the function contains inline assembly.

Definition at line 235 of file MachineFunction.h.

Referenced by llvm::SelectionDAGISel::runOnMachineFunction().

Definition at line 171 of file MachineFunction.h.

References llvm::AArch64DB::ST.

Referenced by llvm::MipsTargetMachine::resetSubtarget().

Should we be emitting segmented stack stuff for the function.

Definition at line 133 of file MachineFunction.cpp.

References getFunction(), and llvm::Function::hasFnAttribute().

Referenced by llvm::X86FrameLowering::emitPrologue().

void llvm::MachineFunction::splice ( iterator  InsertPt,
iterator  MBBI 
) [inline]
void llvm::MachineFunction::splice ( iterator  InsertPt,
iterator  MBBI,
iterator  MBBE 
) [inline]

Definition at line 345 of file MachineFunction.h.

References llvm::iplist< NodeTy, Traits >::splice().

void MachineFunction::verify ( Pass p = nullptr,
const char *  Banner = nullptr 
) const

verify - Run the current MachineFunction through the machine code verifier, useful for debugger use.

Definition at line 271 of file MachineVerifier.cpp.

Referenced by llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), and llvm::RegScavenger::forward().

void MachineFunction::viewCFG ( ) const

viewCFG - This function is meant for use from the debugger. You can just say 'call F->viewCFG()' and a ghostview window should pop up from the program, displaying the CFG of the current function with the code for each basic block inside. This depends on there being a 'dot' and 'gv' program in your path.

Definition at line 417 of file MachineFunction.cpp.

References llvm::errs(), getName(), and llvm::ViewGraph().

viewCFGOnly - This function is meant for use from the debugger. It works just like viewCFG, but it does not include the contents of basic blocks into the nodes, just the label. If you are only interested in the CFG this can make the graph smaller.

Definition at line 427 of file MachineFunction.cpp.

References llvm::errs(), getName(), and llvm::ViewGraph().


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