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
33#include "Util/PTAStat.h"
35
36namespace SVF
37{
38
39class FlowDDA;
40class ContextDDA;
41class SVFG;
42class PointerAnalysis;
43
47class DDAStat : public PTAStat
48{
49
50public:
53
58
65
67
68 void performStatPerQuery(NodeID ptr) override;
69
70 void performStat() override;
71
72 void printStat(std::string str = "") override;
73
74 void printStatPerQuery(NodeID ptr, const PointsTo& pts) override;
75
76 void getNumOfOOBQuery();
77
78private:
81
88
91
100
103
105
106 void initDefault();
107
108public:
109 SVFG* getSVFG() const;
110
111 PointerAnalysis* getPTA() const;
112
114 {
115 return _StrongUpdateStores;
116 }
117};
118
119} // End namespace SVF
120
121#endif /* DDASTAT_H_ */
u32_t _TotalNumOfStep
Definition DDAStat.h:89
u32_t _NumOfMustAliases
Definition DDAStat.h:56
void performStatPerQuery(NodeID ptr) override
Definition DDAStat.cpp:104
u32_t _TotalNumOfInfeasiblePath
Definition DDAStat.h:87
u32_t _TotalPtsSize
Definition DDAStat.h:96
u32_t _TotalNumOfOutOfBudgetQuery
Definition DDAStat.h:83
u32_t _MaxPtsSize
Definition DDAStat.h:94
double _AnaTimePerQuery
Definition DDAStat.h:61
double _AvgNumOfDPMAtSVFGNode
Definition DDAStat.h:101
u32_t _TotalNumOfMustAliases
Definition DDAStat.h:86
u32_t _TotalNumOfDPM
Definition DDAStat.h:84
SVFG * getSVFG() const
Definition DDAStat.cpp:87
u32_t _TotalCPtsSize
Definition DDAStat.h:95
PointerAnalysis * getPTA() const
Definition DDAStat.cpp:96
u32_t _NumOfDPM
Definition DDAStat.h:54
u32_t _NumOfStrongUpdates
Definition DDAStat.h:55
u32_t _NumOfInfeasiblePath
Definition DDAStat.h:57
void performStat() override
Definition DDAStat.cpp:217
u32_t _TotalNumOfStrongUpdates
Definition DDAStat.h:85
u64_t _NumOfStep
Definition DDAStat.h:59
u32_t _MaxNumOfDPMAtSVFGNode
Definition DDAStat.h:102
NUMStatMap NumPerQueryStatMap
Definition DDAStat.h:104
FlowDDA * flowDDA
Definition DDAStat.h:79
u32_t _TotalNumOfQuery
Definition DDAStat.h:82
double _TotalTimeOfBKCondition
Definition DDAStat.h:64
u32_t _NumOfConstantPtr
Definition DDAStat.h:98
u64_t _NumOfStepInCycle
Definition DDAStat.h:60
u32_t _NumOfNullPtr
Definition DDAStat.h:97
NodeBS & getStrongUpdateStores()
Definition DDAStat.h:113
double _AnaTimeCyclePerQuery
Definition DDAStat.h:62
void getNumOfOOBQuery()
Definition DDAStat.cpp:209
double _TotalTimeOfQueries
Definition DDAStat.h:63
ContextDDA * contextDDA
Definition DDAStat.h:80
void initDefault()
Definition DDAStat.cpp:51
u32_t _TotalNumOfStepInCycle
Definition DDAStat.h:90
u32_t _MaxCPtsSize
Definition DDAStat.h:93
NodeBS _StrongUpdateStores
Definition DDAStat.h:66
u32_t _NumOfIndCallEdgeSolved
Definition DDAStat.h:92
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:99
PointerAnalysis * pta
Definition PTAStat.h:74
OrderedMap< std::string, u32_t > NUMStatMap
Definition SVFStat.h:44
for isBitcode
Definition BasicTypes.h:68
unsigned long long u64_t
Definition GeneralType.h:48
u32_t NodeID
Definition GeneralType.h:55
llvm::IRBuilder IRBuilder
Definition BasicTypes.h:74
unsigned u32_t
Definition GeneralType.h:46