ΒΆ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