Static Value-Flow Analysis
Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
SVF::CFLBase Class Reference

CFL Client Base Class. More...

#include <CFLBase.h>

Inheritance diagram for SVF::CFLBase:
SVF::BVDataPTAImpl SVF::PointerAnalysis SVF::CFLAlias SVF::CFLVF SVF::POCRAlias SVF::POCRHybrid

Public Member Functions

 CFLBase (SVFIR *ir, PointerAnalysis::PTATY pty)
 
virtual ~CFLBase ()
 Destructor. More...
 
virtual void checkParameter ()
 Parameter Checking. More...
 
virtual void buildCFLGrammar ()
 Build Grammar from text file. More...
 
virtual void buildCFLGraph ()
 Build CFLGraph based on Option. More...
 
virtual void normalizeCFLGrammar ()
 Normalize grammar. More...
 
CFLGraphgetCFLGraph ()
 Get CFL graph. More...
 
virtual void countSumEdges ()
 Count the num of Nonterminal Edges. More...
 
virtual void solve ()
 Solving CFL Reachability. More...
 
virtual void finalize ()
 Finalize extra stat info passing. More...
 
virtual void analyze ()
 Perform analyze (main part of CFLR Analysis) More...
 
- Public Member Functions inherited from SVF::BVDataPTAImpl
 BVDataPTAImpl (SVFIR *pag, PointerAnalysis::PTATY type, bool alias_check=true)
 Constructor. More...
 
 ~BVDataPTAImpl () override=default
 Destructor. More...
 
PersistentPointsToCache< PointsTo > & getPtCache ()
 
const PointsTogetPts (NodeID id) override
 
const NodeSetgetRevPts (NodeID nodeId) override
 
virtual void clearPts (NodeID id, NodeID element)
 Remove element from the points-to set of id. More...
 
virtual void clearFullPts (NodeID id)
 Clear points-to set of id. More...
 
virtual bool unionPts (NodeID id, const PointsTo &target)
 
virtual bool unionPts (NodeID id, NodeID ptd)
 
virtual bool addPts (NodeID id, NodeID ptd)
 
virtual void clearAllPts ()
 Clear all data. More...
 
virtual void expandFIObjs (const PointsTo &pts, PointsTo &expandedPts)
 Expand FI objects. More...
 
virtual void expandFIObjs (const NodeBS &pts, NodeBS &expandedPts)
 TODO: remove repetition. More...
 
void remapPointsToSets (void)
 Remap all points-to sets to use the current mapping. More...
 
virtual void writeToFile (const std::string &filename)
 Interface for analysis result storage on filesystem. More...
 
virtual void writeObjVarToFile (const std::string &filename)
 
virtual void writePtsResultToFile (std::fstream &f)
 
virtual void writeGepObjVarMapToFile (std::fstream &f)
 
virtual bool readFromFile (const std::string &filename)
 
virtual void readPtsResultFromFile (std::ifstream &f)
 
virtual void readGepObjVarMapFromFile (std::ifstream &f)
 
virtual void readAndSetObjFieldSensitivity (std::ifstream &f, const std::string &delimiterStr)
 
AliasResult alias (const SVFValue *V1, const SVFValue *V2) override
 Interface expose to users of our pointer analysis, given Value infos. More...
 
AliasResult alias (NodeID node1, NodeID node2) override
 Interface expose to users of our pointer analysis, given PAGNodeID. More...
 
virtual AliasResult alias (const PointsTo &pts1, const PointsTo &pts2)
 Interface expose to users of our pointer analysis, given two pts. More...
 
void dumpCPts () override
 dump and debug, print out conditional pts More...
 
void dumpTopLevelPtsTo () override
 
void dumpAllPts () override
 
- Public Member Functions inherited from SVF::PointerAnalysis
ICFGgetICFG () const
 Get ICFG. More...
 
u32_t getNumOfResolvedIndCallEdge () const
 Return number of resolved indirect call edges. More...
 
PTACallGraphgetCallGraph () const
 Return call graph. More...
 
CallGraphSCCgetCallGraphSCC () const
 Return call graph SCC. More...
 
 PointerAnalysis (SVFIR *pag, PTATY ty=Default_PTA, bool alias_check=true)
 Constructor. More...
 
PTATY getAnalysisTy () const
 Type of pointer analysis. More...
 
PTAImplTy getImplTy () const
 Return implementation type of the pointer analysis. More...
 
