Static Value-Flow Analysis
Loading...
Searching...
No Matches
Options.h
Go to the documentation of this file.
1//===- Options.h -- Command line options ------------------------//
2
3#ifndef OPTIONS_H_
4#define OPTIONS_H_
5
6#include <sstream>
7#include "Util/CommandLine.h"
8#include "Util/PTAStat.h"
11
12namespace SVF
13{
14
17{
18public:
19 Options(void) = delete;
20
22
29
33
36
39
41 static const Option<bool> ClusterFs;
42
45
48
54
57
60
64
67
70
73
76
77 // ContextDDA.cpp
79
80 // DDAPass.cpp
87 static const Option<bool> PrintCPts;
89 static const Option<bool> WPANum;
91
92 // FlowDDA.cpp
94
95 // Offline constraint graph (OfflineConsG.cpp)
97
98 // Program Assignment Graph for pointer analysis (SVFIR.cpp)
101
102 // SVFG optimizer (SVFGOPT.cpp)
104 static const Option<bool> KeepAOFI;
106
107 // Sparse value-flow graph (VFG.cpp)
108 static const Option<bool> DumpVFG;
109
110 // Base class of pointer analyses (PointerAnalysis.cpp)
113 static const Option<bool> PTSPrint;
116 static const Option<bool> PStat;
120 static const Option<bool> DumpICFG;
122 static const Option<bool> ReadJson;
124 static const Option<bool> PAGPrint;
131
132 // PointerAnalysisImpl.cpp
134
135 // Memory region (MemRegion.cpp)
137
138 // Base class of pointer analyses (MemSSA.cpp)
139 static const Option<bool> DumpMSSA;
141 // static const llvm::cl::opt<string> MSSAFun;
143
144 // SVFG builder (SVFGBuilder.cpp)
147
150
151 // LockAnalysis.cpp
154
155 // MHP.cpp
158
159 //MTAStat.cpp
161
162 // TCT.cpp
164
165 // LeakChecker.cpp
167
168 // Source-sink analyzer (SrcSnkDDA.cpp)
171
172 // CHG.cpp
173 static const Option<bool> DumpCHA;
174
175 // DCHG.cpp
177
178 // LLVMModule.cpp
180 static const Option<bool> SVFMain;
181
182 // SymbolTableInfo.cpp
188
189 // Conditions.cpp
191
192 // BoundedZ3Expr.cpp
194
195 // SaberCondAllocator.cpp
197
198 // SaberSVFGBuilder.cpp
200
201 // SVFUtil.cpp
203
204 // Andersen.cpp
208 // static const Option<string> WriteAnder;
210 // static const Option<string> ReadAnder;
212 static const Option<bool> DiffPts;
215
216 // WPAPass.cpp
223
224 // DOTGraphTraits
226
227 // CFL option
230 static const Option<bool> PrintCFL;
233 static const Option<bool> CFLSVFG;
237
238 // Loop Analysis
241
242 // Abstract Execution
247 static const Option<u32_t> Timeout;
265
267
268 // float precision for symbolic abstraction
270};
271} // namespace SVF
272
273#endif // ifdef OPTIONS_H_
Carries around command line options.
Definition Options.h:17
static const Option< bool > IgnoreDeadFun
Definition Options.h:136
static const Option< bool > PlainMappingFs
Use an explicitly plain mapping with flow-sensitive (not null).
Definition Options.h:44
static const Option< std::string > ReadSVFG
Definition Options.h:149
static const Option< bool > SVFGWithIndirectCall
Definition Options.h:145
Options(void)=delete
static const Option< bool > KeepAOFI
Definition Options.h:104
static const Option< bool > CallGraphDotGraph
Definition Options.h:123
static const Option< bool > DumpMSSA
Definition Options.h:139
static const Option< bool > InsenCycle
Definition Options.h:86
static const Option< bool > FirstFieldEqBase
Definition Options.h:100
static Option< bool > ModelArrays
Definition Options.h:185
static const Option< bool > Customized
Definition Options.h:236
static const Option< bool > DisableWarn
Definition Options.h:202
static const Option< bool > INCDFPTData
Definition Options.h:133
static const Option< u32_t > LoopBound
Definition Options.h:240
static const Option< bool > LocMemModel
Definition Options.h:183
static const Option< bool > PrintInterLev
Definition Options.h:156
static const Option< bool > EnableThreadCallGraph
Definition Options.h:129
static const Option< bool > PAGDotGraph
Definition Options.h:118
static OptionMultiple< u32_t > AliasRule
Definition Options.h:222
static const Option< bool > BriefConsCGDotGraph
Definition Options.h:206
static const Option< std::string > WriteSVFG
Definition Options.h:148
static const OptionMap< u32_t > HandleRecur
recursion handling mode, Default: TOP
Definition Options.h:245
static const OptionMap< enum PTAStat::ClockType > ClockType
Definition Options.h:21
static const Option< std::string > ExtAPIPath
Definition Options.h:217
static const Option< bool > RaceCheck
data race checker, Default: false
Definition Options.h:261
static const Option< bool > POCRAlias
Definition Options.h:234
static const Option< bool > EnableTypeCheck
Definition Options.h:128
static const Option< bool > PrintLockSpan
Definition Options.h:153
static const Option< u32_t > AnderTimeLimit
Time limit for the Andersen's analyses.
Definition Options.h:72
static const OptionMap< SVF::NodeIDAllocator::Strategy > NodeAllocStrat
Definition Options.h:32
static const Option< bool > POCRHybrid
Definition Options.h:235
static const Option< bool > CyclicFldIdx
Definition Options.h:186
static const Option< bool > DFreeCheck
double free checker, Default: false
Definition Options.h:259
static const Option< bool > SVFMain
Definition Options.h:180
static const Option< u32_t > CxtBudget
Definition Options.h:78
static const Option< std::string > DumpJson
Definition Options.h:121
static Option< bool > DetectPWC
Definition Options.h:213
static const Option< u32_t > CxtLimit
Definition Options.h:170
static const Option< bool > PrintFieldWithBasePrefix
Definition Options.h:115
static const Option< bool > ShowSVFIRValue
Definition Options.h:119
static const Option< bool > PTSPrint
Definition Options.h:113
static const Option< std::string > ReadAnder
Definition Options.h:211
static const Option< bool > ClusterAnder
Whether to stage Andersen's with Steensgaard and cluster based on that data.
Definition Options.h:38
static OptionMultiple< PointerAnalysis::PTATY > PASelected
Definition Options.h:221
static const Option< bool > PEGTransfer
Definition Options.h:232
static const Option< u32_t > Timeout
the max time consumptions (seconds). Default: 4 hours 14400s
Definition Options.h:247
static Option< bool > HandBlackHole
Definition Options.h:99
static const Option< bool > SymTabPrint
Definition Options.h:187
static const OptionMap< u32_t > MemPar
Definition Options.h:142
static const Option< std::string > Graphtxt
Definition Options.h:179
static const OptionMap< PointsTo::Type > PtType
Type of points-to set to use for all analyses.
Definition Options.h:47
static const Option< bool > RegionAlign
Align identifiers in each region to a word.
Definition Options.h:59
static Option< bool > ModelConsts
Definition Options.h:184
static const Option< std::string > UserInputQuery
Definition Options.h:84
static const Option< bool > EnableAliasCheck
Definition Options.h:127
static const Option< bool > PrintPathCond
Definition Options.h:196
static const Option< u32_t > MaxContextLen
Definition Options.h:82
static const Option< u32_t > MaxPathLen
Definition Options.h:81
static const Option< bool > GepUnknownIdx
if the access index of gepstmt is unknown, skip it, Default: false
Definition Options.h:263
static const Option< bool > FileCheck
file open close checker, Default: false
Definition Options.h:257
static const Option< u32_t > FsTimeLimit
Time limit for the main phase (i.e., the actual solving) of FS analyses.
Definition Options.h:69
static const Option< u32_t > MaxBVLen
Definition Options.h:193
static const Option< bool > PTSAllPrint
Definition Options.h:114
static const Option< bool > ICFGMergeAdjacentNodes
Definition Options.h:266
static const Option< bool > WPANum
Definition Options.h:89
static const Option< bool > PAGPrint
Definition Options.h:124
static const Option< bool > CFLSVFG
Definition Options.h:233
static const Option< std::string > CFLGraph
Definition Options.h:229
static const Option< bool > TypePrint
Definition Options.h:111
static const Option< bool > ClusterFs
Whether to cluster FS or VFS with the auxiliary Andersen's.
Definition Options.h:41
static const Option< u32_t > MaxZ3Size
Definition Options.h:190
static const Option< bool > VtableInSVFIR
Definition Options.h:214
static const Option< u32_t > FlowBudget
Definition Options.h:93
static const Option< bool > RegionedClustering
Cluster partitions separately.
Definition Options.h:56
static const Option< bool > FlexSymMap
Definition Options.h:231
static const Option< u32_t > AEPrecision
Definition Options.h:269
static Option< bool > UsePreCompFieldSensitive
Definition Options.h:126
static const Option< bool > SABERFULLSVFG
Definition Options.h:219
static const Option< bool > CollectExtRetGlobals
Definition Options.h:199
static const Option< bool > PrintCGGraph
Definition Options.h:207
static const Option< std::string > SelfCycle
Definition Options.h:105
static const Option< bool > PrintCFL
Definition Options.h:230
static const Option< u32_t > IndirectCallLimit
Definition Options.h:125
static const Option< std::string > MSSAFun
Definition Options.h:140
static const Option< bool > AllPairMHP
Definition Options.h:160
static const Option< u32_t > MaxFieldLimit
Maximum number of field derivations for an object.
Definition Options.h:35
static const OptionMap< u32_t > ClusterMethod
Definition Options.h:53
static const Option< u32_t > MaxStepInWrapper
Definition Options.h:83
static const Option< bool > PrintDCHG
Definition Options.h:176
static const Option< std::string > WriteAnder
Definition Options.h:209
static const Option< u32_t > WidenDelay
Definition Options.h:243
static const Option< bool > NullDerefCheck
nullptr dereference checker, Default: false
Definition Options.h:253
static Option< bool > OPTSVFG
Definition Options.h:146
static const Option< bool > DumpSlice
Definition Options.h:169
static const Option< bool > FuncPointerPrint
Definition Options.h:112
static const Option< bool > RunUncallFuncs
Definition Options.h:264
static const Option< bool > MarkedClocksOnly
Definition Options.h:28
static const Option< bool > PrintCPts
Definition Options.h:87
static const Option< bool > ConnectVCallOnCHA
Definition Options.h:130
static const Option< bool > LoopAnalysis
Definition Options.h:239
static const Option< bool > PrintAliases
Definition Options.h:220
static const Option< bool > PStat
Definition Options.h:116
static const Option< bool > ValidateTests
Definition Options.h:166
static const Option< std::string > GrammarFilename
Definition Options.h:228
static const Option< u32_t > StatBudget
Definition Options.h:117
static const Option< bool > OCGDotGraph
Definition Options.h:96
static const Option< bool > ConsCGDotGraph
Definition Options.h:205
static const Option< std::string > OutputName
bug info output file, Default: output.db
Definition Options.h:249
static const Option< bool > TCTDotGraph
Definition Options.h:163
static const Option< bool > ShowHiddenNode
Definition Options.h:225
static const Option< bool > ReadJson
Definition Options.h:122
static const Option< bool > DoLockAnalysis
Definition Options.h:157
static const Option< bool > DumpVFG
Definition Options.h:108
static const OptionMap< BVDataPTAImpl::PTBackingType > ptDataBacking
PTData type.
Definition Options.h:66
static const Option< bool > ContextInsensitive
Definition Options.h:103
static const Option< bool > MemoryLeakCheck
memory leak check, Default: false
Definition Options.h:255
static const Option< bool > DiffPts
Definition Options.h:212
static const Option< bool > DumpICFG
Definition Options.h:120
static const Option< bool > PrintQueryPts
Definition Options.h:88
static const Option< bool > AnderSVFG
Definition Options.h:218
static const Option< bool > InsenRecur
Definition Options.h:85
static const Option< bool > PredictPtOcc
Definition Options.h:63
static const Option< bool > IntraLock
Definition Options.h:152
static OptionMultiple< PointerAnalysis::PTATY > DDASelected
register this into alias analysis group
Definition Options.h:90
static const Option< bool > BufferOverflowCheck
buffer overflow checker, Default: false
Definition Options.h:251
static const Option< bool > DumpCHA
Definition Options.h:173
static const Option< u32_t > VersioningThreads
Number of threads for the versioning phase.
Definition Options.h:75
for isBitcode
Definition BasicTypes.h:68
llvm::IRBuilder IRBuilder
Definition BasicTypes.h:74