Static Value-Flow Analysis
Loading...
Searching...
No Matches
DDAStat.h
Go to the documentation of this file.
1//===- DDAStat.h -- Statistics for demand-driven pass-------------//
2//
3// SVF: Static Value-Flow Analysis
4//
5// Copyright (C) <2013-> <Yulei Sui>
6//
7
8// This program is free software: you can redistribute it and/or modify
9// it under the terms of the GNU Affero General Public License as published by
10// the Free Software Foundation, either version 3 of the License, or
11// (at your option) any later version.
12
13// This program is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16// GNU Affero General Public License for more details.
17
18// You should have received a copy of the GNU Affero General Public License
19// along with this program. If not, see <http://www.gnu.org/licenses/>.
20//
21//===----------------------------------------------------------------------===//
22
23/*
24 * DDAStat.h
25 *
26 * Created on: Sep 15, 2014
27 * Author: Yulei Sui
28 */
29
30#ifndef DDASTAT_H_
31#define DDASTAT_H_
32
34#include "Util/PTAStat.h"
35#include "Util/GeneralType.h"
36
37namespace SVF
38{
39
40class FlowDDA;
41class ContextDDA;
42class SVFG;
43class PointerAnalysis;
44
48class DDAStat : public PTAStat
49{
50
51public:
54
59
66
68
69 void performStatPerQuery(NodeID ptr) override;
70
71 void performStat() override;
72
73 void printStat(std::string str = "") override;
74
75 void printStatPerQuery(NodeID ptr, const PointsTo& pts) override;
76
77 void getNumOfOOBQuery();
78
79private:
82
89
92
101
104
106
107 void initDefault();
108
109public:
110 SVFG* getSVFG() const;
111
112 PointerAnalysis* getPTA() const;
113
115 {
116 return _StrongUpdateStores;
117 }
118};
119
120} // End namespace SVF
121
122#endif /* DDASTAT_H_ */
u32_t _TotalNumOfStep
Definition DDAStat.h:90
u32_t _NumOfMustAliases
Definition DDAStat.h:57
void performStatPerQuery(NodeID ptr) override
Definition DDAStat.cpp:104
u32_t _TotalNumOfInfeasiblePath
Definition DDAStat.h:88
u32_t _TotalPtsSize
Definition DDAStat.h:97
u32_t _TotalNumOfOutOfBudgetQuery
Definition DDAStat.h:84
u32_t _MaxPtsSize
Definition DDAStat.h:95
double _AnaTimePerQuery
Definition DDAStat.h:62
double _AvgNumOfDPMAtSVFGNode
Definition DDAStat.h:102
u32_t _TotalNumOfMustAliases
Definition DDAStat.h:87
u32_t _TotalNumOfDPM
Definition DDAStat.h:85
SVFG * getSVFG() const
Definition DDAStat.cpp:87
u32_t _TotalCPtsSize
Definition DDAStat.h:96
PointerAnalysis * getPTA() const
Definition DDAStat.cpp:96
u32_t _NumOfDPM
Definition DDAStat.h:55
u32_t _NumOfStrongUpdates
Definition DDAStat.h:56
u32_t _NumOfInfeasiblePath
Definition DDAStat.h:58
void performStat() override
Definition DDAStat.cpp:217
u32_t _TotalNumOfStrongUpdates
Definition DDAStat.h:86
u64_t _NumOfStep
Definition DDAStat.h:60
u32_t _MaxNumOfDPMAtSVFGNode
Definition DDAStat.h:103
NUMStatMap NumPerQueryStatMap
Definition DDAStat.h:105
FlowDDA * flowDDA
Definition DDAStat.h:80
u32_t _TotalNumOfQuery
Definition DDAStat.h:83
double _TotalTimeOfBKCondition
Definition DDAStat.h:65
u32_t _NumOfConstantPtr
Definition DDAStat.h:99
u64_t _NumOfStepInCycle
Definition DDAStat.h:61
u32_t _NumOfNullPtr
Definition DDAStat.h:98
NodeBS & getStrongUpdateStores()
Definition DDAStat.h:114
double _AnaTimeCyclePerQuery
Definition DDAStat.h:63
void getNumOfOOBQuery()
Definition DDAStat.cpp:209
double _TotalTimeOfQueries
Definition DDAStat.h:64
ContextDDA * contextDDA
Definition DDAStat.h:81
void initDefault()
Definition DDAStat.cpp:51
u32_t _TotalNumOfStepInCycle
Definition DDAStat.h:91
u32_t _MaxCPtsSize
Definition DDAStat.h:94
NodeBS _StrongUpdateStores
Definition DDAStat.h:67
u32_t _NumOfIndCallEdgeSolved
Definition DDAStat.h:93
void printStatPerQuery(NodeID ptr, const PointsTo &pts) override
Definition DDAStat.cpp:272
void printStat(std::string str="") override
Definition DDAStat.cpp:295
u32_t _NumOfBlackholePtr
Definition DDAStat.h:100
PointerAnalysis * pta
Definition PTAStat.h:73
OrderedMap< std::string, u32_t > NUMStatMap
Definition SVFStat.h:47
for isBitcode
Definition BasicTypes.h:70
unsigned long long u64_t
Definition GeneralType.h:69
u32_t NodeID
Definition GeneralType.h:76
llvm::IRBuilder IRBuilder
Definition BasicTypes.h:76
unsigned u32_t
Definition GeneralType.h:67