bool printStat ()
 Whether print statistics. More...
 
void disablePrintStat ()
 Whether print statistics. More...
 
CallEdgeMapgetIndCallMap ()
 Get callees from an indirect callsite. More...
 
bool hasIndCSCallees (const CallICFGNode *cs) const
 
const FunctionSetgetIndCSCallees (const CallICFGNode *cs) const
 
virtual void resolveIndCalls (const CallICFGNode *cs, const PointsTo &target, CallEdgeMap &newEdges)
 Resolve indirect call edges. More...
 
void callGraphSCCDetection ()
 PTACallGraph SCC related methods. More...
 
NodeID getCallGraphSCCRepNode (NodeID id) const
 Get SCC rep node of a SVFG node. More...
 
bool inSameCallGraphSCC (const SVFFunction *fun1, const SVFFunction *fun2)
 Return TRUE if this edge is inside a PTACallGraph SCC, i.e., src node and dst node are in the same SCC on the SVFG. More...
 
bool isInRecursion (const SVFFunction *fun) const
 
bool isLocalVarInRecursiveFun (NodeID id) const
 Whether a local variable is in function recursions. More...
 
virtual const std::string PTAName () const
 Return PTA name. More...
 
CommonCHGraphgetCHGraph () const
 get CHGraph More...
 
void getVFnsFromCHA (const CallICFGNode *cs, VFunSet &vfns)
 
void getVFnsFromPts (const CallICFGNode *cs, const PointsTo &target, VFunSet &vfns)
 
void connectVCallToVFns (const CallICFGNode *cs, const VFunSet &vfns, CallEdgeMap &newEdges)
 
virtual void resolveCPPIndCalls (const CallICFGNode *cs, const PointsTo &target, CallEdgeMap &newEdges)
 Resolve cpp indirect call edges. More...
 
SVFIRgetPAG () const
 
PTAStatgetStat () const
 Get PTA stat. More...
 
SVFModulegetModule () const
 Module. More...
 
OrderedNodeSetgetAllValidPtrs ()
 Get all Valid Pointers for resolution. More...
 
virtual ~PointerAnalysis ()
 Destructor. More...
 
virtual void initialize ()
 Initialization of a pointer analysis, including building symbol table and SVFIR etc. More...
 
virtual void computeDDAPts (NodeID)
 Compute points-to results on-demand, overridden by derived classes. More...
 
void printIndCSTargets (const CallICFGNode *cs, const FunctionSet &targets)
 Print targets of a function pointer. More...
 
virtual void dumpPts (NodeID ptr, const PointsTo &pts)
 
void printIndCSTargets ()
 
void dumpAllTypes ()
 
void dumpStat ()
 Dump the statistics. More...
 
bool containBlackHoleNode (const PointsTo &pts)
 Determine whether a points-to contains a black hole or constant node. More...
 
bool containConstantNode (const PointsTo &pts)
 
virtual bool isBlkObjOrConstantObj (NodeID ptd) const
 
bool isHeapMemObj (NodeID id) const
 Whether this object is heap or array. More...
 
bool isArrayMemObj (NodeID id) const
 
bool isFIObjNode (NodeID id) const
 
NodeID getBaseObjVar (NodeID id)
 
NodeID getFIObjVar (NodeID id)
 
NodeID getGepObjVar (NodeID id, const APOffset &ap)
 
virtual const NodeBSgetAllFieldsObjVars (NodeID id)
 
void setObjFieldInsensitive (NodeID id)
 
bool isFieldInsensitive (NodeID id) const
 

Static Public Attributes

static double timeOfBuildCFLGrammar = 0
 Statistics. More...
 
static double timeOfNormalizeGrammar = 0
 
static double timeOfBuildCFLGraph = 0
 
static double numOfTerminalEdges = 0
 
static double numOfTemporaryNonterminalEdges = 0
 
static double numOfNonterminalEdges = 0
 
static double numOfStartEdges = 0
 
static double numOfIteration = 1
 
static double numOfChecks = 1
 
static double timeOfSolving = 0
 
- Static Public Attributes inherited from SVF::PointerAnalysis
static const std::string aliasTestMayAlias = "MAYALIAS"
 
static const std::string aliasTestMayAliasMangled = "_Z8MAYALIASPvS_"
 
static const std::string aliasTestNoAlias = "NOALIAS"
 
static const std::string aliasTestNoAliasMangled = "_Z7NOALIASPvS_"
 
