Static Value-Flow Analysis
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
SVF::CFLStat Class Reference

#include <CFLStat.h>

Inheritance diagram for SVF::CFLStat:
SVF::PTAStat SVF::SVFStat

Public Member Functions

 CFLStat (CFLBase *p)
 
virtual ~CFLStat ()
 
virtual void performStat ()
 
void CFLGraphStat ()
 
void CFLGrammarStat ()
 
void CFLSolverStat ()
 
- Public Member Functions inherited from SVF::PTAStat
 PTAStat (PointerAnalysis *p)
 
virtual ~PTAStat ()
 
void setMemUsageBefore (u32_t vmrss, u32_t vmsize)
 
void setMemUsageAfter (u32_t vmrss, u32_t vmsize)
 
void performStat () override
 
void callgraphStat () override
 
- Public Member Functions inherited from SVF::SVFStat
 SVFStat ()
 
virtual ~SVFStat ()
 
virtual void startClk ()
 
virtual void endClk ()
 
virtual void printStat (std::string str="")
 
virtual void performStatPerQuery (NodeID)
 
virtual void printStatPerQuery (NodeID, const PointsTo &)
 

Private Attributes

CFLBasepta
 

Additional Inherited Members

- Public Types inherited from SVF::SVFStat
enum class  ClockType { Wall , CPU }
 
typedef OrderedMap< std::string, u32_tNUMStatMap
 
typedef OrderedMap< std::string, doubleTIMEStatMap
 
- Static Public Member Functions inherited from SVF::SVFStat
static double getClk (bool mark=false)
 
- Public Attributes inherited from SVF::PTAStat
NodeBS localVarInRecursion
 
- Public Attributes inherited from SVF::SVFStat
NUMStatMap generalNumMap
 
NUMStatMap PTNumStatMap
 
TIMEStatMap timeStatMap
 
double startTime
 
double endTime
 
- Static Public Attributes inherited from SVF::SVFStat
static bool printGeneralStats = true
 SVF's general statistics are only printed once even if you run multiple anayses.
 
static double timeOfBuildingLLVMModule = 0
 
static double timeOfBuildingSymbolTable = 0
 
static double timeOfBuildingSVFIR = 0
 
- Protected Attributes inherited from SVF::PTAStat
PointerAnalysispta
 
u32_t _vmrssUsageBefore
 
u32_t _vmrssUsageAfter
 
u32_t _vmsizeUsageBefore
 
u32_t _vmsizeUsageAfter
 

Detailed Description

Statistics of CFL's analysis

Definition at line 44 of file CFLStat.h.

Constructor & Destructor Documentation

◆ CFLStat()

CFLStat::CFLStat ( CFLBase p)

Constructor

Definition at line 41 of file CFLStat.cpp.

41 : PTAStat(p),pta(p)
42{
43 startClk();
44}
cJSON * p
Definition cJSON.cpp:2559
CFLBase * pta
Definition CFLStat.h:47
virtual void startClk()
Definition SVFStat.h:61

◆ ~CFLStat()

virtual SVF::CFLStat::~CFLStat ( )
inlinevirtual

Definition at line 52 of file CFLStat.h.

53 {
54 }

Member Function Documentation

◆ CFLGrammarStat()

void CFLStat::CFLGrammarStat ( )

Definition at line 61 of file CFLStat.cpp.

62{
63 timeStatMap["BuildingTime"] = pta->timeOfBuildCFLGrammar;
64 timeStatMap["NormalizationTime"] = pta->timeOfNormalizeGrammar;
65
66 PTAStat::printStat("CFLGrammar Stats");
67}
static double timeOfBuildCFLGrammar
Statistics.
Definition CFLBase.h:91
static double timeOfNormalizeGrammar
Definition CFLBase.h:92
virtual void printStat(std::string str="")
Definition SVFStat.cpp:70
TIMEStatMap timeStatMap
Definition SVFStat.h:81

◆ CFLGraphStat()

void CFLStat::CFLGraphStat ( )

Collect CFLGraph information

Definition at line 49 of file CFLStat.cpp.

50{
53
54 timeStatMap["BuildingTime"] = pta->timeOfBuildCFLGraph;
55 PTNumStatMap["NumOfNodes"] = CFLGraph->getTotalNodeNum();
56 PTNumStatMap["NumOfEdges"] = CFLGraph->getCFLEdges().size();
57
58 PTAStat::printStat("CFLGraph Stats");
59}
CFLGraph * getCFLGraph()
Get CFL graph.
Definition CFLBase.cpp:151
virtual void countSumEdges()
Count the num of Nonterminal Edges.
Definition CFLBase.cpp:156
static double timeOfBuildCFLGraph
Definition CFLBase.h:94
const CFLEdgeSet & getCFLEdges() const
Definition CFLGraph.h:198
u32_t getTotalNodeNum() const
Get total number of node/edge.
NUMStatMap PTNumStatMap
Definition SVFStat.h:80

◆ CFLSolverStat()

void CFLStat::CFLSolverStat ( )

Definition at line 69 of file CFLStat.cpp.

70{
71 timeStatMap["AnalysisTime"] = pta->timeOfSolving;
72 PTNumStatMap["numOfChecks"] = pta->numOfChecks;
73 PTNumStatMap["numOfIteration"] = pta->numOfIteration;
74 PTNumStatMap["SumEdges"] = pta->numOfStartEdges;
75
76 PTAStat::printStat("CFL-reachability Solver Stats");
77}
static double numOfStartEdges
Definition CFLBase.h:98
static double numOfChecks
Definition CFLBase.h:101
static double timeOfSolving
Definition CFLBase.h:102
static double numOfIteration
Definition CFLBase.h:100

◆ performStat()

void CFLStat::performStat ( )
virtual

Start here

Implements SVF::SVFStat.

Definition at line 82 of file CFLStat.cpp.

83{
84 assert((SVFUtil::isa<CFLAlias, CFLVF>(pta)) && "not an CFLAlias pass!! what else??");
85 endClk();
86
87 // Grammar stat
89
90 // CFLGraph stat
92
93 // Solver stat
95
96 // Stat about Call graph and General stat
98}
void CFLGrammarStat()
Definition CFLStat.cpp:61
void CFLGraphStat()
Definition CFLStat.cpp:49
void CFLSolverStat()
Definition CFLStat.cpp:69
void performStat() override
Definition PTAStat.cpp:53
virtual void endClk()
Definition SVFStat.h:66
llvm::IRBuilder IRBuilder
Definition BasicTypes.h:76

Member Data Documentation

◆ pta

CFLBase* SVF::CFLStat::pta
private

Definition at line 47 of file CFLStat.h.


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