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 "Util/CommandLine.h"
7#include "Util/SVFStat.h"
8#include "MemoryModel/PTATY.h"
10
11namespace SVF
12{
13
16{
17public:
18 Options(void) = delete;
19
21
28
32
35
38
40 static const Option<bool> ClusterFs;
41
44
47
53
56
59
63
66
69
72
75
76 // ContextDDA.cpp
78
79 // DDAPass.cpp
86 static const Option<bool> PrintCPts;
88 static const Option<bool> WPANum;
90
91 // FlowDDA.cpp
93
94 // Offline constraint graph (OfflineConsG.cpp)
96
97 // 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 // TCT.cpp
161
162 // LeakChecker.cpp
164
165 // Source-sink analyzer (SrcSnkDDA.cpp)
168
169 // CHG.cpp
170 static const Option<bool> DumpCHA;
171
172 // LLVMModule.cpp
175
176 // SymbolTableInfo.cpp
182
183 // Conditions.cpp
185
186 // BoundedZ3Expr.cpp
188
189 // SaberCondAllocator.cpp
191
192 // SaberSVFGBuilder.cpp
194
195 // SVFUtil.cpp
197
198 // Andersen.cpp
202 // static const Option<string> WriteAnder;
204 // static const Option<string> ReadAnder;
206 static const Option<bool> DiffPts;
209
210 // WPAPass.cpp
217
218 // DOTGraphTraits
220
221 // CFL option
224 static const Option<bool> PrintCFL;
227 static const Option<bool> CFLSVFG;
231
232 // Loop Analysis
235
236 // Abstract Execution
243 static const Option<u32_t> Timeout;
260
268
270
271 // float precision for symbolic abstraction
273
274 // GraphWriter.h
276};
277} // namespace SVF
278
279#endif // ifdef OPTIONS_H_
Carries around command line options.
Definition Options.h:16
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:43
static const Option< bool > UndefAsNull
Definition Options.h:99
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:85
static const Option< bool > FirstFieldEqBase
Definition Options.h:100
static Option< bool > ModelArrays
Definition Options.h:179
static const Option< bool > Customized
Definition Options.h:230
static const Option< bool > DisableWarn
Definition Options.h:196
static const Option< bool > INCDFPTData
Definition Options.h:133
static const Option< u32_t > LoopBound
Definition Options.h:234
static const Option< bool > LocMemModel
Definition Options.h:177
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:216
static const Option< bool > BriefConsCGDotGraph
Definition Options.h:200
static const Option< std::string > WriteSVFG
Definition Options.h:148
static const OptionMap< u32_t > HandleRecur
recursion handling mode, Default: TOP
Definition Options.h:241
static const Option< std::string > ExtAPIPath
Definition Options.h:211
static const Option< bool > POCRAlias
Definition Options.h:228
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:71
static const OptionMap< SVF::NodeIDAllocator::Strategy > NodeAllocStrat
Definition Options.h:31
static const Option< bool > POCRHybrid
Definition Options.h:229
static const Option< bool > CyclicFldIdx
Definition Options.h:180
static const Option< bool > DFreeCheck
double free checker, Default: false
Definition Options.h:255
static const Option< u32_t > CxtBudget
Definition Options.h:77
static const Option< bool > MTAEnableSlicing
MTA slicing: slice before the FSAM main analysis (false = whole-program baseline),...
Definition Options.h:262
static const Option< std::string > DumpJson
Definition Options.h:121
static Option< bool > DetectPWC
Definition Options.h:207
static const Option< u32_t > CxtLimit
Definition Options.h:167
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:205
static const Option< bool > ClusterAnder
Whether to stage Andersen's with Steensgaard and cluster based on that data.
Definition Options.h:37
static const Option< bool > PEGTransfer
Definition Options.h:226
static const Option< u32_t > Timeout
the max time consumptions (seconds). Default: 4 hours 14400s
Definition Options.h:243
static Option< bool > HandBlackHole
Definition Options.h:98
static const Option< bool > SymTabPrint
Definition Options.h:181
static const OptionMap< u32_t > MemPar
Definition Options.h:142
static const Option< std::string > Graphtxt
Definition Options.h:173
static const OptionMap< PointsTo::Type > PtType
Type of points-to set to use for all analyses.
Definition Options.h:46
static const Option< bool > RegionAlign
Align identifiers in each region to a word.
Definition Options.h:58
static Option< bool > ModelConsts
Definition Options.h:178
static const Option< std::string > UserInputQuery
Definition Options.h:83
static const Option< bool > EnableAliasCheck
Definition Options.h:127
static const Option< bool > PrintPathCond
Definition Options.h:190
static const Option< u32_t > MaxPathLen
Definition Options.h:80
static const OptionMap< u32_t > AESparsity
Definition Options.h:237
static const Option< bool > GepUnknownIdx
if the access index of gepstmt is unknown, skip it, Default: false
Definition Options.h:266
static const Option< bool > FileCheck
file open close checker, Default: false
Definition Options.h:253
static const Option< bool > DumpMTAGraphs
MTA: dump the pointer-analysis and thread call graphs (ptacg/tcg.dot), Default: false.
Definition Options.h:259
static const Option< u32_t > FsTimeLimit
Time limit for the main phase (i.e., the actual solving) of FS analyses.
Definition Options.h:68
static const Option< u32_t > MaxBVLen
Definition Options.h:187
static const Option< bool > PTSAllPrint
Definition Options.h:114
static const Option< bool > ICFGMergeAdjacentNodes
Definition Options.h:269
static const Option< bool > WPANum
Definition Options.h:88
static const Option< bool > PAGPrint
Definition Options.h:124
static const Option< bool > CFLSVFG
Definition Options.h:227
static const Option< std::string > CFLGraph
Definition Options.h:223
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:40
static const Option< u32_t > MaxZ3Size
Definition Options.h:184
static const Option< bool > VtableInSVFIR
Definition Options.h:208
static const Option< u32_t > FlowBudget
Definition Options.h:92
static const Option< bool > RegionedClustering
Cluster partitions separately.
Definition Options.h:55
static const Option< bool > FlexSymMap
Definition Options.h:225
static const Option< u32_t > AEPrecision
Definition Options.h:272
static Option< bool > UsePreCompFieldSensitive
Definition Options.h:126
static const Option< bool > SABERFULLSVFG
Definition Options.h:213
static const Option< bool > CollectExtRetGlobals
Definition Options.h:193
static const Option< bool > PrintCGGraph
Definition Options.h:201
static const Option< std::string > SelfCycle
Definition Options.h:105
static const Option< bool > PrintCFL
Definition Options.h:224
static const Option< bool > MTASingleStageSlicing
MTA slicing: one unified slice for ILA + FSPTA (single-pass baseline), Default: false.
Definition Options.h:264
static const Option< u32_t > IndirectCallLimit
Definition Options.h:125
static const OptionMap< PTBackingType > ptDataBacking
PTData type.
Definition Options.h:65
static const Option< std::string > MSSAFun
Definition Options.h:140
static OptionMultiple< PTATY > PASelected
Definition Options.h:215
static const Option< u32_t > MaxFieldLimit
Maximum number of field derivations for an object.
Definition Options.h:34
static const OptionMap< u32_t > ClusterMethod
Definition Options.h:52
static const Option< u32_t > MaxStepInWrapper
Definition Options.h:82
static const Option< std::string > WriteAnder
Definition Options.h:203
static const Option< u32_t > WidenDelay
Definition Options.h:239
static const OptionMap< u32_t > AEFunEntry
Definition Options.h:238
static const Option< bool > NullDerefCheck
nullptr dereference checker, Default: false
Definition Options.h:249
static Option< bool > OPTSVFG
Definition Options.h:146
static const Option< bool > DumpSlice
Definition Options.h:166
static const Option< bool > FuncPointerPrint
Definition Options.h:112
static const Option< bool > RunUncallFuncs
Definition Options.h:267
static const Option< bool > MarkedClocksOnly
Definition Options.h:27
static const Option< bool > PrintCPts
Definition Options.h:86
static const Option< bool > ConnectVCallOnCHA
Definition Options.h:130
static const Option< bool > LoopAnalysis
Definition Options.h:233
static const Option< u32_t > MaxNodeLabelLength
Definition Options.h:275
static const OptionMap< SVFStat::ClockType > ClockType
Definition Options.h:20
static const Option< bool > PrintAliases
Definition Options.h:214
static const Option< bool > PStat
Definition Options.h:116
static Option< u32_t > MaxContextLen
Definition Options.h:81
static const Option< bool > ValidateTests
Definition Options.h:163
static const Option< std::string > GrammarFilename
Definition Options.h:222
static const Option< u32_t > StatBudget
Definition Options.h:117
static const Option< bool > MTFlowSensitive
MTA: flow-sensitive (FSAM) main analysis; false = Andersen flow-insensitive base, Default: true.
Definition Options.h:257
static const Option< bool > OCGDotGraph
Definition Options.h:95
static const Option< bool > ConsCGDotGraph
Definition Options.h:199
static OptionMultiple< PTATY > DDASelected
register this into alias analysis group
Definition Options.h:89
static const Option< std::string > OutputName
bug info output file, Default: output.db
Definition Options.h:245
static const Option< bool > TCTDotGraph
Definition Options.h:160
static const Option< bool > ShowHiddenNode
Definition Options.h:219
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 Option< bool > ContextInsensitive
Definition Options.h:103
static const Option< bool > MemoryLeakCheck
memory leak check, Default: false
Definition Options.h:251
static const Option< bool > DiffPts
Definition Options.h:206
static const Option< bool > DumpICFG
Definition Options.h:120
static const Option< bool > PrintQueryPts
Definition Options.h:87
static const Option< bool > AnderSVFG
Definition Options.h:212
static const Option< bool > InsenRecur
Definition Options.h:84
static const Option< bool > PredictPtOcc
Definition Options.h:62
static Option< bool > SVFMain
Definition Options.h:174
static const Option< bool > IntraLock
Definition Options.h:152
static const Option< bool > BufferOverflowCheck
buffer overflow checker, Default: false
Definition Options.h:247
static const Option< bool > DumpCHA
Definition Options.h:170
static const Option< u32_t > VersioningThreads
Number of threads for the versioning phase.
Definition Options.h:74
for isBitcode
Definition BasicTypes.h:70
llvm::IRBuilder IRBuilder
Definition BasicTypes.h:76