static const std::string aliasTestPartialAlias = "PARTIALALIAS"
 
static const std::string aliasTestPartialAliasMangled = "_Z12PARTIALALIASPvS_"
 
static const std::string aliasTestMustAlias = "MUSTALIAS"
 
static const std::string aliasTestMustAliasMangled = "_Z9MUSTALIASPvS_"
 
static const std::string aliasTestFailMayAlias = "EXPECTEDFAIL_MAYALIAS"
 
static const std::string aliasTestFailMayAliasMangled = "_Z21EXPECTEDFAIL_MAYALIASPvS_"
 
static const std::string aliasTestFailNoAlias = "EXPECTEDFAIL_NOALIAS"
 
static const std::string aliasTestFailNoAliasMangled = "_Z20EXPECTEDFAIL_NOALIASPvS_"
 

Protected Attributes

SVFIRsvfir
 
CFLGraphgraph
 
GrammarBasegrammarBase
 
CFGrammargrammar
 
CFLSolversolver
 
- Protected Attributes inherited from SVF::PointerAnalysis
bool print_stat
 User input flags. More...
 
bool alias_validation
 Flag for validating points-to/alias results. More...
 
u32_t OnTheFlyIterBudgetForStat
 Flag for iteration budget for on-the-fly statistics. More...
 
SVFModulesvfMod
 Module. More...
 
PTATY ptaTy
 Pointer analysis Type. More...
 
PTAImplTy ptaImplTy
 PTA implementation type. More...
 
PTAStatstat
 Statistics. More...
 
PTACallGraphcallgraph
 Call graph used for pointer analysis. More...
 
CallGraphSCCcallGraphSCC
 SCC for PTACallGraph. More...
 
ICFGicfg
 Interprocedural control-flow graph. More...
 
CommonCHGraphchgraph
 CHGraph. More...
 

Additional Inherited Members

- Public Types inherited from SVF::BVDataPTAImpl
enum  PTBackingType { Mutable , Persistent }
 How the PTData used is implemented. More...
 
typedef PTData< NodeID, NodeSet, NodeID, PointsToPTDataTy
 
typedef DiffPTData< NodeID, NodeSet, NodeID, PointsToDiffPTDataTy
 
typedef DFPTData< NodeID, NodeSet, NodeID, PointsToDFPTDataTy
 
typedef VersionedPTData< NodeID, NodeSet, NodeID, PointsTo, VersionedVar, Set< VersionedVar > > VersionedPTDataTy
 
typedef MutablePTData< NodeID, NodeSet, NodeID, PointsToMutPTDataTy
 
typedef MutableDiffPTData< NodeID, NodeSet, NodeID, PointsToMutDiffPTDataTy
 
typedef MutableDFPTData< NodeID, NodeSet, NodeID, PointsToMutDFPTDataTy
 
typedef MutableIncDFPTData< NodeID, NodeSet, NodeID, PointsToMutIncDFPTDataTy
 
typedef MutableVersionedPTData< NodeID, NodeSet, NodeID, PointsTo, VersionedVar, Set< VersionedVar > > MutVersionedPTDataTy
 
typedef PersistentPTData< NodeID, NodeSet, NodeID, PointsToPersPTDataTy
 
typedef PersistentDiffPTData< NodeID, NodeSet, NodeID, PointsToPersDiffPTDataTy
 
typedef PersistentDFPTData< NodeID, NodeSet, NodeID, PointsToPersDFPTDataTy
 
typedef PersistentIncDFPTData< NodeID, NodeSet, NodeID, PointsToPersIncDFPTDataTy
 
typedef PersistentVersionedPTData< NodeID, NodeSet, NodeID, PointsTo, VersionedVar, Set< VersionedVar > > PersVersionedPTDataTy
 
- Public Types inherited from SVF::PointerAnalysis
enum  PTATY {
  Andersen_BASE , Andersen_WPA , AndersenSCD_WPA , AndersenSFR_WPA ,
  AndersenWaveDiff_WPA , Steensgaard_WPA , CSCallString_WPA , CSSummary_WPA ,
  FSDATAFLOW_WPA , FSSPARSE_WPA , VFS_WPA , FSCS_WPA ,
  CFLFICI_WPA , CFLFSCI_WPA , CFLFSCS_WPA , TypeCPP_WPA ,
  FieldS_DDA , FlowS_DDA , PathS_DDA , Cxt_DDA ,
  Default_PTA
}
 Pointer analysis type list. More...
 
