|
| 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.
|
|
Definition at line 105 of file MachineLoopInfo.h.