class LoopBlocksDFS
Declaration
class LoopBlocksDFS { /* full declaration omitted */ };
Description
Store the result of a depth first search within basic blocks contained by a single loop. TODO: This could be generalized for any CFG region, or the entire CFG.
Declared at: llvm/include/llvm/Analysis/LoopIterator.h:97
Method Overview
- public LoopBlocksDFS(llvm::Loop * Container)
- public llvm::LoopBlocksDFS::POIterator beginPostorder() const
- public llvm::LoopBlocksDFS::RPOIterator beginRPO() const
- public void clear()
- public llvm::LoopBlocksDFS::POIterator endPostorder() const
- public llvm::LoopBlocksDFS::RPOIterator endRPO() const
- public llvm::Loop * getLoop() const
- public unsigned int getPostorder(llvm::BasicBlock * BB) const
- public unsigned int getRPO(llvm::BasicBlock * BB) const
- public bool hasPostorder(llvm::BasicBlock * BB) const
- public bool hasPreorder(llvm::BasicBlock * BB) const
- public bool isComplete() const
- public void perform(llvm::LoopInfo * LI)
Methods
¶LoopBlocksDFS(llvm::Loop* Container)
LoopBlocksDFS(llvm::Loop* Container)
Declared at: llvm/include/llvm/Analysis/LoopIterator.h:115
Parameters
- llvm::Loop* Container
¶llvm::LoopBlocksDFS::POIterator beginPostorder()
const
llvm::LoopBlocksDFS::POIterator beginPostorder()
const
Description
Iterate over the cached postorder blocks.
Declared at: llvm/include/llvm/Analysis/LoopIterator.h:129
¶llvm::LoopBlocksDFS::RPOIterator beginRPO() const
llvm::LoopBlocksDFS::RPOIterator beginRPO() const
Description
Reverse iterate over the cached postorder blocks.
Declared at: llvm/include/llvm/Analysis/LoopIterator.h:136
¶void clear()
void clear()
Declared at: llvm/include/llvm/Analysis/LoopIterator.h:164
¶llvm::LoopBlocksDFS::POIterator endPostorder()
const
llvm::LoopBlocksDFS::POIterator endPostorder()
const
Declared at: llvm/include/llvm/Analysis/LoopIterator.h:133
¶llvm::LoopBlocksDFS::RPOIterator endRPO() const
llvm::LoopBlocksDFS::RPOIterator endRPO() const
Declared at: llvm/include/llvm/Analysis/LoopIterator.h:140
¶llvm::Loop* getLoop() const
llvm::Loop* getLoop() const
Declared at: llvm/include/llvm/Analysis/LoopIterator.h:120
¶unsigned int getPostorder(
llvm::BasicBlock* BB) const
unsigned int getPostorder(
llvm::BasicBlock* BB) const
Description
Get a block's postorder number.
Declared at: llvm/include/llvm/Analysis/LoopIterator.h:152
Parameters
- llvm::BasicBlock* BB
¶unsigned int getRPO(llvm::BasicBlock* BB) const
unsigned int getRPO(llvm::BasicBlock* BB) const
Description
Get a block's reverse postorder number.
Declared at: llvm/include/llvm/Analysis/LoopIterator.h:160
Parameters
- llvm::BasicBlock* BB
¶bool hasPostorder(llvm::BasicBlock* BB) const
bool hasPostorder(llvm::BasicBlock* BB) const
Description
Return true if this block has a postorder number.
Declared at: llvm/include/llvm/Analysis/LoopIterator.h:146
Parameters
- llvm::BasicBlock* BB
¶bool hasPreorder(llvm::BasicBlock* BB) const
bool hasPreorder(llvm::BasicBlock* BB) const
Description
Return true if this block has been preorder visited.
Declared at: llvm/include/llvm/Analysis/LoopIterator.h:143
Parameters
- llvm::BasicBlock* BB
¶bool isComplete() const
bool isComplete() const
Description
Return true if postorder numbers are assigned to all loop blocks.
Declared at: llvm/include/llvm/Analysis/LoopIterator.h:126
¶void perform(llvm::LoopInfo* LI)
void perform(llvm::LoopInfo* LI)
Description
Traverse the loop blocks and store the DFS result.
Declared at: llvm/include/llvm/Analysis/LoopIterator.h:123
Parameters
- llvm::LoopInfo* LI