LLVM API Documentation

llvm::MachineFunction Class Reference

#include <MachineFunction.h>

Inheritance diagram for llvm::MachineFunction:
[legend]
Collaboration diagram for llvm::MachineFunction:
[legend]

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

Public Member Functions

 MachineFunction (const Function *Fn, const TargetMachine &TM)
 ~MachineFunction ()
const Function * getFunction () const
const TargetMachine & getTarget () const
MachineRegisterInfo & getRegInfo ()
const MachineRegisterInfo & getRegInfo () const
MachineFrameInfo * getFrameInfo ()
const MachineFrameInfo * getFrameInfo () const
MachineJumpTableInfo * getJumpTableInfo ()
const MachineJumpTableInfo * getJumpTableInfo () const
MachineConstantPool * getConstantPool ()
const MachineConstantPool * getConstantPool () const
template<typename Ty>
Ty * getInfo ()
template<typename Ty>
const Ty * getInfo () const
MachineBasicBlock * getBlockNumbered (unsigned N)
unsigned getNumBlockIDs () const
void RenumberBlocks (MachineBasicBlock *MBBFrom=0)
void print (std::ostream &OS) const
void print (std::ostream *OS) const
void viewCFG () const
void viewCFGOnly () const
void dump () const
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 MachineBasicBlock & front () const
MachineBasicBlock & front ()
const MachineBasicBlock & back () const
MachineBasicBlock & back ()
void push_back (MachineBasicBlock *MBB)
void push_front (MachineBasicBlock *MBB)
void insert (iterator MBBI, MachineBasicBlock *MBB)
void splice (iterator InsertPt, iterator MBBI)
void remove (iterator MBBI)
void erase (iterator MBBI)
unsigned addToMBBNumbering (MachineBasicBlock *MBB)
void removeFromMBBNumbering (unsigned N)
MachineInstr * CreateMachineInstr (const TargetInstrDesc &TID, DebugLoc DL, bool NoImp=false)
MachineInstr * CloneMachineInstr (const MachineInstr *Orig)
void DeleteMachineInstr (MachineInstr *MI)
MachineBasicBlock * CreateMachineBasicBlock (const BasicBlock *bb=0)
void DeleteMachineBasicBlock (MachineBasicBlock *MBB)
unsigned getOrCreateDebugLocID (unsigned Src, unsigned Line, unsigned Col)

Static Public Member Functions

static MachineFunction & construct (const Function *F, const TargetMachine &TM)
static void destruct (const Function *F)
static MachineFunction & get (const Function *F)


Detailed Description

Definition at line 60 of file MachineFunction.h.


Member Typedef Documentation

typedef BasicBlockListType::iterator llvm::MachineFunction::iterator

Definition at line 224 of file MachineFunction.h.

typedef BasicBlockListType::const_iterator llvm::MachineFunction::const_iterator

Definition at line 225 of file MachineFunction.h.

Definition at line 226 of file MachineFunction.h.

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

Definition at line 227 of file MachineFunction.h.


Constructor & Destructor Documentation

MachineFunction::MachineFunction ( const Function *  Fn,
const TargetMachine &  TM 
)

MachineFunction::~MachineFunction (  ) 


Member Function Documentation

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

getFunction - Return the LLVM function that this machine code represents

Definition at line 107 of file MachineFunction.h.

