ΒΆtemplate <class NodeT,
class RPOTraversalT,
class LoopInfoT,
class GT = GraphTraits<NodeT>>
bool containsIrreducibleCFG(
RPOTraversalT& RPOTraversal,
const LoopInfoT& LI)
template <class NodeT,
class RPOTraversalT,
class LoopInfoT,
class GT = GraphTraits<NodeT>>
bool containsIrreducibleCFG(
RPOTraversalT& RPOTraversal,
const LoopInfoT& LI)
Description
target CFG with begin()/end() iterator interfaces. 3) \p LI must be a valid LoopInfoBase that contains up-to-date loop analysis information of the CFG. This algorithm uses the information about reducible loop back-edges already computed in \p LI. When a back-edge is found during the RPO traversal, the algorithm checks whether the back-edge is one of the reducible back-edges in loop info. If it isn't, the CFG is irreducible. For example, for the CFG below (canonical irreducible graph) loop info won't contain any loop, so the algorithm will return that the CFG is irreducible when checking the B < - -> C back-edge. (A->B, A->C, B->C, C->B, C->D) A / \ /// B < - ->C | D
Declared at: llvm/include/llvm/Analysis/CFG.h:145
Templates
- NodeT
- RPOTraversalT
- LoopInfoT
- GT = GraphTraits<NodeT>
Parameters
- RPOTraversalT& RPOTraversal
- const LoopInfoT& LI