9#ifndef LLVM_CLANG_ANALYSIS_CFG_BACKEDGES_H
10#define LLVM_CLANG_ANALYSIS_CFG_BACKEDGES_H
13#include "llvm/ADT/DenseMap.h"
14#include "llvm/ADT/DenseSet.h"
24llvm::DenseMap<const CFGBlock *, const CFGBlock *>
29llvm::SmallDenseSet<const CFGBlock *>
50 const llvm::SmallDenseSet<const CFGBlock *> &NonStructLoopBackedgeNodes);
Represents a single basic block in a source-level CFG.
Represents a source-level, intra-procedural CFG that represents the control-flow of a Stmt.
The JSON file list parser is used to communicate input to InstallAPI.
llvm::DenseMap< const CFGBlock *, const CFGBlock * > findCFGBackEdges(const CFG &CFG)
Finds and returns back edges in Clang CFGs.
bool isBackedgeCFGNode(const CFGBlock &B, const llvm::SmallDenseSet< const CFGBlock * > &NonStructLoopBackedgeNodes)
Given a backedge from B1 to B2, B1 is a "backedge node" in a CFG.
llvm::SmallDenseSet< const CFGBlock * > findNonStructuredLoopBackedgeNodes(const CFG &CFG)
Returns a set of CFG blocks that is the source of a backedge and is not tracked as part of a structur...