Referenced by llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::MipsRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::emitEpilogue(), llvm::X86ATTAsmPrinter::emitFunctionHeader(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::X86RegisterInfo::emitPrologue(), llvm::PPCRegisterInfo::emitPrologue(), llvm::AlphaRegisterInfo::emitPrologue(), llvm::PIC16TargetLowering::ExpandFrameIndex(), llvm::MachOCodeEmitter::finishFunction(), llvm::ELFCodeEmitter::finishFunction(), llvm::AsmPrinter::getCurrentFunctionEHName(), llvm::DOTGraphTraits< SelectionDAG * >::getGraphName(), llvm::DOTGraphTraits< ScheduleDAG * >::getGraphName(), llvm::DOTGraphTraits< const MachineFunction * >::getGraphName(), llvm::X86TargetLowering::IsEligibleForTailCallOptimization(), llvm::PPCTargetLowering::IsEligibleForTailCallOptimization(), llvm::PIC16InstrInfo::loadRegFromStackSlot(), LowerRET(), llvm::XCoreRegisterInfo::needsFrameMoves(), llvm::AsmPrinter::PrintSpecial(), llvm::XCoreRegisterInfo::processFunctionBeforeCalleeSavedScan(), llvm::SelectionDAGISel::runOnFunction(), llvm::X86IntelAsmPrinter::runOnMachineFunction(), llvm::X86ATTAsmPrinter::runOnMachineFunction(), llvm::SimpleRegisterCoalescing::runOnMachineFunction(), llvm::AsmPrinter::SetupMachineFunction(), llvm::MachOCodeEmitter::startFunction(), llvm::PIC16InstrInfo::storeRegToStackSlot(), viewCFG(), and llvm::ScheduleDAG::viewGraph().

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

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

Definition at line 111 of file MachineFunction.h.

Referenced by llvm::MipsRegisterInfo::adjustMipsStackFrame(), CalculateParameterAndLinkageAreaSize(), llvm::SPURegisterInfo::determineFrameLayout(), llvm::PPCRegisterInfo::determineFrameLayout(), llvm::XCoreRegisterInfo::eliminateCallFramePseudoInstr(), llvm::IA64RegisterInfo::eliminateCallFramePseudoInstr(), llvm::ARMRegisterInfo::eliminateCallFramePseudoInstr(), llvm::AlphaRegisterInfo::eliminateCallFramePseudoInstr(), llvm::JITDwarfEmitter::EmitDwarfTable(), llvm::PPCRegisterInfo::emitEpilogue(), llvm::X86RegisterInfo::emitFrameMoves(), llvm::X86RegisterInfo::emitPrologue(), llvm::PPCRegisterInfo::emitPrologue(), llvm::MipsRegisterInfo::emitPrologue(), llvm::IA64RegisterInfo::emitPrologue(), llvm::AlphaRegisterInfo::emitPrologue(), llvm::RegScavenger::enterBasicBlock(), llvm::JITDwarfEmitter::GetDwarfTableSizeInBytes(), llvm::TargetRegisterInfo::getFrameIndexOffset(), llvm::PPCInstrInfo::GetInstSizeInBytes(), llvm::ARMInstrInfo::GetInstSizeInBytes(), GetInstSizeWithDesc(), llvm::SelectionDAG::getTarget(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::VirtRegMap::print(), llvm::MachineOperand::print(), llvm::MachineFrameInfo::print(), print(), llvm::MachineBasicBlock::print(), llvm::ARMRegisterInfo::processFunctionBeforeCalleeSavedScan(), llvm::MipsRegisterInfo::processFunctionBeforeFrameFinalized(), llvm::SimpleRegisterCoalescing::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::LiveIntervals::runOnMachineFunction(), llvm::FunctionLoweringInfo::set(), and llvm::SplitCriticalMachineEdge().

MachineRegisterInfo& llvm::MachineFunction::getRegInfo (  )  [inline]

getRegInfo - Return information about the registers currently in use.

Definition at line 115 of file MachineFunction.h.

Referenced by AddLiveIn(), llvm::VirtRegMap::assignVirt2StackSlot(), llvm::MachineOperand::ChangeToRegister(), CheckDAGForTailCallsAndFixThem(), llvm::PPCTargetLowering::EmitAtomicBinary(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::AlphaTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), llvm::X86RegisterInfo::emitPrologue(), llvm::IA64RegisterInfo::emitPrologue(), llvm::ARMRegisterInfo::emitPrologue(), llvm::RegScavenger::enterBasicBlock(), llvm::X86InstrInfo::getGlobalBaseReg(), llvm::SelectionDAGLowering::GetRegistersForValue(), llvm::VirtRegMap::grow(), HandleVRSaveUpdate(), interferes(), llvm::X86InstrInfo::isReallyTriviallyReMaterializable(), llvm::SparcTargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerArguments(), LowerCTPOP(), LowerFORMAL_ARGUMENT(), LowerFORMAL_ARGUMENTS(), LowerLOAD(), LowerRET(), LowerSTORE(), LowerVECTOR_SHUFFLE(), MustSaveLR(), llvm::VirtRegMap::print(), llvm::XCoreRegisterInfo::processFunctionBeforeCalleeSavedScan(), llvm::SPURegisterInfo::processFunctionBeforeCalleeSavedScan(), llvm::PPCRegisterInfo::processFunctionBeforeCalleeSavedScan(), llvm::ARMRegisterInfo::processFunctionBeforeCalleeSavedScan(), llvm::SelectionDAGISel::runOnFunction(), llvm::SimpleRegisterCoalescing::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::LiveIntervals::runOnMachineFunction(), llvm::FunctionLoweringInfo::set(), llvm::MachineOperand::setReg(), and llvm::VirtRegMap::VirtRegMap().

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

Definition at line 116 of file MachineFunction.h.

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

Referenced by llvm::addFrameReference(), llvm::VirtRegMap::addSpillSlotUse(), llvm::MipsRegisterInfo::adjustMipsStackFrame(), llvm::VirtRegMap::assignVirt2StackSlot(), CalculateTailCallArgDest(), CheckDAGForTailCallsAndFixThem(), llvm::SelectionDAG::CreateStackTemporary(), llvm::SPURegisterInfo::determineFrameLayout(), llvm::PPCRegisterInfo::determineFrameLayout(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::SPURegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::MipsRegisterInfo::eliminateFrameIndex(), llvm::IA64RegisterInfo::eliminateFrameIndex(), llvm::ARMRegisterInfo::eliminateFrameIndex(), llvm::AlphaRegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::emitEpilogue(), llvm::X86RegisterInfo::emitEpilogue(), llvm::SPURegisterInfo::emitEpilogue(), llvm::PPCRegisterInfo::emitEpilogue(), llvm::MipsRegisterInfo::emitEpilogue(), llvm::IA64RegisterInfo::emitEpilogue(), llvm::ARMRegisterInfo::emitEpilogue(), llvm::AlphaRegisterInfo::emitEpilogue(), llvm::X86RegisterInfo::emitFrameMoves(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreRegisterInfo::emitPrologue(), llvm::X86RegisterInfo::emitPrologue(), llvm::SPURegisterInfo::emitPrologue(), llvm::SparcRegisterInfo::emitPrologue(), llvm::PPCRegisterInfo::emitPrologue(), llvm::MipsRegisterInfo::emitPrologue(), llvm::IA64RegisterInfo::emitPrologue(), llvm::ARMRegisterInfo::emitPrologue(), llvm::AlphaRegisterInfo::emitPrologue(), EmitTailCallStoreFPAndRetAddr(), EmitTailCallStoreRetAddr(), estimateStackSize(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::X86RegisterInfo::getCalleeSavedRegClasses(), llvm::X86RegisterInfo::getCalleeSavedRegs(), llvm::VirtRegMap::getEmergencySpillSlot(), llvm::X86RegisterInfo::getFrameIndexOffset(), llvm::TargetRegisterInfo::getFrameIndexOffset(), llvm::X86TargetLowering::getReturnAddressFrameIndex(), llvm::XCoreRegisterInfo::hasFP(), llvm::X86RegisterInfo::hasFP(), llvm::SPURegisterInfo::hasFP(), llvm::PPCRegisterInfo::hasFP(), llvm::MipsRegisterInfo::hasFP(), llvm::IA64RegisterInfo::hasFP(), llvm::ARMRegisterInfo::hasFP(), llvm::AlphaRegisterInfo::hasFP(), llvm::X86RegisterInfo::hasReservedCallFrame(), llvm::ARMRegisterInfo::hasReservedCallFrame(), InferAlignment(), llvm::XCoreInstrInfo::isInvariantLoad(), llvm::X86InstrInfo::isInvariantLoad(), llvm::SparcTargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerArguments(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), LowerFORMAL_ARGUMENT(), LowerFORMAL_ARGUMENTS(), MeetsMaxMemopRequirement(), needsFP(), llvm::XCoreRegisterInfo::needsFrameMoves(), llvm::X86RegisterInfo::needsStackRealignment(), PerformShuffleCombine(), llvm::XCoreRegisterInfo::processFunctionBeforeCalleeSavedScan(), llvm::X86RegisterInfo::processFunctionBeforeCalleeSavedScan(), llvm::PPCRegisterInfo::processFunctionBeforeCalleeSavedScan(), llvm::ARMRegisterInfo::processFunctionBeforeCalleeSavedScan(), llvm::X86RegisterInfo::processFunctionBeforeFrameFinalized(), llvm::MipsRegisterInfo::processFunctionBeforeFrameFinalized(), llvm::VirtRegMap::RemoveMachineInstrFromMaps(), llvm::FunctionLoweringInfo::set(), and llvm::XCoreInstrInfo::spillCalleeSavedRegisters().

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

Definition at line 123 of file MachineFunction.h.

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

getJumpTableInfo - Return the jump table info object for the current function. This object contains information about jump tables for switch instructions in the current function.

Definition at line 129 of file MachineFunction.h.

Referenced by llvm::MachOCodeEmitter::finishFunction(), llvm::ARMInstrInfo::GetInstSizeInBytes(), llvm::X86IntelAsmPrinter::runOnMachineFunction(), and llvm::X86ATTAsmPrinter::runOnMachineFunction().

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

Definition at line 130 of file MachineFunction.h.

MachineConstantPool* llvm::MachineFunction::getConstantPool (  )  [inline]

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

Definition at line 136 of file MachineFunction.h.

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

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

Definition at line 142 of file MachineFunction.h.

References llvm::BumpPtrAllocator::Allocate(), and Ty.

Referenced by llvm::MipsRegisterInfo::adjustMipsStackFrame(), CalculateTailCallSPDiff(), llvm::ARMInstrInfo::copyRegToReg(), llvm::ARMRegisterInfo::eliminateCallFramePseudoInstr(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::ARMRegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::emitEpilogue(), llvm::X86RegisterInfo::emitEpilogue(), llvm::PPCRegisterInfo::emitEpilogue(), llvm::MipsRegisterInfo::emitEpilogue(), llvm::ARMRegisterInfo::emitEpilogue(), llvm::XCoreRegisterInfo::emitPrologue(), llvm::X86RegisterInfo::emitPrologue(), llvm::PPCRegisterInfo::emitPrologue(), llvm::MipsRegisterInfo::emitPrologue(), llvm::IA64RegisterInfo::emitPrologue(), llvm::ARMRegisterInfo::emitPrologue(), llvm::X86RegisterInfo::getFrameIndexOffset(), llvm::X86InstrInfo::getGlobalBaseReg(), llvm::X86TargetLowering::getReturnAddressFrameIndex(), llvm::X86RegisterInfo::hasFP(), llvm::ARMRegisterInfo::hasReservedCallFrame(), llvm::ARMJITInfo::Initialize(), llvm::ARMInstrInfo::InsertBranch(), llvm::ARMInstrInfo::loadRegFromAddr(), llvm::ARMInstrInfo::loadRegFromStackSlot(), llvm::IA64TargetLowering::LowerCallTo(), MustSaveLR(), needsFP(), llvm::XCoreRegisterInfo::processFunctionBeforeCalleeSavedScan(), llvm::PPCRegisterInfo::processFunctionBeforeCalleeSavedScan(), llvm::ARMRegisterInfo::processFunctionBeforeCalleeSavedScan(), llvm::X86RegisterInfo::processFunctionBeforeFrameFinalized(), llvm::MipsRegisterInfo::processFunctionBeforeFrameFinalized(), llvm::ARMInstrInfo::RemoveBranch(), llvm::ARMRegisterInfo::requiresRegisterScavenging(), llvm::ARMInstrInfo::restoreCalleeSavedRegisters(), llvm::X86IntelAsmPrinter::runOnMachineFunction(), llvm::X86ATTAsmPrinter::runOnMachineFunction(), llvm::XCoreInstrInfo::spillCalleeSavedRegisters(), llvm::X86InstrInfo::spillCalleeSavedRegisters(), llvm::ARMInstrInfo::spillCalleeSavedRegisters(), spillsCR(), llvm::PPCInstrInfo::storeRegToAddr(), llvm::ARMInstrInfo::storeRegToAddr(), llvm::PPCInstrInfo::storeRegToStackSlot(), and llvm::ARMInstrInfo::storeRegToStackSlot().

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

Definition at line 157 of file MachineFunction.h.

MachineBasicBlock* llvm::MachineFunction::getBlockNumbered ( unsigned  N  )  [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 166 of file MachineFunction.h.

Referenced by llvm::LiveIntervals::addIntervalsForSpills().

unsigned llvm::MachineFunction::getNumBlockIDs (  )  const [inline]

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.

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

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

void MachineFunction::print ( std::ostream &  OS  )  const

void llvm::MachineFunction::print ( std::ostream *  OS  )  const [inline]

Definition at line 187 of file MachineFunction.h.

References print().

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

References llvm::cerr(), getFunction(), llvm::Intrinsic::getName(), and llvm::ViewGraph().

Referenced by viewCFGOnly().

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

References viewCFG().

void MachineFunction::dump (  )  const

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

Definition at line 242 of file MachineFunction.cpp.

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

MachineFunction & MachineFunction::construct ( const Function *  F,
const TargetMachine &  TM 
) [static]

construct - Allocate and initialize a MachineFunction for a given Function and Target

Definition at line 360 of file MachineFunction.cpp.

References llvm::Annotable::addAnnotation(), llvm::Annotable::getAnnotation(), MachineFunction(), and MF_AID().

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

void MachineFunction::destruct ( const Function *  F  )  [static]

destruct - Destroy the MachineFunction corresponding to a given Function

Definition at line 369 of file MachineFunction.cpp.

References llvm::Annotable::deleteAnnotation(), and MF_AID().

MachineFunction & MachineFunction::get ( const Function *  F  )  [static]

get - Return a handle to a MachineFunction corresponding to the given Function. This should not be called before "construct()" for a given Function.

Definition at line 375 of file MachineFunction.cpp.

References llvm::Annotable::getAnnotation(), and MF_AID().

Referenced by llvm::MachineFunctionPass::runOnFunction().

iterator llvm::MachineFunction::begin (  )  [inline]

const_iterator llvm::MachineFunction::begin (  )  const [inline]

Definition at line 233 of file MachineFunction.h.

iterator llvm::MachineFunction::end (  )  [inline]

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

Definition at line 235 of file MachineFunction.h.

reverse_iterator llvm::MachineFunction::rbegin (  )  [inline]

Definition at line 237 of file MachineFunction.h.

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

Definition at line 238 of file MachineFunction.h.

reverse_iterator llvm::MachineFunction::rend (  )  [inline]

Definition at line 239 of file MachineFunction.h.

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

Definition at line 240 of file MachineFunction.h.

unsigned llvm::MachineFunction::size (  )  const [inline]

Definition at line 242 of file MachineFunction.h.

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

Definition at line 243 of file MachineFunction.h.

Referenced by RenumberBlocks().

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

MachineBasicBlock& llvm::MachineFunction::front (  )  [inline]

Definition at line 245 of file MachineFunction.h.

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

Definition at line 246 of file MachineFunction.h.

MachineBasicBlock& llvm::MachineFunction::back (  )  [inline]

Definition at line 247 of file MachineFunction.h.

void llvm::MachineFunction::push_back ( MachineBasicBlock *  MBB  )  [inline]

void llvm::MachineFunction::push_front ( MachineBasicBlock *  MBB  )  [inline]

Definition at line 250 of file MachineFunction.h.

void llvm::MachineFunction::insert ( iterator  MBBI,
MachineBasicBlock *  MBB 
) [inline]

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

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

Definition at line 258 of file MachineFunction.h.

References MBBI.

Referenced by llvm::MachineBasicBlock::removeFromParent().

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

Definition at line 261 of file MachineFunction.h.

Referenced by llvm::MachineBasicBlock::eraseFromParent().

unsigned llvm::MachineFunction::addToMBBNumbering ( MachineBasicBlock *  MBB  )  [inline]

getNextMBBNumber - Returns the next unique number to be assigned to a MachineBasicBlock in this MachineFunction.

Definition at line 272 of file MachineFunction.h.

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

MachineInstr * MachineFunction::CreateMachineInstr ( const TargetInstrDesc &  TID,
DebugLoc  DL,
bool  NoImp = false 
)

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

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

Definition at line 195 of file MachineFunction.cpp.

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

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 the instruction has no parent, prev, or next.

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

Definition at line 206 of file MachineFunction.cpp.

Referenced by llvm::LiveIntervals::addIntervalsForSpills(), llvm::X86InstrInfo::commuteInstruction(), llvm::X86InstrInfo::reMaterialize(), llvm::TargetInstrInfoImpl::reMaterialize(), and llvm::ARMInstrInfo::reMaterialize().

void MachineFunction::DeleteMachineInstr ( MachineInstr *  MI  ) 

MachineBasicBlock * MachineFunction::CreateMachineBasicBlock ( const BasicBlock *  bb = 0  ) 

void MachineFunction::DeleteMachineBasicBlock ( MachineBasicBlock *  MBB  ) 

DeleteMachineBasicBlock - Delete the given MachineBasicBlock.

Definition at line 236 of file MachineFunction.cpp.

References llvm::MachineBasicBlock::getParent(), and llvm::MachineBasicBlock::~MachineBasicBlock().

unsigned MachineFunction::getOrCreateDebugLocID ( unsigned  Src,
unsigned  Line,
unsigned  Col 
)

getOrCreateDebugLocID - Look up the DebugLocTuple index with the given source file, line, and column. If none currently exists, create add a new new DebugLocTuple and insert it into the DebugIdMap.

getOrCreateDebugLocID - Look up the DebugLocTuple index with the given source file, line, and column. If none currently exists, create add a new new DebugLocTuple and insert it into the DebugIdMap.

Definition at line 385 of file MachineFunction.cpp.

References llvm::DebugLocTracker::DebugIdMap, llvm::DebugLocTracker::DebugLocations, and II.

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


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