Static Value-Flow Analysis
Loading...
Searching...
No Matches
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

CFLBase * pta

Additional Inherited Members

Public Types inherited from SVF::SVFStat
enum class  ClockType { Wall , CPU }
typedef OrderedMap< std::string, u32_t > NUMStatMap
typedef OrderedMap< std::string, double > TIMEStatMap
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
PointerAnalysis * pta
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
PTAStat(PointerAnalysis *p)
Definition PTAStat.cpp:40
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}
virtual void printStat(std::string str="")
Definition SVFStat.cpp:71
TIMEStatMap timeStatMap
Definition SVFStat.h:81

◆ CFLGraphStat()

void CFLStat::CFLGraphStat ( )

Collect CFLGraph information

Definition at line 49 of file CFLStat.cpp.

50{
51 pta->countSumEdges();
52 CFLGraph* CFLGraph = pta->getCFLGraph();
53
54 timeStatMap["BuildingTime"] = pta->timeOfBuildCFLGraph;
55 PTNumStatMap["NumOfNodes"] = CFLGraph->getTotalNodeNum();
56 PTNumStatMap["NumOfEdges"] = CFLGraph->getCFLEdges().size();
57
58 PTAStat::printStat("CFLGraph Stats");
59}
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}

◆ 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_NODISCARD bool isa(const Y &Val)
Definition Casting.h:241

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: