Static Value-Flow Analysis
Loading...
Searching...
No Matches
Options.cpp
Go to the documentation of this file.
1//===- Options.cpp -- Command line options ------------------------//
2
3#include "Util/Options.h"
4#include "Util/CommandLine.h"
5#include "Util/ExtAPI.h"
6
7namespace SVF
8{
10 "clock-type",
11 "how time should be measured",
13{
14 {PTAStat::ClockType::Wall, "wall", "use wall time"},
15 {PTAStat::ClockType::CPU, "cpu", "use CPU time"},
16}
17);
18
20 "marked-clocks-only",
21 "Only measure times where explicitly marked",
22 true
23);
24
26 "node-alloc-strat",
27 "Method of allocating (LLVM) values and memory objects as node IDs",
29{
30 {NodeIDAllocator::Strategy::DENSE, "dense", "allocate objects together [0-n] and values together [m-MAX], separately"},
31 {NodeIDAllocator::Strategy::REVERSE_DENSE, "reverse-dense", "like dense but flipped, objects are [m-MAX], values are [0-n]"},
32 {NodeIDAllocator::Strategy::SEQ, "seq", "allocate values and objects sequentially, intermixed (default)"},
33 {NodeIDAllocator::Strategy::DBUG, "debug", "allocate value and objects sequentially, intermixed, except GEP objects as offsets"},
34}
35);
36
38 "field-limit",
39 "Maximum number of fields for field sensitive analysis",
40 512
41);
42
44 "ptd",
45 "Overarching points-to data structure",
47{
48 {BVDataPTAImpl::PTBackingType::Mutable, "mutable", "points-to set per pointer"},
49 {BVDataPTAImpl::PTBackingType::Persistent, "persistent", "points-to set ID per pointer, operations hash-consed"},
50}
51);
52
54 "fs-time-limit",
55 "time limit for main phase of flow-sensitive analyses",
56 0
57);
58
60 "versioning-threads",
61 "number of threads to use in the versioning phase of versioned flow-sensitive analysis",
62 1
63);
64
66 "ander-time-limit",
67 "time limit for Andersen's analyses (ignored when -fs-time-limit set)",
68 0
69);
70
71// ContextDDA.cpp
73 "cxt-bg",
74 "Maximum step budget of context-sensitive traversing",
75 10000
76);
77
78// DDAPass.cpp
80 "max-path",
81 "Maximum path limit for DDA",
82 100000
83);
84
86 "max-cxt",
87 "Maximum context limit for DDA",
88 3
89);
90
92 "max-step",
93 "Maximum steps when traversing on SVFG to identify a memory allocation wrapper",
94 10
95);
96
98 "query",
99 "Please specify queries by inputing their pointer ids",
100 "all"
101);
102
104 "in-recur",
105 "Mark context insensitive SVFG edges due to function recursions",
106 false
107);
108
110 "in-cycle",
111 "Mark context insensitive SVFG edges due to value-flow cycles",
112 false
113);
114
116 "cpts",
117 "Dump conditional points-to set ",
118 false
119);
120
122 "print-query-pts",
123 "Dump queries' conditional points-to set ",
124 false
125);
126
128 "wpa-num",
129 "collect WPA FS number only ",
130 false
131);
132
134//static RegisterAnalysisGroup<AliasAnalysis> AA_GROUP(DDAPA);
136 "Select pointer analysis",
137{
138 {PointerAnalysis::FlowS_DDA, "dfs", "Demand-driven flow sensitive analysis"},
139 {PointerAnalysis::Cxt_DDA, "cxt", "Demand-driven context- flow- sensitive analysis"},
140}
141);
142
143// FlowDDA.cpp
145 "flow-bg",
146 "Maximum step budget of flow-sensitive traversing",
147 10000
148);
149
150
151// Offline constraint graph (OfflineConsG.cpp)
153 "dump-ocg",
154 "Dump dot graph of Offline Constraint Graph",
155 false
156);
157
158
159// Program Assignment Graph for pointer analysis (SVFIR.cpp)
161 "blk",
162 "Handle blackhole edge",
163 false
164);
165
167 "ff-eq-base",
168 "Treat base objects as their first fields",
169 false
170);
171
172
173// SVFG optimizer (SVFGOPT.cpp)
175 "ci-svfg",
176 "Reduce SVFG into a context-insensitive one",
177 false
178);
179
181 "keep-aofi",
182 "Keep formal-in and actual-out parameters",
183 false
184);
185
187 "keep-self-cycle",
188 "How to handle self cycle edges: all, context, none",
189 ""
190);
191
192
193// Sparse value-flow graph (VFG.cpp)
195 "dump-vfg",
196 "Dump dot graph of VFG",
197 false
198);
199
200
201// Base class of pointer analyses (PointerAnalysis.cpp)
203 "print-type",
204 "Print type",
205 false
206);
207
209 "print-fp",
210 "Print targets of indirect call site",
211 false
212);
213
215 "print-pts",
216 "Print points-to set of top-level pointers",
217 false
218);
219
221 "print-field",
222 "Print field object with base object id as the prefix",
223 false
224);
225
227 "print-all-pts",
228 "Print all points-to set of both top-level and address-taken variables",
229 false
230);
231
233 "stat",
234 "Statistic for Pointer analysis",
235 true
236);
237
239 "stat-limit",
240 "Iteration budget for On-the-fly statistics",
241 20
242);
243
245 "dump-pag",
246 "Dump dot graph of SVFIR",
247 false
248);
249
251 "show-ir-value",
252 "Show values of SVFIR (e.g., when generating dot graph)",
253 true
254);
255
257 "dump-icfg",
258 "Dump dot graph of ICFG",
259 false
260);
261
263 "dump-json",
264 "Dump the SVFIR in JSON format",
265 ""
266);
267
269 "read-json",
270 "Read the SVFIR in JSON format",
271 false
272);
273
275 "dump-callgraph",
276 "Dump dot graph of Call Graph",
277 false
278);
279
281 "print-pag",
282 "Print SVFIR to command line",
283 false
284);
285
287 "ind-call-limit",
288 "Indirect solved call edge limit",
289 50000
290);
291
293 "pre-field-sensitive",
294 "Use pre-computed field-sensitivity for later analysis",
295 true
296);
297
299 "alias-check",
300 "Enable alias check functions",
301 true
302);
303
305 "type-check",
306 "Enable type check functions",
307 true
308);
309
311 "enable-tcg",
312 "Enable pointer analysis to use thread call graph",
313 true
314);
315
317 "v-call-cha",
318 "connect virtual calls using cha",
319 false
320);
321
322
323// PointerAnalysisImpl.cpp
325 "inc-data",
326 "Enable incremental DFPTData for flow-sensitive analysis",
327 true
328);
329
331 "cluster-ander",
332 "Stage Andersen's with Steensgard's and cluster based on that",
333 false
334);
335
337 "cluster-fs",
338 "Cluster for FS/VFS with auxiliary Andersen's",
339 false
340);
341
343 "plain-mapping-fs",
344 "Use an explicitly (not null) plain mapping for FS",
345 false
346);
347
349 "pt-type",
350 "points-to set data structure to use in all analyses",
351 PointsTo::Type::SBV,
352{
353 {PointsTo::Type::SBV, "sbv", "sparse bit-vector"},
354 {PointsTo::Type::CBV, "cbv", "core bit-vector (dynamic bit-vector without leading and trailing 0s)"},
355 {PointsTo::Type::BV, "bv", "bit-vector (dynamic bit-vector without trailing 0s)"},
356}
357);
358
360 "cluster-method",
361 "hierarchical clustering method for objects",
363{
364 {HCLUST_METHOD_SINGLE, "single", "single linkage; minimum spanning tree algorithm"},
365 {HCLUST_METHOD_COMPLETE, "complete", "complete linkage; nearest-neighbour-chain algorithm"},
366 {HCLUST_METHOD_AVERAGE, "average", "unweighted average linkage; nearest-neighbour-chain algorithm"},
367 {HCLUST_METHOD_SVF_BEST, "best", "try all linkage criteria; choose best"},
368}
369);
370
372 // Use cluster to "gather" the options closer together, even if it sounds a little worse.
373 "cluster-regioned",
374 "cluster regions separately",
375 true
376);
377
379 "cluster-region-aligned",
380 "align each region's identifiers to the native word size",
381 true
382);
383
385 "cluster-predict-occ",
386 "try to predict which points-to sets are more important in staged analysis",
387 false
388);
389
390// Memory region (MemRegion.cpp)
392 "mssa-ignore-dead-fun",
393 "Don't construct memory SSA for deadfunction",
394 false
395);
396
397
398// Base class of pointer analyses (MemSSA.cpp)
400 "dump-mssa",
401 "Dump memory SSA",
402 false
403);
404
406 "mssa-fun",
407 "Please specify which function needs to be dumped",
408 ""
409);
410
412 "mem-par",
413 "Memory region partition strategies (e.g., for SVFG construction)",
415{
416 {MemSSA::MemPartition::Distinct, "distinct", "memory region per each object"},
417 {MemSSA::MemPartition::IntraDisjoint, "intra-disjoint", "memory regions partitioned based on each function"},
418 {MemSSA::MemPartition::InterDisjoint, "inter-disjoint", "memory regions partitioned across functions"},
419}
420);
421
422
423// SVFG builder (SVFGBuilder.cpp)
425 "svfg-with-ind-call",
426 "Update Indirect Calls for SVFG using pre-analysis",
427 false
428);
429
431 "opt-svfg",
432 "Optimize SVFG to eliminate formal-in and actual-out",
433 false
434);
435
437 "write-svfg",
438 "Write SVFG's analysis results to a file",
439 ""
440);
441
443 "read-svfg",
444 "Read SVFG's analysis results from a file",
445 ""
446);
447
448
450 "intra-lock-td-edge",
451 "Use simple intra-procedural lock for adding SVFG edges",
452 true
453);
454
455
456// LockAnalysis.cpp
458 "print-lock",
459 "Print Thread Interleaving Results",
460 false
461);
462
463
464// MHP.cpp
466 "print-interlev",
467 "Print Thread Interleaving Results",
468 false
469);
470
472 "lock-analysis",
473 "Run Lock Analysis",
474 true
475);
476
477
478// MTAStat.cpp
480 "all-pair-mhp",
481 "All pair MHP computation",
482 false
483);
484
485
486// TCT.cpp
488 "dump-tct",
489 "Dump dot graph of Call Graph",
490 false
491);
492
493
494// LeakChecker.cpp
496 "valid-tests",
497 "Validate memory leak tests",
498 false
499);
500
501
502// Source-sink analyzer (SrcSnkDDA.cpp)
504 "dump-slice",
505 "Dump dot graph of Saber Slices",
506 false
507);
508
510 "cxt-limit",
511 "Source-Sink Analysis Contexts Limit",
512 3
513);
514
515
516// CHG.cpp
518 "dump-cha",
519 "dump the class hierarchy graph",
520 false
521);
522
523
524// DCHG.cpp
526 "print-dchg",
527 "print the DCHG if debug information is available",
528 false
529);
530
531
532// LLVMModule.cpp
534 "graph-txt",
535 "graph txt file to build SVFIR",
536 ""
537);
538
540 "svf-main",
541 "add svf.main()",
542 false
543);
544
546 "model-consts",
547 "Modeling individual constant objects",
548 false
549);
550
552 "model-arrays",
553 "Modeling Gep offsets for array accesses",
554 false
555);
556
558 "cyclic-field-index",
559 "Enable cyclic field index when generating field objects using modulus offset",
560 false
561);
562
564 "print-symbol-table",
565 "Print Symbol Table to command line",
566 false
567);
568
569// Conditions.cpp
571 "max-z3-size",
572 "Maximum size limit for Z3 expression",
573 30
574);
575
576// BoundedZ3Expr.cpp
578 "max-bv-len",
579 "Maximum length limit for Z3 bitvector",
580 64
581);
582
583
584
585// SaberCondAllocator.cpp
587 "print-pc",
588 "Print out path condition",
589 false
590);
591
592
593// SaberSVFGBuilder.cpp
595 "saber-collect-extret-globals",
596 "Don't include pointers returned by external function during collecting globals",
597 true
598);
599
600
601// SVFUtil.cpp
603 "dwarn",
604 "Disable warning",
605 true
606);
607
608
609// Andersen.cpp
611 "dump-constraint-graph",
612 "Dump dot graph of Constraint Graph",
613 false
614);
615
617 "brief-constraint-graph",
618 "Dump dot graph of Constraint Graph",
619 true
620);
621
623 "print-constraint-graph",
624 "Print Constraint Graph to Terminal",
625 false
626);
627
629 "write-ander",
630 "-write-ander=ir_annotator (Annotated IR with Andersen's results) or write Andersen's analysis results to a user-specified text file",
631 ""
632);
633
635 "read-ander",
636 "-read-ander=ir_annotator (Read Andersen's analysis results from the annotated IR, e.g., *.pre.bc) or from a text file",
637 ""
638);
639
641 "diff",
642 "Enable differential point-to set",
643 true
644);
645
647 "merge-pwc",
648 "Enable PWC detection",
649 true
650);
651
652//SVFIRBuilder.cpp
654 "vt-in-ir",
655 "Handle vtable in ConstantArray/ConstantStruct in SVFIRBuilder (already handled in CHA?)",
656 false
657);
658
659//WPAPass.cpp
661 "extapi",
662 "External API extapi.bc",
663 ""
664);
665
667 "svfg",
668 "Generate SVFG after Andersen's Analysis",
669 false
670);
671
673 "saber-full-svfg",
674 "When using SABER for bug detection pass, enable full svfg on top of the pointer-only one",
675 false
676);
677
679 "print-aliases",
680 "Print results for all pair aliases",
681 false
682);
683
685 "Select pointer analysis",
686{
687 {PointerAnalysis::Andersen_WPA, "nander", "Standard inclusion-based analysis"},
688 {PointerAnalysis::AndersenSCD_WPA, "sander", "Selective cycle detection inclusion-based analysis"},
689 {PointerAnalysis::AndersenSFR_WPA, "sfrander", "Stride-based field representation inclusion-based analysis"},
690 {PointerAnalysis::AndersenWaveDiff_WPA, "ander", "Diff wave propagation inclusion-based analysis"},
691 {PointerAnalysis::Steensgaard_WPA, "steens", "Steensgaard's pointer analysis"},
692 // Disabled till further work is done.
693 {PointerAnalysis::FSSPARSE_WPA, "fspta", "Sparse flow sensitive pointer analysis"},
694 {PointerAnalysis::VFS_WPA, "vfspta", "Versioned sparse flow-sensitive points-to analysis"},
695 {PointerAnalysis::TypeCPP_WPA, "type", "Type-based fast analysis for Callgraph, SVFIR and CHA"},
696}
697);
698
699
701 "Select alias check rule",
702{
703 {WPAPass::Conservative, "conservative", "return MayAlias if any pta says alias"},
704 {WPAPass::Veto, "veto", "return NoAlias if any pta says no alias"},
705}
706);
707
709 "show-hidden-nodes",
710 "Show hidden nodes on DOT Graphs (e.g., isolated node on a graph)",
711 false
712);
713
715 "grammar",
716 "<Grammar textfile>",
717 ""
718);
719
721 "cflgraph",
722 "<Dot file as the CFLGraph input>",
723 ""
724);
725
727 "print-cfl",
728 "Print ir, grammar and cflgraph for debug.",
729 false
730);
731
733 "flex-symmap",
734 "Extend exist sym map while read graph from dot if sym not in map.",
735 false
736);
737
739 "peg-transfer",
740 "When explicit to true, cfl graph builder will transfer PAG load and store edges to copy and addr.",
741 false
742);
743
745 "cflsvfg",
746 "When explicit to true, cfl graph builder will transfer SVFG to CFL Reachability.",
747 false
748);
749
751 "pocr-alias",
752 "When explicit to true, cfl data builder will transfer CFL graph to CFLData.",
753 false
754);
755
757 "pocr-hybrid",
758 "When explicit to true, POCRHybridSolver transfer CFL graph to internal hybrid graph representation.",
759 false
760);
761
763 "customized",
764 "When explicit to true, user can use any grammar file.",
765 false
766);
767
769 "loop-analysis",
770 "Analyze every func and get loop info and loop bounds.",
771 true
772);
773
775 "loop-bound",
776 "Maximum number of loop",
777 1
778);
779
781 "widen-delay", "Loop Widen Delay", 3);
783 "timeout", "time out (seconds), set -1 (no timeout), default 14400s",14400);
785 "output","output db file","output.db");
787 "overflow","Buffer Overflow Detection",false);
789 "leak", "Memory Leak Detection",false);
791 "fileck", "File Open/Close Detection",false);
793 "dfree", "Double Free Detection",false);
795 "race", "Data race Detection",false);
797 "gep-unknown-idx","Skip Gep Unknown Index",false);
799 "run-uncall-fun","Skip Gep Unknown Index",false);
801 "icfg-merge-adjnodes","ICFG Simplification - Merge Adjacent Nodes in the Same Basic Block.",false);
802
803
805 "precision",
806 "symbolic abstraction precision for float",
807 0
808);
809
810} // namespace SVF.
@ InterDisjoint
Definition MemSSA.h:117
@ IntraDisjoint
Definition MemSSA.h:116
@ SEQ
Allocate objects objects and values sequentially, intermixed.
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
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 > 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
@ Cxt_DDA
context sensitive DDA
@ VFS_WPA
Versioned sparse flow-sensitive WPA.
@ AndersenSCD_WPA
Selective cycle detection andersen-style WPA.
@ FlowS_DDA
Flow sensitive DDA.
@ Andersen_WPA
Andersen PTA.
@ AndersenWaveDiff_WPA
Diff wave propagation andersen-style WPA.
@ TypeCPP_WPA
Type-based analysis for C++.
@ AndersenSFR_WPA
Stride-based field representation.
@ Steensgaard_WPA
Steensgaard PTA.
@ FSSPARSE_WPA
Sparse flow sensitive WPA.
@ Conservative
return MayAlias if any pta says alias
Definition WPAPass.h:64
@ Veto
return NoAlias if any pta says no alias
Definition WPAPass.h:65
@ HCLUST_METHOD_AVERAGE
Definition fastcluster.h:72
@ HCLUST_METHOD_COMPLETE
Definition fastcluster.h:70
@ HCLUST_METHOD_SVF_BEST
Definition fastcluster.h:76
@ HCLUST_METHOD_SINGLE
Definition fastcluster.h:68
for isBitcode
Definition BasicTypes.h:68