svf-tools 1.0.559 → 1.0.562
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/README.md +1 -1
- package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +43 -43
- package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +16 -16
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/Andersen_8h_source.html +56 -56
- package/SVF-doxygen/html/html/CFLGrammar_8txt.html +8 -8
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +10 -1
- package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +3 -1
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +44 -44
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +43 -43
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +36 -36
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +21 -21
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +51 -51
- package/SVF-doxygen/html/html/DDAStat_8h_source.html +51 -51
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +111 -111
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +17 -17
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +40 -40
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +52 -52
- package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +2 -2
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +42 -42
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +6 -6
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +34 -34
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +114 -114
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +7 -7
- package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +94 -94
- package/SVF-doxygen/html/html/MHP_8h_source.html +135 -135
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +6 -6
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +6 -6
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +33 -33
- package/SVF-doxygen/html/html/MTAStat_8h_source.html +14 -14
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +28 -28
- package/SVF-doxygen/html/html/MTA_8h_source.html +24 -24
- package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MemPartition_8h_source.html +4 -4
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +50 -50
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +93 -93
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +59 -59
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +103 -103
- package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +185 -185
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/PCG_8h_source.html +52 -52
- package/SVF-doxygen/html/html/PEGGrammar_8txt.html +14 -32
- package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +40 -40
- package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +181 -181
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +30 -30
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +60 -60
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/SVFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/SVFG_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +7 -7
- package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SaberCheckerAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +66 -66
- package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +6 -6
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +44 -44
- package/SVF-doxygen/html/html/TCT_8h_source.html +93 -93
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +25 -25
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +38 -38
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/WPAStat_8h_source.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder-members.html +13 -10
- package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +190 -2
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +102 -102
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +43 -43
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +39 -39
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +100 -100
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +58 -58
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +165 -165
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +286 -286
- package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1EntryCHI.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +50 -50
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +71 -71
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +218 -218
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +334 -334
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +246 -246
- package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +200 -200
- package/SVF-doxygen/html/html/classSVF_1_1MSSACHI.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MSSADEF.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MSSAMU.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +53 -53
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +181 -181
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +44 -44
- package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +267 -267
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +128 -128
- package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +55 -55
- package/SVF-doxygen/html/html/classSVF_1_1MutableIncDFPTData.html +88 -88
- package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +78 -78
- package/SVF-doxygen/html/html/classSVF_1_1MutableVersionedPTData.html +77 -77
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +131 -131
- package/SVF-doxygen/html/html/classSVF_1_1PTData.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +107 -107
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +66 -66
- package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +84 -84
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +77 -77
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +134 -134
- package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +77 -77
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +161 -161
- package/SVF-doxygen/html/html/classSVF_1_1RaceValidator.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1RetMU.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFGNodeLockSpan.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +42 -39
- package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +157 -157
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +264 -264
- package/SVF-doxygen/html/html/classSVF_1_1TCTEdge.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +100 -100
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +6 -6
- package/SVF-doxygen/html/html/dda_8cpp.html +2 -2
- package/SVF-doxygen/html/html/dda_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/functions_a.html +11 -5
- package/SVF-doxygen/html/html/functions_c.html +21 -18
- package/SVF-doxygen/html/html/functions_f.html +3 -3
- package/SVF-doxygen/html/html/functions_func.html +16 -10
- package/SVF-doxygen/html/html/functions_func_c.html +19 -16
- package/SVF-doxygen/html/html/functions_func_s.html +1 -1
- package/SVF-doxygen/html/html/functions_i.html +3 -3
- package/SVF-doxygen/html/html/functions_l.html +3 -3
- package/SVF-doxygen/html/html/functions_o.html +3 -3
- package/SVF-doxygen/html/html/functions_p.html +3 -3
- package/SVF-doxygen/html/html/functions_r.html +3 -7
- package/SVF-doxygen/html/html/functions_s.html +18 -16
- package/SVF-doxygen/html/html/functions_t.html +3 -3
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/globals_g.html +3 -3
- package/SVF-doxygen/html/html/globals_v.html +1 -2
- package/SVF-doxygen/html/html/globals_vars.html +3 -4
- package/SVF-doxygen/html/html/mta_8cpp.html +2 -2
- package/SVF-doxygen/html/html/mta_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/namespaceSVF.html +11 -11
- package/SVF-doxygen/html/html/search/all_1.js +2 -0
- package/SVF-doxygen/html/html/search/all_10.js +4 -4
- package/SVF-doxygen/html/html/search/all_11.js +1 -1
- package/SVF-doxygen/html/html/search/all_12.js +12 -12
- package/SVF-doxygen/html/html/search/all_13.js +3 -3
- package/SVF-doxygen/html/html/search/all_15.js +3 -3
- package/SVF-doxygen/html/html/search/all_3.js +1 -0
- package/SVF-doxygen/html/html/search/all_6.js +1 -1
- package/SVF-doxygen/html/html/search/all_7.js +2 -2
- package/SVF-doxygen/html/html/search/all_9.js +1 -1
- package/SVF-doxygen/html/html/search/all_c.js +3 -3
- package/SVF-doxygen/html/html/search/all_e.js +2 -2
- package/SVF-doxygen/html/html/search/all_f.js +1 -1
- package/SVF-doxygen/html/html/search/functions_0.js +2 -0
- package/SVF-doxygen/html/html/search/functions_11.js +1 -1
- package/SVF-doxygen/html/html/search/functions_2.js +1 -0
- package/SVF-doxygen/html/html/search/variables_15.js +1 -1
- package/SVF-doxygen/html/html/search/variables_7.js +2 -2
- package/SVF-doxygen/html/html/search/variables_e.js +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1MemRegion_1_1equalMemRegion.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html +4 -4
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +15 -15
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCTNode_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCT_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SVFGNodeLockSpan_01_4.html +3 -3
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
- package/include/CFL/CFLGraphBuilder.h +9 -0
- package/include/CFL/PEGGrammar.txt +4 -8
- package/include/DDA/ContextDDA.h +29 -0
- package/include/DDA/DDAClient.h +23 -0
- package/include/DDA/DDAPass.h +22 -0
- package/include/DDA/DDAStat.h +22 -0
- package/include/DDA/DDAVFSolver.h +22 -0
- package/include/DDA/FlowDDA.h +29 -0
- package/include/MSSA/MSSAMuChi.h +1 -1
- package/include/MSSA/MemPartition.h +1 -1
- package/include/MSSA/MemRegion.h +5 -1
- package/include/MSSA/MemSSA.h +7 -1
- package/include/MSSA/SVFGBuilder.h +1 -1
- package/include/MTA/FSMPTA.h +26 -0
- package/include/MTA/LockAnalysis.h +22 -0
- package/include/MTA/MHP.h +22 -0
- package/include/MTA/MTA.h +27 -1
- package/include/MTA/MTAStat.h +22 -0
- package/include/MTA/PCG.h +22 -0
- package/include/MTA/TCT.h +22 -0
- package/include/MemoryModel/AbstractPointsToDS.h +34 -0
- package/include/MemoryModel/ConditionalPT.h +1 -1
- package/include/MemoryModel/LocationSet.h +1 -1
- package/include/MemoryModel/MutablePointsToDS.h +32 -0
- package/include/MemoryModel/PAGBuilderFromFile.h +2 -2
- package/include/MemoryModel/PersistentPointsToCache.h +3 -1
- package/include/MemoryModel/PersistentPointsToDS.h +10 -0
- package/include/MemoryModel/PointerAnalysis.h +1 -1
- package/include/MemoryModel/PointerAnalysisImpl.h +1 -1
- package/include/MemoryModel/SVFStatements.h +1 -1
- package/include/SABER/DoubleFreeChecker.h +1 -1
- package/include/SABER/FileChecker.h +1 -1
- package/include/SABER/LeakChecker.h +1 -1
- package/include/SABER/ProgSlice.h +8 -1
- package/include/SABER/SaberAnnotator.h +1 -1
- package/include/SABER/SaberCheckerAPI.h +1 -1
- package/include/SABER/SaberCondAllocator.h +1 -1
- package/include/SABER/SaberSVFGBuilder.h +1 -1
- package/include/SABER/SrcSnkDDA.h +8 -1
- package/include/SABER/SrcSnkSolver.h +1 -1
- package/include/WPA/Andersen.h +5 -0
- package/include/WPA/TypeAnalysis.h +1 -1
- package/include/WPA/VersionedFlowSensitive.h +4 -0
- package/lib/CFL/CFLGraphBuilder.cpp +44 -0
- package/lib/DDA/ContextDDA.cpp +22 -0
- package/lib/DDA/DDAClient.cpp +22 -0
- package/lib/DDA/DDAPass.cpp +23 -0
- package/lib/DDA/DDAStat.cpp +22 -0
- package/lib/DDA/FlowDDA.cpp +22 -0
- package/lib/MTA/FSMPTA.cpp +22 -0
- package/lib/MTA/LockAnalysis.cpp +22 -0
- package/lib/MTA/MHP.cpp +23 -1
- package/lib/MTA/MTA.cpp +23 -0
- package/lib/MTA/MTAStat.cpp +22 -0
- package/lib/MTA/PCG.cpp +22 -0
- package/lib/MTA/TCT.cpp +23 -0
- package/lib/MemoryModel/LocationSet.cpp +1 -1
- package/lib/MemoryModel/PAGBuilderFromFile.cpp +1 -1
- package/lib/MemoryModel/PointerAnalysis.cpp +1 -1
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +23 -0
- package/lib/SABER/DoubleFreeChecker.cpp +1 -1
- package/lib/SABER/FileChecker.cpp +1 -1
- package/lib/SABER/LeakChecker.cpp +1 -1
- package/lib/SABER/ProgSlice.cpp +1 -1
- package/lib/SABER/SaberAnnotator.cpp +1 -1
- package/lib/SABER/SaberCheckerAPI.cpp +1 -1
- package/lib/SABER/SaberCondAllocator.cpp +1 -1
- package/lib/SABER/SaberSVFGBuilder.cpp +1 -1
- package/lib/SABER/SrcSnkDDA.cpp +1 -1
- package/lib/SVF-FE/SVFIRBuilder.cpp +21 -0
- package/lib/Util/ExtAPI.cpp +42 -0
- package/lib/WPA/Steensgaard.cpp +22 -0
- package/lib/WPA/TypeAnalysis.cpp +1 -1
- package/lib/WPA/WPAPass.cpp +1 -1
- package/package.json +1 -1
|
@@ -510,7 +510,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
510
510
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
|
|
511
511
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ae4253bc632ffffe2498263c90f456ca7"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae4253bc632ffffe2498263c90f456ca7">SVF::FlowSensitive::numOfProcessedAddr</a></div><div class="ttdeci">u32_t numOfProcessedAddr</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00287">FlowSensitive.h:287</a></div></div>
|
|
512
512
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a38f3ed35185addf701d4401bfdd5f29b"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a38f3ed35185addf701d4401bfdd5f29b">SVF::FlowSensitive::addrTime</a></div><div class="ttdeci">double addrTime</div><div class="ttdoc">time of handling address edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00308">FlowSensitive.h:308</a></div></div>
|
|
513
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a4a594c8d6ccaa27b5328c6388fdb258d"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a4a594c8d6ccaa27b5328c6388fdb258d">SVF::VersionedFlowSensitive::meldLabelingTime</a></div><div class="ttdeci">double meldLabelingTime</div><div class="ttdoc">Time to meld label SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
513
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a4a594c8d6ccaa27b5328c6388fdb258d"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a4a594c8d6ccaa27b5328c6388fdb258d">SVF::VersionedFlowSensitive::meldLabelingTime</a></div><div class="ttdeci">double meldLabelingTime</div><div class="ttdoc">Time to meld label SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00237">VersionedFlowSensitive.h:237</a></div></div>
|
|
514
514
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitiveStat_html_a7efe89e95b5989f861d934d52d0bbce0"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitiveStat.html#a7efe89e95b5989f861d934d52d0bbce0">SVF::VersionedFlowSensitiveStat::_NumVersions</a></div><div class="ttdeci">u32_t _NumVersions</div><div class="ttdoc">Total number of versions across all objects. </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00191">WPAStat.h:191</a></div></div>
|
|
515
515
|
<div class="ttc" id="classSVF_1_1SVFIR_html_af76a55c3b8255a81a566bdce35ffc749"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">SVF::SVFIR::getBaseObj</a></div><div class="ttdeci">const MemObj * getBaseObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00410">SVFIR.h:410</a></div></div>
|
|
516
516
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_abdc30e45347579986c42795a436a1251"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#abdc30e45347579986c42795a436a1251">SVF::FlowSensitive::numOfProcessedActualParam</a></div><div class="ttdeci">u32_t numOfProcessedActualParam</div><div class="ttdoc">Number of processed Store node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00293">FlowSensitive.h:293</a></div></div>
|
|
@@ -530,7 +530,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
530
530
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitiveStat_html_ad7fe08f5d684e3411f8f28ec346bd814"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitiveStat.html#ad7fe08f5d684e3411f8f28ec346bd814">SVF::VersionedFlowSensitiveStat::versionStat</a></div><div class="ttdeci">void versionStat(void)</div><div class="ttdoc">For all version-related statistics. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitiveStat_8cpp_source.html#l00153">VersionedFlowSensitiveStat.cpp:153</a></div></div>
|
|
531
531
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitiveStat_html_acbe0a777f2c00b142a94ce2b974fd5d5"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitiveStat.html#acbe0a777f2c00b142a94ce2b974fd5d5">SVF::VersionedFlowSensitiveStat::ptsSizeStat</a></div><div class="ttdeci">void ptsSizeStat(void)</div><div class="ttdoc">For all PTS size related statistics not handled by versionStat. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitiveStat_8cpp_source.html#l00197">VersionedFlowSensitiveStat.cpp:197</a></div></div>
|
|
532
532
|
<div class="ttc" id="classSVF_1_1PTAStat_html_a267ba4aac2e7ceb65f008f9486d3d9f7"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a267ba4aac2e7ceb65f008f9486d3d9f7">SVF::PTAStat::endTime</a></div><div class="ttdeci">double endTime</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00127">PTAStat.h:127</a></div></div>
|
|
533
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_af15bb6be283fee2fcc4b1fb7d8190451"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#af15bb6be283fee2fcc4b1fb7d8190451">SVF::VersionedFlowSensitive::versionPropTime</a></div><div class="ttdeci">double versionPropTime</div><div class="ttdoc">Time to propagate versions to versions which rely on them. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
533
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_af15bb6be283fee2fcc4b1fb7d8190451"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#af15bb6be283fee2fcc4b1fb7d8190451">SVF::VersionedFlowSensitive::versionPropTime</a></div><div class="ttdeci">double versionPropTime</div><div class="ttdoc">Time to propagate versions to versions which rely on them. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00238">VersionedFlowSensitive.h:238</a></div></div>
|
|
534
534
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a0e1a0bdbf4f81a3600ac26ac011ac268"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a0e1a0bdbf4f81a3600ac26ac011ac268">SVF::FlowSensitive::numOfProcessedLoad</a></div><div class="ttdeci">u32_t numOfProcessedLoad</div><div class="ttdoc">Number of processed Phi node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00291">FlowSensitive.h:291</a></div></div>
|
|
535
535
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a3bbaafd80dfcae6ccc82c3d8b9d303ea"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3bbaafd80dfcae6ccc82c3d8b9d303ea">SVF::SVFIR::getFieldObjNodeNum</a></div><div class="ttdeci">u32_t getFieldObjNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00288">SVFIR.h:288</a></div></div>
|
|
536
536
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aee7d59b7ad00cf1cf6e3fba19513aa42"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aee7d59b7ad00cf1cf6e3fba19513aa42">SVF::FlowSensitive::phiTime</a></div><div class="ttdeci">double phiTime</div><div class="ttdoc">time of phi nodes. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00313">FlowSensitive.h:313</a></div></div>
|
|
@@ -566,7 +566,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
566
566
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_af71a5ae3aef022c569e89f40515072cf"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af71a5ae3aef022c569e89f40515072cf">SVF::FlowSensitive::numOfProcessedMSSANode</a></div><div class="ttdeci">u32_t numOfProcessedMSSANode</div><div class="ttdoc">Number of processed formal ret node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00295">FlowSensitive.h:295</a></div></div>
|
|
567
567
|
<div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00738">SymbolTableInfo.cpp:738</a></div></div>
|
|
568
568
|
<div class="ttc" id="classSVF_1_1PTAStat_html_ad6de9d3f25c20705768000c987af0eb6"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ad6de9d3f25c20705768000c987af0eb6">SVF::PTAStat::performStat</a></div><div class="ttdeci">void performStat() override</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00114">PTAStat.cpp:114</a></div></div>
|
|
569
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a77a5dd9578def9a8e2b48e8b90d9b996"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a77a5dd9578def9a8e2b48e8b90d9b996">SVF::VersionedFlowSensitive::prelabelingTime</a></div><div class="ttdeci">double prelabelingTime</div><div class="ttdoc">Time to prelabel SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
569
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a77a5dd9578def9a8e2b48e8b90d9b996"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a77a5dd9578def9a8e2b48e8b90d9b996">SVF::VersionedFlowSensitive::prelabelingTime</a></div><div class="ttdeci">double prelabelingTime</div><div class="ttdoc">Time to prelabel SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00236">VersionedFlowSensitive.h:236</a></div></div>
|
|
570
570
|
<div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00408">SymbolTableInfo.h:408</a></div></div>
|
|
571
571
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a888d6334e5e226c634680e4c0674dcfb"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a888d6334e5e226c634680e4c0674dcfb">SVF::FlowSensitive::copyTime</a></div><div class="ttdeci">double copyTime</div><div class="ttdoc">time of handling copy edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00309">FlowSensitive.h:309</a></div></div>
|
|
572
572
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ac4d4b42bb96006801597f81ed3c4b337"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ac4d4b42bb96006801597f81ed3c4b337">SVF::FlowSensitive::propagationTime</a></div><div class="ttdeci">double propagationTime</div><div class="ttdoc">time of points-to propagation. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00304">FlowSensitive.h:304</a></div></div>
|
|
@@ -665,28 +665,28 @@ Additional Inherited Members</h2></td></tr>
|
|
|
665
665
|
<p>For all version-related statistics. </p>
|
|
666
666
|
|
|
667
667
|
<p class="definition">Definition at line <a class="el" href="VersionedFlowSensitiveStat_8cpp_source.html#l00153">153</a> of file <a class="el" href="VersionedFlowSensitiveStat_8cpp_source.html">VersionedFlowSensitiveStat.cpp</a>.</p>
|
|
668
|
-
<div class="fragment"><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="comment">// TODO! Need to merge yield/consume.</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a54c05a4b7ca2af66bf74a5f87cd2c416">_NumSingleVersion</a> = 0;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#aacce301a2c2613591dcd2afaccfcb380">_MaxVersions</a> = 0;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalVersionPtsSize = 0;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aa689d29ead80303b1ef1e1a91f31c296">VersionedFlowSensitive::LocVersionMap</a> *lvm :</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  &<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a19bde64f7e0ac99a2a6b49e78aa2e70f">vfspta</a>-><a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a2e4e6a84cbfd553ad9cca8fdf9fd4a8d">consume</a>, &<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a19bde64f7e0ac99a2a6b49e78aa2e70f">vfspta</a>-><a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a16224ee60494bb1fdf1c8a1026fbe7ab">yield</a></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  })</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af9a43f48b7d99cc6694f3ae3248fd8e0">VersionedFlowSensitive::ObjToVersionMap</a> &lov : *lvm)</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> VersionedFlowSensitive::ObjToVersionMap::value_type &ov : lov)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o = ov.first;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v = ov.second;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  ++<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a7efe89e95b5989f861d934d52d0bbce0">_NumVersions</a>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="comment">// If the version was just over-approximate and never accessed, ignore.</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="comment">// TODO: with vPtD changed there is no interface to check if the PTS</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="comment">// exists; an emptiness check is *not* an existence check.</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a19bde64f7e0ac99a2a6b49e78aa2e70f">vfspta</a>-><a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a03f5f16377daa0258166a73de3e21f07">vPtD</a>-><a class="code" href="classSVF_1_1VersionedPTData.html#adcba3355f96357493d8a7520ff00cc97">getPts</a>(<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a19bde64f7e0ac99a2a6b49e78aa2e70f">vfspta</a>-><a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a59f3dd74ed8c3e2fc48b9353ba2452aa">atKey</a>(o, v)).empty()) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &ovPts = <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a19bde64f7e0ac99a2a6b49e78aa2e70f">vfspta</a>-><a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a03f5f16377daa0258166a73de3e21f07">vPtD</a>-><a class="code" href="classSVF_1_1VersionedPTData.html#adcba3355f96357493d8a7520ff00cc97">getPts</a>(<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a19bde64f7e0ac99a2a6b49e78aa2e70f">vfspta</a>-><a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a59f3dd74ed8c3e2fc48b9353ba2452aa">atKey</a>(o, v));</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordflow">if</span> (!ovPts.<a class="code" href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">empty</a>()) ++<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a59f2b0ca53d3b94ce596cd2a934e6976">_NumNonEmptyVersions</a>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">else</span> ++<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a585f952ecdbd9fb559d2a5754a77d7b4">_NumEmptyVersions</a>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a5ae1833ae26af8bcb819dad24e2390de">_TotalPtsSize</a> += ovPts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>();</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  totalVersionPtsSize += ovPts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>();</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">if</span> (ovPts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>() > <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a8c4bfeab6bb30a16689d3c3c54a1057d">_MaxVersionPtsSize</a>) <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a8c4bfeab6bb30a16689d3c3c54a1057d">_MaxVersionPtsSize</a> = ovPts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#ac938f088c33346ad01ace37160ea8e81">_NumUsedVersions</a> = <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a59f2b0ca53d3b94ce596cd2a934e6976">_NumNonEmptyVersions</a> + <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a585f952ecdbd9fb559d2a5754a77d7b4">_NumEmptyVersions</a>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a59f2b0ca53d3b94ce596cd2a934e6976">_NumNonEmptyVersions</a> != 0) <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a2e3c24fbb1faaf345e6806e99a07f782">_AvgVersionPtsSize</a> = (double)totalVersionPtsSize / (<span class="keywordtype">double</span>)<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#ac938f088c33346ad01ace37160ea8e81">_NumUsedVersions</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a5ae1833ae26af8bcb819dad24e2390de">_TotalPtsSize</a> += totalVersionPtsSize;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> }</div><div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_aa689d29ead80303b1ef1e1a91f31c296"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#aa689d29ead80303b1ef1e1a91f31c296">SVF::VersionedFlowSensitive::LocVersionMap</a></div><div class="ttdeci">std::vector< ObjToVersionMap > LocVersionMap</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00039">VersionedFlowSensitive.h:39</a></div></div>
|
|
668
|
+
<div class="fragment"><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="comment">// TODO! Need to merge yield/consume.</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a54c05a4b7ca2af66bf74a5f87cd2c416">_NumSingleVersion</a> = 0;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#aacce301a2c2613591dcd2afaccfcb380">_MaxVersions</a> = 0;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalVersionPtsSize = 0;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aa689d29ead80303b1ef1e1a91f31c296">VersionedFlowSensitive::LocVersionMap</a> *lvm :</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  &<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a19bde64f7e0ac99a2a6b49e78aa2e70f">vfspta</a>-><a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a2e4e6a84cbfd553ad9cca8fdf9fd4a8d">consume</a>, &<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a19bde64f7e0ac99a2a6b49e78aa2e70f">vfspta</a>-><a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a16224ee60494bb1fdf1c8a1026fbe7ab">yield</a></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  })</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af9a43f48b7d99cc6694f3ae3248fd8e0">VersionedFlowSensitive::ObjToVersionMap</a> &lov : *lvm)</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> VersionedFlowSensitive::ObjToVersionMap::value_type &ov : lov)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o = ov.first;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v = ov.second;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  ++<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a7efe89e95b5989f861d934d52d0bbce0">_NumVersions</a>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="comment">// If the version was just over-approximate and never accessed, ignore.</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="comment">// TODO: with vPtD changed there is no interface to check if the PTS</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="comment">// exists; an emptiness check is *not* an existence check.</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a19bde64f7e0ac99a2a6b49e78aa2e70f">vfspta</a>-><a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a03f5f16377daa0258166a73de3e21f07">vPtD</a>-><a class="code" href="classSVF_1_1VersionedPTData.html#adcba3355f96357493d8a7520ff00cc97">getPts</a>(<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a19bde64f7e0ac99a2a6b49e78aa2e70f">vfspta</a>-><a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a59f3dd74ed8c3e2fc48b9353ba2452aa">atKey</a>(o, v)).empty()) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &ovPts = <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a19bde64f7e0ac99a2a6b49e78aa2e70f">vfspta</a>-><a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a03f5f16377daa0258166a73de3e21f07">vPtD</a>-><a class="code" href="classSVF_1_1VersionedPTData.html#adcba3355f96357493d8a7520ff00cc97">getPts</a>(<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a19bde64f7e0ac99a2a6b49e78aa2e70f">vfspta</a>-><a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a59f3dd74ed8c3e2fc48b9353ba2452aa">atKey</a>(o, v));</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordflow">if</span> (!ovPts.<a class="code" href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">empty</a>()) ++<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a59f2b0ca53d3b94ce596cd2a934e6976">_NumNonEmptyVersions</a>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">else</span> ++<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a585f952ecdbd9fb559d2a5754a77d7b4">_NumEmptyVersions</a>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a5ae1833ae26af8bcb819dad24e2390de">_TotalPtsSize</a> += ovPts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>();</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  totalVersionPtsSize += ovPts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>();</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">if</span> (ovPts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>() > <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a8c4bfeab6bb30a16689d3c3c54a1057d">_MaxVersionPtsSize</a>) <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a8c4bfeab6bb30a16689d3c3c54a1057d">_MaxVersionPtsSize</a> = ovPts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#ac938f088c33346ad01ace37160ea8e81">_NumUsedVersions</a> = <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a59f2b0ca53d3b94ce596cd2a934e6976">_NumNonEmptyVersions</a> + <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a585f952ecdbd9fb559d2a5754a77d7b4">_NumEmptyVersions</a>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a59f2b0ca53d3b94ce596cd2a934e6976">_NumNonEmptyVersions</a> != 0) <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a2e3c24fbb1faaf345e6806e99a07f782">_AvgVersionPtsSize</a> = (double)totalVersionPtsSize / (<span class="keywordtype">double</span>)<a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#ac938f088c33346ad01ace37160ea8e81">_NumUsedVersions</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html#a5ae1833ae26af8bcb819dad24e2390de">_TotalPtsSize</a> += totalVersionPtsSize;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> }</div><div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_aa689d29ead80303b1ef1e1a91f31c296"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#aa689d29ead80303b1ef1e1a91f31c296">SVF::VersionedFlowSensitive::LocVersionMap</a></div><div class="ttdeci">std::vector< ObjToVersionMap > LocVersionMap</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00043">VersionedFlowSensitive.h:43</a></div></div>
|
|
669
669
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a59f3dd74ed8c3e2fc48b9353ba2452aa"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a59f3dd74ed8c3e2fc48b9353ba2452aa">SVF::VersionedFlowSensitive::atKey</a></div><div class="ttdeci">static VersionedVar atKey(NodeID, Version)</div><div class="ttdoc">Return key into vPtD for address-taken var of a specific version. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00024">VersionedFlowSensitive.cpp:24</a></div></div>
|
|
670
670
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
|
|
671
671
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitiveStat_html_a7efe89e95b5989f861d934d52d0bbce0"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitiveStat.html#a7efe89e95b5989f861d934d52d0bbce0">SVF::VersionedFlowSensitiveStat::_NumVersions</a></div><div class="ttdeci">u32_t _NumVersions</div><div class="ttdoc">Total number of versions across all objects. </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00191">WPAStat.h:191</a></div></div>
|
|
672
672
|
<div class="ttc" id="classSVF_1_1VersionedPTData_html_adcba3355f96357493d8a7520ff00cc97"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html#adcba3355f96357493d8a7520ff00cc97">SVF::VersionedPTData::getPts</a></div><div class="ttdeci">virtual const DataSet & getPts(const VersionedKey &vk)=0</div></div>
|
|
673
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a03f5f16377daa0258166a73de3e21f07"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a03f5f16377daa0258166a73de3e21f07">SVF::VersionedFlowSensitive::vPtD</a></div><div class="ttdeci">BVDataPTAImpl::VersionedPTDataTy * vPtD</div><div class="ttdoc">Points-to DS for working with versions. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
673
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a03f5f16377daa0258166a73de3e21f07"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a03f5f16377daa0258166a73de3e21f07">SVF::VersionedFlowSensitive::vPtD</a></div><div class="ttdeci">BVDataPTAImpl::VersionedPTDataTy * vPtD</div><div class="ttdoc">Points-to DS for working with versions. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00214">VersionedFlowSensitive.h:214</a></div></div>
|
|
674
674
|
<div class="ttc" id="namespaceSVF_html_a9ec7a8dc63411ee3724a25a59191be0c"><div class="ttname"><a href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">SVF::Version</a></div><div class="ttdeci">unsigned Version</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00133">SVFBasicTypes.h:133</a></div></div>
|
|
675
675
|
<div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
|
|
676
676
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitiveStat_html_a2e3c24fbb1faaf345e6806e99a07f782"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitiveStat.html#a2e3c24fbb1faaf345e6806e99a07f782">SVF::VersionedFlowSensitiveStat::_AvgVersionPtsSize</a></div><div class="ttdeci">double _AvgVersionPtsSize</div><div class="ttdoc">Average points-to set size for address-taken objects. </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00218">WPAStat.h:218</a></div></div>
|
|
677
677
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitiveStat_html_a5ae1833ae26af8bcb819dad24e2390de"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitiveStat.html#a5ae1833ae26af8bcb819dad24e2390de">SVF::VersionedFlowSensitiveStat::_TotalPtsSize</a></div><div class="ttdeci">u32_t _TotalPtsSize</div><div class="ttdoc">Total of points-to set sizes for calculating averages. </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00211">WPAStat.h:211</a></div></div>
|
|
678
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_af9a43f48b7d99cc6694f3ae3248fd8e0"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#af9a43f48b7d99cc6694f3ae3248fd8e0">SVF::VersionedFlowSensitive::ObjToVersionMap</a></div><div class="ttdeci">Map< NodeID, Version > ObjToVersionMap</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
678
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_af9a43f48b7d99cc6694f3ae3248fd8e0"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#af9a43f48b7d99cc6694f3ae3248fd8e0">SVF::VersionedFlowSensitive::ObjToVersionMap</a></div><div class="ttdeci">Map< NodeID, Version > ObjToVersionMap</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00040">VersionedFlowSensitive.h:40</a></div></div>
|
|
679
679
|
<div class="ttc" id="classSVF_1_1PointsTo_html_a879783ba6629e500af9aa7dfcda2563d"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">SVF::PointsTo::count</a></div><div class="ttdeci">u32_t count(void) const</div><div class="ttdoc">Returns number of elements. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00107">PointsTo.cpp:107</a></div></div>
|
|
680
680
|
<div class="ttc" id="classSVF_1_1PointsTo_html_ac4688413177b49b37dbbfd3ed188d59b"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">SVF::PointsTo::empty</a></div><div class="ttdeci">bool empty(void) const</div><div class="ttdoc">Returns true if set is empty. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00094">PointsTo.cpp:94</a></div></div>
|
|
681
681
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitiveStat_html_a8c4bfeab6bb30a16689d3c3c54a1057d"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitiveStat.html#a8c4bfeab6bb30a16689d3c3c54a1057d">SVF::VersionedFlowSensitiveStat::_MaxVersionPtsSize</a></div><div class="ttdeci">u32_t _MaxVersionPtsSize</div><div class="ttdoc">Max address-taken points-to set size. </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00208">WPAStat.h:208</a></div></div>
|
|
682
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a2e4e6a84cbfd553ad9cca8fdf9fd4a8d"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a2e4e6a84cbfd553ad9cca8fdf9fd4a8d">SVF::VersionedFlowSensitive::consume</a></div><div class="ttdeci">LocVersionMap consume</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
682
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a2e4e6a84cbfd553ad9cca8fdf9fd4a8d"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a2e4e6a84cbfd553ad9cca8fdf9fd4a8d">SVF::VersionedFlowSensitive::consume</a></div><div class="ttdeci">LocVersionMap consume</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00189">VersionedFlowSensitive.h:189</a></div></div>
|
|
683
683
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitiveStat_html_a59f2b0ca53d3b94ce596cd2a934e6976"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitiveStat.html#a59f2b0ca53d3b94ce596cd2a934e6976">SVF::VersionedFlowSensitiveStat::_NumNonEmptyVersions</a></div><div class="ttdeci">u32_t _NumNonEmptyVersions</div><div class="ttdoc">Number of versions with non-empty points-to sets (since versioning is over-approximate). </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00197">WPAStat.h:197</a></div></div>
|
|
684
684
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitiveStat_html_a585f952ecdbd9fb559d2a5754a77d7b4"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitiveStat.html#a585f952ecdbd9fb559d2a5754a77d7b4">SVF::VersionedFlowSensitiveStat::_NumEmptyVersions</a></div><div class="ttdeci">u32_t _NumEmptyVersions</div><div class="ttdoc">Number of versions with empty points-to sets (actually empty, not never-accessed). </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00199">WPAStat.h:199</a></div></div>
|
|
685
685
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitiveStat_html_aacce301a2c2613591dcd2afaccfcb380"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitiveStat.html#aacce301a2c2613591dcd2afaccfcb380">SVF::VersionedFlowSensitiveStat::_MaxVersions</a></div><div class="ttdeci">u32_t _MaxVersions</div><div class="ttdoc">Most versions for a single object. </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00193">WPAStat.h:193</a></div></div>
|
|
686
686
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitiveStat_html_ac938f088c33346ad01ace37160ea8e81"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitiveStat.html#ac938f088c33346ad01ace37160ea8e81">SVF::VersionedFlowSensitiveStat::_NumUsedVersions</a></div><div class="ttdeci">u32_t _NumUsedVersions</div><div class="ttdoc">Number of version PTSs actually used (sum of next two fields). </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00195">WPAStat.h:195</a></div></div>
|
|
687
687
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitiveStat_html_a19bde64f7e0ac99a2a6b49e78aa2e70f"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitiveStat.html#a19bde64f7e0ac99a2a6b49e78aa2e70f">SVF::VersionedFlowSensitiveStat::vfspta</a></div><div class="ttdeci">VersionedFlowSensitive * vfspta</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00168">WPAStat.h:168</a></div></div>
|
|
688
688
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitiveStat_html_a54c05a4b7ca2af66bf74a5f87cd2c416"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitiveStat.html#a54c05a4b7ca2af66bf74a5f87cd2c416">SVF::VersionedFlowSensitiveStat::_NumSingleVersion</a></div><div class="ttdeci">u32_t _NumSingleVersion</div><div class="ttdoc">Number of objects which have a single version. </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00201">WPAStat.h:201</a></div></div>
|
|
689
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a16224ee60494bb1fdf1c8a1026fbe7ab"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a16224ee60494bb1fdf1c8a1026fbe7ab">SVF::VersionedFlowSensitive::yield</a></div><div class="ttdeci">LocVersionMap yield</div><div class="ttdoc">Actual yield map. Yield analogue to consume. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
689
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a16224ee60494bb1fdf1c8a1026fbe7ab"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a16224ee60494bb1fdf1c8a1026fbe7ab">SVF::VersionedFlowSensitive::yield</a></div><div class="ttdeci">LocVersionMap yield</div><div class="ttdoc">Actual yield map. Yield analogue to consume. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00191">VersionedFlowSensitive.h:191</a></div></div>
|
|
690
690
|
<div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
|
|
691
691
|
</div><!-- fragment -->
|
|
692
692
|
</div>
|
|
@@ -96,7 +96,7 @@ Static Private Member Functions</h2></td></tr>
|
|
|
96
96
|
</table>
|
|
97
97
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
98
98
|
<div class="textblock">
|
|
99
|
-
<p class="definition">Definition at line <a class="el" href="VersionedFlowSensitive_8h_source.html#
|
|
99
|
+
<p class="definition">Definition at line <a class="el" href="VersionedFlowSensitive_8h_source.html#l00243">243</a> of file <a class="el" href="VersionedFlowSensitive_8h_source.html">VersionedFlowSensitive.h</a>.</p>
|
|
100
100
|
</div><h2 class="groupheader">Member Typedef Documentation</h2>
|
|
101
101
|
<a id="a3b4321bdd7924d05fd3b8506ec1c7c3c"></a>
|
|
102
102
|
<h2 class="memtitle"><span class="permalink"><a href="#a3b4321bdd7924d05fd3b8506ec1c7c3c">◆ </a></span>NodeData</h2>
|
|
@@ -202,7 +202,7 @@ class SVF::VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, Version
|
|
|
202
202
|
|
|
203
203
|
<p><a class="el" href="classSVF_1_1PTData.html">PTData</a> with normal keys and versioned keys. Replicates the <a class="el" href="classSVF_1_1PTData.html">PTData</a> interface for versioned keys too. Intended to be used for versioned flow-sensitive PTA–hence the name–but can be used anywhere where there are two types of keys at play. </p>
|
|
204
204
|
|
|
205
|
-
<p class="definition">Definition at line <a class="el" href="AbstractPointsToDS_8h_source.html#
|
|
205
|
+
<p class="definition">Definition at line <a class="el" href="AbstractPointsToDS_8h_source.html#l00269">269</a> of file <a class="el" href="AbstractPointsToDS_8h_source.html">AbstractPointsToDS.h</a>.</p>
|
|
206
206
|
</div><h2 class="groupheader">Member Typedef Documentation</h2>
|
|
207
207
|
<a id="a9833b47df24ed821a55d5ce9a3917f1f"></a>
|
|
208
208
|
<h2 class="memtitle"><span class="permalink"><a href="#a9833b47df24ed821a55d5ce9a3917f1f">◆ </a></span>BasePTData</h2>
|
|
@@ -218,7 +218,7 @@ template<typename Key , typename KeySet , typename Data , typename DataSet ,
|
|
|
218
218
|
</table>
|
|
219
219
|
</div><div class="memdoc">
|
|
220
220
|
|
|
221
|
-
<p class="definition">Definition at line <a class="el" href="AbstractPointsToDS_8h_source.html#
|
|
221
|
+
<p class="definition">Definition at line <a class="el" href="AbstractPointsToDS_8h_source.html#l00272">272</a> of file <a class="el" href="AbstractPointsToDS_8h_source.html">AbstractPointsToDS.h</a>.</p>
|
|
222
222
|
|
|
223
223
|
</div>
|
|
224
224
|
</div>
|
|
@@ -236,7 +236,7 @@ template<typename Key , typename KeySet , typename Data , typename DataSet ,
|
|
|
236
236
|
</table>
|
|
237
237
|
</div><div class="memdoc">
|
|
238
238
|
|
|
239
|
-
<p class="definition">Definition at line <a class="el" href="AbstractPointsToDS_8h_source.html#
|
|
239
|
+
<p class="definition">Definition at line <a class="el" href="AbstractPointsToDS_8h_source.html#l00273">273</a> of file <a class="el" href="AbstractPointsToDS_8h_source.html">AbstractPointsToDS.h</a>.</p>
|
|
240
240
|
|
|
241
241
|
</div>
|
|
242
242
|
</div>
|
|
@@ -277,8 +277,8 @@ template<typename Key , typename KeySet , typename Data , typename DataSet ,
|
|
|
277
277
|
</table>
|
|
278
278
|
</div><div class="memdoc">
|
|
279
279
|
|
|
280
|
-
<p class="definition">Definition at line <a class="el" href="AbstractPointsToDS_8h_source.html#
|
|
281
|
-
<div class="fragment"><div class="line"><a name="
|
|
280
|
+
<p class="definition">Definition at line <a class="el" href="AbstractPointsToDS_8h_source.html#l00275">275</a> of file <a class="el" href="AbstractPointsToDS_8h_source.html">AbstractPointsToDS.h</a>.</p>
|
|
281
|
+
<div class="fragment"><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> : <a class="code" href="classSVF_1_1VersionedPTData.html#a9833b47df24ed821a55d5ce9a3917f1f">BasePTData</a>(reversePT, ty) { }</div><div class="ttc" id="classSVF_1_1VersionedPTData_html_a9833b47df24ed821a55d5ce9a3917f1f"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html#a9833b47df24ed821a55d5ce9a3917f1f">SVF::VersionedPTData::BasePTData</a></div><div class="ttdeci">PTData< Key, KeySet, Data, DataSet > BasePTData</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00272">AbstractPointsToDS.h:272</a></div></div>
|
|
282
282
|
</div><!-- fragment -->
|
|
283
283
|
</div>
|
|
284
284
|
</div>
|
|
@@ -307,8 +307,8 @@ template<typename Key , typename KeySet , typename Data , typename DataSet ,
|
|
|
307
307
|
</table>
|
|
308
308
|
</div><div class="memdoc">
|
|
309
309
|
|
|
310
|
-
<p class="definition">Definition at line <a class="el" href="AbstractPointsToDS_8h_source.html#
|
|
311
|
-
<div class="fragment"><div class="line"><a name="
|
|
310
|
+
<p class="definition">Definition at line <a class="el" href="AbstractPointsToDS_8h_source.html#l00277">277</a> of file <a class="el" href="AbstractPointsToDS_8h_source.html">AbstractPointsToDS.h</a>.</p>
|
|
311
|
+
<div class="fragment"><div class="line"><a name="l00277"></a><span class="lineno"> 277</span> { }</div></div><!-- fragment -->
|
|
312
312
|
</div>
|
|
313
313
|
</div>
|
|
314
314
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
@@ -379,8 +379,8 @@ template<typename Key , typename KeySet , typename Data , typename DataSet ,
|
|
|
379
379
|
</div><div class="memdoc">
|
|
380
380
|
<p>Methods to support type inquiry through isa, cast, and dyn_cast: </p>
|
|
381
381
|
|
|
382
|
-
<p class="definition">Definition at line <a class="el" href="AbstractPointsToDS_8h_source.html#
|
|
383
|
-
<div class="fragment"><div class="line"><a name="
|
|
382
|
+
<p class="definition">Definition at line <a class="el" href="AbstractPointsToDS_8h_source.html#l00294">294</a> of file <a class="el" href="AbstractPointsToDS_8h_source.html">AbstractPointsToDS.h</a>.</p>
|
|
383
|
+
<div class="fragment"><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div></div><!-- fragment -->
|
|
384
384
|
</div>
|
|
385
385
|
</div>
|
|
386
386
|
<a id="a69ceac8acdf820486a45fc4444f78d04"></a>
|
|
@@ -409,8 +409,8 @@ template<typename Key , typename KeySet , typename Data , typename DataSet ,
|
|
|
409
409
|
</table>
|
|
410
410
|
</div><div class="memdoc">
|
|
411
411
|
|
|
412
|
-
<p class="definition">Definition at line <a class="el" href="AbstractPointsToDS_8h_source.html#
|
|
413
|
-
<div class="fragment"><div class="line"><a name="
|
|
412
|
+
<p class="definition">Definition at line <a class="el" href="AbstractPointsToDS_8h_source.html#l00299">299</a> of file <a class="el" href="AbstractPointsToDS_8h_source.html">AbstractPointsToDS.h</a>.</p>
|
|
413
|
+
<div class="fragment"><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">return</span> ptd->getPTDTY() == PTDataTy::Versioned</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  || ptd->getPTDTY() == PTDataTy::MutVersioned</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  || ptd->getPTDTY() == PTDataTy::PersVersioned;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div></div><!-- fragment -->
|
|
414
414
|
</div>
|
|
415
415
|
</div>
|
|
416
416
|
<a id="a4bfd083fae6ff689945ed34632e208e9"></a>
|
|
@@ -353,7 +353,7 @@ Private Attributes</h2></td></tr>
|
|
|
353
353
|
<p class="definition">Definition at line <a class="el" href="WPAPass_8cpp_source.html#l00211">211</a> of file <a class="el" href="WPAPass_8cpp_source.html">WPAPass.cpp</a>.</p>
|
|
354
354
|
<div class="fragment"><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  assert(<a class="code" href="classSVF_1_1Options.html#a1211da4c36f1fcc65235891f31d87038">Options::PASelected</a>.isSet(<a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85abf2f61ee9a5f6228db6587a8182ec9f2">PointerAnalysis::AndersenWaveDiff_WPA</a>) && <a class="code" href="classSVF_1_1Options.html#a30cbb0b3633c769c92f4625680ec17e3">Options::AnderSVFG</a> && <span class="stringliteral">"mod-ref query is only support with -ander and -svfg turned on"</span>);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* icfg = <a class="code" href="classSVF_1_1WPAPass.html#ac0f6d1221ee66ac17d0b201d73d7e28a">_svfg</a>-><a class="code" href="classSVF_1_1VFG.html#a7622e381fbc1601b3f9a8384df2751bd">getPAG</a>()-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>();</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = icfg-><a class="code" href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">getCallICFGNode</a>(callInst);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WPAPass.html#ac0f6d1221ee66ac17d0b201d73d7e28a">_svfg</a>-><a class="code" href="classSVF_1_1SVFG.html#a49a910bc4ea6e98d1584e74a018badc9">getMSSA</a>()-><a class="code" href="classSVF_1_1MemSSA.html#ab2dfdcf6fb50ba6cacad1254350a5b09">getMRGenerator</a>()-><a class="code" href="classSVF_1_1MRGenerator.html#ac14c99ee6064fc9cf30120a83c78e702">getModRefInfo</a>(cbn);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> }</div><div class="ttc" id="classSVF_1_1WPAPass_html_ac0f6d1221ee66ac17d0b201d73d7e28a"><div class="ttname"><a href="classSVF_1_1WPAPass.html#ac0f6d1221ee66ac17d0b201d73d7e28a">SVF::WPAPass::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">svfg generated through -ander pointer analysis </div><div class="ttdef"><b>Definition:</b> <a href="WPAPass_8h_source.html#l00114">WPAPass.h:114</a></div></div>
|
|
355
355
|
<div class="ttc" id="classSVF_1_1VFG_html_a7622e381fbc1601b3f9a8384df2751bd"><div class="ttname"><a href="classSVF_1_1VFG.html#a7622e381fbc1601b3f9a8384df2751bd">SVF::VFG::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdoc">Return SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00133">VFG.h:133</a></div></div>
|
|
356
|
-
<div class="ttc" id="classSVF_1_1MemSSA_html_ab2dfdcf6fb50ba6cacad1254350a5b09"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ab2dfdcf6fb50ba6cacad1254350a5b09">SVF::MemSSA::getMRGenerator</a></div><div class="ttdeci">MRGenerator * getMRGenerator()</div><div class="ttdoc">Return MRGenerator. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#
|
|
356
|
+
<div class="ttc" id="classSVF_1_1MemSSA_html_ab2dfdcf6fb50ba6cacad1254350a5b09"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ab2dfdcf6fb50ba6cacad1254350a5b09">SVF::MemSSA::getMRGenerator</a></div><div class="ttdeci">MRGenerator * getMRGenerator()</div><div class="ttdoc">Return MRGenerator. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00326">MemSSA.h:326</a></div></div>
|
|
357
357
|
<div class="ttc" id="classSVF_1_1ICFG_html_adc66b547720b9271e6805edea0b9d01f"><div class="ttname"><a href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00239">ICFG.cpp:239</a></div></div>
|
|
358
358
|
<div class="ttc" id="classSVF_1_1Options_html_a1211da4c36f1fcc65235891f31d87038"><div class="ttname"><a href="classSVF_1_1Options.html#a1211da4c36f1fcc65235891f31d87038">SVF::Options::PASelected</a></div><div class="ttdeci">static llvm::cl::bits< PointerAnalysis::PTATY > PASelected</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00245">Options.h:245</a></div></div>
|
|
359
359
|
<div class="ttc" id="classSVF_1_1Options_html_a30cbb0b3633c769c92f4625680ec17e3"><div class="ttname"><a href="classSVF_1_1Options.html#a30cbb0b3633c769c92f4625680ec17e3">SVF::Options::AnderSVFG</a></div><div class="ttdeci">static const llvm::cl::opt< bool > AnderSVFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00242">Options.h:242</a></div></div>
|
|
@@ -447,7 +447,7 @@ Private Attributes</h2></td></tr>
|
|
|
447
447
|
<p class="definition">Definition at line <a class="el" href="WPAPass_8cpp_source.html#l00222">222</a> of file <a class="el" href="WPAPass_8cpp_source.html">WPAPass.cpp</a>.</p>
|
|
448
448
|
<div class="fragment"><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  assert(<a class="code" href="classSVF_1_1Options.html#a1211da4c36f1fcc65235891f31d87038">Options::PASelected</a>.isSet(<a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85abf2f61ee9a5f6228db6587a8182ec9f2">PointerAnalysis::AndersenWaveDiff_WPA</a>) && <a class="code" href="classSVF_1_1Options.html#a30cbb0b3633c769c92f4625680ec17e3">Options::AnderSVFG</a> && <span class="stringliteral">"mod-ref query is only support with -ander and -svfg turned on"</span>);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* icfg = <a class="code" href="classSVF_1_1WPAPass.html#ac0f6d1221ee66ac17d0b201d73d7e28a">_svfg</a>-><a class="code" href="classSVF_1_1VFG.html#a7622e381fbc1601b3f9a8384df2751bd">getPAG</a>()-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>();</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = icfg-><a class="code" href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">getCallICFGNode</a>(callInst);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WPAPass.html#ac0f6d1221ee66ac17d0b201d73d7e28a">_svfg</a>-><a class="code" href="classSVF_1_1SVFG.html#a49a910bc4ea6e98d1584e74a018badc9">getMSSA</a>()-><a class="code" href="classSVF_1_1MemSSA.html#ab2dfdcf6fb50ba6cacad1254350a5b09">getMRGenerator</a>()-><a class="code" href="classSVF_1_1MRGenerator.html#ac14c99ee6064fc9cf30120a83c78e702">getModRefInfo</a>(cbn, V);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> }</div><div class="ttc" id="classSVF_1_1WPAPass_html_ac0f6d1221ee66ac17d0b201d73d7e28a"><div class="ttname"><a href="classSVF_1_1WPAPass.html#ac0f6d1221ee66ac17d0b201d73d7e28a">SVF::WPAPass::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">svfg generated through -ander pointer analysis </div><div class="ttdef"><b>Definition:</b> <a href="WPAPass_8h_source.html#l00114">WPAPass.h:114</a></div></div>
|
|
449
449
|
<div class="ttc" id="classSVF_1_1VFG_html_a7622e381fbc1601b3f9a8384df2751bd"><div class="ttname"><a href="classSVF_1_1VFG.html#a7622e381fbc1601b3f9a8384df2751bd">SVF::VFG::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdoc">Return SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00133">VFG.h:133</a></div></div>
|
|
450
|
-
<div class="ttc" id="classSVF_1_1MemSSA_html_ab2dfdcf6fb50ba6cacad1254350a5b09"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ab2dfdcf6fb50ba6cacad1254350a5b09">SVF::MemSSA::getMRGenerator</a></div><div class="ttdeci">MRGenerator * getMRGenerator()</div><div class="ttdoc">Return MRGenerator. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#
|
|
450
|
+
<div class="ttc" id="classSVF_1_1MemSSA_html_ab2dfdcf6fb50ba6cacad1254350a5b09"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ab2dfdcf6fb50ba6cacad1254350a5b09">SVF::MemSSA::getMRGenerator</a></div><div class="ttdeci">MRGenerator * getMRGenerator()</div><div class="ttdoc">Return MRGenerator. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00326">MemSSA.h:326</a></div></div>
|
|
451
451
|
<div class="ttc" id="classSVF_1_1ICFG_html_adc66b547720b9271e6805edea0b9d01f"><div class="ttname"><a href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00239">ICFG.cpp:239</a></div></div>
|
|
452
452
|
<div class="ttc" id="classSVF_1_1Options_html_a1211da4c36f1fcc65235891f31d87038"><div class="ttname"><a href="classSVF_1_1Options.html#a1211da4c36f1fcc65235891f31d87038">SVF::Options::PASelected</a></div><div class="ttdeci">static llvm::cl::bits< PointerAnalysis::PTATY > PASelected</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00245">Options.h:245</a></div></div>
|
|
453
453
|
<div class="ttc" id="classSVF_1_1Options_html_a30cbb0b3633c769c92f4625680ec17e3"><div class="ttname"><a href="classSVF_1_1Options.html#a30cbb0b3633c769c92f4625680ec17e3">SVF::Options::AnderSVFG</a></div><div class="ttdeci">static const llvm::cl::opt< bool > AnderSVFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00242">Options.h:242</a></div></div>
|
|
@@ -500,7 +500,7 @@ Private Attributes</h2></td></tr>
|
|
|
500
500
|
<p class="definition">Definition at line <a class="el" href="WPAPass_8cpp_source.html#l00233">233</a> of file <a class="el" href="WPAPass_8cpp_source.html">WPAPass.cpp</a>.</p>
|
|
501
501
|
<div class="fragment"><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  assert(<a class="code" href="classSVF_1_1Options.html#a1211da4c36f1fcc65235891f31d87038">Options::PASelected</a>.isSet(<a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85abf2f61ee9a5f6228db6587a8182ec9f2">PointerAnalysis::AndersenWaveDiff_WPA</a>) && <a class="code" href="classSVF_1_1Options.html#a30cbb0b3633c769c92f4625680ec17e3">Options::AnderSVFG</a> && <span class="stringliteral">"mod-ref query is only support with -ander and -svfg turned on"</span>);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* icfg = <a class="code" href="classSVF_1_1WPAPass.html#ac0f6d1221ee66ac17d0b201d73d7e28a">_svfg</a>-><a class="code" href="classSVF_1_1VFG.html#a7622e381fbc1601b3f9a8384df2751bd">getPAG</a>()-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>();</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn1 = icfg-><a class="code" href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">getCallICFGNode</a>(callInst1);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn2 = icfg-><a class="code" href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">getCallICFGNode</a>(callInst2);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WPAPass.html#ac0f6d1221ee66ac17d0b201d73d7e28a">_svfg</a>-><a class="code" href="classSVF_1_1SVFG.html#a49a910bc4ea6e98d1584e74a018badc9">getMSSA</a>()-><a class="code" href="classSVF_1_1MemSSA.html#ab2dfdcf6fb50ba6cacad1254350a5b09">getMRGenerator</a>()-><a class="code" href="classSVF_1_1MRGenerator.html#ac14c99ee6064fc9cf30120a83c78e702">getModRefInfo</a>(cbn1, cbn2);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> }</div><div class="ttc" id="classSVF_1_1WPAPass_html_ac0f6d1221ee66ac17d0b201d73d7e28a"><div class="ttname"><a href="classSVF_1_1WPAPass.html#ac0f6d1221ee66ac17d0b201d73d7e28a">SVF::WPAPass::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">svfg generated through -ander pointer analysis </div><div class="ttdef"><b>Definition:</b> <a href="WPAPass_8h_source.html#l00114">WPAPass.h:114</a></div></div>
|
|
502
502
|
<div class="ttc" id="classSVF_1_1VFG_html_a7622e381fbc1601b3f9a8384df2751bd"><div class="ttname"><a href="classSVF_1_1VFG.html#a7622e381fbc1601b3f9a8384df2751bd">SVF::VFG::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdoc">Return SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00133">VFG.h:133</a></div></div>
|
|
503
|
-
<div class="ttc" id="classSVF_1_1MemSSA_html_ab2dfdcf6fb50ba6cacad1254350a5b09"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ab2dfdcf6fb50ba6cacad1254350a5b09">SVF::MemSSA::getMRGenerator</a></div><div class="ttdeci">MRGenerator * getMRGenerator()</div><div class="ttdoc">Return MRGenerator. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#
|
|
503
|
+
<div class="ttc" id="classSVF_1_1MemSSA_html_ab2dfdcf6fb50ba6cacad1254350a5b09"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ab2dfdcf6fb50ba6cacad1254350a5b09">SVF::MemSSA::getMRGenerator</a></div><div class="ttdeci">MRGenerator * getMRGenerator()</div><div class="ttdoc">Return MRGenerator. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00326">MemSSA.h:326</a></div></div>
|
|
504
504
|
<div class="ttc" id="classSVF_1_1ICFG_html_adc66b547720b9271e6805edea0b9d01f"><div class="ttname"><a href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00239">ICFG.cpp:239</a></div></div>
|
|
505
505
|
<div class="ttc" id="classSVF_1_1Options_html_a1211da4c36f1fcc65235891f31d87038"><div class="ttname"><a href="classSVF_1_1Options.html#a1211da4c36f1fcc65235891f31d87038">SVF::Options::PASelected</a></div><div class="ttdeci">static llvm::cl::bits< PointerAnalysis::PTATY > PASelected</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00245">Options.h:245</a></div></div>
|
|
506
506
|
<div class="ttc" id="classSVF_1_1Options_html_a30cbb0b3633c769c92f4625680ec17e3"><div class="ttname"><a href="classSVF_1_1Options.html#a30cbb0b3633c769c92f4625680ec17e3">SVF::Options::AnderSVFG</a></div><div class="ttdeci">static const llvm::cl::opt< bool > AnderSVFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00242">Options.h:242</a></div></div>
|
|
@@ -664,11 +664,11 @@ Private Attributes</h2></td></tr>
|
|
|
664
664
|
|
|
665
665
|
<p class="definition">Definition at line <a class="el" href="WPAPass_8cpp_source.html#l00083">83</a> of file <a class="el" href="WPAPass_8cpp_source.html">WPAPass.cpp</a>.</p>
|
|
666
666
|
<div class="fragment"><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">build</a>(svfModule);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">switch</span> (kind)</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ab68615784a520e39856be5237930e6a6">PointerAnalysis::Andersen_WPA</a>:</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="classSVF_1_1WPAPass.html#a0b57d86a5305aefcd6c8ae4e328d3ab0">_pta</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1Andersen.html">Andersen</a>(pag);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a6c06b12c95a4aa57edc6bef57514a7e1">PointerAnalysis::AndersenSCD_WPA</a>:</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classSVF_1_1WPAPass.html#a0b57d86a5305aefcd6c8ae4e328d3ab0">_pta</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1AndersenSCD.html">AndersenSCD</a>(pag);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85accfa4ed42d3a3ac5e4abc403e738427b">PointerAnalysis::AndersenSFR_WPA</a>:</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="classSVF_1_1WPAPass.html#a0b57d86a5305aefcd6c8ae4e328d3ab0">_pta</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1AndersenSFR.html">AndersenSFR</a>(pag);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85abf2f61ee9a5f6228db6587a8182ec9f2">PointerAnalysis::AndersenWaveDiff_WPA</a>:</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="classSVF_1_1WPAPass.html#a0b57d86a5305aefcd6c8ae4e328d3ab0">_pta</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1AndersenWaveDiff.html">AndersenWaveDiff</a>(pag);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ad24ef5326c26db858c73432aa7e67a0a">PointerAnalysis::Steensgaard_WPA</a>:</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="classSVF_1_1WPAPass.html#a0b57d86a5305aefcd6c8ae4e328d3ab0">_pta</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1Steensgaard.html">Steensgaard</a>(pag);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ad6ccf1ce66083278349c5c3111172d78">PointerAnalysis::FSSPARSE_WPA</a>:</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="classSVF_1_1WPAPass.html#a0b57d86a5305aefcd6c8ae4e328d3ab0">_pta</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FlowSensitive.html">FlowSensitive</a>(pag);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a412254a7738029bf3ee96f5c15a6bec9">PointerAnalysis::VFS_WPA</a>:</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="classSVF_1_1WPAPass.html#a0b57d86a5305aefcd6c8ae4e328d3ab0">_pta</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a>(pag);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85acc2e7cbdd04a614a3b6189d2f01042f3">PointerAnalysis::TypeCPP_WPA</a>:</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="classSVF_1_1WPAPass.html#a0b57d86a5305aefcd6c8ae4e328d3ab0">_pta</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1TypeAnalysis.html">TypeAnalysis</a>(pag);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"This pointer analysis has not been implemented yet.\n"</span>);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="classSVF_1_1WPAPass.html#a72a66ae158793f5d1bcb37b655db4446">ptaVector</a>.push_back(<a class="code" href="classSVF_1_1WPAPass.html#a0b57d86a5305aefcd6c8ae4e328d3ab0">_pta</a>);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classSVF_1_1WPAPass.html#a0b57d86a5305aefcd6c8ae4e328d3ab0">_pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#ae1e217dc18be0ce70bee5ad930cb54c6">analyze</a>();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a30cbb0b3633c769c92f4625680ec17e3">Options::AnderSVFG</a>)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="classSVF_1_1SVFGBuilder.html">SVFGBuilder</a> memSSA(<span class="keyword">true</span>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  assert(SVFUtil::isa<AndersenBase>(<a class="code" href="classSVF_1_1WPAPass.html#a0b57d86a5305aefcd6c8ae4e328d3ab0">_pta</a>) && <span class="stringliteral">"supports only andersen/steensgaard for pre-computed SVFG"</span>);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="classSVF_1_1SVFG.html">SVFG</a> *svfg = memSSA.buildFullSVFG((<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>*)<a class="code" href="classSVF_1_1WPAPass.html#a0b57d86a5305aefcd6c8ae4e328d3ab0">_pta</a>);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a1211da4c36f1fcc65235891f31d87038">Options::PASelected</a>.isSet(<a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85abf2f61ee9a5f6228db6587a8182ec9f2">PointerAnalysis::AndersenWaveDiff_WPA</a>))</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="classSVF_1_1WPAPass.html#ac0f6d1221ee66ac17d0b201d73d7e28a">_svfg</a> = svfg;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a1b1d1ad6b3a6c48a9fa07161b582c7fe">Options::PrintAliases</a>)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="classSVF_1_1WPAPass.html#abb6e0c5cc5de312ee0285d1854550752">PrintAliasPairs</a>(_pta);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> }</div><div class="ttc" id="classSVF_1_1BVDataPTAImpl_html"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html">SVF::BVDataPTAImpl</a></div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00042">PointerAnalysisImpl.h:42</a></div></div>
|
|
667
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html">SVF::VersionedFlowSensitive</a></div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
667
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html">SVF::VersionedFlowSensitive</a></div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00032">VersionedFlowSensitive.h:32</a></div></div>
|
|
668
668
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html">SVF::FlowSensitive</a></div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00049">FlowSensitive.h:49</a></div></div>
|
|
669
669
|
<div class="ttc" id="classSVF_1_1SVFIRBuilder_html_aa6d56f9580f76fd09d25ce6cf7541e98"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">SVF::SVFIRBuilder::build</a></div><div class="ttdeci">virtual SVFIR * build(SVFModule *svfModule)</div><div class="ttdoc">Start building SVFIR here. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00050">SVFIRBuilder.cpp:50</a></div></div>
|
|
670
670
|
<div class="ttc" id="classSVF_1_1WPAPass_html_ac0f6d1221ee66ac17d0b201d73d7e28a"><div class="ttname"><a href="classSVF_1_1WPAPass.html#ac0f6d1221ee66ac17d0b201d73d7e28a">SVF::WPAPass::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">svfg generated through -ander pointer analysis </div><div class="ttdef"><b>Definition:</b> <a href="WPAPass_8h_source.html#l00114">WPAPass.h:114</a></div></div>
|
|
671
|
-
<div class="ttc" id="classSVF_1_1AndersenWaveDiff_html"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html">SVF::AndersenWaveDiff</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#
|
|
671
|
+
<div class="ttc" id="classSVF_1_1AndersenWaveDiff_html"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html">SVF::AndersenWaveDiff</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00378">Andersen.h:378</a></div></div>
|
|
672
672
|
<div class="ttc" id="classSVF_1_1WPAPass_html_a72a66ae158793f5d1bcb37b655db4446"><div class="ttname"><a href="classSVF_1_1WPAPass.html#a72a66ae158793f5d1bcb37b655db4446">SVF::WPAPass::ptaVector</a></div><div class="ttdeci">PTAVector ptaVector</div><div class="ttdoc">all pointer analysis to be executed. </div><div class="ttdef"><b>Definition:</b> <a href="WPAPass_8h_source.html#l00112">WPAPass.h:112</a></div></div>
|
|
673
673
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a412254a7738029bf3ee96f5c15a6bec9"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a412254a7738029bf3ee96f5c15a6bec9">SVF::PointerAnalysis::VFS_WPA</a></div><div class="ttdoc">Versioned sparse flow-sensitive WPA. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00075">PointerAnalysis.h:75</a></div></div>
|
|
674
674
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85ad24ef5326c26db858c73432aa7e67a0a"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ad24ef5326c26db858c73432aa7e67a0a">SVF::PointerAnalysis::Steensgaard_WPA</a></div><div class="ttdoc">Steensgaard PTA. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00070">PointerAnalysis.h:70</a></div></div>
|
|
@@ -689,7 +689,7 @@ Private Attributes</h2></td></tr>
|
|
|
689
689
|
<div class="ttc" id="classSVF_1_1TypeAnalysis_html"><div class="ttname"><a href="classSVF_1_1TypeAnalysis.html">SVF::TypeAnalysis</a></div><div class="ttdef"><b>Definition:</b> <a href="TypeAnalysis_8h_source.html#l00038">TypeAnalysis.h:38</a></div></div>
|
|
690
690
|
<div class="ttc" id="classSVF_1_1SVFGBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html">SVF::SVFGBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00059">SVFGBuilder.h:59</a></div></div>
|
|
691
691
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a6c06b12c95a4aa57edc6bef57514a7e1"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a6c06b12c95a4aa57edc6bef57514a7e1">SVF::PointerAnalysis::AndersenSCD_WPA</a></div><div class="ttdoc">Selective cycle detection andersen-style WPA. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00067">PointerAnalysis.h:67</a></div></div>
|
|
692
|
-
<div class="ttc" id="classSVF_1_1Andersen_html"><div class="ttname"><a href="classSVF_1_1Andersen.html">SVF::Andersen</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#
|
|
692
|
+
<div class="ttc" id="classSVF_1_1Andersen_html"><div class="ttname"><a href="classSVF_1_1Andersen.html">SVF::Andersen</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00150">Andersen.h:150</a></div></div>
|
|
693
693
|
<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>
|
|
694
694
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85acc2e7cbdd04a614a3b6189d2f01042f3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85acc2e7cbdd04a614a3b6189d2f01042f3">SVF::PointerAnalysis::TypeCPP_WPA</a></div><div class="ttdoc">Type-based analysis for C++. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00080">PointerAnalysis.h:80</a></div></div>
|
|
695
695
|
<div class="ttc" id="classSVF_1_1AndersenSFR_html"><div class="ttname"><a href="classSVF_1_1AndersenSFR.html">SVF::AndersenSFR</a></div><div class="ttdef"><b>Definition:</b> <a href="AndersenPWC_8h_source.html#l00102">AndersenPWC.h:102</a></div></div>
|
|
@@ -334,8 +334,8 @@ Functions</h2></td></tr>
|
|
|
334
334
|
|
|
335
335
|
<p class="definition">Definition at line <a class="el" href="dda_8cpp_source.html#l00044">44</a> of file <a class="el" href="dda_8cpp_source.html">dda.cpp</a>.</p>
|
|
336
336
|
<div class="fragment"><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</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="l00049"></a><span class="lineno"> 49</span>  std::vector<std::string> moduleNameVec;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">LLVMUtil::processArguments</a>(argc, argv, arg_num, arg_value, moduleNameVec);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="stringliteral">"Demand-Driven Points-to Analysis\n"</span>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">"ir_annotator"</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"> 56</span>  LLVMModuleSet::getLLVMModuleSet()->preProcessBCs(moduleNameVec);</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>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()->buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  svfModule-><a class="code" href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">buildSymbolTableInfo</a>();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classSVF_1_1DDAPass.html">DDAPass</a> *dda = <span class="keyword">new</span> <a class="code" href="classSVF_1_1DDAPass.html">DDAPass</a>();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  dda-><a class="code" href="classSVF_1_1DDAPass.html#af196994d6ec7f5cead72212407842103">runOnModule</a>(svfModule);</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">return</span> 0;</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> }</div><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>
|
|
337
|
-
<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#
|
|
338
|
-
<div class="ttc" id="classSVF_1_1DDAPass_html_af196994d6ec7f5cead72212407842103"><div class="ttname"><a href="classSVF_1_1DDAPass.html#af196994d6ec7f5cead72212407842103">SVF::DDAPass::runOnModule</a></div><div class="ttdeci">virtual void runOnModule(SVFModule *module)</div><div class="ttdoc">We start from here. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#
|
|
337
|
+
<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>
|
|
338
|
+
<div class="ttc" id="classSVF_1_1DDAPass_html_af196994d6ec7f5cead72212407842103"><div class="ttname"><a href="classSVF_1_1DDAPass.html#af196994d6ec7f5cead72212407842103">SVF::DDAPass::runOnModule</a></div><div class="ttdeci">virtual void runOnModule(SVFModule *module)</div><div class="ttdoc">We start from here. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00056">DDAPass.cpp:56</a></div></div>
|
|
339
339
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &arg_num, char **arg_value, std::vector< std::string > &moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00436">LLVMUtil.cpp:436</a></div></div>
|
|
340
340
|
<div class="ttc" id="classSVF_1_1SVFModule_html_aa03ab5272652290f30870c6e2d053d98"><div class="ttname"><a href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">SVF::SVFModule::buildSymbolTableInfo</a></div><div class="ttdeci">void buildSymbolTableInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8cpp_source.html#l00030">SVFModule.cpp:30</a></div></div>
|
|
341
341
|
</div><!-- fragment -->
|
|
@@ -74,8 +74,8 @@ $(function() {
|
|
|
74
74
|
<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>
|
|
75
75
|
<div class="ttc" id="dda_8cpp_html_a55c1167d4e6efe7828f050d978291725"><div class="ttname"><a href="dda_8cpp.html#a55c1167d4e6efe7828f050d978291725">DAA</a></div><div class="ttdeci">static cl::opt< bool > DAA("daa", cl::init(false), cl::desc("Demand-Driven Alias Analysis Pass"))</div></div>
|
|
76
76
|
<div class="ttc" id="dda_8cpp_html_a3abc2ce6737d192a5c3f967734fe8389"><div class="ttname"><a href="dda_8cpp.html#a3abc2ce6737d192a5c3f967734fe8389">RFINEPT</a></div><div class="ttdeci">static cl::opt< bool > RFINEPT("dref", cl::init(false), cl::desc("Demand-driven refinement points-to analysis"))</div></div>
|
|
77
|
-
<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#
|
|
78
|
-
<div class="ttc" id="classSVF_1_1DDAPass_html_af196994d6ec7f5cead72212407842103"><div class="ttname"><a href="classSVF_1_1DDAPass.html#af196994d6ec7f5cead72212407842103">SVF::DDAPass::runOnModule</a></div><div class="ttdeci">virtual void runOnModule(SVFModule *module)</div><div class="ttdoc">We start from here. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#
|
|
77
|
+
<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>
|
|
78
|
+
<div class="ttc" id="classSVF_1_1DDAPass_html_af196994d6ec7f5cead72212407842103"><div class="ttname"><a href="classSVF_1_1DDAPass.html#af196994d6ec7f5cead72212407842103">SVF::DDAPass::runOnModule</a></div><div class="ttdeci">virtual void runOnModule(SVFModule *module)</div><div class="ttdoc">We start from here. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00056">DDAPass.cpp:56</a></div></div>
|
|
79
79
|
<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#l00044">dda.cpp:44</a></div></div>
|
|
80
80
|
<div class="ttc" id="dda_8cpp_html_adad2a8a1b2f5bf9f333382725f174cb0"><div class="ttname"><a href="dda_8cpp.html#adad2a8a1b2f5bf9f333382725f174cb0">ENABLEFIELD</a></div><div class="ttdeci">static cl::opt< bool > ENABLEFIELD("fdaa", cl::init(false), cl::desc("enable field-sensitivity for demand-driven analysis"))</div></div>
|
|
81
81
|
<div class="ttc" id="DDAPass_8h_html"><div class="ttname"><a href="DDAPass_8h.html">DDAPass.h</a></div></div>
|
|
@@ -186,6 +186,12 @@ $(function() {
|
|
|
186
186
|
<li>addBBSuccessorPos()
|
|
187
187
|
: <a class="el" href="classSVF_1_1SVFModule.html#a556482926cf0253ca290dc4a4a52bffa">SVF::SVFModule</a>
|
|
188
188
|
</li>
|
|
189
|
+
<li>addBiCFLEdge()
|
|
190
|
+
: <a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html#ae7a9f2103c68829290c1bd5fd9cde321">SVF::AliasCFLGraphBuilder</a>
|
|
191
|
+
</li>
|
|
192
|
+
<li>addBiGepCFLEdge()
|
|
193
|
+
: <a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html#a715213d0b521b676832ec73b38d2014e">SVF::AliasCFLGraphBuilder</a>
|
|
194
|
+
</li>
|
|
189
195
|
<li>addBinaryOPEdge()
|
|
190
196
|
: <a class="el" href="classSVF_1_1SVFIRBuilder.html#a3f954c61381fe31088e791772c334105">SVF::SVFIRBuilder</a>
|
|
191
197
|
</li>
|
|
@@ -722,7 +728,7 @@ $(function() {
|
|
|
722
728
|
, <a class="el" href="classSVF_1_1PersistentDFPTData.html#a95df7d565ba8e990b61b1c932c8d4273">SVF::PersistentDFPTData< Key, KeySet, Data, DataSet ></a>
|
|
723
729
|
, <a class="el" href="classSVF_1_1PersistentDiffPTData.html#a9f748619f67f3ff9c4c4a429e6614989">SVF::PersistentDiffPTData< Key, KeySet, Data, DataSet ></a>
|
|
724
730
|
, <a class="el" href="classSVF_1_1PersistentPTData.html#a8d53322eadc657ed88a8b724647070b2">SVF::PersistentPTData< Key, KeySet, Data, DataSet ></a>
|
|
725
|
-
, <a class="el" href="classSVF_1_1PersistentVersionedPTData.html#
|
|
731
|
+
, <a class="el" href="classSVF_1_1PersistentVersionedPTData.html#a7f3730473af9218bea520ec0498fb4ac">SVF::PersistentVersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet ></a>
|
|
726
732
|
, <a class="el" href="classSVF_1_1PTData.html#ac1b9dc035fb0bdf468c7d14b9f9d437a">SVF::PTData< Key, KeySet, Data, DataSet ></a>
|
|
727
733
|
, <a class="el" href="classSVF_1_1VersionedPTData.html#ae00316730227769a39b22d3df1b6d38a">SVF::VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet ></a>
|
|
728
734
|
</li>
|
|
@@ -824,7 +830,7 @@ $(function() {
|
|
|
824
830
|
: <a class="el" href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">SVF::ConstraintGraph</a>
|
|
825
831
|
</li>
|
|
826
832
|
<li>AddStoreCHI()
|
|
827
|
-
: <a class="el" href="classSVF_1_1MemSSA.html#
|
|
833
|
+
: <a class="el" href="classSVF_1_1MemSSA.html#a4e11797df16b0b612191607180acc0c5">SVF::MemSSA</a>
|
|
828
834
|
</li>
|
|
829
835
|
<li>addStoreEdge()
|
|
830
836
|
: <a class="el" href="classSVF_1_1SVFIRBuilder.html#a30f043eeca79259d84b97e265110f018">SVF::SVFIRBuilder</a>
|
|
@@ -952,7 +958,7 @@ $(function() {
|
|
|
952
958
|
: <a class="el" href="classSVF_1_1VFG.html#a65c88a6c20380b715ac8b6c31e68afed">SVF::VFG</a>
|
|
953
959
|
</li>
|
|
954
960
|
<li>addValNode()
|
|
955
|
-
: <a class="el" href="classSVF_1_1SVFIR.html#
|
|
961
|
+
: <a class="el" href="classSVF_1_1SVFIR.html#a3face8a526a33d82ef7cde7602030bc9">SVF::SVFIR</a>
|
|
956
962
|
</li>
|
|
957
963
|
<li>addVarargNode()
|
|
958
964
|
: <a class="el" href="classSVF_1_1SVFIR.html#a6ade5bf3edc7b6c3faafc3e5ff3d0538">SVF::SVFIR</a>
|
|
@@ -989,7 +995,7 @@ $(function() {
|
|
|
989
995
|
: <a class="el" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html#a346d500f11666f4746237f42a8d67fc1">SVF::SparseBitVector< ElementSize >::SparseBitVectorIterator</a>
|
|
990
996
|
</li>
|
|
991
997
|
<li>alias()
|
|
992
|
-
: <a class="el" href="classSVF_1_1BVDataPTAImpl.html#
|
|
998
|
+
: <a class="el" href="classSVF_1_1BVDataPTAImpl.html#a949533e5c99698c7f9862aae5de23687">SVF::BVDataPTAImpl</a>
|
|
993
999
|
, <a class="el" href="classSVF_1_1CFLAlias.html#afb96040a903b9b889fcf23b26cb4565a">SVF::CFLAlias</a>
|
|
994
1000
|
, <a class="el" href="classSVF_1_1CondPTAImpl.html#ac18e1dc9c6fc8cc952f67a93c2491876">SVF::CondPTAImpl< Cond ></a>
|
|
995
1001
|
, <a class="el" href="classSVF_1_1DDAPass.html#a96de481dd2af7b39428aff38158c1d4e">SVF::DDAPass</a>
|
|
@@ -1268,7 +1274,7 @@ $(function() {
|
|
|
1268
1274
|
: <a class="el" href="classSVF_1_1Z3Expr.html#a5c3347a21592e43e36d421ea5cae6bc9">SVF::Z3Expr</a>
|
|
1269
1275
|
</li>
|
|
1270
1276
|
<li>AssignStmt()
|
|
1271
|
-
: <a class="el" href="classSVF_1_1AssignStmt.html#
|
|
1277
|
+
: <a class="el" href="classSVF_1_1AssignStmt.html#a41bf9092cbdfccb9724bd58e10aa51a6">SVF::AssignStmt</a>
|
|
1272
1278
|
</li>
|
|
1273
1279
|
<li>atEnd
|
|
1274
1280
|
: <a class="el" href="classSVF_1_1CondPointsToSet_1_1CondPtsSetIterator.html#ad22614f30570619802e23715d1d5eaf0">SVF::CondPointsToSet< Cond >::CondPtsSetIterator</a>
|