enum  PTAImplTy { BaseImpl , BVDataImpl , CondImpl }
 Implementation type: BVDataPTAImpl or CondPTAImpl. More...
 
typedef Set< const CallICFGNode * > CallSiteSet
 Indirect call edges type, map a callsite to a set of callees. More...
 
typedef SVFIR::CallSiteToFunPtrMap CallSiteToFunPtrMap
 
typedef Set< const SVFFunction * > FunctionSet
 
typedef OrderedMap< const CallICFGNode *, FunctionSetCallEdgeMap
 
typedef SCCDetection< PTACallGraph * > CallGraphSCC
 
typedef Set< const SVFGlobalValue * > VTableSet
 
typedef Set< const SVFFunction * > VFunSet
 
- Static Public Member Functions inherited from SVF::BVDataPTAImpl
static bool classof (const PointerAnalysis *pta)
 
- Protected Member Functions inherited from SVF::BVDataPTAImpl
PTDataTygetPTDataTy () const
 Get points-to data structure. More...
 
void finalize () override
 Finalization of pointer analysis, and normalize points-to information to Bit Vector representation. More...
 
virtual bool updateCallGraph (const CallSiteToFunPtrMap &)
 Update callgraph. This should be implemented by its subclass. More...
 
DiffPTDataTygetDiffPTDataTy () const
 
DFPTDataTygetDFPTDataTy () const
 
MutDFPTDataTygetMutDFPTDataTy () const
 
VersionedPTDataTygetVersionedPTDataTy () const
 
virtual void onTheFlyCallGraphSolve (const CallSiteToFunPtrMap &callsites, CallEdgeMap &newEdges)
 On the fly call graph construction. More...
 
virtual void onTheFlyThreadCallGraphSolve (const CallSiteToFunPtrMap &callsites, CallEdgeMap &newForkEdges)
 On the fly thread call graph construction respecting forksite. More...
 
virtual void normalizePointsTo ()
 
- Protected Member Functions inherited from SVF::PointerAnalysis
const CallSiteToFunPtrMapgetIndirectCallsites () const
 Return all indirect callsites. More...
 
NodeID getFunPtr (const CallICFGNode *cs) const
 Return function pointer PAGNode at a callsite cs. More...
 
virtual void validateTests ()
 Alias check functions to verify correctness of pointer analysis. More...
 
virtual void validateSuccessTests (std::string fun)
 
virtual void validateExpectedFailureTests (std::string fun)
 
void resetObjFieldSensitive ()
 Reset all object node as field-sensitive. More...
 
- Static Protected Attributes inherited from SVF::PointerAnalysis
static SVFIRpag = nullptr
 SVFIR. More...
 

Detailed Description

CFL Client Base Class.

Definition at line 49 of file CFLBase.h.

Constructor & Destructor Documentation

◆ CFLBase()

SVF::CFLBase::CFLBase ( SVFIR ir,
PointerAnalysis::PTATY  pty 
)
inline

Definition at line 53 of file CFLBase.h.

53  : BVDataPTAImpl(ir, pty), svfir(ir), graph(nullptr), grammar(nullptr), solver(nullptr)
54  {
55  }
BVDataPTAImpl(SVFIR *pag, PointerAnalysis::PTATY type, bool alias_check=true)
Constructor.
CFLSolver * solver
Definition: CFLBase.h:113
CFLGraph * graph
Definition: CFLBase.h:110
CFGrammar * grammar
Definition: CFLBase.h:112
SVFIR * svfir
Definition: CFLBase.h:109

◆ ~CFLBase()

virtual SVF::CFLBase::~CFLBase ( )
inlinevirtual

Destructor.

Definition at line 58 of file CFLBase.h.

59  {
60  delete solver;
61  delete grammarBase;
62  }
GrammarBase * grammarBase
Definition: CFLBase.h:111

Member Function Documentation

◆ analyze()

void SVF::CFLBase::analyze ( )
virtual

Perform analyze (main part of CFLR Analysis)

Implements SVF::PointerAnalysis.

Definition at line 136 of file CFLBase.cpp.

137 {
138  initialize();
139 
140  solve();
141 
142  finalize();
143 }
virtual void solve()
Solving CFL Reachability.
Definition: CFLBase.cpp:118
virtual void finalize()
Finalize extra stat info passing.
Definition: CFLBase.cpp:129
virtual void initialize()
Initialization of a pointer analysis, including building symbol table and SVFIR etc.

