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