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. | |
![]() |
|
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 | |
---|---|
![]() |
|
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 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:
- include/llvm/CodeGen/MachineLoopInfo.h
- lib/CodeGen/MachineLoopInfo.cpp