LLVM API Documentation

Classes | Public Types | Public Member Functions | Friends
llvm::MachineBasicBlock Class Reference

#include <MachineBasicBlock.h>

Inheritance diagram for llvm::MachineBasicBlock:
Inheritance graph
[legend]
Collaboration diagram for llvm::MachineBasicBlock:
Collaboration graph
[legend]

List of all members.

Classes

class  bundle_iterator

Public Types

enum  LivenessQueryResult { LQR_Live, LQR_OverlappingLive, LQR_Dead, LQR_Unknown }
 Possible outcome of a register liveness query to computeRegisterLiveness() More...
typedef Instructions::iterator instr_iterator
typedef
Instructions::const_iterator 
const_instr_iterator
typedef std::reverse_iterator
< instr_iterator
reverse_instr_iterator
typedef std::reverse_iterator
< const_instr_iterator
const_reverse_instr_iterator
typedef bundle_iterator
< MachineInstr, instr_iterator
iterator
typedef bundle_iterator< const
MachineInstr,
const_instr_iterator
const_iterator
typedef std::reverse_iterator
< const_iterator
const_reverse_iterator
typedef std::reverse_iterator
< iterator
reverse_iterator
typedef std::vector
< MachineBasicBlock * >
::iterator 
pred_iterator
typedef std::vector
< MachineBasicBlock * >
::const_iterator 
const_pred_iterator
typedef std::vector
< MachineBasicBlock * >
::iterator 
succ_iterator
typedef std::vector
< MachineBasicBlock * >
::const_iterator 
const_succ_iterator
typedef std::vector
< MachineBasicBlock * >
::reverse_iterator 
pred_reverse_iterator
typedef std::vector
< MachineBasicBlock * >
::const_reverse_iterator 
const_pred_reverse_iterator
typedef std::vector
< MachineBasicBlock * >
::reverse_iterator 
succ_reverse_iterator
typedef std::vector
< MachineBasicBlock * >
::const_reverse_iterator 
const_succ_reverse_iterator
typedef std::vector< unsigned >
::const_iterator 
livein_iterator

Public Member Functions

const BasicBlockgetBasicBlock () const
StringRef getName () const
std::string getFullName () const
 Return a hopefully unique identifier for this block.
bool hasAddressTaken () const
void setHasAddressTaken ()
const MachineFunctiongetParent () const
MachineFunctiongetParent ()
unsigned size () const
bool empty () const
MachineInstrfront ()
MachineInstrback ()
const MachineInstrfront () const
const MachineInstrback () const
instr_iterator instr_begin ()
const_instr_iterator instr_begin () const
instr_iterator instr_end ()
const_instr_iterator instr_end () const
reverse_instr_iterator instr_rbegin ()
const_reverse_instr_iterator instr_rbegin () const
reverse_instr_iterator instr_rend ()
const_reverse_instr_iterator instr_rend () 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
pred_iterator pred_begin ()
const_pred_iterator pred_begin () const
pred_iterator pred_end ()
const_pred_iterator pred_end () const
pred_reverse_iterator pred_rbegin ()
const_pred_reverse_iterator pred_rbegin () const
pred_reverse_iterator pred_rend ()
const_pred_reverse_iterator pred_rend () const
unsigned pred_size () const
bool pred_empty () const
succ_iterator succ_begin ()
const_succ_iterator succ_begin () const
succ_iterator succ_end ()
const_succ_iterator succ_end () const
succ_reverse_iterator succ_rbegin ()
const_succ_reverse_iterator succ_rbegin () const
succ_reverse_iterator succ_rend ()
const_succ_reverse_iterator succ_rend () const
unsigned succ_size () const
bool succ_empty () const
void addLiveIn (unsigned Reg)
void removeLiveIn (unsigned Reg)
bool isLiveIn (unsigned Reg) const
livein_iterator livein_begin () const
livein_iterator livein_end () const
bool livein_empty () const
unsigned getAlignment () const
void setAlignment (unsigned Align)
bool isLandingPad () const
void setIsLandingPad (bool V=true)
const MachineBasicBlockgetLandingPadSuccessor () const
void moveBefore (MachineBasicBlock *NewAfter)
void moveAfter (MachineBasicBlock *NewBefore)
void updateTerminator ()
void addSuccessor (MachineBasicBlock *succ, uint32_t weight=0)
void removeSuccessor (MachineBasicBlock *succ)
succ_iterator removeSuccessor (succ_iterator I)
void replaceSuccessor (MachineBasicBlock *Old, MachineBasicBlock *New)
void transferSuccessors (MachineBasicBlock *fromMBB)
void transferSuccessorsAndUpdatePHIs (MachineBasicBlock *fromMBB)
bool isPredecessor (const MachineBasicBlock *MBB) const
bool isSuccessor (const MachineBasicBlock *MBB) const
bool isLayoutSuccessor (const MachineBasicBlock *MBB) const
bool canFallThrough ()
iterator getFirstNonPHI ()
iterator SkipPHIsAndLabels (iterator I)
iterator getFirstTerminator ()
const_iterator getFirstTerminator () const
instr_iterator getFirstInstrTerminator ()
iterator getLastNonDebugInstr ()
const_iterator getLastNonDebugInstr () const
MachineBasicBlockSplitCriticalEdge (MachineBasicBlock *Succ, Pass *P)
void pop_front ()
void pop_back ()
void push_back (MachineInstr *MI)
instr_iterator insert (instr_iterator I, MachineInstr *M)
template<typename IT >
void insert (iterator I, IT S, IT E)
 Insert a range of instructions into the instruction list before I.
iterator insert (iterator I, MachineInstr *MI)
 Insert MI into the instruction list before I.
iterator insertAfter (iterator I, MachineInstr *MI)
 Insert MI into the instruction list after I.
instr_iterator erase (instr_iterator I)
instr_iterator erase_instr (MachineInstr *I)
iterator erase (iterator I, iterator E)
 Remove a range of instructions from the instruction list and delete them.
iterator erase (iterator I)
iterator erase (MachineInstr *I)
MachineInstrremove (MachineInstr *I)
MachineInstrremove_instr (MachineInstr *I)
void clear ()
void splice (iterator Where, MachineBasicBlock *Other, iterator From)
void splice (iterator Where, MachineBasicBlock *Other, iterator From, iterator To)
MachineBasicBlockremoveFromParent ()
void eraseFromParent ()
void ReplaceUsesOfBlockWith (MachineBasicBlock *Old, MachineBasicBlock *New)
bool CorrectExtraCFGEdges (MachineBasicBlock *DestA, MachineBasicBlock *DestB, bool isCond)
DebugLoc findDebugLoc (instr_iterator MBBI)
DebugLoc findDebugLoc (iterator MBBI)
LivenessQueryResult computeRegisterLiveness (const TargetRegisterInfo *TRI, unsigned Reg, MachineInstr *MI, unsigned Neighborhood=10)
void dump () const
void print (raw_ostream &OS, SlotIndexes *=0) const
int getNumber () const
void setNumber (int N)
MCSymbolgetSymbol () const

Friends

class MachineFunction
class MachineBranchProbabilityInfo
struct ilist_traits< MachineBasicBlock >

Detailed Description

Definition at line 62 of file MachineBasicBlock.h.


Member Typedef Documentation

Definition at line 206 of file MachineBasicBlock.h.

Definition at line 214 of file MachineBasicBlock.h.

Definition at line 248 of file MachineBasicBlock.h.

Definition at line 254 of file MachineBasicBlock.h.

Definition at line 209 of file MachineBasicBlock.h.

Definition at line 215 of file MachineBasicBlock.h.

Definition at line 250 of file MachineBasicBlock.h.

