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)
100
101 // SVFG optimizer (SVFGOPT.cpp)
103 static const Option<bool> KeepAOFI;
105
106 // Sparse value-flow graph (VFG.cpp)
107 static const Option<bool> DumpVFG;
108
109 // Base class of pointer analyses (PointerAnalysis.cpp)
112 static const Option<bool> PTSPrint;
115 static const Option<bool> PStat;
119 static const Option<bool> DumpICFG;
121 static const Option<bool> ReadJson;
123 static const Option<bool> PAGPrint;
130
131 // PointerAnalysisImpl.cpp
133
134 // Memory region (MemRegion.cpp)
136
137 // Base class of pointer analyses (MemSSA.cpp)
138 static const Option<bool> DumpMSSA;
140 // static const llvm::cl::opt<string> MSSAFun;
142
143 // SVFG builder (SVFGBuilder.cpp)
146
149
150 // LockAnalysis.cpp
153
154 // MHP.cpp
157
158 // TCT.cpp
160
161 // LeakChecker.cpp
163
164 // Source-sink analyzer (SrcSnkDDA.cpp)
167
168 // CHG.cpp
169 static const Option<bool> DumpCHA;
170
171 // LLVMModule.cpp
174
175 // SymbolTableInfo.cpp
181
182 // Conditions.cpp
184
185 // BoundedZ3Expr.cpp
187
188 // SaberCondAllocator.cpp
190
191 // SaberSVFGBuilder.cpp
193
194 // SVFUtil.cpp
196
197 // Andersen.cpp
201 // static const Option<string> WriteAnder;
203 // static const Option<string> ReadAnder;
205 static const Option<bool> DiffPts;
208
209 // WPAPass.cpp
216
217 // DOTGraphTraits
219
220 // CFL option
223 static const Option<bool> PrintCFL;
226 static const Option<bool> CFLSVFG;
230
231 // Loop Analysis
234
235 // Abstract Execution
242 static const Option<u32_t> Timeout;
259
269
271
272 // float precision for symbolic abstraction
274
275 // GraphWriter.h
277};
278} // namespace SVF
279
280#endif // ifdef OPTIONS_H_
Carries around command line options.
Definition Options.h:16
static const Option< bool > IgnoreDeadFun
Definition Options.h:135
static const Option< bool > PlainMappingFs
Use an explicitly plain mapping with flow-sensitive (not null).
Definition Options.h:43
static const Option< std::string > ReadSVFG
Definition Options.h:148
static const Option< bool > SVFGWithIndirectCall
Definition Options.h:144
Options(void)=delete
static const Option< bool > KeepAOFI
Definition Options.h:103
static const Option< bool > CallGraphDotGraph
Definition Options.h:122
static const Option< bool > DumpMSSA
Definition Options.h:138
static const Option< bool > InsenCycle
Definition Options.h:85
static const Option< bool > FirstFieldEqBase
Definition Options.h:99
static Option< bool > ModelArrays
Definition Options.h:178
static const Option< bool > Customized
Definition Options.h:229
static const Option< bool > DisableWarn
Definition Options.h:195
static const Option< bool > INCDFPTData
Definition Options.h:132
static const Option< u32_t > LoopBound
Definition Options.h:233
static const Option< bool > LocMemModel
Definition Options.h:176
static const Option< bool > PrintInterLev
Definition Options.h:155
static const Option< bool > EnableThreadCallGraph
Definition Options.h:128
static const Option< bool > PAGDotGraph
Definition Options.h:117
static OptionMultiple< u32_t > AliasRule
Definition Options.h:215
static const Option< bool > BriefConsCGDotGraph
Definition Options.h:199
static const Option< std::string > WriteSVFG
Definition Options.h:147
static const OptionMap< u32_t > HandleRecur
recursion handling mode, Default: TOP
Definition Options.h:240
static const Option< std::string > ExtAPIPath
Definition Options.h:210
static const Option< bool > POCRAlias
Definition Options.h:227
static const Option< bool > EnableTypeCheck
Definition Options.h:127
static const Option< bool > SlicedDumpDot
MTA slicing: dump intermediate dot graphs (ICFG/TCG/SVFG/...), Default: false.
Definition Options.h:265
static const Option< bool > PrintLockSpan
Definition Options.h:152
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:228
static const Option< bool > CyclicFldIdx
Definition Options.h:179
static const Option< bool > DFreeCheck
double free checker, Default: false
Definition Options.h:254
static const Option< u32_t > CxtBudget
Definition Options.h:77
static const Option< std::string > DumpJson
Definition Options.h:120
static Option< bool > DetectPWC
Definition Options.h:206
static const Option< u32_t > CxtLimit
Definition Options.h:166
static const Option< bool > PrintFieldWithBasePrefix
Definition Options.h:114
static const Option< bool > ShowSVFIRValue
Definition Options.h:118
static const Option< bool > PTSPrint
Definition Options.h:112
static const Option< std::string > ReadAnder
Definition Options.h:204
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 > EnableSlicing
MTA slicing: slice before the FSAM main analysis (false = whole-program baseline),...
Definition Options.h:261
static const Option< bool > PEGTransfer
Definition Options.h:225
static const Option< u32_t > Timeout
the max time consumptions (seconds). Default: 4 hours 14400s
Definition Options.h:242
static Option< bool > HandBlackHole
Definition Options.h:98
static const Option< bool > SymTabPrint
Definition Options.h:180
static const OptionMap< u32_t > MemPar
Definition Options.h:141
static const Option< std::string > Graphtxt
Definition Options.h:172
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:177
static const Option< std::string > UserInputQuery
Definition Options.h:83
static const Option< bool > EnableAliasCheck
Definition Options.h:126
static const Option< bool > PrintPathCond
Definition Options.h:189
static const Option< u32_t > MaxPathLen
Definition Options.h:80
static const OptionMap< u32_t > AESparsity
Definition Options.h:236
static const Option< bool > GepUnknownIdx
if the access index of gepstmt is unknown, skip it, Default: false
Definition Options.h:267
static const Option< bool > FileCheck
file open close checker, Default: false
Definition Options.h:252
static const Option< bool > DumpMTAGraphs
MTA: dump the pointer-analysis and thread call graphs (ptacg/tcg.dot), Default: false.
Definition Options.h:258
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:186
static const Option< bool > PTSAllPrint
Definition Options.h:113
static const Option< bool > ICFGMergeAdjacentNodes
Definition Options.h:270
static const Option< bool > WPANum
Definition Options.h:88
static const Option< bool > PAGPrint
Definition Options.h:123
static const Option< bool > CFLSVFG
Definition Options.h:226
static const Option< std::string > CFLGraph
Definition Options.h:222
static const Option< bool > TypePrint
Definition Options.h:110
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:183
static const Option< bool > VtableInSVFIR
Definition Options.h:207
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:224
static const Option< u32_t > AEPrecision
Definition Options.h:273
static Option< bool > UsePreCompFieldSensitive
Definition Options.h:125
static const Option< bool > SABERFULLSVFG
Definition Options.h:212
static const Option< bool > CollectExtRetGlobals
Definition Options.h:192
static const Option< bool > PrintCGGraph
Definition Options.h:200
static const Option< std::string > SelfCycle
Definition Options.h:104
static const Option< bool > PrintCFL
Definition Options.h:223
static const Option< u32_t > IndirectCallLimit
Definition Options.h:124
static const OptionMap< PTBackingType > ptDataBacking
PTData type.
Definition Options.h:65
static const Option< bool > SlicingSingle
MTA slicing: one unified slice for ILA + FSPTA (single-pass baseline), Default: false.
Definition Options.h:263
static const Option< std::string > MSSAFun
Definition Options.h:139
static OptionMultiple< PTATY > PASelected
Definition Options.h:214
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:202
static const Option< u32_t > WidenDelay
Definition Options.h:238
static const OptionMap< u32_t > AEFunEntry
Definition Options.h:237
static const Option< bool > NullDerefCheck
nullptr dereference checker, Default: false
Definition Options.h:248
static Option< bool > OPTSVFG
Definition Options.h:145
static const Option< bool > DumpSlice
Definition Options.h:165
static const Option< bool > FuncPointerPrint
Definition Options.h:111
static const Option< bool > RunUncallFuncs
Definition Options.h:268
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:129
static const Option< bool > LoopAnalysis
Definition Options.h:232
static const Option< u32_t > MaxNodeLabelLength
Definition Options.h:276
static const OptionMap< SVFStat::ClockType > ClockType
Definition Options.h:20
static const Option< bool > PrintAliases
Definition Options.h:213
static const Option< bool > PStat
Definition Options.h:115
static Option< u32_t > MaxContextLen
Definition Options.h:81
static const Option< bool > ValidateTests
Definition Options.h:162
static const Option< std::string > GrammarFilename
Definition Options.h:221
static const Option< u32_t > StatBudget
Definition Options.h:116
static const Option< bool > MTFlowSensitive
MTA: flow-sensitive (FSAM) main analysis; false = Andersen flow-insensitive base, Default: true.
Definition Options.h:256
static const Option< bool > OCGDotGraph
Definition Options.h:95
static const Option< bool > ConsCGDotGraph
Definition Options.h:198
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:244
static const Option< bool > TCTDotGraph
Definition Options.h:159
static const Option< bool > ShowHiddenNode
Definition Options.h:218
static const Option< bool > ReadJson
Definition Options.h:121
static const Option< bool > DoLockAnalysis
Definition Options.h:156
static const Option< bool > DumpVFG
Definition Options.h:107
static const Option< bool > ContextInsensitive
Definition Options.h:102
static const Option< bool > MemoryLeakCheck
memory leak check, Default: false
Definition Options.h:250
static const Option< bool > DiffPts
Definition Options.h:205
static const Option< bool > DumpICFG
Definition Options.h:119
static const Option< bool > PrintQueryPts
Definition Options.h:87
static const Option< bool > AnderSVFG
Definition Options.h:211
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:173
static const Option< bool > IntraLock
Definition Options.h:151
static const Option< bool > BufferOverflowCheck
buffer overflow checker, Default: false
Definition Options.h:246
static const Option< bool > DumpCHA
Definition Options.h:169
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