◆ buildCFLGrammar()

void SVF::CFLBase::buildCFLGrammar ( )
virtual

Build Grammar from text file.

Definition at line 65 of file CFLBase.cpp.

66 {
67  // Start building grammar
68  double start = stat->getClk(true);
69 
70  GrammarBuilder grammarBuilder = GrammarBuilder(Options::GrammarFilename());
71  grammarBase = grammarBuilder.build();
72 
73  // Get time of build grammar
74  double end = stat->getClk(true);
75  timeOfBuildCFLGrammar += (end - start) / TIMEINTERVAL;
76 }
#define TIMEINTERVAL
Definition: SVFType.h:512
static double timeOfBuildCFLGrammar
Statistics.
Definition: CFLBase.h:94
static const Option< std::string > GrammarFilename
Definition: Options.h:231
PTAStat * stat
Statistics.
static double getClk(bool mark=false)
Definition: SVFStat.cpp:47

◆ buildCFLGraph()

void SVF::CFLBase::buildCFLGraph ( )
virtual

Build CFLGraph based on Option.

Reimplemented in SVF::CFLVF.

Definition at line 78 of file CFLBase.cpp.

79 {
80  // Start building CFLGraph
81  double start = stat->getClk(true);
82 
83  AliasCFLGraphBuilder cflGraphBuilder = AliasCFLGraphBuilder();
84  if (Options::CFLGraph().empty()) // built from svfir
85  {
87  ConstraintGraph *consCG = new ConstraintGraph(svfir);
89  graph = cflGraphBuilder.buildBiPEGgraph(consCG, grammarBase->getStartKind(), grammarBase, svfir);
90  else
91  graph = cflGraphBuilder.buildBigraph(consCG, grammarBase->getStartKind(), grammarBase);
92  delete consCG;
93  }
94  else
95  graph = cflGraphBuilder.build(Options::CFLGraph(), grammarBase);
96  // Check CFL Graph and Grammar are accordance with grammar
97  CFLGramGraphChecker cflChecker = CFLGramGraphChecker();
98  cflChecker.check(grammarBase, &cflGraphBuilder, graph);
99 
100  // Get time of build graph
101  double end = stat->getClk(true);
102  timeOfBuildCFLGraph += (end - start) / TIMEINTERVAL;
103 }
static double timeOfBuildCFLGraph
Definition: CFLBase.h:97
Kind getStartKind()
Definition: CFGrammar.h:205
static const Option< bool > PEGTransfer
Definition: Options.h:235
static const Option< std::string > CFLGraph
Definition: Options.h:232

◆ checkParameter()

void SVF::CFLBase::checkParameter ( )
virtual

Parameter Checking.

Reimplemented in SVF::CFLVF.

Definition at line 49 of file CFLBase.cpp.

50 {
51  // Check for valid grammar file before parsing other options
53  bool pagfile = (filename.rfind("PAGGrammar.txt") == filename.length() - std::string("PAGGrammar.txt").length());
54  bool pegfile = (filename.rfind("PEGGrammar.txt") == filename.length() - std::string("PEGGrammar.txt").length());
55  bool vfgfile = (filename.rfind("VFGGrammar.txt") == filename.length() - std::string("VFGGrammar.txt").length());
56  if (!Options::Customized() && !(pagfile || pegfile || vfgfile))
57  {
58  SVFUtil::errs() << "Invalid alias grammar file: " << Options::GrammarFilename() << "\n"
59  << "Please use a file that ends with either 'CFGrammar.txt' or 'PEGGrammar.txt', "
60  << "or use the -customized flag to allow custom grammar files.\n";
61  assert(false && "grammar loading failed!"); // exit with error
62  }
63 }
const char *const string
Definition: cJSON.h:172
static const Option< bool > Customized
Definition: Options.h:239
std::ostream & errs()
Overwrite llvm::errs()
Definition: SVFUtil.h:56

◆ countSumEdges()

void SVF::CFLBase::countSumEdges ( )
virtual

Count the num of Nonterminal Edges.

Definition at line 150 of file CFLBase.cpp.

151 {
152  numOfStartEdges = 0;
153  for(auto it = getCFLGraph()->getCFLEdges().begin(); it != getCFLGraph()->getCFLEdges().end(); it++ )
154  {
155  if ((*it)->getEdgeKind() == grammar->getStartKind())
156  numOfStartEdges++;
157  }
158 }
CFLGraph * getCFLGraph()
Get CFL graph.
Definition: CFLBase.cpp:145
static double numOfStartEdges
Definition: CFLBase.h:101
const CFLEdgeSet & getCFLEdges() const
Definition: CFLGraph.h:199

