LLVM API Documentation

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

#include <MachineFunction.h>

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
 
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. More...
 
bool exposesReturnsTwice () const
 
void setExposesReturnsTwice (bool B)
 
bool hasMSInlineAsm () const
 Returns true if the function contains any MS-style inline assembly. More...
 
void setHasMSInlineAsm (bool B)
 
template<typename Ty >
Ty * getInfo ()
 
template<typename Ty >
const Ty * getInfo () const
 
MachineBasicBlockgetBlockNumbered (unsigned N) const
 
unsigned getNumBlockIDs () const
 
void RenumberBlocks (MachineBasicBlock *MBBFrom=0)
 
void print (raw_ostream &OS, SlotIndexes *=0) const
 
void viewCFG () const
 
void viewCFGOnly () const
 
void dump () const
 
void verify (Pass *p=NULL, const char *Banner=NULL) 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. More...
 
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=0)
 
void DeleteMachineBasicBlock (MachineBasicBlock *MBB)
 
MachineMemOperandgetMachineMemOperand (MachinePointerInfo PtrInfo, unsigned f, uint64_t s, unsigned base_alignment, const MDNode *TBAAInfo=0, const MDNode *Ranges=0)
 
MachineMemOperandgetMachineMemOperand (const MachineMemOperand *MMO, int64_t Offset, uint64_t Size)
 
MachineOperandallocateOperandArray (OperandCapacity Cap)
 
void deallocateOperandArray (OperandCapacity Cap, MachineOperand *Array)
 
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 75 of file MachineFunction.h.

Member Typedef Documentation

Definition at line 304 of file MachineFunction.h.

Definition at line 305 of file MachineFunction.h.

Definition at line 303 of file MachineFunction.h.

Definition at line 415 of file MachineFunction.h.

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

Definition at line 306 of file MachineFunction.h.

Constructor & Destructor Documentation

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

Member Function Documentation

unsigned MachineFunction::addLiveIn ( unsigned  PReg,
const TargetRegisterClass RC 
)
unsigned llvm::MachineFunction::addToMBBNumbering ( MachineBasicBlock MBB)
inline

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

Definition at line 358 of file MachineFunction.h.

MachineInstr::mmo_iterator MachineFunction::allocateMemRefsArray ( unsigned long  Num)

allocateMemRefsArray - Allocate an array to hold MachineMemOperand pointers. This array is owned by the MachineFunction.

Definition at line 243 of file MachineFunction.cpp.

References llvm::BumpPtrAllocator::Allocate().

Referenced by llvm::MachineInstr::addMemOperand(), concatenateMemOperands(), extractLoadMemRefs(), extractStoreMemRefs(), and llvm::SelectionDAGISel::SelectCodeCommon().

MachineOperand* llvm::MachineFunction::allocateOperandArray ( OperandCapacity  Cap)
inline

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

Definition at line 419 of file MachineFunction.h.

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

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

const MachineBasicBlock& llvm::MachineFunction::back ( ) const
inline
MachineBasicBlock& llvm::MachineFunction::back ( )
inline

Definition at line 330 of file MachineFunction.h.

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

iterator llvm::MachineFunction::begin ( )
inline
const_iterator llvm::MachineFunction::begin ( ) const
inline

Definition at line 316 of file MachineFunction.h.

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

MachineInstr * MachineFunction::CloneMachineInstr ( const MachineInstr Orig)

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 184 of file MachineFunction.cpp.

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

MachineBasicBlock * MachineFunction::CreateMachineBasicBlock ( const BasicBlock bb = 0)
MachineInstr * MachineFunction::CreateMachineInstr ( const MCInstrDesc MCID,
DebugLoc  DL,
bool  NoImp = false 
)

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

Definition at line 173 of file MachineFunction.cpp.

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

void llvm::MachineFunction::deallocateOperandArray ( OperandCapacity  Cap,
MachineOperand Array 
)
inline

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 426 of file MachineFunction.h.

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

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

void MachineFunction::DeleteMachineBasicBlock ( MachineBasicBlock MBB)

DeleteMachineBasicBlock - Delete the given MachineBasicBlock.

Definition at line 217 of file MachineFunction.cpp.

References llvm::MachineBasicBlock::getParent().

void MachineFunction::DeleteMachineInstr ( MachineInstr MI)

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 194 of file MachineFunction.cpp.

References deallocateOperandArray().

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

void MachineFunction::dump ( ) const

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

Definition at line 312 of file MachineFunction.cpp.

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

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

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

Definition at line 326 of file MachineFunction.h.

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

Referenced by RenumberBlocks().

iterator llvm::MachineFunction::end ( )
inline

