svf-tools 1.0.633 → 1.0.635
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CMakeLists.txt +111 -90
- package/SVF-doxygen/html/html/CFL_2CMakeLists_8txt.html +102 -0
- package/SVF-doxygen/html/html/CMakeLists_8txt.html +73 -0
- package/SVF-doxygen/html/html/DDA_2CMakeLists_8txt.html +102 -0
- package/SVF-doxygen/html/html/Example_2CMakeLists_8txt.html +102 -0
- package/SVF-doxygen/html/html/LockResultValidator_8cpp.html +2 -3
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +6 -52
- package/SVF-doxygen/html/html/LockResultValidator_8h.html +2 -3
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +2 -26
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp.html +3 -3
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +3 -57
- package/SVF-doxygen/html/html/MTAAnnotator_8h.html +5 -6
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +2 -22
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp.html +2 -3
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +12 -72
- package/SVF-doxygen/html/html/MTAResultValidator_8h.html +6 -6
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +76 -114
- package/SVF-doxygen/html/html/MTA_2CMakeLists_8txt.html +102 -0
- package/SVF-doxygen/html/html/SABER_2CMakeLists_8txt.html +102 -0
- package/SVF-doxygen/html/html/WPA_2CMakeLists_8txt.html +102 -0
- package/SVF-doxygen/html/html/annotated.html +9 -468
- package/SVF-doxygen/html/html/cfl_8cpp.html +5 -10
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +2 -12
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +51 -119
- package/SVF-doxygen/html/html/classSVF_1_1MHPValidator-members.html +2 -14
- package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +14 -49
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator-members.html +25 -43
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +67 -187
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator-members.html +20 -48
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +345 -1317
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator-members.html +8 -23
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +137 -758
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator_1_1AccessPair-members.html +3 -7
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator_1_1AccessPair.html +37 -184
- package/SVF-doxygen/html/html/classSVF_1_1RaceValidator-members.html +1 -13
- package/SVF-doxygen/html/html/classSVF_1_1RaceValidator.html +13 -48
- package/SVF-doxygen/html/html/classes.html +10 -123
- package/SVF-doxygen/html/html/dda_8cpp.html +172 -63
- package/SVF-doxygen/html/html/dda_8cpp_source.html +8 -20
- package/SVF-doxygen/html/html/dir_0c09191358c30c0f2d864382d285cb43.html +1 -1
- package/SVF-doxygen/html/html/files.html +19 -288
- package/SVF-doxygen/html/html/functions.html +322 -300
- package/SVF-doxygen/html/html/functions_func.html +171 -1020
- package/SVF-doxygen/html/html/functions_type.html +27 -17
- package/SVF-doxygen/html/html/functions_vars.html +151 -364
- package/SVF-doxygen/html/html/globals.html +53 -11
- package/SVF-doxygen/html/html/globals_func.html +22 -236
- package/SVF-doxygen/html/html/hierarchy.html +9 -543
- package/SVF-doxygen/html/html/menudata.js +44 -294
- package/SVF-doxygen/html/html/mta_8cpp.html +8 -16
- package/SVF-doxygen/html/html/mta_8cpp_source.html +4 -18
- package/SVF-doxygen/html/html/namespaceSVF.html +9 -6287
- package/SVF-doxygen/html/html/namespacemembers.html +3 -35
- package/SVF-doxygen/html/html/namespacemembers_type.html +3 -26
- package/SVF-doxygen/html/html/namespaces.html +2 -9
- package/SVF-doxygen/html/html/saber_8cpp.html +104 -53
- package/SVF-doxygen/html/html/saber_8cpp_source.html +5 -19
- package/SVF-doxygen/html/html/search/all_0.js +1 -131
- package/SVF-doxygen/html/html/search/all_1.js +4 -449
- package/SVF-doxygen/html/html/search/all_10.js +9 -310
- package/SVF-doxygen/html/html/search/all_11.js +1 -187
- package/SVF-doxygen/html/html/search/all_12.js +4 -474
- package/SVF-doxygen/html/html/search/all_2.js +17 -141
- package/SVF-doxygen/html/html/search/all_3.js +5 -592
- package/SVF-doxygen/html/html/search/all_4.js +3 -222
- package/SVF-doxygen/html/html/search/all_5.js +3 -141
- package/SVF-doxygen/html/html/search/all_6.js +12 -211
- package/SVF-doxygen/html/html/search/all_7.js +1 -923
- package/SVF-doxygen/html/html/search/all_8.js +17 -187
- package/SVF-doxygen/html/html/search/all_9.js +11 -553
- package/SVF-doxygen/html/html/search/all_a.js +17 -10
- package/SVF-doxygen/html/html/search/all_b.js +11 -21
- package/SVF-doxygen/html/html/search/all_c.js +5 -112
- package/SVF-doxygen/html/html/search/all_d.js +15 -190
- package/SVF-doxygen/html/html/search/all_e.js +7 -198
- package/SVF-doxygen/html/html/search/all_f.js +6 -122
- package/SVF-doxygen/html/html/search/classes_0.js +1 -25
- package/SVF-doxygen/html/html/search/classes_1.js +1 -7
- package/SVF-doxygen/html/html/search/classes_2.js +3 -69
- package/SVF-doxygen/html/html/search/classes_3.js +2 -32
- package/SVF-doxygen/html/html/search/files_0.js +2 -11
- package/SVF-doxygen/html/html/search/files_1.js +1 -5
- package/SVF-doxygen/html/html/search/files_2.js +2 -48
- package/SVF-doxygen/html/html/search/files_3.js +5 -14
- package/SVF-doxygen/html/html/search/files_4.js +2 -4
- package/SVF-doxygen/html/html/search/files_5.js +1 -13
- package/SVF-doxygen/html/html/search/functions_0.js +3 -339
- package/SVF-doxygen/html/html/search/functions_1.js +8 -73
- package/SVF-doxygen/html/html/search/functions_2.js +4 -228
- package/SVF-doxygen/html/html/search/functions_3.js +3 -69
- package/SVF-doxygen/html/html/search/functions_4.js +1 -50
- package/SVF-doxygen/html/html/search/functions_5.js +12 -49
- package/SVF-doxygen/html/html/search/functions_6.js +1 -766
- package/SVF-doxygen/html/html/search/functions_7.js +7 -143
- package/SVF-doxygen/html/html/search/functions_8.js +2 -393
- package/SVF-doxygen/html/html/search/functions_9.js +9 -4
- package/SVF-doxygen/html/html/search/functions_a.js +5 -1
- package/SVF-doxygen/html/html/search/functions_b.js +4 -20
- package/SVF-doxygen/html/html/search/functions_c.js +2 -72
- package/SVF-doxygen/html/html/search/functions_d.js +2 -31
- package/SVF-doxygen/html/html/search/functions_e.js +5 -58
- package/SVF-doxygen/html/html/search/functions_f.js +4 -132
- package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/html/search/searchdata.js +9 -21
- package/SVF-doxygen/html/html/search/typedefs_0.js +3 -15
- package/SVF-doxygen/html/html/search/typedefs_1.js +2 -24
- package/SVF-doxygen/html/html/search/typedefs_2.js +1 -120
- package/SVF-doxygen/html/html/search/typedefs_3.js +1 -41
- package/SVF-doxygen/html/html/search/typedefs_4.js +3 -15
- package/SVF-doxygen/html/html/search/typedefs_5.js +2 -41
- package/SVF-doxygen/html/html/search/variables_0.js +1 -131
- package/SVF-doxygen/html/html/search/variables_1.js +2 -66
- package/SVF-doxygen/html/html/search/variables_2.js +4 -30
- package/SVF-doxygen/html/html/search/variables_3.js +2 -136
- package/SVF-doxygen/html/html/search/variables_4.js +8 -54
- package/SVF-doxygen/html/html/search/variables_5.js +6 -35
- package/SVF-doxygen/html/html/search/variables_6.js +3 -66
- package/SVF-doxygen/html/html/search/variables_7.js +10 -30
- package/SVF-doxygen/html/html/search/variables_8.js +7 -8
- package/SVF-doxygen/html/html/search/variables_9.js +2 -68
- package/SVF-doxygen/html/html/search/variables_a.js +4 -3
- package/SVF-doxygen/html/html/search/variables_b.js +2 -10
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +31 -86
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -64
- package/SVF-doxygen/html/html/wpa_8cpp.html +6 -12
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +2 -14
- package/package.json +1 -1
- package/svf/CMakeLists.txt +26 -0
- package/{include → svf/include}/AbstractExecution/AbstractValue.h +0 -0
- package/{include → svf/include}/AbstractExecution/AddressValue.h +0 -0
- package/{include → svf/include}/AbstractExecution/ExeState.h +0 -0
- package/{include → svf/include}/AbstractExecution/IntervalExeState.h +0 -0
- package/{include → svf/include}/AbstractExecution/IntervalValue.h +0 -0
- package/{include → svf/include}/AbstractExecution/NumericLiteral.h +0 -0
- package/{include → svf/include}/AbstractExecution/RelExeState.h +0 -0
- package/{include → svf/include}/AbstractExecution/RelationSolver.h +0 -0
- package/{include → svf/include}/AbstractExecution/SVFIR2ItvExeState.h +0 -0
- package/{include → svf/include}/AbstractExecution/WTO.h +0 -0
- package/{include → svf/include}/CFL/CFGNormalizer.h +0 -0
- package/{include → svf/include}/CFL/CFLAlias.h +0 -0
- package/{include → svf/include}/CFL/CFLBase.h +0 -0
- package/{include → svf/include}/CFL/CFLData.h +0 -0
- package/{include → svf/include}/CFL/CFLDataBuilder.h +0 -0
- package/{include → svf/include}/CFL/CFLGramGraphChecker.h +0 -0
- package/{include → svf/include}/CFL/CFLGrammar.h +0 -0
- package/{include → svf/include}/CFL/CFLGrammar.txt +0 -0
- package/{include → svf/include}/CFL/CFLGraphBuilder.h +0 -0
- package/{include → svf/include}/CFL/CFLSolver.h +0 -0
- package/{include → svf/include}/CFL/CFLStat.h +0 -0
- package/{include → svf/include}/CFL/CFLVF.h +0 -0
- package/{include → svf/include}/CFL/GrammarBuilder.h +0 -0
- package/{include → svf/include}/CFL/PEGGrammar.txt +0 -0
- package/{include → svf/include}/CFL/VFG.txt +0 -0
- package/{include → svf/include}/DDA/ContextDDA.h +0 -0
- package/{include → svf/include}/DDA/DDAClient.h +0 -0
- package/{include → svf/include}/DDA/DDAPass.h +0 -0
- package/{include → svf/include}/DDA/DDAStat.h +0 -0
- package/{include → svf/include}/DDA/DDAVFSolver.h +0 -0
- package/{include → svf/include}/DDA/FlowDDA.h +0 -0
- package/{include → svf/include}/FastCluster/LICENSE.TXT +0 -0
- package/{include → svf/include}/FastCluster/fastcluster.h +0 -0
- package/{include → svf/include}/Graphs/CFLGraph.h +0 -0
- package/{include → svf/include}/Graphs/CHG.h +0 -0
- package/{include → svf/include}/Graphs/ConsG.h +0 -0
- package/{include → svf/include}/Graphs/ConsGEdge.h +0 -0
- package/{include → svf/include}/Graphs/ConsGNode.h +0 -0
- package/{include → svf/include}/Graphs/DOTGraphTraits.h +0 -0
- package/{include → svf/include}/Graphs/GenericGraph.h +0 -0
- package/{include → svf/include}/Graphs/GraphPrinter.h +0 -0
- package/{include → svf/include}/Graphs/GraphTraits.h +0 -0
- package/{include → svf/include}/Graphs/GraphWriter.h +0 -0
- package/{include → svf/include}/Graphs/ICFG.h +0 -0
- package/{include → svf/include}/Graphs/ICFGEdge.h +0 -0
- package/{include → svf/include}/Graphs/ICFGNode.h +0 -0
- package/{include → svf/include}/Graphs/ICFGStat.h +0 -0
- package/{include → svf/include}/Graphs/IRGraph.h +0 -0
- package/{include → svf/include}/Graphs/PTACallGraph.h +0 -0
- package/{include → svf/include}/Graphs/SVFG.h +0 -0
- package/{include → svf/include}/Graphs/SVFGEdge.h +0 -0
- package/{include → svf/include}/Graphs/SVFGNode.h +0 -0
- package/{include → svf/include}/Graphs/SVFGOPT.h +0 -0
- package/{include → svf/include}/Graphs/SVFGStat.h +0 -0
- package/{include → svf/include}/Graphs/ThreadCallGraph.h +0 -0
- package/{include → svf/include}/Graphs/VFG.h +0 -0
- package/{include → svf/include}/Graphs/VFGEdge.h +0 -0
- package/{include → svf/include}/Graphs/VFGNode.h +0 -0
- package/{include → svf/include}/MSSA/MSSAMuChi.h +0 -0
- package/{include → svf/include}/MSSA/MemPartition.h +0 -0
- package/{include → svf/include}/MSSA/MemRegion.h +0 -0
- package/{include → svf/include}/MSSA/MemSSA.h +0 -0
- package/{include → svf/include}/MSSA/SVFGBuilder.h +0 -0
- package/{include → svf/include}/MTA/FSMPTA.h +0 -0
- package/{include → svf/include}/MTA/LockAnalysis.h +0 -0
- package/{include → svf/include}/MTA/MHP.h +0 -0
- package/{include → svf/include}/MTA/MTA.h +0 -0
- package/{include → svf/include}/MTA/MTAResultValidator.h +0 -0
- package/{include → svf/include}/MTA/MTAStat.h +0 -0
- package/{include → svf/include}/MTA/PCG.h +0 -0
- package/{include → svf/include}/MTA/TCT.h +0 -0
- package/{include → svf/include}/MemoryModel/AbstractPointsToDS.h +0 -0
- package/{include → svf/include}/MemoryModel/ConditionalPT.h +0 -0
- package/{include → svf/include}/MemoryModel/LocationSet.h +0 -0
- package/{include → svf/include}/MemoryModel/MutablePointsToDS.h +0 -0
- package/{include → svf/include}/MemoryModel/PersistentPointsToCache.h +0 -0
- package/{include → svf/include}/MemoryModel/PersistentPointsToDS.h +0 -0
- package/{include → svf/include}/MemoryModel/PointerAnalysis.h +0 -0
- package/{include → svf/include}/MemoryModel/PointerAnalysisImpl.h +0 -0
- package/{include → svf/include}/MemoryModel/PointsTo.h +0 -0
- package/{include → svf/include}/MemoryModel/SVFLoop.h +0 -0
- package/{include → svf/include}/SABER/DoubleFreeChecker.h +0 -0
- package/{include → svf/include}/SABER/FileChecker.h +0 -0
- package/{include → svf/include}/SABER/LeakChecker.h +0 -0
- package/{include → svf/include}/SABER/ProgSlice.h +0 -0
- package/{include → svf/include}/SABER/SaberCheckerAPI.h +0 -0
- package/{include → svf/include}/SABER/SaberCondAllocator.h +0 -0
- package/{include → svf/include}/SABER/SaberSVFGBuilder.h +0 -0
- package/{include → svf/include}/SABER/SrcSnkDDA.h +0 -0
- package/{include → svf/include}/SABER/SrcSnkSolver.h +0 -0
- package/{include → svf/include}/SVFIR/PAGBuilderFromFile.h +0 -0
- package/{include → svf/include}/SVFIR/SVFIR.h +0 -0
- package/{include → svf/include}/SVFIR/SVFModule.h +0 -0
- package/{include → svf/include}/SVFIR/SVFStatements.h +0 -0
- package/{include → svf/include}/SVFIR/SVFType.h +12 -14
- package/{include → svf/include}/SVFIR/SVFValue.h +0 -0
- package/{include → svf/include}/SVFIR/SVFVariables.h +0 -0
- package/{include → svf/include}/SVFIR/SymbolTableInfo.h +0 -0
- package/{include → svf/include}/Util/Annotator.h +0 -0
- package/{include → svf/include}/Util/BitVector.h +0 -0
- package/{include → svf/include}/Util/CallGraphBuilder.h +0 -0
- package/{include → svf/include}/Util/Casting.h +0 -0
- package/{include → svf/include}/Util/CommandLine.h +0 -0
- package/{include → svf/include}/Util/CoreBitVector.h +0 -0
- package/{include → svf/include}/Util/CppUtil.h +0 -0
- package/{include → svf/include}/Util/CxtStmt.h +0 -0
- package/{include → svf/include}/Util/DPItem.h +0 -0
- package/{include → svf/include}/Util/ExtAPI.h +2 -2
- package/{include → svf/include}/Util/ExtAPI.json +0 -0
- package/{include → svf/include}/Util/GraphReachSolver.h +0 -0
- package/{include → svf/include}/Util/NodeIDAllocator.h +0 -0
- package/{include → svf/include}/Util/Options.h +0 -0
- package/{include → svf/include}/Util/PTAStat.h +0 -0
- package/{include → svf/include}/Util/SCC.h +0 -0
- package/{include → svf/include}/Util/SVFStat.h +0 -0
- package/{include → svf/include}/Util/SVFUtil.h +0 -0
- package/{include → svf/include}/Util/SparseBitVector.h +0 -0
- package/{include → svf/include}/Util/ThreadAPI.h +0 -0
- package/{include → svf/include}/Util/WorkList.h +0 -0
- package/{include → svf/include}/Util/Z3Expr.h +0 -0
- package/{include → svf/include}/Util/cJSON.h +0 -0
- package/{include → svf/include}/Util/iterator.h +0 -0
- package/{include → svf/include}/Util/iterator_range.h +0 -0
- package/{include → svf/include}/WPA/Andersen.h +0 -0
- package/{include → svf/include}/WPA/AndersenPWC.h +0 -0
- package/{include → svf/include}/WPA/CSC.h +0 -0
- package/{include → svf/include}/WPA/FlowSensitive.h +0 -0
- package/{include → svf/include}/WPA/Steensgaard.h +0 -0
- package/{include → svf/include}/WPA/TypeAnalysis.h +0 -0
- package/{include → svf/include}/WPA/VersionedFlowSensitive.h +0 -0
- package/{include → svf/include}/WPA/WPAFSSolver.h +0 -0
- package/{include → svf/include}/WPA/WPAPass.h +0 -0
- package/{include → svf/include}/WPA/WPASolver.h +0 -0
- package/{include → svf/include}/WPA/WPAStat.h +0 -0
- package/{lib → svf/lib}/AbstractExecution/ExeState.cpp +0 -0
- package/{lib → svf/lib}/AbstractExecution/IntervalExeState.cpp +0 -0
- package/{lib → svf/lib}/AbstractExecution/RelExeState.cpp +0 -0
- package/{lib → svf/lib}/AbstractExecution/RelationSolver.cpp +0 -0
- package/{lib → svf/lib}/AbstractExecution/SVFIR2ItvExeState.cpp +0 -0
- package/{lib → svf/lib}/AbstractExecution/SVFIR2Relation.cpp +0 -0
- package/{lib → svf/lib}/CFL/CFGNormalizer.cpp +0 -0
- package/{lib → svf/lib}/CFL/CFLAlias.cpp +0 -0
- package/{lib → svf/lib}/CFL/CFLBase.cpp +0 -0
- package/{lib → svf/lib}/CFL/CFLGrammar.cpp +0 -0
- package/{lib → svf/lib}/CFL/CFLGraphBuilder.cpp +0 -0
- package/{lib → svf/lib}/CFL/CFLSolver.cpp +0 -0
- package/{lib → svf/lib}/CFL/CFLStat.cpp +0 -0
- package/{lib → svf/lib}/CFL/CFLVF.cpp +0 -0
- package/{lib → svf/lib}/CFL/GrammarBuilder.cpp +6 -1
- package/{lib → svf/lib}/DDA/ContextDDA.cpp +0 -0
- package/{lib → svf/lib}/DDA/DDAClient.cpp +0 -0
- package/{lib → svf/lib}/DDA/DDAPass.cpp +0 -0
- package/{lib → svf/lib}/DDA/DDAStat.cpp +0 -0
- package/{lib → svf/lib}/DDA/FlowDDA.cpp +0 -0
- package/{lib → svf/lib}/FastCluster/LICENSE.TXT +0 -0
- package/{lib → svf/lib}/FastCluster/fastcluster.cpp +0 -0
- package/{lib → svf/lib}/FastCluster/fastcluster_R_dm.cpp.inc +0 -0
- package/{lib → svf/lib}/FastCluster/fastcluster_dm.cpp.inc +0 -0
- package/{lib → svf/lib}/Graphs/CFLGraph.cpp +0 -0
- package/{lib → svf/lib}/Graphs/CHG.cpp +0 -0
- package/{lib → svf/lib}/Graphs/ConsG.cpp +0 -0
- package/{lib → svf/lib}/Graphs/GraphWriter.cpp +0 -0
- package/{lib → svf/lib}/Graphs/ICFG.cpp +0 -0
- package/{lib → svf/lib}/Graphs/IRGraph.cpp +0 -0
- package/{lib → svf/lib}/Graphs/PTACallGraph.cpp +0 -0
- package/{lib → svf/lib}/Graphs/SVFG.cpp +0 -0
- package/{lib → svf/lib}/Graphs/SVFGOPT.cpp +0 -0
- package/{lib → svf/lib}/Graphs/SVFGReadWrite.cpp +0 -0
- package/{lib → svf/lib}/Graphs/SVFGStat.cpp +0 -0
- package/{lib → svf/lib}/Graphs/ThreadCallGraph.cpp +0 -0
- package/{lib → svf/lib}/Graphs/VFG.cpp +0 -0
- package/{lib → svf/lib}/MSSA/MemPartition.cpp +0 -0
- package/{lib → svf/lib}/MSSA/MemRegion.cpp +0 -0
- package/{lib → svf/lib}/MSSA/MemSSA.cpp +0 -0
- package/{lib → svf/lib}/MSSA/SVFGBuilder.cpp +0 -0
- package/{lib → svf/lib}/MTA/FSMPTA.cpp +0 -0
- package/{lib → svf/lib}/MTA/LockAnalysis.cpp +0 -0
- package/{lib → svf/lib}/MTA/MHP.cpp +0 -0
- package/{lib → svf/lib}/MTA/MTA.cpp +0 -0
- package/{lib → svf/lib}/MTA/MTAStat.cpp +0 -0
- package/{lib → svf/lib}/MTA/PCG.cpp +0 -0
- package/{lib → svf/lib}/MTA/TCT.cpp +0 -0
- package/{lib → svf/lib}/MemoryModel/LocationSet.cpp +0 -0
- package/{lib → svf/lib}/MemoryModel/PointerAnalysis.cpp +0 -0
- package/{lib → svf/lib}/MemoryModel/PointerAnalysisImpl.cpp +0 -0
- package/{lib → svf/lib}/MemoryModel/PointsTo.cpp +0 -0
- package/{lib → svf/lib}/SABER/DoubleFreeChecker.cpp +0 -0
- package/{lib → svf/lib}/SABER/FileChecker.cpp +0 -0
- package/{lib → svf/lib}/SABER/LeakChecker.cpp +0 -0
- package/{lib → svf/lib}/SABER/ProgSlice.cpp +0 -0
- package/{lib → svf/lib}/SABER/SaberCheckerAPI.cpp +0 -0
- package/{lib → svf/lib}/SABER/SaberCondAllocator.cpp +0 -0
- package/{lib → svf/lib}/SABER/SaberSVFGBuilder.cpp +0 -0
- package/{lib → svf/lib}/SABER/SrcSnkDDA.cpp +0 -0
- package/{lib → svf/lib}/SVFIR/PAGBuilderFromFile.cpp +0 -0
- package/{lib → svf/lib}/SVFIR/SVFIR.cpp +0 -0
- package/{lib → svf/lib}/SVFIR/SVFModule.cpp +0 -0
- package/{lib → svf/lib}/SVFIR/SVFStatements.cpp +0 -0
- package/{lib → svf/lib}/SVFIR/SVFValue.cpp +0 -0
- package/{lib → svf/lib}/SVFIR/SVFVariables.cpp +0 -0
- package/{lib → svf/lib}/SVFIR/SymbolTableInfo.cpp +0 -0
- package/{lib → svf/lib}/Util/BitVector.cpp +0 -0
- package/{lib → svf/lib}/Util/CallGraphBuilder.cpp +0 -0
- package/{lib → svf/lib}/Util/CoreBitVector.cpp +0 -0
- package/{lib → svf/lib}/Util/CppUtil.cpp +0 -0
- package/{lib → svf/lib}/Util/ExtAPI.cpp +64 -58
- package/{lib → svf/lib}/Util/NodeIDAllocator.cpp +0 -0
- package/{lib → svf/lib}/Util/Options.cpp +0 -0
- package/{lib → svf/lib}/Util/PTAStat.cpp +0 -0
- package/{lib → svf/lib}/Util/SVFStat.cpp +0 -0
- package/{lib → svf/lib}/Util/SVFUtil.cpp +0 -0
- package/{lib → svf/lib}/Util/ThreadAPI.cpp +0 -0
- package/{lib → svf/lib}/Util/Z3Expr.cpp +0 -0
- package/{lib → svf/lib}/Util/cJSON.cpp +0 -0
- package/{lib → svf/lib}/WPA/Andersen.cpp +0 -0
- package/{lib → svf/lib}/WPA/AndersenSCD.cpp +0 -0
- package/{lib → svf/lib}/WPA/AndersenSFR.cpp +0 -0
- package/{lib → svf/lib}/WPA/AndersenStat.cpp +0 -0
- package/{lib → svf/lib}/WPA/AndersenWaveDiff.cpp +0 -0
- package/{lib → svf/lib}/WPA/CSC.cpp +0 -0
- package/{lib → svf/lib}/WPA/FlowSensitive.cpp +0 -0
- package/{lib → svf/lib}/WPA/FlowSensitiveStat.cpp +0 -0
- package/{lib → svf/lib}/WPA/Steensgaard.cpp +0 -0
- package/{lib → svf/lib}/WPA/TypeAnalysis.cpp +0 -0
- package/{lib → svf/lib}/WPA/VersionedFlowSensitive.cpp +0 -0
- package/{lib → svf/lib}/WPA/VersionedFlowSensitiveStat.cpp +0 -0
- package/{lib → svf/lib}/WPA/WPAPass.cpp +0 -0
- package/svf-llvm/CMakeLists.txt +21 -0
- package/{include → svf-llvm/include}/SVF-LLVM/BasicTypes.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/BreakConstantExpr.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/CHGBuilder.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/DCHG.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/GEPTypeBridgeIterator.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/ICFGBuilder.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/LLVMLoopAnalysis.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/LLVMModule.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/LLVMUtil.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/SVFIRBuilder.h +0 -0
- package/{include → svf-llvm/include}/SVF-LLVM/SymbolTableBuilder.h +0 -0
- package/{lib/SVF-LLVM → svf-llvm/lib}/BreakConstantExpr.cpp +0 -0
- package/{lib/SVF-LLVM → svf-llvm/lib}/CHGBuilder.cpp +0 -0
- package/{lib/SVF-LLVM → svf-llvm/lib}/DCHG.cpp +0 -0
- package/{lib/SVF-LLVM → svf-llvm/lib}/ICFGBuilder.cpp +0 -0
- package/{lib/SVF-LLVM → svf-llvm/lib}/LLVMLoopAnalysis.cpp +0 -0
- package/{lib/SVF-LLVM → svf-llvm/lib}/LLVMModule.cpp +0 -0
- package/{lib/SVF-LLVM → svf-llvm/lib}/LLVMUtil.cpp +0 -0
- package/{lib/SVF-LLVM → svf-llvm/lib}/SVFIRBuilder.cpp +0 -0
- package/{lib/SVF-LLVM → svf-llvm/lib}/SymbolTableBuilder.cpp +0 -0
- package/tools/CFL/CMakeLists.txt +18 -7
- package/tools/CMakeLists.txt +2 -1
- package/tools/DDA/CMakeLists.txt +18 -7
- package/tools/Example/CMakeLists.txt +18 -7
- package/tools/Example/svf-ex.cpp +0 -1
- package/tools/MTA/CMakeLists.txt +20 -9
- package/tools/SABER/CMakeLists.txt +18 -7
- package/tools/WPA/CMakeLists.txt +18 -8
- package/lib/CMakeLists.txt +0 -55
|
@@ -63,57 +63,62 @@ $(function() {
|
|
|
63
63
|
</div><!-- top -->
|
|
64
64
|
<div class="header">
|
|
65
65
|
<div class="summary">
|
|
66
|
-
<a href="#func-members">Functions</a>
|
|
67
|
-
<a href="#var-members">Variables</a> </div>
|
|
66
|
+
<a href="#func-members">Functions</a> </div>
|
|
68
67
|
<div class="headertitle">
|
|
69
68
|
<div class="title">dda.cpp File Reference</div> </div>
|
|
70
69
|
</div><!--header-->
|
|
71
70
|
<div class="contents">
|
|
72
|
-
<div class="textblock"><code>#include "
|
|
73
|
-
<code>#include "
|
|
74
|
-
<code>#include "
|
|
75
|
-
<code>#include "
|
|
71
|
+
<div class="textblock"><code>#include "SVF-LLVM/LLVMUtil.h"</code><br />
|
|
72
|
+
<code>#include "SVF-LLVM/SVFIRBuilder.h"</code><br />
|
|
73
|
+
<code>#include "DDA/DDAPass.h"</code><br />
|
|
74
|
+
<code>#include "Util/Options.h"</code><br />
|
|
76
75
|
</div>
|
|
77
76
|
<p><a href="dda_8cpp_source.html">Go to the source code of this file.</a></p>
|
|
78
77
|
<table class="memberdecls">
|
|
79
78
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
80
79
|
Functions</h2></td></tr>
|
|
80
|
+
<tr class="memitem:aab45572f58baa3f8dc5ed54e212b7840"><td class="memItemLeft" align="right" valign="top">static Option< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="dda_8cpp.html#aab45572f58baa3f8dc5ed54e212b7840">DAA</a> ("daa", "Demand-Driven Alias Analysis Pass", false)</td></tr>
|
|
81
|
+
<tr class="separator:aab45572f58baa3f8dc5ed54e212b7840"><td class="memSeparator" colspan="2"> </td></tr>
|
|
82
|
+
<tr class="memitem:a1c2c3ba06219d3fde5cfe1a745fa311f"><td class="memItemLeft" align="right" valign="top">static Option< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="dda_8cpp.html#a1c2c3ba06219d3fde5cfe1a745fa311f">REGPT</a> ("dreg", "Demand-driven regular points-to analysis", false)</td></tr>
|
|
83
|
+
<tr class="separator:a1c2c3ba06219d3fde5cfe1a745fa311f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
84
|
+
<tr class="memitem:a9e2df1a2ac7e26eb1be2e2dbab4699f4"><td class="memItemLeft" align="right" valign="top">static Option< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="dda_8cpp.html#a9e2df1a2ac7e26eb1be2e2dbab4699f4">RFINEPT</a> ("dref", "Demand-driven refinement points-to analysis", false)</td></tr>
|
|
85
|
+
<tr class="separator:a9e2df1a2ac7e26eb1be2e2dbab4699f4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
86
|
+
<tr class="memitem:aa897ff2ba2a78de743d8695c5776bd9e"><td class="memItemLeft" align="right" valign="top">static Option< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="dda_8cpp.html#aa897ff2ba2a78de743d8695c5776bd9e">ENABLEFIELD</a> ("fdaa", "enable field-sensitivity for demand-driven analysis", false)</td></tr>
|
|
87
|
+
<tr class="separator:aa897ff2ba2a78de743d8695c5776bd9e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
88
|
+
<tr class="memitem:a02c0d2c3df5da031a63c2060fd9dd77d"><td class="memItemLeft" align="right" valign="top">static Option< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="dda_8cpp.html#a02c0d2c3df5da031a63c2060fd9dd77d">ENABLECONTEXT</a> ("cdaa", "enable context-sensitivity for demand-driven analysis", false)</td></tr>
|
|
89
|
+
<tr class="separator:a02c0d2c3df5da031a63c2060fd9dd77d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
90
|
+
<tr class="memitem:a994ea57cf2d8360458751a1f404b52d5"><td class="memItemLeft" align="right" valign="top">static Option< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="dda_8cpp.html#a994ea57cf2d8360458751a1f404b52d5">ENABLEFLOW</a> ("ldaa", "enable flow-sensitivity for demand-driven analysis", false)</td></tr>
|
|
91
|
+
<tr class="separator:a994ea57cf2d8360458751a1f404b52d5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
81
92
|
<tr class="memitem:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dda_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a> (int argc, char **argv)</td></tr>
|
|
82
93
|
<tr class="separator:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memSeparator" colspan="2"> </td></tr>
|
|
83
|
-
</table><table class="memberdecls">
|
|
84
|
-
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
|
|
85
|
-
Variables</h2></td></tr>
|
|
86
|
-
<tr class="memitem:aa87e1cd4be4709a21393ed9e1a0da6bb"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classOption.html">Option</a>< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="dda_8cpp.html#aa87e1cd4be4709a21393ed9e1a0da6bb">DAA</a> ("daa", "Demand-Driven Alias Analysis Pass", false)</td></tr>
|
|
87
|
-
<tr class="separator:aa87e1cd4be4709a21393ed9e1a0da6bb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
88
|
-
<tr class="memitem:aa4d54caa95b7971baaaa499dc52a83f0"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classOption.html">Option</a>< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="dda_8cpp.html#aa4d54caa95b7971baaaa499dc52a83f0">REGPT</a> ("dreg", "Demand-driven regular points-to analysis", false)</td></tr>
|
|
89
|
-
<tr class="separator:aa4d54caa95b7971baaaa499dc52a83f0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
90
|
-
<tr class="memitem:a67ee98e0a1d06555ea82c26cf1fa2b35"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classOption.html">Option</a>< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="dda_8cpp.html#a67ee98e0a1d06555ea82c26cf1fa2b35">RFINEPT</a> ("dref", "Demand-driven refinement points-to analysis", false)</td></tr>
|
|
91
|
-
<tr class="separator:a67ee98e0a1d06555ea82c26cf1fa2b35"><td class="memSeparator" colspan="2"> </td></tr>
|
|
92
|
-
<tr class="memitem:a33384804c17c2e3f457d80b47b114e1d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classOption.html">Option</a>< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="dda_8cpp.html#a33384804c17c2e3f457d80b47b114e1d">ENABLEFIELD</a> ("fdaa", "enable field-sensitivity <a class="el" href="cJSON_8cpp.html#a8a10bf77b3753124dd7ae92c5c4184cc">for</a> demand-driven analysis", false)</td></tr>
|
|
93
|
-
<tr class="separator:a33384804c17c2e3f457d80b47b114e1d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
94
|
-
<tr class="memitem:a0a4ada5aa37179525df2c87a5c6e2685"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classOption.html">Option</a>< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="dda_8cpp.html#a0a4ada5aa37179525df2c87a5c6e2685">ENABLECONTEXT</a> ("cdaa", "enable context-sensitivity <a class="el" href="cJSON_8cpp.html#a8a10bf77b3753124dd7ae92c5c4184cc">for</a> demand-driven analysis", false)</td></tr>
|
|
95
|
-
<tr class="separator:a0a4ada5aa37179525df2c87a5c6e2685"><td class="memSeparator" colspan="2"> </td></tr>
|
|
96
|
-
<tr class="memitem:a41cf6b3bb80c86976fab3561440031fe"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classOption.html">Option</a>< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="dda_8cpp.html#a41cf6b3bb80c86976fab3561440031fe">ENABLEFLOW</a> ("ldaa", "enable flow-sensitivity <a class="el" href="cJSON_8cpp.html#a8a10bf77b3753124dd7ae92c5c4184cc">for</a> demand-driven analysis", false)</td></tr>
|
|
97
|
-
<tr class="separator:a41cf6b3bb80c86976fab3561440031fe"><td class="memSeparator" colspan="2"> </td></tr>
|
|
98
94
|
</table>
|
|
99
95
|
<h2 class="groupheader">Function Documentation</h2>
|
|
100
|
-
<a id="
|
|
101
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
96
|
+
<a id="aab45572f58baa3f8dc5ed54e212b7840"></a>
|
|
97
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aab45572f58baa3f8dc5ed54e212b7840">◆ </a></span>DAA()</h2>
|
|
102
98
|
|
|
103
99
|
<div class="memitem">
|
|
104
100
|
<div class="memproto">
|
|
101
|
+
<table class="mlabels">
|
|
102
|
+
<tr>
|
|
103
|
+
<td class="mlabels-left">
|
|
105
104
|
<table class="memname">
|
|
106
105
|
<tr>
|
|
107
|
-
<td class="memname">
|
|
106
|
+
<td class="memname">static Option<bool> DAA </td>
|
|
108
107
|
<td>(</td>
|
|
109
|
-
<td class="paramtype"
|
|
110
|
-
<td class="paramname"
|
|
108
|
+
<td class="paramtype">"daa" </td>
|
|
109
|
+
<td class="paramname">, </td>
|
|
111
110
|
</tr>
|
|
112
111
|
<tr>
|
|
113
112
|
<td class="paramkey"></td>
|
|
114
113
|
<td></td>
|
|
115
|
-
<td class="paramtype"
|
|
116
|
-
<td class="paramname"
|
|
114
|
+
<td class="paramtype">"Demand-Driven Alias Analysis Pass" </td>
|
|
115
|
+
<td class="paramname">, </td>
|
|
116
|
+
</tr>
|
|
117
|
+
<tr>
|
|
118
|
+
<td class="paramkey"></td>
|
|
119
|
+
<td></td>
|
|
120
|
+
<td class="paramtype">false </td>
|
|
121
|
+
<td class="paramname"> </td>
|
|
117
122
|
</tr>
|
|
118
123
|
<tr>
|
|
119
124
|
<td></td>
|
|
@@ -121,21 +126,17 @@ Variables</h2></td></tr>
|
|
|
121
126
|
<td></td><td></td>
|
|
122
127
|
</tr>
|
|
123
128
|
</table>
|
|
129
|
+
</td>
|
|
130
|
+
<td class="mlabels-right">
|
|
131
|
+
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
132
|
+
</tr>
|
|
133
|
+
</table>
|
|
124
134
|
</div><div class="memdoc">
|
|
125
135
|
|
|
126
|
-
<p class="definition">Definition at line <a class="el" href="dda_8cpp_source.html#l00056">56</a> of file <a class="el" href="dda_8cpp_source.html">dda.cpp</a>.</p>
|
|
127
|
-
<div class="fragment"><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  std::vector<std::string> moduleNameVec;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  moduleNameVec = <a class="code" href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a>(</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  argc, argv, <span class="stringliteral">"Demand-Driven Points-to Analysis"</span>, <span class="stringliteral">"[options] <input-bitcode...>"</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  );</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">if</span> (Options::WriteAnder() == <span class="stringliteral">"ir_annotator"</span>)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  LLVMModuleSet::getLLVMModuleSet()->preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()->buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.build();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="classSVF_1_1DDAPass.html">DDAPass</a> dda;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  dda.<a class="code" href="classSVF_1_1DDAPass.html#aca46f1d464f5766ae666661a164a51a9">runOnModule</a>(pag);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">delete</span>[] arg_value;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> }</div><div class="ttc" id="classSVF_1_1DDAPass_html_aca46f1d464f5766ae666661a164a51a9"><div class="ttname"><a href="classSVF_1_1DDAPass.html#aca46f1d464f5766ae666661a164a51a9">SVF::DDAPass::runOnModule</a></div><div class="ttdeci">virtual void runOnModule(SVFIR *module)</div><div class="ttdoc">We start from here. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00055">DDAPass.cpp:55</a></div></div>
|
|
128
|
-
<div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
|
|
129
|
-
<div class="ttc" id="classSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00046">SVFIRBuilder.h:46</a></div></div>
|
|
130
|
-
<div class="ttc" id="classSVF_1_1DDAPass_html"><div class="ttname"><a href="classSVF_1_1DDAPass.html">SVF::DDAPass</a></div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00046">DDAPass.h:46</a></div></div>
|
|
131
|
-
<div class="ttc" id="classOptionBase_html_a4fb6c6e4a1754d702c6c1730f54457e5"><div class="ttname"><a href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a></div><div class="ttdeci">static std::vector< std::string > parseOptions(int argc, char *argv[], std::string description, std::string callFormat)</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00075">CommandLine.h:75</a></div></div>
|
|
132
|
-
<div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
133
|
-
</div><!-- fragment -->
|
|
134
136
|
</div>
|
|
135
137
|
</div>
|
|
136
|
-
<
|
|
137
|
-
<a
|
|
138
|
-
<h2 class="memtitle"><span class="permalink"><a href="#aa87e1cd4be4709a21393ed9e1a0da6bb">◆ </a></span>DAA</h2>
|
|
138
|
+
<a id="a02c0d2c3df5da031a63c2060fd9dd77d"></a>
|
|
139
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a02c0d2c3df5da031a63c2060fd9dd77d">◆ </a></span>ENABLECONTEXT()</h2>
|
|
139
140
|
|
|
140
141
|
<div class="memitem">
|
|
141
142
|
<div class="memproto">
|
|
@@ -144,7 +145,27 @@ Variables</h2></td></tr>
|
|
|
144
145
|
<td class="mlabels-left">
|
|
145
146
|
<table class="memname">
|
|
146
147
|
<tr>
|
|
147
|
-
<td class="memname"
|
|
148
|
+
<td class="memname">static Option<bool> ENABLECONTEXT </td>
|
|
149
|
+
<td>(</td>
|
|
150
|
+
<td class="paramtype">"cdaa" </td>
|
|
151
|
+
<td class="paramname">, </td>
|
|
152
|
+
</tr>
|
|
153
|
+
<tr>
|
|
154
|
+
<td class="paramkey"></td>
|
|
155
|
+
<td></td>
|
|
156
|
+
<td class="paramtype">"enable context-sensitivity for demand-driven analysis" </td>
|
|
157
|
+
<td class="paramname">, </td>
|
|
158
|
+
</tr>
|
|
159
|
+
<tr>
|
|
160
|
+
<td class="paramkey"></td>
|
|
161
|
+
<td></td>
|
|
162
|
+
<td class="paramtype">false </td>
|
|
163
|
+
<td class="paramname"> </td>
|
|
164
|
+
</tr>
|
|
165
|
+
<tr>
|
|
166
|
+
<td></td>
|
|
167
|
+
<td>)</td>
|
|
168
|
+
<td></td><td></td>
|
|
148
169
|
</tr>
|
|
149
170
|
</table>
|
|
150
171
|
</td>
|
|
@@ -156,8 +177,8 @@ Variables</h2></td></tr>
|
|
|
156
177
|
|
|
157
178
|
</div>
|
|
158
179
|
</div>
|
|
159
|
-
<a id="
|
|
160
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
180
|
+
<a id="aa897ff2ba2a78de743d8695c5776bd9e"></a>
|
|
181
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aa897ff2ba2a78de743d8695c5776bd9e">◆ </a></span>ENABLEFIELD()</h2>
|
|
161
182
|
|
|
162
183
|
<div class="memitem">
|
|
163
184
|
<div class="memproto">
|
|
@@ -166,7 +187,27 @@ Variables</h2></td></tr>
|
|
|
166
187
|
<td class="mlabels-left">
|
|
167
188
|
<table class="memname">
|
|
168
189
|
<tr>
|
|
169
|
-
<td class="memname"
|
|
190
|
+
<td class="memname">static Option<bool> ENABLEFIELD </td>
|
|
191
|
+
<td>(</td>
|
|
192
|
+
<td class="paramtype">"fdaa" </td>
|
|
193
|
+
<td class="paramname">, </td>
|
|
194
|
+
</tr>
|
|
195
|
+
<tr>
|
|
196
|
+
<td class="paramkey"></td>
|
|
197
|
+
<td></td>
|
|
198
|
+
<td class="paramtype">"enable field-sensitivity for demand-driven analysis" </td>
|
|
199
|
+
<td class="paramname">, </td>
|
|
200
|
+
</tr>
|
|
201
|
+
<tr>
|
|
202
|
+
<td class="paramkey"></td>
|
|
203
|
+
<td></td>
|
|
204
|
+
<td class="paramtype">false </td>
|
|
205
|
+
<td class="paramname"> </td>
|
|
206
|
+
</tr>
|
|
207
|
+
<tr>
|
|
208
|
+
<td></td>
|
|
209
|
+
<td>)</td>
|
|
210
|
+
<td></td><td></td>
|
|
170
211
|
</tr>
|
|
171
212
|
</table>
|
|
172
213
|
</td>
|
|
@@ -178,8 +219,8 @@ Variables</h2></td></tr>
|
|
|
178
219
|
|
|
179
220
|
</div>
|
|
180
221
|
</div>
|
|
181
|
-
<a id="
|
|
182
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
222
|
+
<a id="a994ea57cf2d8360458751a1f404b52d5"></a>
|
|
223
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a994ea57cf2d8360458751a1f404b52d5">◆ </a></span>ENABLEFLOW()</h2>
|
|
183
224
|
|
|
184
225
|
<div class="memitem">
|
|
185
226
|
<div class="memproto">
|
|
@@ -188,7 +229,27 @@ Variables</h2></td></tr>
|
|
|
188
229
|
<td class="mlabels-left">
|
|
189
230
|
<table class="memname">
|
|
190
231
|
<tr>
|
|
191
|
-
<td class="memname"
|
|
232
|
+
<td class="memname">static Option<bool> ENABLEFLOW </td>
|
|
233
|
+
<td>(</td>
|
|
234
|
+
<td class="paramtype">"ldaa" </td>
|
|
235
|
+
<td class="paramname">, </td>
|
|
236
|
+
</tr>
|
|
237
|
+
<tr>
|
|
238
|
+
<td class="paramkey"></td>
|
|
239
|
+
<td></td>
|
|
240
|
+
<td class="paramtype">"enable flow-sensitivity for demand-driven analysis" </td>
|
|
241
|
+
<td class="paramname">, </td>
|
|
242
|
+
</tr>
|
|
243
|
+
<tr>
|
|
244
|
+
<td class="paramkey"></td>
|
|
245
|
+
<td></td>
|
|
246
|
+
<td class="paramtype">false </td>
|
|
247
|
+
<td class="paramname"> </td>
|
|
248
|
+
</tr>
|
|
249
|
+
<tr>
|
|
250
|
+
<td></td>
|
|
251
|
+
<td>)</td>
|
|
252
|
+
<td></td><td></td>
|
|
192
253
|
</tr>
|
|
193
254
|
</table>
|
|
194
255
|
</td>
|
|
@@ -200,30 +261,38 @@ Variables</h2></td></tr>
|
|
|
200
261
|
|
|
201
262
|
</div>
|
|
202
263
|
</div>
|
|
203
|
-
<a id="
|
|
204
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
264
|
+
<a id="a3c04138a5bfe5d72780bb7e82a18e627"></a>
|
|
265
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a3c04138a5bfe5d72780bb7e82a18e627">◆ </a></span>main()</h2>
|
|
205
266
|
|
|
206
267
|
<div class="memitem">
|
|
207
268
|
<div class="memproto">
|
|
208
|
-
<table class="mlabels">
|
|
209
|
-
<tr>
|
|
210
|
-
<td class="mlabels-left">
|
|
211
269
|
<table class="memname">
|
|
212
270
|
<tr>
|
|
213
|
-
<td class="memname"
|
|
271
|
+
<td class="memname">int main </td>
|
|
272
|
+
<td>(</td>
|
|
273
|
+
<td class="paramtype">int </td>
|
|
274
|
+
<td class="paramname"><em>argc</em>, </td>
|
|
275
|
+
</tr>
|
|
276
|
+
<tr>
|
|
277
|
+
<td class="paramkey"></td>
|
|
278
|
+
<td></td>
|
|
279
|
+
<td class="paramtype">char ** </td>
|
|
280
|
+
<td class="paramname"><em>argv</em> </td>
|
|
281
|
+
</tr>
|
|
282
|
+
<tr>
|
|
283
|
+
<td></td>
|
|
284
|
+
<td>)</td>
|
|
285
|
+
<td></td><td></td>
|
|
214
286
|
</tr>
|
|
215
287
|
</table>
|
|
216
|
-
</td>
|
|
217
|
-
<td class="mlabels-right">
|
|
218
|
-
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
219
|
-
</tr>
|
|
220
|
-
</table>
|
|
221
288
|
</div><div class="memdoc">
|
|
222
289
|
|
|
290
|
+
<p class="definition">Definition at line <a class="el" href="dda_8cpp_source.html#l00056">56</a> of file <a class="el" href="dda_8cpp_source.html">dda.cpp</a>.</p>
|
|
291
|
+
<div class="fragment"><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  std::vector<std::string> moduleNameVec;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  moduleNameVec = OptionBase::parseOptions(</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  argc, argv, <span class="stringliteral">"Demand-Driven Points-to Analysis"</span>, <span class="stringliteral">"[options] <input-bitcode...>"</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  );</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">if</span> (Options::WriteAnder() == <span class="stringliteral">"ir_annotator"</span>)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  LLVMModuleSet::getLLVMModuleSet()->preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  SVFModule* svfModule = LLVMModuleSet::getLLVMModuleSet()->buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  SVFIRBuilder builder(svfModule);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  SVFIR* pag = builder.build();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  DDAPass dda;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  dda.runOnModule(pag);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">delete</span>[] arg_value;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> }</div></div><!-- fragment -->
|
|
223
292
|
</div>
|
|
224
293
|
</div>
|
|
225
|
-
<a id="
|
|
226
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
294
|
+
<a id="a1c2c3ba06219d3fde5cfe1a745fa311f"></a>
|
|
295
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a1c2c3ba06219d3fde5cfe1a745fa311f">◆ </a></span>REGPT()</h2>
|
|
227
296
|
|
|
228
297
|
<div class="memitem">
|
|
229
298
|
<div class="memproto">
|
|
@@ -232,7 +301,27 @@ Variables</h2></td></tr>
|
|
|
232
301
|
<td class="mlabels-left">
|
|
233
302
|
<table class="memname">
|
|
234
303
|
<tr>
|
|
235
|
-
<td class="memname"
|
|
304
|
+
<td class="memname">static Option<bool> REGPT </td>
|
|
305
|
+
<td>(</td>
|
|
306
|
+
<td class="paramtype">"dreg" </td>
|
|
307
|
+
<td class="paramname">, </td>
|
|
308
|
+
</tr>
|
|
309
|
+
<tr>
|
|
310
|
+
<td class="paramkey"></td>
|
|
311
|
+
<td></td>
|
|
312
|
+
<td class="paramtype">"Demand-driven regular points-to analysis" </td>
|
|
313
|
+
<td class="paramname">, </td>
|
|
314
|
+
</tr>
|
|
315
|
+
<tr>
|
|
316
|
+
<td class="paramkey"></td>
|
|
317
|
+
<td></td>
|
|
318
|
+
<td class="paramtype">false </td>
|
|
319
|
+
<td class="paramname"> </td>
|
|
320
|
+
</tr>
|
|
321
|
+
<tr>
|
|
322
|
+
<td></td>
|
|
323
|
+
<td>)</td>
|
|
324
|
+
<td></td><td></td>
|
|
236
325
|
</tr>
|
|
237
326
|
</table>
|
|
238
327
|
</td>
|
|
@@ -244,8 +333,8 @@ Variables</h2></td></tr>
|
|
|
244
333
|
|
|
245
334
|
</div>
|
|
246
335
|
</div>
|
|
247
|
-
<a id="
|
|
248
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
336
|
+
<a id="a9e2df1a2ac7e26eb1be2e2dbab4699f4"></a>
|
|
337
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a9e2df1a2ac7e26eb1be2e2dbab4699f4">◆ </a></span>RFINEPT()</h2>
|
|
249
338
|
|
|
250
339
|
<div class="memitem">
|
|
251
340
|
<div class="memproto">
|
|
@@ -254,7 +343,27 @@ Variables</h2></td></tr>
|
|
|
254
343
|
<td class="mlabels-left">
|
|
255
344
|
<table class="memname">
|
|
256
345
|
<tr>
|
|
257
|
-
<td class="memname"
|
|
346
|
+
<td class="memname">static Option<bool> RFINEPT </td>
|
|
347
|
+
<td>(</td>
|
|
348
|
+
<td class="paramtype">"dref" </td>
|
|
349
|
+
<td class="paramname">, </td>
|
|
350
|
+
</tr>
|
|
351
|
+
<tr>
|
|
352
|
+
<td class="paramkey"></td>
|
|
353
|
+
<td></td>
|
|
354
|
+
<td class="paramtype">"Demand-driven refinement points-to analysis" </td>
|
|
355
|
+
<td class="paramname">, </td>
|
|
356
|
+
</tr>
|
|
357
|
+
<tr>
|
|
358
|
+
<td class="paramkey"></td>
|
|
359
|
+
<td></td>
|
|
360
|
+
<td class="paramtype">false </td>
|
|
361
|
+
<td class="paramname"> </td>
|
|
362
|
+
</tr>
|
|
363
|
+
<tr>
|
|
364
|
+
<td></td>
|
|
365
|
+
<td>)</td>
|
|
366
|
+
<td></td><td></td>
|
|
258
367
|
</tr>
|
|
259
368
|
</table>
|
|
260
369
|
</td>
|
|
@@ -66,27 +66,15 @@ $(function() {
|
|
|
66
66
|
<div class="title">dda.cpp</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="dda_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> // On Demand Value Flow Analysis</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> //</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> // Author: Yulei Sui,</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> */</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> </div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">//#include "AliasUtil/AliasAnalysisCounter.h"</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//#include "MemoryModel/ComTypeModel.h"</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="LLVMUtil_8h.html">SVF-LLVM/LLVMUtil.h</a>"</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include "<a class="code" href="SVFIRBuilder_8h.html">SVF-LLVM/SVFIRBuilder.h</a>"</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include "<a class="code" href="DDAPass_8h.html">DDA/DDAPass.h</a>"</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "<a class="code" href="Options_8h.html">Util/Options.h</a>"</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">//static cl::list<const PassInfo*, bool, PassNameParser></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">//PassList(cl::desc("Optimizations available:"));</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">static</span> <a class="code" href="classOption.html">Option<bool></a> <a class="code" href="dda_8cpp.html#aa87e1cd4be4709a21393ed9e1a0da6bb">DAA</a>(</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  <span class="stringliteral">"daa"</span>,</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="stringliteral">"Demand-Driven Alias Analysis Pass"</span>,</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <span class="keyword">false</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> );</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">static</span> <a class="code" href="classOption.html">Option<bool></a> <a class="code" href="dda_8cpp.html#aa4d54caa95b7971baaaa499dc52a83f0">REGPT</a>(</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="stringliteral">"dreg"</span>,</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="stringliteral">"Demand-driven regular points-to analysis"</span>,</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">false</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> );</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">static</span> <a class="code" href="classOption.html">Option<bool></a> <a class="code" href="dda_8cpp.html#a67ee98e0a1d06555ea82c26cf1fa2b35">RFINEPT</a>(</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="stringliteral">"dref"</span>,</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="stringliteral">"Demand-driven refinement points-to analysis"</span>,</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">false</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> );</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">static</span> <a class="code" href="classOption.html">Option<bool></a> <a class="code" href="dda_8cpp.html#a33384804c17c2e3f457d80b47b114e1d">ENABLEFIELD</a>(</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="stringliteral">"fdaa"</span>,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="stringliteral">"enable field-sensitivity for demand-driven analysis"</span>,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">false</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> );</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">static</span> <a class="code" href="classOption.html">Option<bool></a> <a class="code" href="dda_8cpp.html#a0a4ada5aa37179525df2c87a5c6e2685">ENABLECONTEXT</a>(</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="stringliteral">"cdaa"</span>,</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="stringliteral">"enable context-sensitivity for demand-driven analysis"</span>,</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">false</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> );</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">static</span> <a class="code" href="classOption.html">Option<bool></a> <a class="code" href="dda_8cpp.html#a41cf6b3bb80c86976fab3561440031fe">ENABLEFLOW</a>(</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="stringliteral">"ldaa"</span>,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="stringliteral">"enable flow-sensitivity for demand-driven analysis"</span>,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">false</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> );</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="dda_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 56</a></span> <span class="keywordtype">int</span> <a class="code" href="dda_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  std::vector<std::string> moduleNameVec;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  moduleNameVec = <a class="code" href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a>(</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  argc, argv, <span class="stringliteral">"Demand-Driven Points-to Analysis"</span>, <span class="stringliteral">"[options] <input-bitcode...>"</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  );</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">if</span> (Options::WriteAnder() == <span class="stringliteral">"ir_annotator"</span>)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  LLVMModuleSet::getLLVMModuleSet()->preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()->buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#a5ecf1deb5646ccb46b0b3101417f4689">build</a>();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="classSVF_1_1DDAPass.html">DDAPass</a> dda;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  dda.<a class="code" href="classSVF_1_1DDAPass.html#aca46f1d464f5766ae666661a164a51a9">runOnModule</a>(pag);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">delete</span>[] arg_value;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="ttc" id="dda_8cpp_html_a41cf6b3bb80c86976fab3561440031fe"><div class="ttname"><a href="dda_8cpp.html#a41cf6b3bb80c86976fab3561440031fe">ENABLEFLOW</a></div><div class="ttdeci">static Option< bool > ENABLEFLOW("ldaa", "enable flow-sensitivity for demand-driven analysis", false)</div></div>
|
|
70
|
-
<div class="ttc" id="
|
|
71
|
-
<div class="ttc" id="
|
|
72
|
-
<div class="ttc" id="
|
|
73
|
-
<div class="ttc" id="
|
|
74
|
-
<div class="ttc" id="
|
|
75
|
-
<div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
|
|
76
|
-
<div class="ttc" id="dda_8cpp_html_a0a4ada5aa37179525df2c87a5c6e2685"><div class="ttname"><a href="dda_8cpp.html#a0a4ada5aa37179525df2c87a5c6e2685">ENABLECONTEXT</a></div><div class="ttdeci">static Option< bool > ENABLECONTEXT("cdaa", "enable context-sensitivity for demand-driven analysis", false)</div></div>
|
|
77
|
-
<div class="ttc" id="classSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00046">SVFIRBuilder.h:46</a></div></div>
|
|
78
|
-
<div class="ttc" id="classSVF_1_1DDAPass_html"><div class="ttname"><a href="classSVF_1_1DDAPass.html">SVF::DDAPass</a></div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00046">DDAPass.h:46</a></div></div>
|
|
79
|
-
<div class="ttc" id="dda_8cpp_html_aa87e1cd4be4709a21393ed9e1a0da6bb"><div class="ttname"><a href="dda_8cpp.html#aa87e1cd4be4709a21393ed9e1a0da6bb">DAA</a></div><div class="ttdeci">static Option< bool > DAA("daa", "Demand-Driven Alias Analysis Pass", false)</div></div>
|
|
69
|
+
<a href="dda_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> // On Demand Value Flow Analysis</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> //</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> // Author: Yulei Sui,</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> */</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> </div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">//#include "AliasUtil/AliasAnalysisCounter.h"</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//#include "MemoryModel/ComTypeModel.h"</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "SVF-LLVM/LLVMUtil.h"</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include "SVF-LLVM/SVFIRBuilder.h"</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include "DDA/DDAPass.h"</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "Util/Options.h"</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">//static cl::list<const PassInfo*, bool, PassNameParser></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">//PassList(cl::desc("Optimizations available:"));</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">static</span> Option<bool> <a class="code" href="dda_8cpp.html#aab45572f58baa3f8dc5ed54e212b7840">DAA</a>(</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  <span class="stringliteral">"daa"</span>,</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="stringliteral">"Demand-Driven Alias Analysis Pass"</span>,</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <span class="keyword">false</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> );</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">static</span> Option<bool> <a class="code" href="dda_8cpp.html#a1c2c3ba06219d3fde5cfe1a745fa311f">REGPT</a>(</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="stringliteral">"dreg"</span>,</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="stringliteral">"Demand-driven regular points-to analysis"</span>,</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">false</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> );</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">static</span> Option<bool> <a class="code" href="dda_8cpp.html#a9e2df1a2ac7e26eb1be2e2dbab4699f4">RFINEPT</a>(</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="stringliteral">"dref"</span>,</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="stringliteral">"Demand-driven refinement points-to analysis"</span>,</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">false</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> );</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">static</span> Option<bool> <a class="code" href="dda_8cpp.html#aa897ff2ba2a78de743d8695c5776bd9e">ENABLEFIELD</a>(</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="stringliteral">"fdaa"</span>,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="stringliteral">"enable field-sensitivity for demand-driven analysis"</span>,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">false</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> );</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">static</span> Option<bool> <a class="code" href="dda_8cpp.html#a02c0d2c3df5da031a63c2060fd9dd77d">ENABLECONTEXT</a>(</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="stringliteral">"cdaa"</span>,</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="stringliteral">"enable context-sensitivity for demand-driven analysis"</span>,</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">false</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> );</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">static</span> Option<bool> <a class="code" href="dda_8cpp.html#a994ea57cf2d8360458751a1f404b52d5">ENABLEFLOW</a>(</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="stringliteral">"ldaa"</span>,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="stringliteral">"enable flow-sensitivity for demand-driven analysis"</span>,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">false</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> );</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="dda_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 56</a></span> <span class="keywordtype">int</span> <a class="code" href="dda_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  std::vector<std::string> moduleNameVec;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  moduleNameVec = OptionBase::parseOptions(</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  argc, argv, <span class="stringliteral">"Demand-Driven Points-to Analysis"</span>, <span class="stringliteral">"[options] <input-bitcode...>"</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  );</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">if</span> (Options::WriteAnder() == <span class="stringliteral">"ir_annotator"</span>)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  LLVMModuleSet::getLLVMModuleSet()->preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  SVFModule* svfModule = LLVMModuleSet::getLLVMModuleSet()->buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  SVFIRBuilder builder(svfModule);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  SVFIR* pag = builder.build();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  DDAPass dda;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  dda.runOnModule(pag);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">delete</span>[] arg_value;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div></div>
|
|
70
|
+
<div class="ttc" id="dda_8cpp_html_aab45572f58baa3f8dc5ed54e212b7840"><div class="ttname"><a href="dda_8cpp.html#aab45572f58baa3f8dc5ed54e212b7840">DAA</a></div><div class="ttdeci">static Option< bool > DAA("daa", "Demand-Driven Alias Analysis Pass", false)</div></div>
|
|
71
|
+
<div class="ttc" id="dda_8cpp_html_a9e2df1a2ac7e26eb1be2e2dbab4699f4"><div class="ttname"><a href="dda_8cpp.html#a9e2df1a2ac7e26eb1be2e2dbab4699f4">RFINEPT</a></div><div class="ttdeci">static Option< bool > RFINEPT("dref", "Demand-driven refinement points-to analysis", false)</div></div>
|
|
72
|
+
<div class="ttc" id="dda_8cpp_html_a02c0d2c3df5da031a63c2060fd9dd77d"><div class="ttname"><a href="dda_8cpp.html#a02c0d2c3df5da031a63c2060fd9dd77d">ENABLECONTEXT</a></div><div class="ttdeci">static Option< bool > ENABLECONTEXT("cdaa", "enable context-sensitivity for demand-driven analysis", false)</div></div>
|
|
73
|
+
<div class="ttc" id="dda_8cpp_html_a994ea57cf2d8360458751a1f404b52d5"><div class="ttname"><a href="dda_8cpp.html#a994ea57cf2d8360458751a1f404b52d5">ENABLEFLOW</a></div><div class="ttdeci">static Option< bool > ENABLEFLOW("ldaa", "enable flow-sensitivity for demand-driven analysis", false)</div></div>
|
|
74
|
+
<div class="ttc" id="dda_8cpp_html_aa897ff2ba2a78de743d8695c5776bd9e"><div class="ttname"><a href="dda_8cpp.html#aa897ff2ba2a78de743d8695c5776bd9e">ENABLEFIELD</a></div><div class="ttdeci">static Option< bool > ENABLEFIELD("fdaa", "enable field-sensitivity for demand-driven analysis", false)</div></div>
|
|
80
75
|
<div class="ttc" id="dda_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="dda_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="dda_8cpp_source.html#l00056">dda.cpp:56</a></div></div>
|
|
81
|
-
<div class="ttc" id="
|
|
82
|
-
<div class="ttc" id="
|
|
83
|
-
<div class="ttc" id="Options_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
84
|
-
<div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00037">AbstractValue.h:37</a></div></div>
|
|
85
|
-
<div class="ttc" id="SVFIRBuilder_8h_html"><div class="ttname"><a href="SVFIRBuilder_8h.html">SVFIRBuilder.h</a></div></div>
|
|
86
|
-
<div class="ttc" id="dda_8cpp_html_a33384804c17c2e3f457d80b47b114e1d"><div class="ttname"><a href="dda_8cpp.html#a33384804c17c2e3f457d80b47b114e1d">ENABLEFIELD</a></div><div class="ttdeci">static Option< bool > ENABLEFIELD("fdaa", "enable field-sensitivity for demand-driven analysis", false)</div></div>
|
|
87
|
-
<div class="ttc" id="classOptionBase_html_a4fb6c6e4a1754d702c6c1730f54457e5"><div class="ttname"><a href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a></div><div class="ttdeci">static std::vector< std::string > parseOptions(int argc, char *argv[], std::string description, std::string callFormat)</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00075">CommandLine.h:75</a></div></div>
|
|
88
|
-
<div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
89
|
-
<div class="ttc" id="LLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
|
|
76
|
+
<div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdef"><b>Definition:</b> <a href="LockResultValidator_8cpp_source.html#l00016">LockResultValidator.cpp:16</a></div></div>
|
|
77
|
+
<div class="ttc" id="dda_8cpp_html_a1c2c3ba06219d3fde5cfe1a745fa311f"><div class="ttname"><a href="dda_8cpp.html#a1c2c3ba06219d3fde5cfe1a745fa311f">REGPT</a></div><div class="ttdeci">static Option< bool > REGPT("dreg", "Demand-driven regular points-to analysis", false)</div></div>
|
|
90
78
|
</div><!-- fragment --></div><!-- contents -->
|
|
91
79
|
<!-- start footer part -->
|
|
92
80
|
<hr class="footer"/><address class="footer"><small>
|
|
@@ -81,7 +81,7 @@ Files</h2></td></tr>
|
|
|
81
81
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
82
82
|
<tr class="memitem:MTAResultValidator_8cpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="MTAResultValidator_8cpp.html">MTAResultValidator.cpp</a> <a href="MTAResultValidator_8cpp_source.html">[code]</a></td></tr>
|
|
83
83
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
84
|
-
<tr class="memitem:
|
|
84
|
+
<tr class="memitem:MTAResultValidator_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="MTAResultValidator_8h.html">MTAResultValidator.h</a> <a href="MTAResultValidator_8h_source.html">[code]</a></td></tr>
|
|
85
85
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
86
86
|
</table>
|
|
87
87
|
</div><!-- contents -->
|