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