LLVM
8.0.1
|
Populate all loop data in a stable order during a single forward DFS. More...
#include "llvm/Analysis/LoopInfoImpl.h"
Public Member Functions | |
PopulateLoopsDFS (LoopInfoBase< BlockT, LoopT > *li) | |
void | traverse (BlockT *EntryBlock) |
Top-level driver for the forward DFS within the loop. More... | |
Protected Member Functions | |
void | insertIntoLoop (BlockT *Block) |
Add a single Block to its ancestor loops in PostOrder. More... | |
Populate all loop data in a stable order during a single forward DFS.
Definition at line 491 of file LoopInfoImpl.h.
|
inline |
Definition at line 498 of file LoopInfoImpl.h.
References llvm::PopulateLoopsDFS< BlockT, LoopT >::insertIntoLoop(), and llvm::PopulateLoopsDFS< BlockT, LoopT >::traverse().
|
protected |
Add a single Block to its ancestor loops in PostOrder.
If the block is a subloop header, add the subloop to its parent in PostOrder, then reverse the Block and Subloop vectors of the now complete subloop to achieve RPO.
Definition at line 517 of file LoopInfoImpl.h.
References llvm::reverse().
Referenced by llvm::PopulateLoopsDFS< BlockT, LoopT >::PopulateLoopsDFS(), and llvm::PopulateLoopsDFS< BlockT, LoopT >::traverse().
void llvm::PopulateLoopsDFS< BlockT, LoopT >::traverse | ( | BlockT * | EntryBlock | ) |
Top-level driver for the forward DFS within the loop.
Definition at line 508 of file LoopInfoImpl.h.
References llvm::PopulateLoopsDFS< BlockT, LoopT >::insertIntoLoop(), and llvm::post_order().
Referenced by llvm::LoopInfoBase< BasicBlock, Loop >::analyze(), and llvm::PopulateLoopsDFS< BlockT, LoopT >::PopulateLoopsDFS().