15#ifndef LLVM_CLANG_ANALYSES_DATAFLOW_VALUES
16#define LLVM_CLANG_ANALYSES_DATAFLOW_VALUES
20#include "llvm/ADT/DenseMap.h"
39template <
typename ValueTypes,
48 using ValTy =
typename ValueTypes::ValTy;
88 typename EdgeDataMapTy::iterator I =
EdgeDataMap.find(
E);
89 assert (I !=
EdgeDataMap.end() &&
"No data associated with Edge.");
102 typename BlockDataMapTy::iterator I =
BlockDataMap.find(B);
103 assert (I !=
BlockDataMap.end() &&
"No data associated with block.");
118 assert (
StmtDataMap &&
"Dataflow values were not computed for statements.");
119 typename StmtDataMapTy::iterator I =
StmtDataMap->find(S);
120 assert (I !=
StmtDataMap->end() &&
"No data associated with statement.");
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.
DataflowValues. Container class to store dataflow values for a CFG.
BlockDataMapTy & getBlockDataMap()
getBlockDataMap - Retrieves the internal map between CFGBlocks and dataflow values.
_AnalysisDirTag AnalysisDirTag
typename ValueTypes::AnalysisDataTy AnalysisDataTy
const BlockDataMapTy & getBlockDataMap() const
ValTy & getBlockData(const CFGBlock *B)
getBlockData - Retrieves the dataflow values associated with a specified CFGBlock.
BlockDataMapTy BlockDataMap
bool isForwardAnalysis()
isForwardAnalysis - Returns true if the dataflow values are computed from a forward analysis.
llvm::DenseMap< ProgramPoint, ValTy > EdgeDataMapTy
bool isBackwardAnalysis()
isBackwardAnalysis - Returns true if the dataflow values are computed from a backward analysis.
StmtDataMapTy * StmtDataMap
EdgeDataMapTy EdgeDataMap
void InitializeValues(const CFG &cfg)
InitializeValues - Invoked by the solver to initialize state needed for dataflow analysis.
const StmtDataMapTy & getStmtDataMap() const
typename ValueTypes::ValTy ValTy
const ValTy & getEdgeData(const BlockEdge &E) const
const AnalysisDataTy & getAnalysisData() const
llvm::DenseMap< const CFGBlock *, ValTy > BlockDataMapTy
AnalysisDataTy & getAnalysisData()
getAnalysisData - Retrieves the meta data associated with a dataflow analysis for analyzing a particu...
AnalysisDataTy AnalysisData
EdgeDataMapTy & getEdgeDataMap()
getEdgeDataMap - Retrieves the internal map between CFG edges and dataflow values.
StmtDataMapTy & getStmtDataMap()
getStmtDataMap - Retrieves the internal map between Stmts and dataflow values.
ValTy & getStmtData(const Stmt *S)
getStmtData - Retrieves the dataflow values associated with a specified Stmt.
const ValTy & getStmtData(const Stmt *S) const
const EdgeDataMapTy & getEdgeDataMap() const
ValTy & getEdgeData(const BlockEdge &E)
getEdgeData - Retrieves the dataflow values associated with a CFG edge.
const ValTy & getBlockData(const CFGBlock *B) const
llvm::DenseMap< const Stmt *, ValTy > StmtDataMapTy
Stmt - This represents one statement.
The JSON file list parser is used to communicate input to InstallAPI.