◆ finalize()

void SVF::CFLBase::finalize ( )
virtual

Finalize extra stat info passing.

Reimplemented from SVF::PointerAnalysis.

Reimplemented in SVF::CFLVF, and SVF::CFLAlias.

Definition at line 129 of file CFLBase.cpp.

130 {
132 
134 }
void finalize() override
Finalization of pointer analysis, and normalize points-to information to Bit Vector representation.
static double numOfChecks
Definition: CFLBase.h:104
static double numOfChecks
Definition: CFLSolver.h:52

◆ getCFLGraph()

CFLGraph * SVF::CFLBase::getCFLGraph ( )

Get CFL graph.

Definition at line 145 of file CFLBase.cpp.

146 {
147  return graph;
148 }

◆ normalizeCFLGrammar()

void SVF::CFLBase::normalizeCFLGrammar ( )
virtual

Normalize grammar.

Definition at line 105 of file CFLBase.cpp.

106 {
107  // Start normalize grammar
108  double start = stat->getClk(true);
109 
110  CFGNormalizer normalizer = CFGNormalizer();
111  grammar = normalizer.normalize(grammarBase);
112 
113  // Get time of normalize grammar
114  double end = stat->getClk(true);
115  timeOfNormalizeGrammar += (end - start) / TIMEINTERVAL;
116 }
static double timeOfNormalizeGrammar
Definition: CFLBase.h:95

◆ solve()

void SVF::CFLBase::solve ( )
virtual

Solving CFL Reachability.

Reimplemented in SVF::CFLAlias.

Definition at line 118 of file CFLBase.cpp.

119 {
120  // Start solving
121  double start = stat->getClk(true);
122 
123  solver->solve();
124 
125  double end = stat->getClk(true);
126  timeOfSolving += (end - start) / TIMEINTERVAL;
127 }
static double timeOfSolving
Definition: CFLBase.h:105
virtual void solve()
Start solving.
Definition: CFLSolver.cpp:119

Member Data Documentation

◆ grammar

CFGrammar* SVF::CFLBase::grammar
protected

Definition at line 112 of file CFLBase.h.

◆ grammarBase

GrammarBase* SVF::CFLBase::grammarBase
protected

Definition at line 111 of file CFLBase.h.

◆ graph

CFLGraph* SVF::CFLBase::graph
protected

Definition at line 110 of file CFLBase.h.

◆ numOfChecks

double SVF::CFLBase::numOfChecks = 1
static

Definition at line 104 of file CFLBase.h.

◆ numOfIteration

double SVF::CFLBase::numOfIteration = 1
static

Definition at line 103 of file CFLBase.h.

◆ numOfNonterminalEdges

double SVF::CFLBase::numOfNonterminalEdges = 0
static

Definition at line 100 of file CFLBase.h.

◆ numOfStartEdges

double SVF::CFLBase::numOfStartEdges = 0
static

Definition at line 101 of file CFLBase.h.

◆ numOfTemporaryNonterminalEdges

double SVF::CFLBase::numOfTemporaryNonterminalEdges = 0
static

Definition at line 99 of file CFLBase.h.

◆ numOfTerminalEdges

double SVF::CFLBase::numOfTerminalEdges = 0
static

Definition at line 98 of file CFLBase.h.

◆ solver

CFLSolver* SVF::CFLBase::solver
protected

Definition at line 113 of file CFLBase.h.

◆ svfir

SVFIR* SVF::CFLBase::svfir
protected

Definition at line 109 of file CFLBase.h.

◆ timeOfBuildCFLGrammar

double SVF::CFLBase::timeOfBuildCFLGrammar = 0
static

Statistics.

Definition at line 94 of file CFLBase.h.

◆ timeOfBuildCFLGraph

double SVF::CFLBase::timeOfBuildCFLGraph = 0
static

Definition at line 97 of file CFLBase.h.

◆ timeOfNormalizeGrammar

double SVF::CFLBase::timeOfNormalizeGrammar = 0
static

Definition at line 95 of file CFLBase.h.

◆ timeOfSolving

double SVF::CFLBase::timeOfSolving = 0
static

Definition at line 105 of file CFLBase.h.


The documentation for this class was generated from the following files: