clang: lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp File Reference (original) (raw)

Go to the source code of this file.

Namespaces
namespace clang
The JSON file list parser is used to communicate input to InstallAPI.
namespace clang::dataflow
Dataflow Directional Tag Classes.
namespace llvm
Diagnostic wrappers for TextAPI types for error reporting.
Functions
static int clang::dataflow::blockIndexInPredecessor (const CFGBlock &Pred, const CFGBlock &Block)
Returns the index of Block in the successors of Pred.
static bool clang::dataflow::isBackedgeNode (const CFGBlock &B)
static const Expr * clang::dataflow::getTerminatorCondition (const Stmt *TerminatorStmt)
static TypeErasedDataflowAnalysisState clang::dataflow::computeBlockInputState (const CFGBlock &Block, AnalysisContext &AC)
Computes the input state for a given basic block by joining the output states of its predecessors.
static void clang::dataflow::builtinTransferStatement (unsigned CurBlockID, const CFGStmt &Elt, TypeErasedDataflowAnalysisState &InputState, AnalysisContext &AC)
Built-in transfer function for CFGStmt.
static void clang::dataflow::builtinTransferInitializer (const CFGInitializer &Elt, TypeErasedDataflowAnalysisState &InputState)
Built-in transfer function for CFGInitializer.
static void clang::dataflow::builtinTransfer (unsigned CurBlockID, const CFGElement &Elt, TypeErasedDataflowAnalysisState &State, AnalysisContext &AC)
static TypeErasedDataflowAnalysisState clang::dataflow::transferCFGBlock (const CFGBlock &Block, AnalysisContext &AC, const CFGEltCallbacksTypeErased &PostAnalysisCallbacks={})
Transfers State by evaluating each element in the Block based on the AC.Analysis specified.
llvm::Expected< std::vector< std::optional< TypeErasedDataflowAnalysisState > > > clang::dataflow::runTypeErasedDataflowAnalysis (const AdornedCFG &ACFG, TypeErasedDataflowAnalysis &Analysis, const Environment &InitEnv, const CFGEltCallbacksTypeErased &PostAnalysisCallbacks, std::int32_t MaxBlockVisits)
Performs dataflow analysis and returns a mapping from basic block IDs to dataflow analysis states that model the respective basic blocks.

DEBUG_TYPE

#define DEBUG_TYPE "clang-dataflow"

ACFG

TypeErasedDataflowAnalysis& Analysis

BlockStates

llvm::ArrayRef<std::optional > BlockStates

InitEnv

const Environment& InitEnv

Log