LLVM: llvm::MachineLoopInfo Class Reference (original) (raw)

#include "[llvm/CodeGen/MachineLoopInfo.h](MachineLoopInfo%5F8h%5Fsource.html)"

Public Member Functions
MachineLoopInfo ()=default
MachineLoopInfo (MachineDominatorTree &MDT)
MachineLoopInfo (MachineLoopInfo &&)=default
MachineLoopInfo (const MachineLoopInfo &)=delete
MachineLoopInfo & operator= (const MachineLoopInfo &)=delete
bool invalidate (MachineFunction &, const PreservedAnalyses &PA, MachineFunctionAnalysisManager::Invalidator &)
Handle invalidation explicitly.
MachineBasicBlock * findLoopPreheader (MachineLoop *L, bool SpeculativePreheader=false, bool FindMultiLoopPreheader=false) const
Find the block that either is the loop preheader, or could speculatively be used as the preheader.
void calculate (MachineDominatorTree &MDT)
Calculate the natural loop information.
- Public Member Functions inherited from llvm::LoopInfoBase< MachineBasicBlock, MachineLoop >
LoopInfoBase & operator= (LoopInfoBase &&RHS)
LoopInfoBase ()=default
LoopInfoBase (LoopInfoBase &&Arg)
~LoopInfoBase ()
void releaseMemory ()
MachineLoop * AllocateLoop (ArgsTy &&...Args)
iterator begin () const
iterator end () const
reverse_iterator rbegin () const
reverse_iterator rend () const
bool empty () const
SmallVector< MachineLoop *, 4 > getLoopsInPreorder () const
Return all of the loops in the function in preorder across the loop nests, with siblings in forward program order.
SmallVector< MachineLoop *, 4 > getLoopsInReverseSiblingPreorder () const
Return all of the loops in the function in preorder across the loop nests, with siblings in reverse program order.
MachineLoop * getLoopFor (const MachineBasicBlock *BB) const
Return the inner most loop that BB lives in.
const MachineLoop * operator[] (const MachineBasicBlock *BB) const
Same as getLoopFor.
unsigned getLoopDepth (const MachineBasicBlock *BB) const
Return the loop nesting level of the specified block.
bool isLoopHeader (const MachineBasicBlock *BB) const
const std::vector< MachineLoop * > & getTopLevelLoops () const
Return the top-level loops.
std::vector< MachineLoop * > & getTopLevelLoopsVector ()
Return the top-level loops.
MachineLoop * removeLoop (iterator I)
This removes the specified top-level loop from this loop info object.
void changeLoopFor (MachineBasicBlock *BB, MachineLoop *L)
Change the top-level loop that contains BB to the specified loop.
void changeTopLevelLoop (MachineLoop *OldLoop, MachineLoop *NewLoop)
Replace the specified loop in the top-level loops list with the indicated loop.
void addTopLevelLoop (MachineLoop *New)
This adds the specified loop to the collection of top-level loops.
void removeBlock (MachineBasicBlock *BB)
This method completely removes BB from all data structures, including all of the Loop objects it is nested in and our mapping from BasicBlocks to loops.
void analyze (const DominatorTreeBase< MachineBasicBlock, false > &DomTree)
Create the loop forest using a stable algorithm.
void print (raw_ostream &OS) const
void verify (const DominatorTreeBase< MachineBasicBlock, false > &DomTree) const
void destroy (MachineLoop *L)
Destroy a loop that has been removed from the LoopInfo nest.
Additional Inherited Members
- Public Types inherited from llvm::LoopInfoBase< MachineBasicBlock, MachineLoop >
typedef std::vector< MachineLoop * >::const_iterator iterator
iterator/begin/end - The interface to the top-level loops in the current function.
typedef std::vector< MachineLoop * >::const_reverse_iterator reverse_iterator
- Static Public Member Functions inherited from llvm::LoopInfoBase< MachineBasicBlock, MachineLoop >
static bool isNotAlreadyContainedIn (const MachineLoop *SubLoop, const MachineLoop *ParentLoop)

Definition at line 105 of file MachineLoopInfo.h.

llvm::MachineLoopInfo::MachineLoopInfo ( ) default

MachineLoopInfo() [2/4]

MachineLoopInfo() [3/4]

MachineLoopInfo() [4/4]

calculate()

findLoopPreheader()

invalidate()

operator=()

LoopBase< MachineBasicBlock, MachineLoop >

MachineLoopInfoWrapperPass


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