Store the result of a depth first search within basic blocks contained by a single loop.

Synopsis

Declared in <llvm/Analysis/LoopIterator.h>

class LoopBlocksDFS;

Description

TODO: This could be generalized for any CFG region, or the entire CFG.

Type Aliases

Name

Description

POIterator

Postorder list iterators.

RPOIterator

Reverse‐postorder list iterator.

Member Functions

Name

Description

LoopBlocksDFS [constructor]

Construct a DFS result store for Container.

beginPostorder

Iterate over the cached postorder blocks.

beginRPO

Reverse iterate over the cached postorder blocks.

clear

Clear the cached DFS numbering and block lists.

endPostorder

Return an iterator past the last postorder block.

endRPO

Return an iterator past the last reverse‐postorder block.

getLoop

Return the loop being traversed.

getPostorder

Get a block's postorder number.

getRPO

Get a block's reverse postorder number.

hasPostorder

Return true if this block has a postorder number.

hasPreorder

Return true if this block has been preorder visited.

isComplete

Return true if postorder numbers are assigned to all loop blocks.

perform

Traverse the loop blocks and store the DFS result.

Friends

Name

Description

llvm::LoopBlocksTraversal

Traverse the blocks in a loop using a depth‐first search.

Created with MrDocs