Definition at line 258 of file MachineBasicBlock.h.

Definition at line 205 of file MachineBasicBlock.h.

Definition at line 212 of file MachineBasicBlock.h.

Definition at line 309 of file MachineBasicBlock.h.

Definition at line 247 of file MachineBasicBlock.h.

Definition at line 252 of file MachineBasicBlock.h.

Definition at line 207 of file MachineBasicBlock.h.

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

Definition at line 216 of file MachineBasicBlock.h.

Definition at line 249 of file MachineBasicBlock.h.

Definition at line 256 of file MachineBasicBlock.h.


Member Enumeration Documentation

Possible outcome of a register liveness query to computeRegisterLiveness()

Enumerator:
LQR_Live 

Register is known to be live.

LQR_OverlappingLive 

Register itself is not live, but some overlapping register is.

LQR_Dead 

Register is known to be dead.

LQR_Unknown 

Register liveness not decidable from local neighborhood.

Definition at line 581 of file MachineBasicBlock.h.


Member Function Documentation

void llvm::MachineBasicBlock::addLiveIn ( unsigned  Reg) [inline]
void MachineBasicBlock::addSuccessor ( MachineBasicBlock succ,
uint32_t  weight = 0 
)
MachineInstr& llvm::MachineBasicBlock::back ( ) [inline]
const MachineInstr& llvm::MachineBasicBlock::back ( ) const [inline]

Definition at line 225 of file MachineBasicBlock.h.

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

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

Definition at line 236 of file MachineBasicBlock.h.

References instr_begin().