Definition at line 317 of file MachineFunction.h.

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

Referenced by llvm::X86FrameLowering::adjustForHiPEPrologue(), BBHasFallthrough(), llvm::DwarfDebug::beginFunction(), llvm::PBQPBuilderWithCoalescing::build(), canFallThroughTo(), llvm::DwarfException::ComputeCallSiteTable(), llvm::AsmPrinter::EmitFunctionBody(), llvm::AMDGPUAsmPrinter::EmitProgramInfoR600(), llvm::AMDGPUAsmPrinter::EmitProgramInfoSI(), llvm::MSP430FrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::AArch64InstrInfo::estimateRSStackLimit(), estimateRSStackSizeLimit(), llvm::finalizeBundles(), FixTail(), llvm::MachineLoop::getBottomBlock(), GetFunctionSizeInBytes(), llvm::LexicalScopes::getMachineBasicBlocks(), getNextBlock(), HandleVRSaveUpdate(), llvm::SlotIndexes::insertMBBInMaps(), llvm::GraphTraits< MachineFunction * >::nodes_end(), llvm::GraphTraits< const MachineFunction * >::nodes_end(), llvm::BranchFolder::OptimizeFunction(), print(), RemoveVRSaveCode(), RenumberBlocks(), llvm::PPCFrameLowering::replaceFPWithRealFP(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::SlotIndexes::runOnMachineFunction(), llvm::MachineBasicBlock::SplitCriticalEdge(), VerifyPHIs(), llvm::SelectionDAGBuilder::visitBitTestCase(), llvm::SelectionDAGBuilder::visitBitTestHeader(), llvm::SelectionDAGBuilder::visitJumpTableHeader(), llvm::SelectionDAGBuilder::visitSwitchCase(), llvm::WriteGraph(), and ~MachineFunction().

const_iterator llvm::MachineFunction::end ( ) const
inline

Definition at line 318 of file MachineFunction.h.

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

void llvm::MachineFunction::ensureAlignment ( unsigned  A)
inline

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

Definition at line 204 of file MachineFunction.h.

References llvm::ARM_PROC::A.

void llvm::MachineFunction::erase ( iterator  MBBI)
inline
bool llvm::MachineFunction::exposesReturnsTwice ( ) const
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 211 of file MachineFunction.h.

std::pair< MachineInstr::mmo_iterator, MachineInstr::mmo_iterator > MachineFunction::extractLoadMemRefs ( MachineInstr::mmo_iterator  Begin,
MachineInstr::mmo_iterator  End 
)

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

Definition at line 248 of file MachineFunction.cpp.

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

Referenced by llvm::X86InstrInfo::unfoldMemoryOperand().

std::pair< MachineInstr::mmo_iterator, MachineInstr::mmo_iterator > MachineFunction::extractStoreMemRefs ( MachineInstr::mmo_iterator  Begin,
MachineInstr::mmo_iterator  End 
)

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

Definition at line 280 of file MachineFunction.cpp.

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

Referenced by llvm::X86InstrInfo::unfoldMemoryOperand().

const MachineBasicBlock& llvm::MachineFunction::front ( ) const
inline
MachineBasicBlock& llvm::MachineFunction::front ( )
inline

Definition at line 328 of file MachineFunction.h.

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

unsigned llvm::MachineFunction::getAlignment ( ) const
inline

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

Definition at line 197 of file MachineFunction.h.

Referenced by llvm::AsmPrinter::EmitFunctionHeader().

MachineBasicBlock* llvm::MachineFunction::getBlockNumbered ( unsigned  N) const
inline

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 257 of file MachineFunction.h.

References N.

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

MachineConstantPool* llvm::MachineFunction::getConstantPool ( )
inline
const MachineConstantPool* llvm::MachineFunction::getConstantPool ( ) const
inline

Definition at line 193 of file MachineFunction.h.

MCContext& llvm::MachineFunction::getContext ( ) const
inline
MachineFrameInfo* llvm::MachineFunction::getFrameInfo ( )
inline

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 174 of file MachineFunction.h.

Referenced by llvm::addFrameReference(), llvm::PPCFrameLowering::addScavengingSpillSlot(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::CCState::AllocateStack(), llvm::VirtRegMap::assignVirt2StackSlot(), llvm::X86TargetLowering::BuildFILD(), CalculateTailCallArgDest(), llvm::ARMBaseRegisterInfo::cannotEliminateFrame(), llvm::X86RegisterInfo::canRealignStack(), llvm::ARMFrameLowering::canSimplifyCallFramePseudos(), llvm::MipsFunctionInfo::createEhDataRegsFI(), llvm::SelectionDAG::CreateStackTemporary(), llvm::PPCFrameLowering::determineFrameLayout(), llvm::AArch64FrameLowering::determinePrologueDeath(), llvm::TargetOptions::DisableFramePointerElim(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::NVPTXRegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::Thumb1RegisterInfo::eliminateFrameIndex(), llvm::MipsRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Spills(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), emitComments(), llvm::Mips16FrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64TargetLowering::EmitF128CSEL(), llvm::MipsAsmPrinter::emitFrameDirective(), llvm::AArch64FrameLowering::emitFrameMemOps(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::Mips16FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::HexagonFrameLowering::emitPrologue(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), EmitTailCallStoreFPAndRetAddr(), EmitTailCallStoreRetAddr(), llvm::MipsFrameLowering::estimateStackSize(), fixupFuncForFI(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::SystemZFrameLowering::getAllocatedStackSize(), 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::MSP430TargetLowering::getReturnAddressFrameIndex(), llvm::X86TargetLowering::getReturnAddressFrameIndex(), GetTLSADDR(), llvm::CCState::HandleByVal(), llvm::X86RegisterInfo::hasBasePointer(), llvm::ARMBaseRegisterInfo::hasBasePointer(), llvm::MipsFrameLowering::hasFP(), llvm::SparcFrameLowering::hasFP(), llvm::PPCFrameLowering::hasFP(), llvm::XCoreFrameLowering::hasFP(), llvm::HexagonFrameLowering::hasFP(), llvm::ARMFrameLowering::hasFP(), llvm::MSP430FrameLowering::hasFP(), llvm::SystemZFrameLowering::hasFP(), llvm::X86FrameLowering::hasFP(), llvm::AArch64FrameLowering::hasFP(), llvm::MipsSEFrameLowering::hasReservedCallFrame(), llvm::SparcFrameLowering::hasReservedCallFrame(), llvm::Mips16FrameLowering::hasReservedCallFrame(), llvm::Thumb1FrameLowering::hasReservedCallFrame(), llvm::ARMFrameLowering::hasReservedCallFrame(), llvm::MSP430FrameLowering::hasReservedCallFrame(), llvm::X86FrameLowering::hasReservedCallFrame(), llvm::AArch64FrameLowering::hasReservedCallFrame(), llvm::X86RegisterInfo::hasReservedSpillSlot(), llvm::SelectionDAG::InferPtrAlignment(), llvm::RegScavenger::initRegState(), llvm::SelectionDAG::isConsecutiveLoad(), isConsecutiveLS(), llvm::SystemZInstrInfo::isStackSlotCopy(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::SparcInstrInfo::loadRegFromStackSlot(), llvm::HexagonInstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::PPCInstrInfo::loadRegFromStackSlot(), LowerAsSplatVectorLoad(), llvm::AArch64TargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::SparcTargetLowering::LowerF128_LibCallArg(), llvm::SparcTargetLowering::LowerF128Op(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::AArch64TargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::MSP430TargetLowering::LowerFRAMEADDR(), llvm::HexagonTargetLowering::LowerFRAMEADDR(), llvm::AArch64TargetLowering::LowerFRAMEADDR(), LowerFRAMEADDR(), llvm::SparcTargetLowering::LowerGlobalTLSAddress(), LowerINTRINSIC_W_CHAIN(), llvm::MSP430TargetLowering::LowerRETURNADDR(), llvm::HexagonTargetLowering::LowerRETURNADDR(), llvm::AArch64TargetLowering::LowerRETURNADDR(), LowerRETURNADDR(), LowerVASTART(), llvm::SparcTargetLowering::makeAddress(), llvm::PPCFrameLowering::needsFP(), llvm::ARMBaseRegisterInfo::needsFrameBaseReg(), llvm::PPCRegisterInfo::needsStackRealignment(), llvm::X86RegisterInfo::needsStackRealignment(), llvm::ARMBaseRegisterInfo::needsStackRealignment(), llvm::MipsAsmPrinter::printSavedRegsBitmask(), llvm::SystemZFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::MipsSEFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::PPCFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::XCoreFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::X86FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::ARMFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::AArch64FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), llvm::SystemZFrameLowering::processFunctionBeforeFrameFinalized(), llvm::MSP430FrameLowering::processFunctionBeforeFrameFinalized(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::AArch64FrameLowering::resolveFrameIndexReference(), llvm::rewriteA64FrameIndex(), llvm::PEI::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::AArch64TargetLowering::SaveVarArgRegisters(), llvm::FunctionLoweringInfo::set(), llvm::Mips16FrameLowering::spillCalleeSavedRegisters(), llvm::MipsSEFrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::CriticalAntiDepBreaker::StartBlock(), llvm::AggressiveAntiDepBreaker::StartBlock(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::PPCInstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), llvm::AArch64FrameLowering::useFPForAddressing(), and llvm::SelectionDAGBuilder::visitSPDescriptorParent().

const MachineFrameInfo* llvm::MachineFunction::getFrameInfo ( ) const
inline

Definition at line 175 of file MachineFunction.h.

const Function* llvm::MachineFunction::getFunction ( ) const
inline

getFunction - Return the LLVM function that this machine code represents

Definition at line 151 of file MachineFunction.h.

Referenced by llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::AMDGPUMachineFunction::AMDGPUMachineFunction(), llvm::ARMException::BeginFunction(), llvm::DwarfDebug::beginFunction(), llvm::DwarfDebug::beginInstruction(), llvm::PPCRegisterInfo::canRealignStack(), llvm::X86RegisterInfo::canRealignStack(), llvm::ARMBaseRegisterInfo::canRealignStack(), checkNumAlignedDPRCS2Regs(), llvm::PPCFrameLowering::determineFrameLayout(), llvm::TargetOptions::DisableFramePointerElim(), duplicateCPV(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::ARMFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::AsmPrinter::EmitFunctionBody(), 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::X86FrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::ARMException::EndFunction(), ExpandPowI(), findDeadCallerSavedReg(), llvm::LexicalScopes::findLexicalScope(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::MSP430RegisterInfo::getCalleeSavedRegs(), llvm::ARMBaseRegisterInfo::getCalleeSavedRegs(), llvm::X86RegisterInfo::getCalleeSavedRegs(), getMemcpyLoadsAndStores(), getMemmoveLoadsAndStores(), getMemsetStores(), getName(), llvm::ARMBaseInstrInfo::getOperandLatency(), llvm::ARMTargetLowering::getOptimalMemOpType(), llvm::X86TargetLowering::getOptimalMemOpType(), llvm::X86RegisterInfo::getPointerRegClass(), llvm::X86RegisterInfo::getReservedRegs(), GetScratchRegister(), llvm::SparcTargetLowering::getSRetArgSize(), HasNestArgument(), hasReturnsTwiceAttr(), llvm::SelectionDAG::init(), llvm::HexagonTargetLowering::IsEligibleForTailCallOptimization(), llvm::AArch64TargetLowering::IsEligibleForTailCallOptimization(), llvm::TargetLowering::isInTailCallPosition(), llvm::HexagonTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::AArch64TargetLowering::LowerCall(), nvptx::LowerConstant(), lowerConstant(), llvm::R600TargetLowering::LowerFormalArguments(), 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::X86RegisterInfo::needsStackRealignment(), llvm::ARMBaseRegisterInfo::needsStackRealignment(), llvm::OptLevelChanger::OptLevelChanger(), PerformSTORECombine(), printDebugLoc(), llvm::SystemZFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::XCoreFrameLowering::processFunctionBeforeCalleeSavedScan(), ProfitableToMerge(), llvm::MipsSubtarget::resetSubtarget(), llvm::PPCSubtarget::resetSubtargetFeatures(), llvm::X86Subtarget::resetSubtargetFeatures(), llvm::ARMSubtarget::resetSubtargetFeatures(), llvm::TargetMachine::resetTargetOptions(), llvm::PEI::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::X86AsmPrinter::runOnMachineFunction(), llvm::VLIWMachineScheduler::schedule(), llvm::AsmPrinter::SetupMachineFunction(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::tryFoldSPUpdateIntoPushPop(), and llvm::OptLevelChanger::~OptLevelChanger().

unsigned llvm::MachineFunction::getFunctionNumber ( ) const
inline

getFunctionNumber - Return a unique ID for the current function.

Definition at line 159 of file MachineFunction.h.

Referenced by llvm::NVPTXFrameLowering::emitPrologue(), llvm::AsmPrinter::getFunctionNumber(), getJTISymbol(), getPICBaseSymbol(), and llvm::MachineBasicBlock::getSymbol().

GCModuleInfo* llvm::MachineFunction::getGMI ( ) const
inline

Definition at line 146 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 236 of file MachineFunction.h.

References llvm::BumpPtrAllocator::Allocate().

Referenced by llvm::X86FrameLowering::adjustForSegmentedStacks(), CalculateTailCallSPDiff(), llvm::ARMBaseRegisterInfo::canRealignStack(), checkNumAlignedDPRCS2Regs(), duplicateCPV(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::Thumb1RegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::SystemZFrameLowering::emitEpilogue(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::HexagonTargetLowering::EmitInstrWithCustomInserter(), llvm::AMDGPUAsmPrinter::EmitProgramInfoR600(), llvm::AMDGPUAsmPrinter::EmitProgramInfoSI(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::HexagonFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), estimateRSStackSizeLimit(), fixupFuncForFI(), llvm::X86FrameLowering::getFrameIndexOffset(), llvm::MipsDAGToDAGISel::getGlobalBaseReg(), llvm::SparcInstrInfo::getGlobalBaseReg(), llvm::X86InstrInfo::getGlobalBaseReg(), llvm::MipsTargetLowering::getGlobalReg(), llvm::MSP430TargetLowering::getReturnAddressFrameIndex(), llvm::X86TargetLowering::getReturnAddressFrameIndex(), llvm::ARMBaseRegisterInfo::hasBasePointer(), llvm::HexagonFrameLowering::hasFP(), llvm::SystemZFrameLowering::hasFP(), llvm::X86FrameLowering::hasFP(), hasNonRISpills(), llvm::PPCRegisterInfo::hasReservedSpillSlot(), hasSpills(), llvm::ARMJITInfo::Initialize(), llvm::ARMBaseInstrInfo::InsertBranch(), llvm::AArch64TargetLowering::IsEligibleForTailCallOptimization(), llvm::ARMBaseInstrInfo::isPredicable(), llvm::PPCInstrInfo::loadRegFromStackSlot(), llvm::AArch64TargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerEH_RETURN(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::SITargetLowering::LowerFormalArguments(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::AArch64TargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::AArch64TargetLowering::LowerGlobalTLSAddress(), llvm::HexagonTargetLowering::LowerINLINEASM(), llvm::R600TargetLowering::LowerOperation(), llvm::SITargetLowering::LowerOperation(), llvm::SparcTargetLowering::LowerReturn_32(), LowerToTLSLocalDynamicModel(), llvm::MSP430TargetLowering::LowerVASTART(), llvm::HexagonTargetLowering::LowerVASTART(), llvm::AArch64TargetLowering::LowerVASTART(), LowerVASTART(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), MustSaveLR(), llvm::PPCFrameLowering::needsFP(), llvm::ARMBaseRegisterInfo::needsFrameBaseReg(), llvm::SystemZFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::MipsSEFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::SparcFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::PPCFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::XCoreFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::X86FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::ARMFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), llvm::Thumb2InstrInfo::ReplaceTailWithBranchTo(), llvm::ARMBaseRegisterInfo::resolveFrameIndex(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::AArch64FrameLowering::resolveFrameIndexReference(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), llvm::ARMFrameLowering::restoreCalleeSavedRegisters(), llvm::SystemZFrameLowering::restoreCalleeSavedRegisters(), llvm::ARMAsmPrinter::runOnMachineFunction(), llvm::MipsAsmPrinter::runOnMachineFunction(), llvm::AArch64TargetLowering::SaveVarArgRegisters(), llvm::XCoreFrameLowering::spillCalleeSavedRegisters(), llvm::ARMFrameLowering::spillCalleeSavedRegisters(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::MSP430FrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::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 248 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 439 of file MachineFunction.cpp.

References getFunctionNumber(), llvm::MCAsmInfo::getLinkerPrivateGlobalPrefix(), llvm::TargetMachine::getMCAsmInfo(), llvm::MCContext::GetOrCreateSymbol(), llvm::MCAsmInfo::getPrivateGlobalPrefix(), getTarget(), llvm::cl::Prefix, size(), and llvm::SmallString< InternalLen >::str().

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

const MachineJumpTableInfo* llvm::MachineFunction::getJumpTableInfo ( ) const
inline

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 181 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().

MachineJumpTableInfo* llvm::MachineFunction::getJumpTableInfo ( )
inline

Definition at line 182 of file MachineFunction.h.

MachineMemOperand * MachineFunction::getMachineMemOperand ( MachinePointerInfo  PtrInfo,
unsigned  f,
uint64_t  s,
unsigned  base_alignment,
const MDNode TBAAInfo = 0,
const MDNode Ranges = 0 
)
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 233 of file MachineFunction.cpp.

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

MachineModuleInfo& llvm::MachineFunction::getMMI ( ) const
inline
StringRef MachineFunction::getName ( ) const
unsigned llvm::MachineFunction::getNumBlockIDs ( ) const
inline
MachineJumpTableInfo * MachineFunction::getOrCreateJumpTableInfo ( unsigned  EntryKind)

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

Definition at line 119 of file MachineFunction.cpp.

MCSymbol * MachineFunction::getPICBaseSymbol ( ) const
MachineRegisterInfo& llvm::MachineFunction::getRegInfo ( )
inline

getRegInfo - Return information about the registers currently in use.

Definition at line 167 of file MachineFunction.h.

Referenced by llvm::MachineBasicBlock::addLiveIn(), addLiveIn(), addLiveIn(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::SITargetLowering::AdjustInstrPostInstrSelection(), llvm::AllocationOrder::AllocationOrder(), llvm::VirtRegMap::assignVirt2StackSlot(), llvm::Mips16InstrInfo::basicLoadImmediate(), llvm::PBQPBuilder::build(), llvm::PBQPBuilderWithCoalescing::build(), llvm::VirtRegAuxInfo::calculateSpillWeightAndHint(), llvm::calculateSpillWeightsAndHints(), canCompareBeNewValueJump(), canFoldCopy(), llvm::PPCInstrInfo::canInsertSelect(), llvm::X86InstrInfo::canInsertSelect(), llvm::X86RegisterInfo::canRealignStack(), llvm::ARMBaseRegisterInfo::canRealignStack(), checkNumAlignedDPRCS2Regs(), llvm::X86InstrInfo::classifyLEAReg(), llvm::SIInstrInfo::commuteInstruction(), llvm::AMDGPUInstrInfo::convertToISA(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::AMDGPUTargetLowering::CreateLiveInRegister(), llvm::HexagonInstrInfo::createVR(), llvm::AArch64FrameLowering::determinePrologueDeath(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::Thumb1RegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), llvm::AArch64TargetLowering::emitAtomicBinary(), llvm::PPCTargetLowering::EmitAtomicBinary(), llvm::AArch64TargetLowering::emitAtomicBinaryMinMax(), llvm::AArch64TargetLowering::emitAtomicCmpSwap(), 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::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitThumbRegPlusImmInReg(), llvm::RegScavenger::enterBasicBlock(), llvm::findPHICopyInsertPoint(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::X86InstrInfo::foldMemoryOperandImpl(), foldPatchpoint(), forceReg(), GetCostForDef(), llvm::MipsFunctionInfo::getGlobalBaseReg(), llvm::SparcInstrInfo::getGlobalBaseReg(), llvm::X86InstrInfo::getGlobalBaseReg(), llvm::AMDGPUInstrInfo::getIndirectIndexBegin(), llvm::MipsFunctionInfo::getMips16SPAliasReg(), llvm::SIInstrInfo::getOpRegClass(), llvm::ARMBaseRegisterInfo::getRegAllocationHints(), llvm::TargetRegisterInfo::getRegAllocationHints(), GetRegistersForValue(), llvm::VirtRegMap::grow(), HandleVRSaveUpdate(), hasVGPROperands(), llvm::RegPressureTracker::init(), llvm::PPCInstrInfo::insertSelect(), llvm::X86InstrInfo::insertSelect(), isEAXLiveIn(), llvm::X86InstrInfo::isReallyTriviallyReMaterializable(), llvm::SIInstrInfo::legalizeOperands(), llvm::SIInstrInfo::legalizeOpWithMove(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), 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::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::Mips16FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::XCoreFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::PPCFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::X86FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::ARMFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::AArch64FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::LiveRangeCalc::reset(), 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::Thumb2InstrInfo::storeRegToStackSlot(), llvm::tryFoldSPUpdateIntoPushPop(), llvm::ARMBaseRegisterInfo::UpdateRegAllocHint(), and usesTheStack().

const MachineRegisterInfo& llvm::MachineFunction::getRegInfo ( ) const
inline

Definition at line 168 of file MachineFunction.h.

const TargetMachine& llvm::MachineFunction::getTarget ( ) const
inline

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

Definition at line 163 of file MachineFunction.h.

Referenced by llvm::MachineBasicBlock::addLiveIn(), addLiveInRegs(), llvm::PBQPBuilder::build(), llvm::PBQPBuilderWithCoalescing::build(), CalculateParameterAndLinkageAreaSize(), llvm::LiveRangeEdit::calculateRegClassAndHint(), llvm::VirtRegAuxInfo::calculateSpillWeightAndHint(), llvm::MachineBasicBlock::canFallThrough(), llvm::ARMBaseRegisterInfo::cannotEliminateFrame(), llvm::ARMBaseRegisterInfo::canRealignStack(), checkNumAlignedDPRCS2Regs(), llvm::TargetSchedModel::computeOutputLatency(), llvm::MipsFunctionInfo::createEhDataRegsFI(), llvm::ARM::createFastISel(), llvm::PPC::createFastISel(), llvm::PPCFrameLowering::determineFrameLayout(), llvm::Mips16FrameLowering::eliminateCallFramePseudoInstr(), llvm::MipsSEFrameLowering::eliminateCallFramePseudoInstr(), llvm::SparcFrameLowering::eliminateCallFramePseudoInstr(), llvm::MSP430FrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::Thumb1FrameLowering::eliminateCallFramePseudoInstr(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::AArch64FrameLowering::eliminateCallFramePseudoInstr(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::Thumb1RegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), emitComments(), llvm::Mips16FrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::HexagonFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::SystemZFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitFrameMemOps(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::Thumb2RegisterInfo::emitLoadConstPool(), llvm::Thumb1RegisterInfo::emitLoadConstPool(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), llvm::Mips16FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::HexagonFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::DwarfDebug::endFunction(), llvm::RegScavenger::enterBasicBlock(), llvm::MipsFrameLowering::estimateStackSize(), llvm::MachineFrameInfo::estimateStackSize(), llvm::finalizeBundle(), llvm::TargetInstrInfo::foldMemoryOperand(), foldPatchpoint(), llvm::MSP430RegisterInfo::getCalleeSavedRegs(), llvm::X86FrameLowering::getFrameIndexOffset(), llvm::X86FrameLowering::getFrameIndexReference(), llvm::TargetFrameLowering::getFrameIndexReference(), llvm::AArch64RegisterInfo::getFrameRegister(), llvm::MSP430RegisterInfo::getFrameRegister(), llvm::XCoreRegisterInfo::getFrameRegister(), llvm::SystemZRegisterInfo::getFrameRegister(), llvm::MipsRegisterInfo::getFrameRegister(), llvm::HexagonRegisterInfo::getFrameRegister(), llvm::PPCRegisterInfo::getFrameRegister(), llvm::X86RegisterInfo::getFrameRegister(), llvm::ARMBaseRegisterInfo::getFrameRegister(), llvm::MipsFunctionInfo::getGlobalBaseReg(), llvm::ARMHazardRecognizer::getHazardType(), llvm::MSP430InstrInfo::GetInstSizeInBytes(), llvm::AArch64InstrInfo::getInstSizeInBytes(), llvm::MipsInstrInfo::GetInstSizeInBytes(), llvm::ARMBaseInstrInfo::GetInstSizeInBytes(), llvm::SystemZInstrInfo::getInstSizeInBytes(), llvm::PPCInstrInfo::GetInstSizeInBytes(), getJTISymbol(), getMemcpyLoadsAndStores(), llvm::MachineFrameInfo::getPristineRegs(), llvm::PPCRegisterInfo::getRegPressureLimit(), llvm::MipsRegisterInfo::getRegPressureLimit(), llvm::X86RegisterInfo::getRegPressureLimit(), llvm::ARMBaseRegisterInfo::getRegPressureLimit(), llvm::AArch64RegisterInfo::getReservedRegs(), llvm::MSP430RegisterInfo::getReservedRegs(), llvm::XCoreRegisterInfo::getReservedRegs(), llvm::PPCRegisterInfo::getReservedRegs(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::SystemZRegisterInfo::getReservedRegs(), llvm::X86RegisterInfo::getReservedRegs(), llvm::ARMBaseRegisterInfo::getReservedRegs(), HandleVRSaveUpdate(), llvm::ARMBaseRegisterInfo::hasBasePointer(), llvm::MipsFrameLowering::hasFP(), llvm::SparcFrameLowering::hasFP(), llvm::XCoreFrameLowering::hasFP(), llvm::ARMFrameLowering::hasFP(), llvm::MSP430FrameLowering::hasFP(), llvm::SystemZFrameLowering::hasFP(), llvm::X86FrameLowering::hasFP(), llvm::AArch64FrameLowering::hasFP(), llvm::X86RegisterInfo::hasReservedSpillSlot(), llvm::RegPressureTracker::init(), llvm::R600SchedStrategy::initialize(), llvm::ConvergingVLIWScheduler::initialize(), llvm::TargetInstrInfo::isSchedulingBoundary(), llvm::AArch64TargetLowering::LowerCall(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::AArch64TargetLowering::LowerFormalArguments(), llvm::R600TargetLowering::LowerOperation(), llvm::PPCRegisterInfo::lowerVRSAVERestore(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), llvm::MachineSSAUpdater::MachineSSAUpdater(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), llvm::PPCFrameLowering::needsFP(), llvm::PPCRegisterInfo::needsFrameBaseReg(), llvm::ARMBaseRegisterInfo::needsFrameBaseReg(), llvm::PPCRegisterInfo::needsStackRealignment(), llvm::ARMBaseRegisterInfo::needsStackRealignment(), print(), llvm::MachineFrameInfo::print(), llvm::MachineBasicBlock::print(), llvm::MachineInstr::print(), llvm::AArch64AsmPrinter::PrintAsmOperand(), llvm::ARMAsmPrinter::PrintAsmOperand(), llvm::ARMAsmPrinter::printOperand(), llvm::SystemZFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::XCoreFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::PPCFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::X86FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::ARMFrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::AArch64FrameLowering::processFunctionBeforeCalleeSavedScan(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), replaceFI(), llvm::PPCFrameLowering::replaceFPWithRealFP(), llvm::XCoreRegisterInfo::requiresRegisterScavenging(), llvm::TargetMachine::resetTargetOptions(), llvm::Thumb1RegisterInfo::resolveFrameIndex(), llvm::ARMBaseRegisterInfo::resolveFrameIndex(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::XCoreFrameLowering::restoreCalleeSavedRegisters(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), llvm::HexagonFrameLowering::restoreCalleeSavedRegisters(), llvm::MSP430FrameLowering::restoreCalleeSavedRegisters(), llvm::SystemZFrameLowering::restoreCalleeSavedRegisters(), llvm::X86FrameLowering::restoreCalleeSavedRegisters(), llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), restoreCRs(), llvm::PEI::runOnMachineFunction(), llvm::MachineTraceMetrics::runOnMachineFunction(), llvm::RegisterClassInfo::runOnMachineFunction(), llvm::LiveStacks::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::LiveIntervals::runOnMachineFunction(), llvm::Mips16RegisterInfo::saveScavengerRegister(), llvm::Thumb1RegisterInfo::saveScavengerRegister(), llvm::FunctionLoweringInfo::set(), llvm::XCoreFrameLowering::spillCalleeSavedRegisters(), llvm::HexagonFrameLowering::spillCalleeSavedRegisters(), llvm::MipsSEFrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::MSP430FrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::MachineBasicBlock::updateTerminator(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().

bool llvm::MachineFunction::hasMSInlineAsm ( ) const
inline

Returns true if the function contains any MS-style inline assembly.

Definition at line 222 of file MachineFunction.h.

Referenced by llvm::X86RegisterInfo::hasBasePointer(), llvm::X86FrameLowering::hasFP(), and llvm::SelectionDAGISel::runOnMachineFunction().

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

Definition at line 332 of file MachineFunction.h.

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

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

void llvm::MachineFunction::push_front ( MachineBasicBlock MBB)
inline
reverse_iterator llvm::MachineFunction::rbegin ( )
inline

Definition at line 320 of file MachineFunction.h.

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

const_reverse_iterator llvm::MachineFunction::rbegin ( ) const
inline

Definition at line 321 of file MachineFunction.h.

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

void llvm::MachineFunction::remove ( iterator  MBBI)
inline
void llvm::MachineFunction::removeFromMBBNumbering ( unsigned  N)
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 366 of file MachineFunction.h.

References N.

reverse_iterator llvm::MachineFunction::rend ( )
inline

Definition at line 322 of file MachineFunction.h.

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

const_reverse_iterator llvm::MachineFunction::rend ( ) const
inline

Definition at line 323 of file MachineFunction.h.

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

void MachineFunction::RenumberBlocks ( MachineBasicBlock MBB = 0)

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 132 of file MachineFunction.cpp.

References begin(), empty(), end(), and llvm::prior().

void llvm::MachineFunction::setAlignment ( unsigned  A)
inline

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

Definition at line 201 of file MachineFunction.h.

References llvm::ARM_PROC::A.

void llvm::MachineFunction::setExposesReturnsTwice ( bool  B)
inline

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

Definition at line 217 of file MachineFunction.h.

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

void llvm::MachineFunction::setHasMSInlineAsm ( bool  B)
inline

Set a flag that indicates that the function contains MS-style inline assembly.

Definition at line 228 of file MachineFunction.h.

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

unsigned llvm::MachineFunction::size ( ) const
inline
void llvm::MachineFunction::splice ( iterator  InsertPt,
iterator  MBBI 
)
inline
void llvm::MachineFunction::splice ( iterator  InsertPt,
iterator  MBBI,
iterator  MBBE 
)
inline

Definition at line 340 of file MachineFunction.h.

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

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

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

Definition at line 270 of file MachineVerifier.cpp.

Referenced by llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86FrameLowering::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 401 of file MachineFunction.cpp.

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

void MachineFunction::viewCFGOnly ( ) const

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 411 of file MachineFunction.cpp.

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


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