Static Value-Flow Analysis
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 
7 namespace SVF
8 {
10  "clock-type",
11  "how time should be measured",
12  PTAStat::ClockType::CPU,
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",
28  NodeIDAllocator::Strategy::SEQ,
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",
46  BVDataPTAImpl::PTBackingType::Persistent,
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)",
414  MemSSA::MemPartition::IntraDisjoint,
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.
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