Referenced by llvm::LiveVariables::addNewBlock(), llvm::XCoreInstrInfo::AnalyzeBranch(), llvm::AArch64InstrInfo::AnalyzeBranch(), llvm::ARMBaseInstrInfo::AnalyzeBranch(), llvm::NVPTXInstrInfo::AnalyzeBranch(), llvm::SystemZInstrInfo::AnalyzeBranch(), llvm::SparcInstrInfo::AnalyzeBranch(), llvm::MSP430InstrInfo::AnalyzeBranch(), llvm::R600InstrInfo::AnalyzeBranch(), llvm::PPCInstrInfo::AnalyzeBranch(), llvm::MBlazeInstrInfo::AnalyzeBranch(), llvm::X86InstrInfo::AnalyzeBranch(), analyzeFrameIndexes(), bothUsedInPHI(), llvm::PBQPBuilderWithCoalescing::build(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::clone(), ComputeCommonTailLength(), computeRegisterLiveness(), CountTerminators(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::CreateEmptyPHI(), llvm::LexicalScopes::dominates(), llvm::MachineDominatorTree::dominates(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::AArch64TargetLowering::emitAtomicBinary(), llvm::PPCTargetLowering::EmitAtomicBinary(), llvm::AArch64TargetLowering::emitAtomicBinaryMinMax(), llvm::AArch64TargetLowering::emitAtomicCmpSwap(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::HexagonFrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::AArch64TargetLowering::EmitF128CSEL(), emitGPDisp(), llvm::SparcTargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::MachineRegisterInfo::EmitLiveInCopies(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), llvm::AMDGPUAsmPrinter::EmitProgramInfoR600(), llvm::AMDGPUAsmPrinter::EmitProgramInfoSI(), llvm::Mips16FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::HexagonFrameLowering::emitPrologue(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::MBlazeFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::MSP430TargetLowering::EmitShiftInstr(), EmitXBegin(), findDelayInstr(), findFirstPredicateSetterFrom(), findHoistingInsertPosAndDeps(), findInsertLocation(), llvm::findPHICopyInsertPoint(), llvm::RegScavenger::forward(), getBranchDebugLoc(), llvm::X86FrameLowering::getCompactUnwindEncoding(), getFirstTerminator(), GetFunctionSizeInBytes(), llvm::SparcInstrInfo::getGlobalBaseReg(), llvm::MBlazeInstrInfo::getGlobalBaseReg(), llvm::ARMHazardRecognizer::getHazardType(), llvm::SlotIndexes::getIndexBefore(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::getInstrPos(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::getLastDebugLocInBB(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::getLoopBreakInstr(), getRegsUsedByPHIs(), llvm::MachineTraceMetrics::getResources(), llvm::MachineSSAUpdater::GetValueInMiddleOfBlock(), HashEndOfMBB(), INITIALIZE_PASS(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::insertAssignInstrBefore(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::insertInstrBefore(), interruptFrameLayout(), llvm::MachineTraceMetrics::Ensemble::invalidate(), llvm::MipsAsmPrinter::isBlockOnlyReachableByFallthrough(), IsBranchOnlyBlock(), isDelayFiller(), IsEmptyBlock(), isSafeToClobberEFLAGS(), isSplitEdge(), llvm::SplitEditor::leaveIntvAtTop(), llvm::FastISel::leaveLocalValueArea(), LookForIdenticalPHI(), lowerDSPIntr(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), MBBDefinesCTR(), mergeSPUpdates(), mergeSPUpdatesUp(), llvm::ARMBaseInstrInfo::optimizeCompareInstr(), llvm::PPCInstrInfo::optimizeCompareInstr(), ProcessSourceNode(), ProfitableToMerge(), llvm::RegPressureTracker::recede(), llvm::XCoreInstrInfo::RemoveBranch(), llvm::HexagonInstrInfo::RemoveBranch(), llvm::ARMBaseInstrInfo::RemoveBranch(), llvm::SystemZInstrInfo::RemoveBranch(), llvm::NVPTXInstrInfo::RemoveBranch(), llvm::AArch64InstrInfo::RemoveBranch(), llvm::SparcInstrInfo::RemoveBranch(), llvm::MSP430InstrInfo::RemoveBranch(), llvm::R600InstrInfo::RemoveBranch(), llvm::PPCInstrInfo::RemoveBranch(), llvm::MBlazeInstrInfo::RemoveBranch(), llvm::X86InstrInfo::RemoveBranch(), RemoveVRSaveCode(), llvm::SlotIndexes::repairIndexesInRange(), llvm::LiveIntervals::repairIntervalsInRange(), llvm::Thumb2InstrInfo::ReplaceTailWithBranchTo(), llvm::XCoreFrameLowering::restoreCalleeSavedRegisters(), llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::R600EmitClauseMarkersPass::runOnMachineFunction(), llvm::R600ControlFlowFinalizer::runOnMachineFunction(), llvm::SlotIndexes::runOnMachineFunction(), skipFlowControl(), splitBlockAfter(), llvm::FastISel::startNewBlock(), llvm::RegScavenger::unprocess(), verifyCTRBranch(), VerifyPHIs(), and llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::wrapup().

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

Definition at line 237 of file MachineBasicBlock.h.

References instr_begin().

bool MachineBasicBlock::canFallThrough ( )

canFallThrough - Return true if the block can implicitly transfer control to the block after it by falling off the end of it. This should return false if it can reach the block after it, but it uses an explicit branch to do so (e.g., a table jump). True is a conservative answer.

Definition at line 595 of file MachineBasicBlock.cpp.

References llvm::TargetInstrInfo::AnalyzeBranch(), back(), llvm::SmallVectorBase::empty(), empty(), end(), llvm::TargetMachine::getInstrInfo(), getParent(), llvm::MachineFunction::getTarget(), llvm::MachineInstr::isBarrier(), llvm::TargetInstrInfo::isPredicated(), isSuccessor(), and TII.

Referenced by updateTerminator().

void llvm::MachineBasicBlock::clear ( ) [inline]

Definition at line 526 of file MachineBasicBlock.h.

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

MachineBasicBlock::LivenessQueryResult MachineBasicBlock::computeRegisterLiveness ( const TargetRegisterInfo TRI,
unsigned  Reg,
MachineInstr MI,
unsigned  Neighborhood = 10 
)

computeRegisterLiveness - Return whether (physical) register Reg has been <def>ined and not <kill>ed as of just before MI.

Search is localised to a neighborhood of Neighborhood instructions before (searching for defs or kills) and Neighborhood instructions after (searching just for defs) MI.

Reg must be a physical register.

Return whether (physical) register "Reg" has been <def>ined and not <kill>ed as of just before "MI".

Search is localised to a neighborhood of Neighborhood instructions before (searching for defs or kills) and N instructions after (searching just for defs) MI.

Definition at line 1111 of file MachineBasicBlock.cpp.

References Analysis, llvm::MachineOperandIteratorBase::analyzePhysReg(), begin(), llvm::MachineOperandIteratorBase::PhysRegInfo::Clobbers, llvm::MachineOperandIteratorBase::PhysRegInfo::Defines, llvm::MachineOperandIteratorBase::PhysRegInfo::DefinesDead, end(), llvm::MachineInstr::getParent(), I, isLiveIn(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::MachineOperandIteratorBase::PhysRegInfo::Kills, LQR_Dead, LQR_Live, LQR_OverlappingLive, LQR_Unknown, llvm::MachineOperandIteratorBase::PhysRegInfo::Reads, and llvm::MachineOperandIteratorBase::PhysRegInfo::ReadsOverlap.

Referenced by getImplicitSPRUseForDPRUse().

bool MachineBasicBlock::CorrectExtraCFGEdges ( MachineBasicBlock DestA,
MachineBasicBlock DestB,
bool  isCond 
)

CorrectExtraCFGEdges - Various pieces of code can cause excess edges in the CFG to be inserted. If we have proven that MBB can only branch to DestA and DestB, remove any other MBB successors from the CFG. DestA and DestB can be null. Besides DestA and DestB, retain other edges leading to LandingPads (currently there can be only one; we don't check or require that here). Note it is possible that DestA and/or DestB are LandingPads.

Definition at line 1004 of file MachineBasicBlock.cpp.

References llvm::SmallPtrSet< PtrType, SmallSize >::insert(), isLandingPad(), llvm::next(), removeSuccessor(), succ_begin(), and succ_end().

Referenced by llvm::BranchFolder::OptimizeFunction().

void MachineBasicBlock::dump ( ) const

Definition at line 239 of file MachineBasicBlock.cpp.

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

bool llvm::MachineBasicBlock::empty ( ) const [inline]
iterator llvm::MachineBasicBlock::end ( ) [inline]

Definition at line 238 of file MachineBasicBlock.h.

References instr_end().

Referenced by llvm::LiveVariables::addNewBlock(), llvm::ScheduleDAGInstrs::addSchedBarrierDeps(), llvm::MipsSEInstrInfo::adjustStackPtr(), llvm::RegPressureTracker::advance(), llvm::XCoreInstrInfo::AnalyzeBranch(), llvm::ARMBaseInstrInfo::AnalyzeBranch(), llvm::AArch64InstrInfo::AnalyzeBranch(), llvm::SystemZInstrInfo::AnalyzeBranch(), llvm::NVPTXInstrInfo::AnalyzeBranch(), llvm::SparcInstrInfo::AnalyzeBranch(), llvm::MSP430InstrInfo::AnalyzeBranch(), llvm::R600InstrInfo::AnalyzeBranch(), llvm::PPCInstrInfo::AnalyzeBranch(), llvm::MBlazeInstrInfo::AnalyzeBranch(), llvm::X86InstrInfo::AnalyzeBranch(), analyzeFrameIndexes(), llvm::DwarfDebug::beginFunction(), llvm::PBQPBuilderWithCoalescing::build(), llvm::Mips16InstrInfo::BuildAddiuSpImm(), llvm::BuildMI(), canFallThrough(), checkAndUpdateEFLAGSKill(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::clone(), collectDebugValues(), ComputeCommonTailLength(), computeRegisterLiveness(), CountTerminators(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::CreateEmptyPHI(), llvm::LexicalScopes::dominates(), llvm::AArch64TargetLowering::emitAtomicBinary(), llvm::PPCTargetLowering::EmitAtomicBinary(), llvm::AArch64TargetLowering::emitAtomicBinaryMinMax(), llvm::AArch64TargetLowering::emitAtomicCmpSwap(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::HexagonFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::AArch64TargetLowering::EmitF128CSEL(), llvm::HexagonAsmPrinter::EmitInstruction(), llvm::AMDGPUAsmPrinter::EmitInstruction(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::SparcTargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), llvm::AMDGPUAsmPrinter::EmitProgramInfoR600(), llvm::AMDGPUAsmPrinter::EmitProgramInfoSI(), 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::MBlazeFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::MSP430TargetLowering::EmitShiftInstr(), EmitXBegin(), llvm::ScheduleDAGMI::enterRegion(), findDelayInstr(), findHoistingInsertPosAndDeps(), llvm::findPHICopyInsertPoint(), llvm::RegScavenger::forward(), getBranchDebugLoc(), llvm::X86FrameLowering::getCompactUnwindEncoding(), llvm::RegPressureTracker::getCurrSlot(), getFirstTerminator(), GetFunctionSizeInBytes(), llvm::SlotIndexes::getIndexAfter(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::getInstrPos(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::getLastDebugLocInBB(), getLastNonDebugInstr(), llvm::SplitAnalysis::getLastSplitPointIter(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::getLoopBreakInstr(), getRegsUsedByPHIs(), llvm::MachineTraceMetrics::getResources(), llvm::MachineSSAUpdater::GetValueInMiddleOfBlock(), HashEndOfMBB(), INITIALIZE_PASS(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::insertAssignInstrBefore(), llvm::R600InstrInfo::InsertBranch(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::insertInstrBefore(), interruptFrameLayout(), llvm::MachineTraceMetrics::Ensemble::invalidate(), IsBetterFallthrough(), llvm::MipsAsmPrinter::isBlockOnlyReachableByFallthrough(), llvm::AsmPrinter::isBlockOnlyReachableByFallthrough(), IsBranchOnlyBlock(), IsEmptyBlock(), llvm::Thumb2InstrInfo::isLegalToSplitMBBAt(), isSafeToClobberEFLAGS(), llvm::ARMBaseInstrInfo::isSchedulingBoundary(), isSplitEdge(), isSuitableForMask(), llvm::SystemZInstrInfo::loadImmediate(), llvm::Mips16InstrInfo::loadRegFromStack(), llvm::MipsSEInstrInfo::loadRegFromStack(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::XCoreInstrInfo::loadRegFromStackSlot(), llvm::SystemZInstrInfo::loadRegFromStackSlot(), llvm::SparcInstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::PPCInstrInfo::loadRegFromStackSlot(), LookForIdenticalPHI(), lowerDSPIntr(), llvm::Mips16InstrInfo::makeFrame(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), MBBDefinesCTR(), mergeSPUpdates(), mergeSPUpdatesDown(), NoInterveningSideEffect(), llvm::ARMBaseInstrInfo::optimizeCompareInstr(), llvm::PPCInstrInfo::optimizeCompareInstr(), llvm::X86InstrInfo::optimizeCompareInstr(), llvm::FastISel::recomputeInsertPt(), llvm::XCoreInstrInfo::RemoveBranch(), llvm::HexagonInstrInfo::RemoveBranch(), llvm::ARMBaseInstrInfo::RemoveBranch(), llvm::SystemZInstrInfo::RemoveBranch(), llvm::NVPTXInstrInfo::RemoveBranch(), llvm::AArch64InstrInfo::RemoveBranch(), llvm::SparcInstrInfo::RemoveBranch(), llvm::MSP430InstrInfo::RemoveBranch(), llvm::R600InstrInfo::RemoveBranch(), llvm::PPCInstrInfo::RemoveBranch(), llvm::MBlazeInstrInfo::RemoveBranch(), llvm::X86InstrInfo::RemoveBranch(), RemoveVRSaveCode(), llvm::SlotIndexes::repairIndexesInRange(), llvm::LiveIntervals::repairIntervalsInRange(), llvm::TargetInstrInfo::ReplaceTailWithBranchTo(), llvm::SystemZFrameLowering::restoreCalleeSavedRegisters(), llvm::MSP430FrameLowering::restoreCalleeSavedRegisters(), llvm::Mips16InstrInfo::restoreFrame(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::R600EmitClauseMarkersPass::runOnMachineFunction(), llvm::R600ControlFlowFinalizer::runOnMachineFunction(), llvm::SlotIndexes::runOnMachineFunction(), skipFlowControl(), SkipPHIsAndLabels(), llvm::XCoreFrameLowering::spillCalleeSavedRegisters(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::MSP430FrameLowering::spillCalleeSavedRegisters(), splitBlockAfter(), SplitCriticalEdge(), llvm::FastISel::startNewBlock(), llvm::Mips16InstrInfo::storeRegToStack(), llvm::MipsSEInstrInfo::storeRegToStack(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::SystemZInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), verifyCTRBranch(), VerifyPHIs(), and llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::wrapup().

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

Definition at line 239 of file MachineBasicBlock.h.

References instr_end().

instr_iterator llvm::MachineBasicBlock::erase ( instr_iterator  I)

Remove an instruction from the instruction list and delete it.

If the instruction is part of a bundle, the other instructions in the bundle will still be bundled after removing the single instruction.

Referenced by analyzeFrameIndexes(), llvm::Mips16FrameLowering::eliminateCallFramePseudoInstr(), llvm::MipsSEFrameLowering::eliminateCallFramePseudoInstr(), llvm::NVPTXFrameLowering::eliminateCallFramePseudoInstr(), llvm::SparcFrameLowering::eliminateCallFramePseudoInstr(), llvm::MSP430FrameLowering::eliminateCallFramePseudoInstr(), llvm::HexagonFrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::MBlazeFrameLowering::eliminateCallFramePseudoInstr(), llvm::Thumb1FrameLowering::eliminateCallFramePseudoInstr(), llvm::SystemZFrameLowering::eliminateCallFramePseudoInstr(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::AArch64FrameLowering::eliminateCallFramePseudoInstr(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::HexagonFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), erase(), erase_instr(), llvm::Mips16InstrInfo::expandPostRAPseudo(), llvm::MipsSEInstrInfo::expandPostRAPseudo(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerVRSAVERestore(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), mergeSPUpdates(), mergeSPUpdatesDown(), mergeSPUpdatesUp(), llvm::MipsInstrInfo::RemoveBranch(), llvm::TargetInstrInfo::ReplaceTailWithBranchTo(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), and llvm::Thumb1RegisterInfo::rewriteFrameIndex().

iterator llvm::MachineBasicBlock::erase ( iterator  I,
iterator  E 
) [inline]

Remove a range of instructions from the instruction list and delete them.

Definition at line 490 of file MachineBasicBlock.h.

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

iterator llvm::MachineBasicBlock::erase ( iterator  I) [inline]

Remove an instruction or bundle from the instruction list and delete it.

If I points to a bundle of instructions, they are all erased.

Definition at line 497 of file MachineBasicBlock.h.

References erase(), and llvm::next().

iterator llvm::MachineBasicBlock::erase ( MachineInstr I) [inline]

Remove an instruction from the instruction list and delete it.

If I is the head of a bundle of instructions, the whole bundle will be erased.

Definition at line 505 of file MachineBasicBlock.h.

References erase().

instr_iterator llvm::MachineBasicBlock::erase_instr ( MachineInstr I) [inline]

Remove an instruction from the instruction list and delete it.

If the instruction is part of a bundle, the other instructions in the bundle will still be bundled after removing the single instruction.

Definition at line 485 of file MachineBasicBlock.h.

References erase().

void MachineBasicBlock::eraseFromParent ( )

eraseFromParent - This method unlinks 'this' from the containing function and deletes it.

eraseFromParent - This method unlinks 'this' from the containing function, and deletes it.

Definition at line 967 of file MachineBasicBlock.cpp.

References llvm::MachineFunction::erase(), and getParent().

Referenced by llvm::SystemZInstrInfo::AnalyzeBranch(), llvm::SparcInstrInfo::AnalyzeBranch(), llvm::MSP430InstrInfo::AnalyzeBranch(), and llvm::X86InstrInfo::AnalyzeBranch().

DebugLoc llvm::MachineBasicBlock::findDebugLoc ( instr_iterator  MBBI)
DebugLoc llvm::MachineBasicBlock::findDebugLoc ( iterator  MBBI) [inline]

Definition at line 576 of file MachineBasicBlock.h.

References findDebugLoc().

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

Definition at line 224 of file MachineBasicBlock.h.

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

unsigned llvm::MachineBasicBlock::getAlignment ( ) const [inline]

getAlignment - Return alignment of the basic block. The alignment is specified as log2(bytes).

Definition at line 317 of file MachineBasicBlock.h.

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

const BasicBlock* llvm::MachineBasicBlock::getBasicBlock ( ) const [inline]
MachineBasicBlock::instr_iterator MachineBasicBlock::getFirstInstrTerminator ( )

getFirstInstrTerminator - Same getFirstTerminator but it ignores bundles and return an instr_iterator instead.

Definition at line 190 of file MachineBasicBlock.cpp.

References I, instr_begin(), and instr_end().

Referenced by SplitCriticalEdge().

MachineBasicBlock::iterator MachineBasicBlock::getFirstNonPHI ( )

Returns a pointer to the first instructon in this block that is not a PHINode instruction. When adding instruction to the beginning of the basic block, they should be added before the returned value, not before the first instruction, which might be PHI. Returns end() is there's no non-PHI instruction.

Definition at line 150 of file MachineBasicBlock.cpp.

References I, instr_begin(), and instr_end().

Referenced by llvm::ScheduleDAGSDNodes::EmitSchedule(), and llvm::FastISel::recomputeInsertPt().

MachineBasicBlock::iterator MachineBasicBlock::getFirstTerminator ( )
MachineBasicBlock::const_iterator MachineBasicBlock::getFirstTerminator ( ) const

Definition at line 181 of file MachineBasicBlock.cpp.

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

std::string MachineBasicBlock::getFullName ( ) const

Return a hopefully unique identifier for this block.

getFullName - Return a formatted string to identify this block and its parent function.

Definition at line 252 of file MachineBasicBlock.cpp.

References getBasicBlock(), llvm::Value::getName(), llvm::MachineFunction::getName(), getNumber(), and getParent().

Referenced by llvm::ScheduleDAGSDNodes::getDAGName(), llvm::ScheduleDAGInstrs::getDAGName(), and verifyCTRBranch().

const MachineBasicBlock * MachineBasicBlock::getLandingPadSuccessor ( ) const

getLandingPadSuccessor - If this block has a successor that is a landing pad, return it. Otherwise return NULL.

Definition at line 228 of file MachineBasicBlock.cpp.

References I, succ_begin(), succ_end(), and succ_size().

MachineBasicBlock::iterator MachineBasicBlock::getLastNonDebugInstr ( )
MachineBasicBlock::const_iterator MachineBasicBlock::getLastNonDebugInstr ( ) const

Definition at line 214 of file MachineBasicBlock.cpp.

References end(), I, instr_begin(), and instr_end().

StringRef MachineBasicBlock::getName ( ) const

getName - Return the name of the corresponding LLVM basic block, or "(null)".

Definition at line 244 of file MachineBasicBlock.cpp.

References getBasicBlock().

Referenced by getBlockName(), and llvm::VLIWMachineScheduler::schedule().

int llvm::MachineBasicBlock::getNumber ( ) const [inline]

getNumber - MachineBasicBlocks are uniquely numbered at the function level, unless they're not in a MachineFunction yet, in which case this will return -1.

Definition at line 610 of file MachineBasicBlock.h.

Referenced by llvm::LiveVariables::addNewBlock(), llvm::LiveIntervals::checkRegMaskInterference(), CompareMBBNumbers(), emitBasicBlockLoopComments(), llvm::AsmPrinter::EmitBasicBlockStart(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::SplitEditor::enterIntvAtEnd(), getBlockName(), getBlockNum(), llvm::MachineTraceMetrics::Ensemble::getDepthResources(), getFullName(), llvm::MachineTraceMetrics::Ensemble::getHeightResources(), llvm::MachineTraceMetrics::Trace::getInstrSlack(), llvm::SplitAnalysis::getLastSplitPointIter(), llvm::SlotIndexes::getMBBRange(), llvm::DOTGraphTraits< const MachineFunction * >::getNodeLabel(), llvm::MachineTraceMetrics::getResources(), getSymbol(), llvm::MachineTraceMetrics::Ensemble::getTrace(), llvm::LiveVariables::HandleVirtRegUse(), HashMachineInstr(), llvm::po_iterator_storage< LoopBounds, true >::insertEdge(), llvm::LiveIntervals::insertMBBInMaps(), llvm::SlotIndexes::insertMBBInMaps(), llvm::MachineTraceMetrics::Ensemble::invalidate(), llvm::MachineTraceMetrics::invalidate(), llvm::LiveVariables::VarInfo::isLiveIn(), llvm::LiveVariables::isLiveOut(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::isReturnBlock(), llvm::SplitEditor::leaveIntvAtTop(), llvm::LiveVariables::MarkVirtRegAliveInBlock(), llvm::MBB2NumberFunctor::operator()(), llvm::MachineTraceMetrics::TraceBlockInfo::print(), llvm::ARMConstantPoolMBB::print(), llvm::MachineTraceMetrics::Trace::print(), print(), llvm::MachineBranchProbabilityInfo::printEdgeProbability(), PrintParentLoopComment(), ProfitableToMerge(), llvm::LiveVariables::runOnMachineFunction(), llvm::SlotIndexes::runOnMachineFunction(), llvm::VLIWMachineScheduler::schedule(), llvm::LiveRangeCalc::setLiveOutValue(), SplitCriticalEdge(), llvm::SplitEditor::splitRegInBlock(), llvm::SplitEditor::splitRegOutBlock(), llvm::SplitEditor::splitSingleBlock(), llvm::MachineTraceMetrics::Ensemble::verify(), verifyCTRBranch(), VerifyPHIs(), and llvm::WriteAsOperand().

const MachineFunction* llvm::MachineBasicBlock::getParent ( ) const [inline]

getParent - Return the MachineFunction containing this basic block.

Definition at line 137 of file MachineBasicBlock.h.

Referenced by llvm::addFrameReference(), addLiveInRegs(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::AddPHIOperand(), llvm::SITargetLowering::AdjustInstrPostInstrSelection(), BBHasFallthrough(), llvm::BuildMI(), canFallThrough(), canFallThroughTo(), canFoldCopy(), llvm::PPCInstrInfo::canInsertSelect(), llvm::X86InstrInfo::canInsertSelect(), llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::clone(), llvm::PPCInstrInfo::commuteInstruction(), llvm::X86InstrInfo::commuteInstruction(), llvm::TargetInstrInfo::commuteInstruction(), llvm::TargetSchedModel::computeOutputLatency(), concatenateMemOperands(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::MachineFunction::DeleteMachineBasicBlock(), llvm::AArch64FrameLowering::determinePrologueDeath(), llvm::LexicalScopes::dominates(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::NVPTXRegisterInfo::eliminateFrameIndex(), llvm::MBlazeRegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::MipsRegisterInfo::eliminateFrameIndex(), llvm::Thumb1RegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), llvm::AArch64TargetLowering::emitAtomicBinary(), llvm::PPCTargetLowering::EmitAtomicBinary(), llvm::AArch64TargetLowering::emitAtomicBinaryMinMax(), llvm::AArch64TargetLowering::emitAtomicCmpSwap(), emitBlockAfter(), emitComments(), llvm::PPCTargetLowering::emitEHSjLjLongJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::HexagonFrameLowering::emitEpilogue(), llvm::MachineInstr::emitError(), llvm::AArch64TargetLowering::EmitF128CSEL(), llvm::AArch64FrameLowering::emitFrameMemOps(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::SparcTargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::HexagonTargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::NVPTXAsmPrinter::emitLineNumberAsDotLoc(), llvm::Thumb2RegisterInfo::emitLoadConstPool(), llvm::Thumb1RegisterInfo::emitLoadConstPool(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), llvm::ScheduleDAGSDNodes::EmitSchedule(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitThumbRegPlusImmInReg(), EmitXBegin(), llvm::RegScavenger::enterBasicBlock(), eraseFromParent(), llvm::Mips16InstrInfo::expandPostRAPseudo(), llvm::MipsSEInstrInfo::expandPostRAPseudo(), llvm::finalizeBundle(), findDeadCallerSavedReg(), llvm::SelectionDAGBuilder::FindMergedConditions(), llvm::DominatorTreeBase< MachineBasicBlock >::findNearestCommonDominator(), llvm::findPHICopyInsertPoint(), FixTail(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::RegScavenger::forward(), llvm::MachineLoop::getBottomBlock(), llvm::ProfileInfoT< FType, BType >::getExecutionCount(), getFullName(), llvm::MSP430InstrInfo::GetInstSizeInBytes(), llvm::MipsInstrInfo::GetInstSizeInBytes(), llvm::AArch64InstrInfo::getInstSizeInBytes(), llvm::SystemZInstrInfo::getInstSizeInBytes(), llvm::ARMBaseInstrInfo::GetInstSizeInBytes(), llvm::PPCInstrInfo::GetInstSizeInBytes(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::getLoopendBlockBranchInstr(), llvm::MipsInstrInfo::GetMemOperand(), getNextBlock(), llvm::ARMBaseInstrInfo::getOperandLatency(), llvm::MachineFrameInfo::getPristineRegs(), getSymbol(), GetSymbolRef(), llvm::MachineLoop::getTopBlock(), HandleVRSaveUpdate(), llvm::RegScavenger::initRegState(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::insertAssignInstrBefore(), llvm::ARMBaseInstrInfo::InsertBranch(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::insertCompareInstrBefore(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::insertCondBranchBefore(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::insertCondBranchEnd(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::insertInstrBefore(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::insertInstrEnd(), llvm::SlotIndexes::insertMBBInMaps(), llvm::PPCInstrInfo::insertSelect(), llvm::X86InstrInfo::insertSelect(), llvm::ARMBaseInstrInfo::isPredicable(), llvm::X86InstrInfo::isReallyTriviallyReMaterializable(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::HexagonInstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::PPCInstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::loadRegFromStackSlot(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), lowerDSPIntr(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerVRSAVERestore(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), MakeM0Inst(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), moveAfter(), moveBefore(), llvm::PPCRegisterInfo::needsFrameBaseReg(), llvm::ARMBaseRegisterInfo::needsFrameBaseReg(), llvm::PPCInstrInfo::optimizeCompareInstr(), llvm::ARMBaseInstrInfo::optimizeSelect(), llvm::ARMBaseInstrInfo::PredicateInstruction(), llvm::HexagonInstrInfo::PredicateInstruction(), llvm::R600InstrInfo::PredicateInstruction(), llvm::PPCInstrInfo::PredicateInstruction(), llvm::MachineOperand::print(), print(), llvm::MachineInstr::print(), llvm::ARMAsmPrinter::PrintAsmOperand(), llvm::ARMAsmPrinter::printOperand(), llvm::ARMBaseInstrInfo::produceSameValue(), ProfitableToMerge(), llvm::ARMBaseInstrInfo::reMaterialize(), llvm::TargetInstrInfo::reMaterialize(), llvm::X86InstrInfo::reMaterialize(), removeFromParent(), RemoveVRSaveCode(), llvm::Thumb2InstrInfo::ReplaceTailWithBranchTo(), llvm::TargetInstrInfo::ReplaceTailWithBranchTo(), llvm::ARMBaseRegisterInfo::resolveFrameIndex(), llvm::XCoreFrameLowering::restoreCalleeSavedRegisters(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), llvm::ARMFrameLowering::restoreCalleeSavedRegisters(), llvm::SystemZFrameLowering::restoreCalleeSavedRegisters(), llvm::HexagonFrameLowering::restoreCalleeSavedRegisters(), llvm::MSP430FrameLowering::restoreCalleeSavedRegisters(), llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), llvm::X86FrameLowering::restoreCalleeSavedRegisters(), restoreCRs(), llvm::rewriteA64FrameIndex(), llvm::Thumb1RegisterInfo::rewriteFrameIndex(), llvm::rewriteT2FrameIndex(), llvm::SystemZRegisterInfo::saveScavengerRegister(), llvm::VLIWMachineScheduler::schedule(), llvm::ProfileInfoT< FType, BType >::setExecutionCount(), llvm::ARMBaseInstrInfo::setExecutionDomain(), llvm::MachineOperand::setIsDef(), llvm::MachineOperand::setReg(), llvm::CoalescerPair::setRegisters(), llvm::XCoreFrameLowering::spillCalleeSavedRegisters(), llvm::Mips16FrameLowering::spillCalleeSavedRegisters(), llvm::HexagonFrameLowering::spillCalleeSavedRegisters(), llvm::MipsSEFrameLowering::spillCalleeSavedRegisters(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::ARMFrameLowering::spillCalleeSavedRegisters(), llvm::MSP430FrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), SplitCriticalEdge(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::PPCInstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), UpdatePredRedefs(), updateTerminator(), llvm::R600InstrInfo::usesTextureCache(), llvm::R600InstrInfo::usesVertexCache(), verifyCTRBranch(), and llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::wrapup().

MachineFunction* llvm::MachineBasicBlock::getParent ( ) [inline]

Definition at line 138 of file MachineBasicBlock.h.

MCSymbol * MachineBasicBlock::getSymbol ( ) const
bool llvm::MachineBasicBlock::hasAddressTaken ( ) const [inline]

hasAddressTaken - Test whether this block is potentially the target of an indirect branch.

Definition at line 129 of file MachineBasicBlock.h.

Referenced by llvm::AsmPrinter::EmitBasicBlockStart(), llvm::HexagonAsmPrinter::isBlockOnlyReachableByFallthrough(), and print().

instr_iterator llvm::MachineBasicBlock::insert ( instr_iterator  I,
MachineInstr M 
)

Insert MI into the instruction list before I, possibly inside a bundle.

If the insertion point is inside a bundle, MI will be added to the bundle, otherwise MI will not be added to any bundle. That means this function alone can't be used to prepend or append instructions to bundles. See MIBundleBuilder::insert() for a more reliable way of doing that.

Referenced by llvm::BuildMI(), llvm::MSP430FrameLowering::eliminateCallFramePseudoInstr(), llvm::MBlazeFrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::X86FrameLowering::emitPrologue(), llvm::ScheduleDAGSDNodes::EmitSchedule(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::MIBundleBuilder::insert(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::insertAssignInstrBefore(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::insertCompareInstrBefore(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::insertCondBranchBefore(), llvmCFGStruct::CFGStructTraits< AMDGPUCFGStructurizer >::insertInstrBefore(), llvm::PPCInstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::optimizeCompareInstr(), ProcessSDDbgValues(), llvm::ARMBaseInstrInfo::reMaterialize(), llvm::TargetInstrInfo::reMaterialize(), llvm::X86InstrInfo::reMaterialize(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), restoreCRs(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), and llvm::PPCInstrInfo::storeRegToStackSlot().

template<typename IT >
void llvm::MachineBasicBlock::insert ( iterator  I,
IT  S,
IT  E 
) [inline]

Insert a range of instructions into the instruction list before I.

Definition at line 457 of file MachineBasicBlock.h.

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

iterator llvm::MachineBasicBlock::insert ( iterator  I,
MachineInstr MI 
) [inline]

Insert MI into the instruction list before I.

Definition at line 462 of file MachineBasicBlock.h.

References llvm::ilist< NodeTy >::insert(), llvm::MachineInstr::isBundledWithPred(), llvm::MachineInstr::isBundledWithSucc(), and llvm::A64CC::MI.

iterator llvm::MachineBasicBlock::insertAfter ( iterator  I,
MachineInstr MI 
) [inline]
instr_iterator llvm::MachineBasicBlock::instr_begin ( ) [inline]
const_instr_iterator llvm::MachineBasicBlock::instr_begin ( ) const [inline]

Definition at line 228 of file MachineBasicBlock.h.

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

instr_iterator llvm::MachineBasicBlock::instr_end ( ) [inline]
const_instr_iterator llvm::MachineBasicBlock::instr_end ( ) const [inline]

Definition at line 230 of file MachineBasicBlock.h.

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

reverse_instr_iterator llvm::MachineBasicBlock::instr_rbegin ( ) [inline]

Definition at line 231 of file MachineBasicBlock.h.

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

Referenced by rbegin().

const_reverse_instr_iterator llvm::MachineBasicBlock::instr_rbegin ( ) const [inline]

Definition at line 232 of file MachineBasicBlock.h.

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

reverse_instr_iterator llvm::MachineBasicBlock::instr_rend ( ) [inline]

Definition at line 233 of file MachineBasicBlock.h.

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

Referenced by rend().

const_reverse_instr_iterator llvm::MachineBasicBlock::instr_rend ( ) const [inline]

Definition at line 234 of file MachineBasicBlock.h.

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

bool llvm::MachineBasicBlock::isLandingPad ( ) const [inline]

isLandingPad - Returns true if the block is a landing pad. That is this basic block is entered via an exception handler.

Definition at line 326 of file MachineBasicBlock.h.

Referenced by CorrectExtraCFGEdges(), llvm::findPHICopyInsertPoint(), llvm::MipsAsmPrinter::isBlockOnlyReachableByFallthrough(), llvm::AsmPrinter::isBlockOnlyReachableByFallthrough(), print(), llvm::LiveVariables::runOnMachineFunction(), and SplitCriticalEdge().

bool MachineBasicBlock::isLayoutSuccessor ( const MachineBasicBlock MBB) const

isLayoutSuccessor - Return true if the specified MBB will be emitted immediately after this block, such that if this block exits by falling through, control will transfer to the specified MBB. Note that MBB need not be a successor at all, for example if this block ends with an unconditional branch to some other block.

Definition at line 590 of file MachineBasicBlock.cpp.

References I, and llvm::next().

Referenced by llvm::HexagonInstrInfo::AnalyzeBranch(), llvm::SystemZInstrInfo::AnalyzeBranch(), llvm::SparcInstrInfo::AnalyzeBranch(), llvm::MSP430InstrInfo::AnalyzeBranch(), llvm::X86InstrInfo::AnalyzeBranch(), llvm::FastISel::FastEmitBranch(), llvm::MipsAsmPrinter::isBlockOnlyReachableByFallthrough(), llvm::AsmPrinter::isBlockOnlyReachableByFallthrough(), ProfitableToMerge(), SplitCriticalEdge(), and updateTerminator().

bool MachineBasicBlock::isLiveIn ( unsigned  Reg) const

isLiveIn - Return true if the specified register is in the live in set.

Definition at line 339 of file MachineBasicBlock.cpp.

References I, livein_begin(), and livein_end().

Referenced by addLiveInRegs(), addSavedGPR(), checkAndUpdateEFLAGSKill(), computeRegisterLiveness(), llvm::MipsSEFrameLowering::emitPrologue(), and isSafeToClobberEFLAGS().

bool MachineBasicBlock::isPredecessor ( const MachineBasicBlock MBB) const

isPredecessor - Return true if the specified MBB is a predecessor of this block.

Definition at line 582 of file MachineBasicBlock.cpp.

References pred_begin(), and pred_end().

Referenced by llvm::MachineTraceMetrics::Ensemble::invalidate(), and llvm::MachineTraceMetrics::Ensemble::verify().

bool MachineBasicBlock::isSuccessor ( const MachineBasicBlock MBB) const

isSuccessor - Return true if the specified MBB is a successor of this block.

Definition at line 586 of file MachineBasicBlock.cpp.

References succ_begin(), and succ_end().

Referenced by canFallThrough(), llvm::MachineTraceMetrics::Ensemble::invalidate(), IsBetterFallthrough(), and llvm::MachineTraceMetrics::Ensemble::verify().

livein_iterator llvm::MachineBasicBlock::livein_begin ( ) const [inline]
bool llvm::MachineBasicBlock::livein_empty ( ) const [inline]

Definition at line 312 of file MachineBasicBlock.h.

Referenced by print().

livein_iterator llvm::MachineBasicBlock::livein_end ( ) const [inline]
void MachineBasicBlock::moveAfter ( MachineBasicBlock NewBefore)

Definition at line 348 of file MachineBasicBlock.cpp.

References getParent(), and llvm::MachineFunction::splice().

void MachineBasicBlock::moveBefore ( MachineBasicBlock NewAfter)

moveBefore/moveAfter - move 'this' block before or after the specified block. This only moves the block, it does not modify the CFG or adjust potential fall-throughs at the end of the block.

Definition at line 344 of file MachineBasicBlock.cpp.

References getParent(), and llvm::MachineFunction::splice().

void llvm::MachineBasicBlock::pop_back ( ) [inline]

Definition at line 444 of file MachineBasicBlock.h.

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

void llvm::MachineBasicBlock::pop_front ( ) [inline]

Definition at line 443 of file MachineBasicBlock.h.

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

pred_iterator llvm::MachineBasicBlock::pred_begin ( ) [inline]
const_pred_iterator llvm::MachineBasicBlock::pred_begin ( ) const [inline]

Definition at line 261 of file MachineBasicBlock.h.

bool llvm::MachineBasicBlock::pred_empty ( ) const [inline]
pred_iterator llvm::MachineBasicBlock::pred_end ( ) [inline]
const_pred_iterator llvm::MachineBasicBlock::pred_end ( ) const [inline]

Definition at line 263 of file MachineBasicBlock.h.

pred_reverse_iterator llvm::MachineBasicBlock::pred_rbegin ( ) [inline]

Definition at line 264 of file MachineBasicBlock.h.

Referenced by llvm::LiveVariables::MarkVirtRegAliveInBlock().

const_pred_reverse_iterator llvm::MachineBasicBlock::pred_rbegin ( ) const [inline]

Definition at line 266 of file MachineBasicBlock.h.

pred_reverse_iterator llvm::MachineBasicBlock::pred_rend ( ) [inline]

Definition at line 268 of file MachineBasicBlock.h.

Referenced by llvm::LiveVariables::MarkVirtRegAliveInBlock().

const_pred_reverse_iterator llvm::MachineBasicBlock::pred_rend ( ) const [inline]

Definition at line 270 of file MachineBasicBlock.h.

unsigned llvm::MachineBasicBlock::pred_size ( ) const [inline]
void MachineBasicBlock::print ( raw_ostream OS,
SlotIndexes Indexes = 0 
) const
void llvm::MachineBasicBlock::push_back ( MachineInstr MI) [inline]
reverse_iterator llvm::MachineBasicBlock::rbegin ( ) [inline]
const_reverse_iterator llvm::MachineBasicBlock::rbegin ( ) const [inline]

Definition at line 241 of file MachineBasicBlock.h.

References instr_rbegin().

MachineInstr* llvm::MachineBasicBlock::remove ( MachineInstr I) [inline]

Remove the unbundled instruction from the instruction list without deleting it.

This function can not be used to remove bundled instructions, use remove_instr to remove individual instructions from a bundle.

Definition at line 514 of file MachineBasicBlock.h.

References I, and llvm::iplist< NodeTy, Traits >::remove().

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

MachineInstr * MachineBasicBlock::remove_instr ( MachineInstr I)

Remove the possibly bundled instruction from the instruction list without deleting it.

If the instruction is part of a bundle, the other instructions in the bundle will still be bundled after removing the single instruction.

Definition at line 937 of file MachineBasicBlock.cpp.

References llvm::MachineInstr::BundledPred, llvm::MachineInstr::BundledSucc, llvm::MachineInstr::clearFlag(), llvm::iplist< NodeTy, Traits >::remove(), and unbundleSingleMI().

MachineBasicBlock * MachineBasicBlock::removeFromParent ( )

removeFromParent - This method unlinks 'this' from the containing function, and returns it, but does not delete it.

Definition at line 958 of file MachineBasicBlock.cpp.

References getParent(), and llvm::MachineFunction::remove().

void MachineBasicBlock::removeLiveIn ( unsigned  Reg)

removeLiveIn - Remove the specified register from the live in set.

Definition at line 332 of file MachineBasicBlock.cpp.

References I.

Referenced by emitGPDisp().

void MachineBasicBlock::removeSuccessor ( MachineBasicBlock succ)

removeSuccessor - Remove successor from the successors list of this MachineBasicBlock. The Predecessors list of succ is automatically updated.

Definition at line 463 of file MachineBasicBlock.cpp.

References I.

Referenced by CorrectExtraCFGEdges(), llvm::TargetInstrInfo::ReplaceTailWithBranchTo(), transferSuccessors(), and transferSuccessorsAndUpdatePHIs().

MachineBasicBlock::succ_iterator MachineBasicBlock::removeSuccessor ( succ_iterator  I)

removeSuccessor - Remove specified successor from the successors list of this MachineBasicBlock. The Predecessors list of succ is automatically updated. Return the iterator to the element after the one removed.

Definition at line 478 of file MachineBasicBlock.cpp.

reverse_iterator llvm::MachineBasicBlock::rend ( ) [inline]
const_reverse_iterator llvm::MachineBasicBlock::rend ( ) const [inline]

Definition at line 243 of file MachineBasicBlock.h.

References instr_rend().

void MachineBasicBlock::replaceSuccessor ( MachineBasicBlock Old,
MachineBasicBlock New 
)

replaceSuccessor - Replace successor OLD with NEW and update weight info.

Definition at line 491 of file MachineBasicBlock.cpp.

References I, succ_begin(), and succ_end().

Referenced by ReplaceUsesOfBlockWith().

void MachineBasicBlock::ReplaceUsesOfBlockWith ( MachineBasicBlock Old,
MachineBasicBlock New 
)

ReplaceUsesOfBlockWith - Given a machine basic block that branched to 'Old', change the code and CFG so that it branches to 'New' instead.

Definition at line 975 of file MachineBasicBlock.cpp.

References I, instr_begin(), instr_end(), and replaceSuccessor().

Referenced by SplitCriticalEdge().

void llvm::MachineBasicBlock::setAlignment ( unsigned  Align) [inline]

setAlignment - Set alignment of the basic block. The alignment is specified as log2(bytes).

Definition at line 322 of file MachineBasicBlock.h.

References Align().

void llvm::MachineBasicBlock::setHasAddressTaken ( ) [inline]

setHasAddressTaken - Set this block to reflect that it potentially is the target of an indirect branch.

Definition at line 133 of file MachineBasicBlock.h.

Referenced by llvm::HexagonTargetLowering::LowerBR_JT(), and llvm::FunctionLoweringInfo::set().

void llvm::MachineBasicBlock::setIsLandingPad ( bool  V = true) [inline]

setIsLandingPad - Indicates the block is a landing pad. That is this basic block is entered via an exception handler.

Definition at line 330 of file MachineBasicBlock.h.

void llvm::MachineBasicBlock::setNumber ( int  N) [inline]

Definition at line 611 of file MachineBasicBlock.h.

unsigned llvm::MachineBasicBlock::size ( ) const [inline]
MachineBasicBlock::iterator MachineBasicBlock::SkipPHIsAndLabels ( MachineBasicBlock::iterator  I)

SkipPHIsAndLabels - Return the first instruction in MBB after I that is not a PHI or a label. This is the correct point to insert copies at the beginning of a basic block.

Definition at line 160 of file MachineBasicBlock.cpp.

References end(), and I.

Referenced by findInsertLocation(), llvm::findPHICopyInsertPoint(), and llvm::SplitEditor::leaveIntvAtTop().

void llvm::MachineBasicBlock::splice ( iterator  Where,
MachineBasicBlock Other,
iterator  From 
) [inline]
void llvm::MachineBasicBlock::splice ( iterator  Where,
MachineBasicBlock Other,
iterator  From,
iterator  To 
) [inline]

Take a block of instructions from MBB 'Other' in the range [From, To), and insert them into this MBB right before 'Where'.

The instruction at 'Where' must not be included in the range of instructions to move.

Definition at line 545 of file MachineBasicBlock.h.

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

MachineBasicBlock * MachineBasicBlock::SplitCriticalEdge ( MachineBasicBlock Succ,
Pass P 
)

SplitCriticalEdge - Split the critical edge from this block to the given successor block, and return the newly created block, or null if splitting is not possible.

This function updates LiveVariables, MachineDominatorTree, and MachineLoopInfo, as applicable.

Definition at line 638 of file MachineBasicBlock.cpp.

References addLiveIn(), llvm::LiveVariables::addNewBlock(), llvm::LiveInterval::addRange(), addSuccessor(), llvm::TargetInstrInfo::AnalyzeBranch(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::SmallVectorImpl< T >::clear(), llvm::SmallSet< T, N, C >::count(), llvm::MachineFunction::CreateMachineBasicBlock(), llvm::dbgs(), DEBUG, llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::SmallVectorTemplateCommon< T >::end(), end(), llvm::MachineFunction::end(), llvm::Pass::getAnalysisIfAvailable(), getFirstInstrTerminator(), getFirstTerminator(), llvm::TargetMachine::getInstrInfo(), getNumber(), llvm::MachineRegisterInfo::getNumVirtRegs(), getParent(), llvm::SlotIndex::getPrevSlot(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::TargetMachine::getRegisterInfo(), llvm::MachineFunction::getTarget(), llvm::LiveVariables::getVarInfo(), llvm::LiveInterval::getVNInfoAt(), I, llvm::TargetRegisterInfo::index2VirtReg(), llvm::SmallSet< T, N, C >::insert(), llvm::MachineFunction::insert(), llvm::TargetInstrInfo::InsertBranch(), llvm::SlotIndexes::insertMBBInMaps(), instr_begin(), instr_end(), isLandingPad(), isLayoutSuccessor(), llvm::TargetRegisterInfo::isPhysicalRegister(), llvm::MachineOperand::isUndef(), llvm::TargetRegisterInfo::isVirtualRegister(), LI, llvm::LiveInterval::liveAt(), livein_begin(), livein_end(), llvm::next(), llvm::MachineInstr::operands_begin(), llvm::MachineInstr::operands_end(), pred_begin(), pred_end(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::LiveInterval::removeRange(), ReplaceUsesOfBlockWith(), TII, and updateTerminator().

succ_iterator llvm::MachineBasicBlock::succ_begin ( ) [inline]
const_succ_iterator llvm::MachineBasicBlock::succ_begin ( ) const [inline]

Definition at line 277 of file MachineBasicBlock.h.

bool llvm::MachineBasicBlock::succ_empty ( ) const [inline]
succ_iterator llvm::MachineBasicBlock::succ_end ( ) [inline]
const_succ_iterator llvm::MachineBasicBlock::succ_end ( ) const [inline]

Definition at line 279 of file MachineBasicBlock.h.

succ_reverse_iterator llvm::MachineBasicBlock::succ_rbegin ( ) [inline]

Definition at line 280 of file MachineBasicBlock.h.

const_succ_reverse_iterator llvm::MachineBasicBlock::succ_rbegin ( ) const [inline]

Definition at line 282 of file MachineBasicBlock.h.

succ_reverse_iterator llvm::MachineBasicBlock::succ_rend ( ) [inline]

Definition at line 284 of file MachineBasicBlock.h.

const_succ_reverse_iterator llvm::MachineBasicBlock::succ_rend ( ) const [inline]

Definition at line 286 of file MachineBasicBlock.h.

unsigned llvm::MachineBasicBlock::succ_size ( ) const [inline]
void MachineBasicBlock::transferSuccessors ( MachineBasicBlock fromMBB)

transferSuccessors - Transfers all the successors from MBB to this machine basic block (i.e., copies all the successors fromMBB and remove all the successors from fromMBB).

Definition at line 541 of file MachineBasicBlock.cpp.

References addSuccessor(), removeSuccessor(), succ_begin(), and succ_empty().

void MachineBasicBlock::transferSuccessorsAndUpdatePHIs ( MachineBasicBlock fromMBB)
void MachineBasicBlock::updateTerminator ( )

updateTerminator - Update the terminator instructions in block to account for changes to the layout. If the block previously used a fallthrough, it may now need a branch, and if it previously used branching it may now be able to use a fallthrough.

Definition at line 353 of file MachineBasicBlock.cpp.

References llvm::TargetInstrInfo::AnalyzeBranch(), canFallThrough(), llvm::SmallVectorImpl< T >::clear(), llvm::SmallVectorBase::empty(), llvm::TargetMachine::getInstrInfo(), getParent(), llvm::MachineFunction::getTarget(), llvm::TargetInstrInfo::InsertBranch(), isLayoutSuccessor(), llvm::TargetInstrInfo::RemoveBranch(), llvm::TargetInstrInfo::ReverseBranchCondition(), succ_begin(), succ_empty(), succ_end(), and TII.

Referenced by SplitCriticalEdge().


Friends And Related Function Documentation

friend struct ilist_traits< MachineBasicBlock > [friend]

Definition at line 633 of file MachineBasicBlock.h.

friend class MachineBranchProbabilityInfo [friend]

Definition at line 624 of file MachineBasicBlock.h.

friend class MachineFunction [friend]

Definition at line 110 of file MachineBasicBlock.h.


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