LLVM 18.0.0git
|
SlotIndexes pass. More...
#include "llvm/CodeGen/SlotIndexes.h"
Public Types | |
using | MBBIndexIterator = SmallVectorImpl< IdxMBBPair >::const_iterator |
Iterator over the idx2MBBMap (sorted pairs of slot index of basic block begin and basic block) | |
Public Member Functions | |
SlotIndexes () | |
~SlotIndexes () override | |
void | getAnalysisUsage (AnalysisUsage &au) const override |
getAnalysisUsage - Subclasses that override getAnalysisUsage must call this. | |
void | releaseMemory () override |
releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memory when it is no longer needed. | |
bool | runOnMachineFunction (MachineFunction &fn) override |
runOnMachineFunction - This method must be overloaded to perform the desired machine code transformation or analysis. | |
void | dump () const |
Dump the indexes. | |
void | repairIndexesInRange (MachineBasicBlock *MBB, MachineBasicBlock::iterator Begin, MachineBasicBlock::iterator End) |
Repair indexes after adding and removing instructions. | |
SlotIndex | getZeroIndex () |
Returns the zero index for this analysis. | |
SlotIndex | getLastIndex () |
Returns the base index of the last slot in this analysis. | |
bool | hasIndex (const MachineInstr &instr) const |
Returns true if the given machine instr is mapped to an index, otherwise returns false. | |
SlotIndex | getInstructionIndex (const MachineInstr &MI, bool IgnoreBundle=false) const |
Returns the base index for the given instruction. | |
MachineInstr * | getInstructionFromIndex (SlotIndex index) const |
Returns the instruction for the given index, or null if the given index has no instruction associated with it. | |
SlotIndex | getNextNonNullIndex (SlotIndex Index) |
Returns the next non-null index, if one exists. | |
SlotIndex | getIndexBefore (const MachineInstr &MI) const |
getIndexBefore - Returns the index of the last indexed instruction before MI, or the start index of its basic block. | |
SlotIndex | getIndexAfter (const MachineInstr &MI) const |
getIndexAfter - Returns the index of the first indexed instruction after MI, or the end index of its basic block. | |
const std::pair< SlotIndex, SlotIndex > & | getMBBRange (unsigned Num) const |
Return the (start,end) range of the given basic block number. | |
const std::pair< SlotIndex, SlotIndex > & | getMBBRange (const MachineBasicBlock *MBB) const |
Return the (start,end) range of the given basic block. | |
SlotIndex | getMBBStartIdx (unsigned Num) const |
Returns the first index in the given basic block number. | |
SlotIndex | getMBBStartIdx (const MachineBasicBlock *mbb) const |
Returns the first index in the given basic block. | |
SlotIndex | getMBBEndIdx (unsigned Num) const |
Returns the last index in the given basic block number. | |
SlotIndex | getMBBEndIdx (const MachineBasicBlock *mbb) const |
Returns the last index in the given basic block. | |
MBBIndexIterator | getMBBLowerBound (MBBIndexIterator Start, SlotIndex Idx) const |
Get an iterator pointing to the first IdxMBBPair with SlotIndex greater than or equal to Idx . | |
MBBIndexIterator | getMBBLowerBound (SlotIndex Idx) const |
MBBIndexIterator | getMBBUpperBound (SlotIndex Idx) const |
Get an iterator pointing to the first IdxMBBPair with SlotIndex greater than Idx . | |
MBBIndexIterator | MBBIndexBegin () const |
Returns an iterator for the begin of the idx2MBBMap. | |
MBBIndexIterator | MBBIndexEnd () const |
Return an iterator for the end of the idx2MBBMap. | |
MachineBasicBlock * | getMBBFromIndex (SlotIndex index) const |
Returns the basic block which the given index falls in. | |
SlotIndex | insertMachineInstrInMaps (MachineInstr &MI, bool Late=false) |
Insert the given machine instruction into the mapping. | |
void | removeMachineInstrFromMaps (MachineInstr &MI, bool AllowBundled=false) |
Removes machine instruction (bundle) MI from the mapping. | |
void | removeSingleMachineInstrFromMaps (MachineInstr &MI) |
Removes a single machine instruction MI from the mapping. | |
SlotIndex | replaceMachineInstrInMaps (MachineInstr &MI, MachineInstr &NewMI) |
ReplaceMachineInstrInMaps - Replacing a machine instr with a new one in maps used by register allocator. | |
void | insertMBBInMaps (MachineBasicBlock *mbb) |
Add the given MachineBasicBlock into the maps. | |
void | packIndexes () |
Renumber all indexes using the default instruction distance. | |
![]() | |
bool | doInitialization (Module &) override |
doInitialization - Virtual method overridden by subclasses to do any necessary initialization before any pass is run. | |
![]() | |
FunctionPass (char &pid) | |
Pass * | createPrinterPass (raw_ostream &OS, const std::string &Banner) const override |
createPrinterPass - Get a function printer pass. | |
virtual bool | runOnFunction (Function &F)=0 |
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass. | |
void | assignPassManager (PMStack &PMS, PassManagerType T) override |
Find appropriate Function Pass Manager or Call Graph Pass Manager in the PM Stack and add self into that manager. | |
PassManagerType | getPotentialPassManagerType () const override |
Return what kind of Pass Manager can manage this pass. | |
![]() | |
Pass (PassKind K, char &pid) | |
Pass (const Pass &)=delete | |
Pass & | operator= (const Pass &)=delete |
virtual | ~Pass () |
PassKind | getPassKind () const |
virtual StringRef | getPassName () const |
getPassName - Return a nice clean name for a pass. | |
AnalysisID | getPassID () const |
getPassID - Return the PassID number that corresponds to this pass. | |
virtual bool | doInitialization (Module &) |
doInitialization - Virtual method overridden by subclasses to do any necessary initialization before any pass is run. | |
virtual bool | doFinalization (Module &) |
doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes have run. | |
virtual void | print (raw_ostream &OS, const Module *M) const |
print - Print out the internal state of the pass. | |
void | dump () const |
virtual Pass * | createPrinterPass (raw_ostream &OS, const std::string &Banner) const =0 |
createPrinterPass - Get a Pass appropriate to print the IR this pass operates on (Module, Function or MachineFunction). | |
virtual void | assignPassManager (PMStack &, PassManagerType) |
Each pass is responsible for assigning a pass manager to itself. | |
virtual void | preparePassManager (PMStack &) |
Check if available pass managers are suitable for this pass or not. | |
virtual PassManagerType | getPotentialPassManagerType () const |
Return what kind of Pass Manager can manage this pass. | |
void | setResolver (AnalysisResolver *AR) |
AnalysisResolver * | getResolver () const |
virtual void | getAnalysisUsage (AnalysisUsage &) const |
getAnalysisUsage - This function should be overriden by passes that need analysis information to do their job. | |
virtual void | releaseMemory () |
releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memory when it is no longer needed. | |
virtual void * | getAdjustedAnalysisPointer (AnalysisID ID) |
getAdjustedAnalysisPointer - This method is used when a pass implements an analysis interface through multiple inheritance. | |
virtual ImmutablePass * | getAsImmutablePass () |
virtual PMDataManager * | getAsPMDataManager () |
virtual void | verifyAnalysis () const |
verifyAnalysis() - This member can be implemented by a analysis pass to check state of analysis information. | |
virtual void | dumpPassStructure (unsigned Offset=0) |
template<typename AnalysisType > | |
AnalysisType * | getAnalysisIfAvailable () const |
getAnalysisIfAvailable<AnalysisType>() - Subclasses use this function to get analysis information that might be around, for example to update it. | |
bool | mustPreserveAnalysisID (char &AID) const |
mustPreserveAnalysisID - This method serves the same function as getAnalysisIfAvailable, but works if you just have an AnalysisID. | |
template<typename AnalysisType > | |
AnalysisType & | getAnalysis () const |
getAnalysis<AnalysisType>() - This function is used by subclasses to get to the analysis information that they claim to use by overriding the getAnalysisUsage function. | |
template<typename AnalysisType > | |
AnalysisType & | getAnalysis (Function &F, bool *Changed=nullptr) |
getAnalysis<AnalysisType>() - This function is used by subclasses to get to the analysis information that they claim to use by overriding the getAnalysisUsage function. | |
template<typename AnalysisType > | |
AnalysisType & | getAnalysisID (AnalysisID PI) const |
template<typename AnalysisType > | |
AnalysisType & | getAnalysisID (AnalysisID PI, Function &F, bool *Changed=nullptr) |
Static Public Attributes | |
static char | ID = 0 |
Additional Inherited Members | |
![]() | |
static const PassInfo * | lookupPassInfo (const void *TI) |
static const PassInfo * | lookupPassInfo (StringRef Arg) |
static Pass * | createPass (AnalysisID ID) |
![]() | |
MachineFunctionPass (char &ID) | |
virtual bool | runOnMachineFunction (MachineFunction &MF)=0 |
runOnMachineFunction - This method must be overloaded to perform the desired machine code transformation or analysis. | |
void | getAnalysisUsage (AnalysisUsage &AU) const override |
getAnalysisUsage - Subclasses that override getAnalysisUsage must call this. | |
virtual MachineFunctionProperties | getRequiredProperties () const |
virtual MachineFunctionProperties | getSetProperties () const |
virtual MachineFunctionProperties | getClearedProperties () const |
![]() | |
bool | skipFunction (const Function &F) const |
Optional passes call this function to check whether the pass should be skipped. | |
SlotIndexes pass.
This pass assigns indexes to each instruction.
Definition at line 300 of file SlotIndexes.h.
Iterator over the idx2MBBMap (sorted pairs of slot index of basic block begin and basic block)
Definition at line 473 of file SlotIndexes.h.
SlotIndexes::SlotIndexes | ( | ) |
Definition at line 23 of file SlotIndexes.cpp.
References llvm::PassRegistry::getPassRegistry(), and llvm::initializeSlotIndexesPass().
|
override |
Definition at line 27 of file SlotIndexes.cpp.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::clearAndLeakNodesUnsafely().
LLVM_DUMP_METHOD void SlotIndexes::dump | ( | ) | const |
|
overridevirtual |
getAnalysisUsage - Subclasses that override getAnalysisUsage must call this.
For MachineFunctionPasses, calling AU.preservesCFG() indicates that the pass does not modify the MachineBasicBlock CFG.
Reimplemented from llvm::MachineFunctionPass.
Definition at line 37 of file SlotIndexes.cpp.
References llvm::MachineFunctionPass::getAnalysisUsage().
|
inline |
getIndexAfter - Returns the index of the first indexed instruction after MI, or the end index of its basic block.
MI is not required to have an index.
Definition at line 425 of file SlotIndexes.h.
References assert(), E, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), getMBBEndIdx(), I, MBB, and MI.
Referenced by insertMachineInstrInMaps().
|
inline |
getIndexBefore - Returns the index of the last indexed instruction before MI, or the start index of its basic block.
MI is not required to have an index.
Definition at line 408 of file SlotIndexes.h.
References assert(), B, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), getMBBStartIdx(), I, MBB, and MI.
Referenced by insertMachineInstrInMaps().
|
inline |
Returns the instruction for the given index, or null if the given index has no instruction associated with it.
Definition at line 389 of file SlotIndexes.h.
References llvm::IndexListEntry::getInstr().
Referenced by llvm::LiveIntervals::getInstructionFromIndex(), getMBBFromIndex(), llvm::LiveRange::overlaps(), llvm::HexagonRegisterInfo::shouldCoalesce(), and stripValuesNotDefiningMask().
|
inline |
Returns the base index for the given instruction.
Definition at line 371 of file SlotIndexes.h.
References assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::getBundleEnd(), llvm::getBundleStart(), llvm::MachineInstr::isDebugInstr(), MI, and llvm::skipDebugInstructionsForward().
Referenced by buildVRegToDbgValueMap(), llvm::LiveInterval::computeSubRangeUndefs(), createDeadDef(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::LiveIntervals::getInstructionIndex(), llvm::LiveIntervals::handleMove(), llvm::LiveIntervals::handleMoveIntoNewBundle(), insertMBBInMaps(), llvm::MachineBasicBlock::print(), and repairIndexesInRange().
|
inline |
Returns the base index of the last slot in this analysis.
Definition at line 360 of file SlotIndexes.h.
Referenced by getNextNonNullIndex().
|
inline |
Returns the last index in the given basic block.
Definition at line 467 of file SlotIndexes.h.
References getMBBRange().
Returns the last index in the given basic block number.
Definition at line 462 of file SlotIndexes.h.
References getMBBRange().
Referenced by buildVRegToDbgValueMap(), getIndexAfter(), llvm::LiveIntervals::getMBBEndIdx(), getMBBFromIndex(), llvm::LiveIntervals::hasPHIKill(), insertMBBInMaps(), llvm::LiveIntervals::pruneValue(), repairIndexesInRange(), llvm::GCNUpwardRPTracker::reset(), and llvm::GCNRegPressurePrinter::runOnMachineFunction().
|
inline |
Returns the basic block which the given index falls in.
Definition at line 507 of file SlotIndexes.h.
References assert(), getInstructionFromIndex(), getMBBEndIdx(), getMBBUpperBound(), I, MBBIndexEnd(), and MI.
Referenced by llvm::LiveRangeCalc::extend(), llvm::LiveIntervals::getMBBFromIndex(), llvm::LiveIntervals::intervalIsInOneMBB(), llvm::LiveRangeCalc::isJointlyDominated(), and llvm::LiveIntervals::pruneValue().
|
inline |
Get an iterator pointing to the first IdxMBBPair with SlotIndex greater than or equal to Idx
.
If Start
is provided, only search the range from Start
to the end of the function.
Definition at line 478 of file SlotIndexes.h.
References Idx, and MBBIndexEnd().
Referenced by getMBBLowerBound().
|
inline |
Definition at line 484 of file SlotIndexes.h.
References getMBBLowerBound(), Idx, and MBBIndexBegin().
|
inline |
Return the (start,end) range of the given basic block.
Definition at line 447 of file SlotIndexes.h.
References getMBBRange(), and MBB.
|
inline |
Return the (start,end) range of the given basic block number.
Definition at line 441 of file SlotIndexes.h.
Referenced by getMBBEndIdx(), getMBBRange(), getMBBStartIdx(), llvm::LiveIntervals::pruneValue(), llvm::SplitEditor::splitLiveThroughBlock(), llvm::SplitEditor::splitRegInBlock(), and llvm::SplitEditor::splitRegOutBlock().
|
inline |
Returns the first index in the given basic block.
Definition at line 457 of file SlotIndexes.h.
References getMBBRange().
Returns the first index in the given basic block number.
Definition at line 452 of file SlotIndexes.h.
References getMBBRange().
Referenced by buildVRegToDbgValueMap(), llvm::LiveRangeCalc::extend(), getIndexBefore(), llvm::LiveIntervals::getMBBStartIdx(), llvm::MachineBasicBlock::print(), repairIndexesInRange(), and llvm::GCNRegPressurePrinter::runOnMachineFunction().
|
inline |
Get an iterator pointing to the first IdxMBBPair with SlotIndex greater than Idx
.
Definition at line 490 of file SlotIndexes.h.
References Idx, MBBIndexBegin(), and MBBIndexEnd().
Referenced by getMBBFromIndex().
Returns the next non-null index, if one exists.
Otherwise returns getLastIndex().
Definition at line 395 of file SlotIndexes.h.
References E, getLastIndex(), and I.
Referenced by llvm::LiveRange::isZeroLength().
|
inline |
Returns the zero index for this analysis.
Definition at line 354 of file SlotIndexes.h.
References assert().
|
inline |
Returns true if the given machine instr is mapped to an index, otherwise returns false.
Definition at line 366 of file SlotIndexes.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::count(), and instr.
Referenced by llvm::LiveIntervals::handleMoveIntoNewBundle(), llvm::LiveIntervals::isNotInMIMap(), llvm::MachineBasicBlock::print(), and llvm::LiveIntervals::repairIntervalsInRange().
|
inline |
Insert the given machine instruction into the mapping.
Returns the assigned index. If Late is set and there are null indexes between mi's neighboring instructions, create the new index after the null indexes instead of before them.
Definition at line 523 of file SlotIndexes.h.
References assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::contains(), getIndexAfter(), getIndexBefore(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert(), llvm::iplist_impl< IntrusiveListT, TraitsT >::insert(), and MI.
Referenced by llvm::LiveIntervals::handleMove(), llvm::LiveIntervals::handleMoveIntoNewBundle(), insertCSRRestores(), llvm::LiveIntervals::InsertMachineInstrInMaps(), llvm::LiveIntervals::InsertMachineInstrRangeInMaps(), llvm::SIInstrInfo::insertScratchExecCopy(), llvm::LiveRangeEdit::rematerializeAt(), repairIndexesInRange(), llvm::SIInstrInfo::restoreExec(), llvm::SIRegisterInfo::restoreSGPR(), llvm::SIRegisterInfo::spillSGPR(), and SlotIndexUpdateDelegate::~SlotIndexUpdateDelegate().
|
inline |
Add the given MachineBasicBlock into the maps.
If it contains any instructions then they must already be in the maps. This is used after a block has been split by moving some suffix of its instructions into a newly created block.
Definition at line 598 of file SlotIndexes.h.
References assert(), llvm::MachineBasicBlock::empty(), llvm::MachineBasicBlock::front(), llvm::MachineFunction::front(), getInstructionIndex(), llvm::ilist_node_impl< OptionsT >::getIterator(), getMBBEndIdx(), llvm::MachineBasicBlock::getNumber(), llvm::MachineBasicBlock::getParent(), llvm::iplist_impl< IntrusiveListT, TraitsT >::insert(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorBase< Size_T >::size(), and llvm::sort().
Referenced by llvm::LiveIntervals::insertMBBInMaps().
|
inline |
Returns an iterator for the begin of the idx2MBBMap.
Definition at line 497 of file SlotIndexes.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin().
Referenced by getMBBLowerBound(), and getMBBUpperBound().
|
inline |
Return an iterator for the end of the idx2MBBMap.
Definition at line 502 of file SlotIndexes.h.
References llvm::SmallVectorTemplateCommon< T, typename >::end().
Referenced by getMBBFromIndex(), getMBBLowerBound(), and getMBBUpperBound().
void SlotIndexes::packIndexes | ( | ) |
Renumber all indexes using the default instruction distance.
Definition at line 240 of file SlotIndexes.cpp.
References llvm::enumerate(), and llvm::SlotIndex::InstrDist.
Referenced by llvm::RAGreedy::runOnMachineFunction().
|
overridevirtual |
releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memory when it is no longer needed.
The default behavior of passes is to hold onto memory for the entire duration of their lifetime (which is the entire compile time). For pipelined passes, this is not a big deal because that memory gets recycled every time the pass is invoked on another program unit. For IP passes, it is more important to free memory when it is unused.
Optionally implement this function to release pass memory when it is no longer used.
Reimplemented from llvm::Pass.
Definition at line 42 of file SlotIndexes.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::clear(), llvm::iplist_impl< IntrusiveListT, TraitsT >::clear(), llvm::SmallVectorImpl< T >::clear(), and llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold, GrowthDelay >::Reset().
void SlotIndexes::removeMachineInstrFromMaps | ( | MachineInstr & | MI, |
bool | AllowBundled = false |
||
) |
Removes machine instruction (bundle) MI
from the mapping.
This should be called before MachineInstr::eraseFromParent() is used to remove a whole bundle or an unbundled instruction. If AllowBundled
is set then this can be used on a bundled instruction; however, this exists to support handleMoveIntoBundle, and in general removeSingleMachineInstrFromMaps should be used instead.
Definition at line 115 of file SlotIndexes.cpp.
References assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::erase(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::IndexListEntry::getInstr(), MI, and llvm::IndexListEntry::setInstr().
Referenced by llvm::LiveIntervals::handleMove(), llvm::LiveIntervals::handleMoveIntoNewBundle(), SlotIndexUpdateDelegate::MF_HandleRemoval(), llvm::LiveIntervals::RemoveMachineInstrFromMaps(), and repairIndexesInRange().
void SlotIndexes::removeSingleMachineInstrFromMaps | ( | MachineInstr & | MI | ) |
Removes a single machine instruction MI
from the mapping.
This should be called before MachineInstr::eraseFromBundle() is used to remove a single instruction (out of a bundle).
Definition at line 131 of file SlotIndexes.cpp.
References assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::erase(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::IndexListEntry::getInstr(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert(), MI, and llvm::IndexListEntry::setInstr().
void SlotIndexes::repairIndexesInRange | ( | MachineBasicBlock * | MBB, |
MachineBasicBlock::iterator | Begin, | ||
MachineBasicBlock::iterator | End | ||
) |
Repair indexes after adding and removing instructions.
Definition at line 179 of file SlotIndexes.cpp.
References assert(), llvm::MachineBasicBlock::begin(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::contains(), llvm::MachineBasicBlock::end(), End, getInstructionIndex(), llvm::ilist_node_impl< OptionsT >::getIterator(), getMBBEndIdx(), getMBBStartIdx(), I, insertMachineInstrInMaps(), MBB, MBBI, MI, and removeMachineInstrFromMaps().
Referenced by llvm::LiveIntervals::repairIntervalsInRange().
|
inline |
ReplaceMachineInstrInMaps - Replacing a machine instr with a new one in maps used by register allocator.
Definition at line 580 of file SlotIndexes.h.
References assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::erase(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::IndexListEntry::getInstr(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert(), MI, and llvm::IndexListEntry::setInstr().
Referenced by llvm::LiveIntervals::ReplaceMachineInstrInMaps(), llvm::SIRegisterInfo::restoreSGPR(), and llvm::SIRegisterInfo::spillSGPR().
|
overridevirtual |
runOnMachineFunction - This method must be overloaded to perform the desired machine code transformation or analysis.
Implements llvm::MachineFunctionPass.
Definition at line 50 of file SlotIndexes.cpp.
References assert(), llvm::dbgs(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::empty(), llvm::SmallVectorBase< Size_T >::empty(), llvm::MachineBasicBlock::getNumber(), llvm::MachineFunction::getNumBlockIDs(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert(), llvm::SlotIndex::InstrDist, LLVM_DEBUG, MBB, MI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back(), llvm::SmallVectorImpl< T >::reserve(), llvm::MachineFunction::size(), and llvm::sort().
|
static |
Definition at line 334 of file SlotIndexes.h.