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  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 39 of file CFLStat.cpp.

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

◆ ~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 59 of file CFLStat.cpp.

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

◆ CFLGraphStat()

void CFLStat::CFLGraphStat ( )

Collect CFLGraph information

Definition at line 47 of file CFLStat.cpp.

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

◆ CFLSolverStat()

void CFLStat::CFLSolverStat ( )

Definition at line 67 of file CFLStat.cpp.

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

◆ performStat()

void CFLStat::performStat ( )
virtual

Start here

Implements SVF::SVFStat.

Definition at line 80 of file CFLStat.cpp.

81{
82 assert((SVFUtil::isa<CFLAlias, CFLVF>(pta)) && "not an CFLAlias pass!! what else??");
83 endClk();
84
85 // Grammar stat
87
88 // CFLGraph stat
90
91 // Solver stat
93
94 // Stat about Call graph and General stat
96}
void CFLGrammarStat()
Definition CFLStat.cpp:59
void CFLGraphStat()
Definition CFLStat.cpp:47
void CFLSolverStat()
Definition CFLStat.cpp:67
void performStat() override
Definition PTAStat.cpp:52
virtual void endClk()
Definition SVFStat.h:63
llvm::IRBuilder IRBuilder
Definition BasicTypes.h:74

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: