svf-tools 1.0.558 → 1.0.561
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 +5 -2
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -2
- 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/SVFStatements_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +1 -1
- 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-members.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +40 -5
- 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_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 +6 -6
- 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_i.html +11 -8
- package/SVF-doxygen/html/html/functions_i.html +11 -8
- package/SVF-doxygen/html/html/functions_l.html +5 -5
- package/SVF-doxygen/html/html/functions_p.html +6 -6
- package/SVF-doxygen/html/html/functions_r.html +3 -7
- package/SVF-doxygen/html/html/functions_s.html +16 -14
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/functions_w.html +11 -11
- 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 +5 -5
- package/SVF-doxygen/html/html/search/all_11.js +2 -2
- package/SVF-doxygen/html/html/search/all_12.js +8 -8
- package/SVF-doxygen/html/html/search/all_13.js +2 -2
- package/SVF-doxygen/html/html/search/all_14.js +1 -1
- package/SVF-doxygen/html/html/search/all_15.js +4 -4
- package/SVF-doxygen/html/html/search/all_16.js +2 -2
- package/SVF-doxygen/html/html/search/all_3.js +1 -0
- package/SVF-doxygen/html/html/search/all_6.js +2 -2
- package/SVF-doxygen/html/html/search/all_7.js +2 -2
- package/SVF-doxygen/html/html/search/all_9.js +2 -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/functions_0.js +2 -0
- package/SVF-doxygen/html/html/search/functions_2.js +1 -0
- package/SVF-doxygen/html/html/search/functions_8.js +1 -0
- package/SVF-doxygen/html/html/search/variables_13.js +1 -1
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- 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/Util/ExtAPI.h +3 -0
- package/include/Util/ExtAPI.json +1456 -44
- 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/Util/ExtAPI.cpp +42 -4
- 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
|
@@ -380,7 +380,7 @@ class SVF::DDAVFSolver< CVar, CPtSet, DPIm ></h3>
|
|
|
380
380
|
|
|
381
381
|
<p>Value-Flow Based Demand-Driven Points-to Analysis </p>
|
|
382
382
|
|
|
383
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
383
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00047">47</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
384
384
|
</div><h2 class="groupheader">Member Typedef Documentation</h2>
|
|
385
385
|
<a id="af6e05e87ba8d6b6ae65807803b1b0221"></a>
|
|
386
386
|
<h2 class="memtitle"><span class="permalink"><a href="#af6e05e87ba8d6b6ae65807803b1b0221">◆ </a></span>CallGraphSCC</h2>
|
|
@@ -396,7 +396,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
396
396
|
</table>
|
|
397
397
|
</div><div class="memdoc">
|
|
398
398
|
|
|
399
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
399
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00052">52</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
400
400
|
|
|
401
401
|
</div>
|
|
402
402
|
</div>
|
|
@@ -414,7 +414,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
414
414
|
</table>
|
|
415
415
|
</div><div class="memdoc">
|
|
416
416
|
|
|
417
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
417
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00053">53</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
418
418
|
|
|
419
419
|
</div>
|
|
420
420
|
</div>
|
|
@@ -432,7 +432,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
432
432
|
</table>
|
|
433
433
|
</div><div class="memdoc">
|
|
434
434
|
|
|
435
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
435
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00054">54</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
436
436
|
|
|
437
437
|
</div>
|
|
438
438
|
</div>
|
|
@@ -450,7 +450,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
450
450
|
</table>
|
|
451
451
|
</div><div class="memdoc">
|
|
452
452
|
|
|
453
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
453
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00060">60</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
454
454
|
|
|
455
455
|
</div>
|
|
456
456
|
</div>
|
|
@@ -468,7 +468,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
468
468
|
</table>
|
|
469
469
|
</div><div class="memdoc">
|
|
470
470
|
|
|
471
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
471
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00056">56</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
472
472
|
|
|
473
473
|
</div>
|
|
474
474
|
</div>
|
|
@@ -486,7 +486,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
486
486
|
</table>
|
|
487
487
|
</div><div class="memdoc">
|
|
488
488
|
|
|
489
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
489
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00057">57</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
490
490
|
|
|
491
491
|
</div>
|
|
492
492
|
</div>
|
|
@@ -504,7 +504,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
504
504
|
</table>
|
|
505
505
|
</div><div class="memdoc">
|
|
506
506
|
|
|
507
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
507
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00058">58</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
508
508
|
|
|
509
509
|
</div>
|
|
510
510
|
</div>
|
|
@@ -522,7 +522,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
522
522
|
</table>
|
|
523
523
|
</div><div class="memdoc">
|
|
524
524
|
|
|
525
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
525
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00055">55</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
526
526
|
|
|
527
527
|
</div>
|
|
528
528
|
</div>
|
|
@@ -540,7 +540,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
540
540
|
</table>
|
|
541
541
|
</div><div class="memdoc">
|
|
542
542
|
|
|
543
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
543
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00059">59</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
544
544
|
|
|
545
545
|
</div>
|
|
546
546
|
</div>
|
|
@@ -558,7 +558,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
558
558
|
</table>
|
|
559
559
|
</div><div class="memdoc">
|
|
560
560
|
|
|
561
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
561
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00062">62</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
562
562
|
|
|
563
563
|
</div>
|
|
564
564
|
</div>
|
|
@@ -576,7 +576,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
576
576
|
</table>
|
|
577
577
|
</div><div class="memdoc">
|
|
578
578
|
|
|
579
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
579
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00061">61</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
580
580
|
|
|
581
581
|
</div>
|
|
582
582
|
</div>
|
|
@@ -594,7 +594,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
594
594
|
</table>
|
|
595
595
|
</div><div class="memdoc">
|
|
596
596
|
|
|
597
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
597
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00051">51</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
598
598
|
|
|
599
599
|
</div>
|
|
600
600
|
</div>
|
|
@@ -626,15 +626,15 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
626
626
|
|
|
627
627
|
<p>Constructor. </p>
|
|
628
628
|
|
|
629
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
630
|
-
<div class="fragment"><div class="line"><a name="
|
|
631
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
632
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a74d83f06e8fc0ecedc1e1846030c99c6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">SVF::DDAVFSolver::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
633
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
634
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_abf24080617c6a74abed9f0bb0bc9c0c5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">SVF::DDAVFSolver::_callGraph</a></div><div class="ttdeci">PTACallGraph * _callGraph</div><div class="ttdoc">CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
635
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
636
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_afdecfbacc64cb8d694268aa73ec8a7b6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">SVF::DDAVFSolver::outOfBudgetQuery</a></div><div class="ttdeci">bool outOfBudgetQuery</div><div class="ttdoc">Whether the current query is out of step limits. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
637
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
629
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00065">65</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
630
|
+
<div class="fragment"><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  : <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a>(<span class="keyword">false</span>),<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>(<span class="keyword">nullptr</span>),<a class="code" href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">_svfg</a>(<span class="keyword">nullptr</span>),<a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a>(<span class="keyword">nullptr</span>),<a class="code" href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">_callGraph</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">_callGraphSCC</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a4c307d486756daa1e79595b1e9edc40a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">SVF::DDAVFSolver::_callGraphSCC</a></div><div class="ttdeci">CallGraphSCC * _callGraphSCC</div><div class="ttdoc">SCC for CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00780">DDAVFSolver.h:780</a></div></div>
|
|
631
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
|
|
632
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a74d83f06e8fc0ecedc1e1846030c99c6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">SVF::DDAVFSolver::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00776">DDAVFSolver.h:776</a></div></div>
|
|
633
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00781">DDAVFSolver.h:781</a></div></div>
|
|
634
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_abf24080617c6a74abed9f0bb0bc9c0c5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">SVF::DDAVFSolver::_callGraph</a></div><div class="ttdeci">PTACallGraph * _callGraph</div><div class="ttdoc">CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00779">DDAVFSolver.h:779</a></div></div>
|
|
635
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
|
|
636
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_afdecfbacc64cb8d694268aa73ec8a7b6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">SVF::DDAVFSolver::outOfBudgetQuery</a></div><div class="ttdeci">bool outOfBudgetQuery</div><div class="ttdoc">Whether the current query is out of step limits. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00774">DDAVFSolver.h:774</a></div></div>
|
|
637
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00777">DDAVFSolver.h:777</a></div></div>
|
|
638
638
|
</div><!-- fragment -->
|
|
639
639
|
</div>
|
|
640
640
|
</div>
|
|
@@ -665,12 +665,12 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
665
665
|
|
|
666
666
|
<p>Destructor. </p>
|
|
667
667
|
|
|
668
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
669
|
-
<div class="fragment"><div class="line"><a name="
|
|
670
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a74d83f06e8fc0ecedc1e1846030c99c6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">SVF::DDAVFSolver::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
671
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
672
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_abf24080617c6a74abed9f0bb0bc9c0c5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">SVF::DDAVFSolver::_callGraph</a></div><div class="ttdeci">PTACallGraph * _callGraph</div><div class="ttdoc">CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
673
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
668
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00069">69</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
669
|
+
<div class="fragment"><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="comment">// AndersenWaveDiff::releaseAndersenWaveDiff();</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">_svfg</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="comment">// DDASVFGBuilder::releaseDDASVFG();</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">_svfg</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">_callGraph</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">_callGraphSCC</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a4c307d486756daa1e79595b1e9edc40a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">SVF::DDAVFSolver::_callGraphSCC</a></div><div class="ttdeci">CallGraphSCC * _callGraphSCC</div><div class="ttdoc">SCC for CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00780">DDAVFSolver.h:780</a></div></div>
|
|
670
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a74d83f06e8fc0ecedc1e1846030c99c6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">SVF::DDAVFSolver::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00776">DDAVFSolver.h:776</a></div></div>
|
|
671
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00781">DDAVFSolver.h:781</a></div></div>
|
|
672
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_abf24080617c6a74abed9f0bb0bc9c0c5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">SVF::DDAVFSolver::_callGraph</a></div><div class="ttdeci">PTACallGraph * _callGraph</div><div class="ttdoc">CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00779">DDAVFSolver.h:779</a></div></div>
|
|
673
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00777">DDAVFSolver.h:777</a></div></div>
|
|
674
674
|
</div><!-- fragment -->
|
|
675
675
|
</div>
|
|
676
676
|
</div>
|
|
@@ -713,8 +713,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
713
713
|
|
|
714
714
|
<p>Add pts. </p>
|
|
715
715
|
|
|
716
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
717
|
-
<div class="fragment"><div class="line"><a name="
|
|
716
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00113">113</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
717
|
+
<div class="fragment"><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  pts.set(var);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div></div><!-- fragment -->
|
|
718
718
|
</div>
|
|
719
719
|
</div>
|
|
720
720
|
<a id="af7be3fa6c73dde97d6f9fd0395c9aee0"></a>
|
|
@@ -743,8 +743,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
743
743
|
</table>
|
|
744
744
|
</div><div class="memdoc">
|
|
745
745
|
|
|
746
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
747
|
-
<div class="fragment"><div class="line"><a name="
|
|
746
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00669">669</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
747
|
+
<div class="fragment"><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  {</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>[dpm.getLoc()->getId()].insert(dpm);</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00785">DDAVFSolver.h:785</a></div></div>
|
|
748
748
|
</div><!-- fragment -->
|
|
749
749
|
</div>
|
|
750
750
|
</div>
|
|
@@ -784,8 +784,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
784
784
|
</table>
|
|
785
785
|
</div><div class="memdoc">
|
|
786
786
|
|
|
787
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
788
|
-
<div class="fragment"><div class="line"><a name="
|
|
787
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00702">702</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
788
|
+
<div class="fragment"><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  {</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <span class="keyword">typename</span> DPMToCVarMap::iterator it = <a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.find(dpm);</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.end())</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  it->second = loadVar;</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.insert(std::make_pair(dpm,loadVar));</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6d62420837fe0c7814fc4da68a91eda4"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">SVF::DDAVFSolver::loadToPTCVarMap</a></div><div class="ttdeci">DPMToCVarMap loadToPTCVarMap</div><div class="ttdoc">map a load dpm to its cvar pointed by its pointer operand </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00787">DDAVFSolver.h:787</a></div></div>
|
|
789
789
|
</div><!-- fragment -->
|
|
790
790
|
</div>
|
|
791
791
|
</div>
|
|
@@ -827,8 +827,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
827
827
|
|
|
828
828
|
<p>Note that simply use "dpmToloadDpmMap[dpm]=loadDpm", requires DPIm have a default constructor. </p>
|
|
829
829
|
|
|
830
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
831
|
-
<div class="fragment"><div class="line"><a name="
|
|
830
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00688">688</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
831
|
+
<div class="fragment"><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  {</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="keyword">typename</span> DPMToDPMMap::iterator it = <a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.find(dpm);</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.end())</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  it->second = loadDpm;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.insert(std::make_pair(dpm,loadDpm));</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a9d8959dfee05685cd74d0d7a78069692"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">SVF::DDAVFSolver::dpmToloadDpmMap</a></div><div class="ttdeci">DPMToDPMMap dpmToloadDpmMap</div><div class="ttdoc">dpms at loads for may/must-alias analysis with stores </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00786">DDAVFSolver.h:786</a></div></div>
|
|
832
832
|
</div><!-- fragment -->
|
|
833
833
|
</div>
|
|
834
834
|
</div>
|
|
@@ -876,9 +876,9 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
876
876
|
|
|
877
877
|
<p>LoadDpm for must-alias analysis. </p>
|
|
878
878
|
|
|
879
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
880
|
-
<div class="fragment"><div class="line"><a name="
|
|
881
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7579491400f1781356cb7d1913537547"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7579491400f1781356cb7d1913537547">SVF::DDAVFSolver::addLoadCVar</a></div><div class="ttdeci">void addLoadCVar(const DPIm &dpm, const CVar &loadVar)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
879
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00682">682</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
880
|
+
<div class="fragment"><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  {</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a7579491400f1781356cb7d1913537547">addLoadCVar</a>(dpm,loadVar);</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a4725013a7617645e1418ed670d4837b5">addLoadDpm</a>(dpm,loadDpm);</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a4725013a7617645e1418ed670d4837b5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a4725013a7617645e1418ed670d4837b5">SVF::DDAVFSolver::addLoadDpm</a></div><div class="ttdeci">void addLoadDpm(const DPIm &dpm, const DPIm &loadDpm)</div><div class="ttdoc">Note that simply use "dpmToloadDpmMap[dpm]=loadDpm", requires DPIm have a default constructor...</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00688">DDAVFSolver.h:688</a></div></div>
|
|
881
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7579491400f1781356cb7d1913537547"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7579491400f1781356cb7d1913537547">SVF::DDAVFSolver::addLoadCVar</a></div><div class="ttdeci">void addLoadCVar(const DPIm &dpm, const CVar &loadVar)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00702">DDAVFSolver.h:702</a></div></div>
|
|
882
882
|
</div><!-- fragment -->
|
|
883
883
|
</div>
|
|
884
884
|
</div>
|
|
@@ -908,8 +908,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
908
908
|
</table>
|
|
909
909
|
</div><div class="memdoc">
|
|
910
910
|
|
|
911
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
912
|
-
<div class="fragment"><div class="line"><a name="
|
|
911
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00737">737</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
912
|
+
<div class="fragment"><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  {</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">outOfBudgetDpms</a>.insert(dpm);</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aad57a954473f3099188cf8c8fba87880"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">SVF::DDAVFSolver::outOfBudgetDpms</a></div><div class="ttdeci">DPTItemSet outOfBudgetDpms</div><div class="ttdoc">out of budget dpm set </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00788">DDAVFSolver.h:788</a></div></div>
|
|
913
913
|
</div><!-- fragment -->
|
|
914
914
|
</div>
|
|
915
915
|
</div>
|
|
@@ -951,11 +951,11 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
951
951
|
|
|
952
952
|
<p>stat strong updates num </p>
|
|
953
953
|
|
|
954
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
955
|
-
<div class="fragment"><div class="line"><a name="
|
|
956
|
-
<div class="ttc" id="classSVF_1_1DDAStat_html_ad53ad7a958c05b45624d2859a6a9e647"><div class="ttname"><a href="classSVF_1_1DDAStat.html#ad53ad7a958c05b45624d2859a6a9e647">SVF::DDAStat::_StrongUpdateStores</a></div><div class="ttdeci">NodeBS _StrongUpdateStores</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#
|
|
957
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_af66895278f0ecbc882f9e4f43ef9c8a8"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af66895278f0ecbc882f9e4f43ef9c8a8">SVF::DDAVFSolver::storeToDPMs</a></div><div class="ttdeci">StoreToPMSetMap storeToDPMs</div><div class="ttdoc">map store to set of DPM which have been stong updated there </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
958
|
-
<div class="ttc" id="classSVF_1_1DDAStat_html_a5c007645d73bfc5cfefef672f3c1dcf1"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">SVF::DDAStat::_NumOfStrongUpdates</a></div><div class="ttdeci">u32_t _NumOfStrongUpdates</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#
|
|
954
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00754">754</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
955
|
+
<div class="fragment"><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  {</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#af66895278f0ecbc882f9e4f43ef9c8a8">storeToDPMs</a>[node].insert(dpm).second)</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  {</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">_NumOfStrongUpdates</a>++;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#ad53ad7a958c05b45624d2859a6a9e647">_StrongUpdateStores</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(node->getId());</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  }</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
|
|
956
|
+
<div class="ttc" id="classSVF_1_1DDAStat_html_ad53ad7a958c05b45624d2859a6a9e647"><div class="ttname"><a href="classSVF_1_1DDAStat.html#ad53ad7a958c05b45624d2859a6a9e647">SVF::DDAStat::_StrongUpdateStores</a></div><div class="ttdeci">NodeBS _StrongUpdateStores</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00066">DDAStat.h:66</a></div></div>
|
|
957
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_af66895278f0ecbc882f9e4f43ef9c8a8"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af66895278f0ecbc882f9e4f43ef9c8a8">SVF::DDAVFSolver::storeToDPMs</a></div><div class="ttdeci">StoreToPMSetMap storeToDPMs</div><div class="ttdoc">map store to set of DPM which have been stong updated there </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00789">DDAVFSolver.h:789</a></div></div>
|
|
958
|
+
<div class="ttc" id="classSVF_1_1DDAStat_html_a5c007645d73bfc5cfefef672f3c1dcf1"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">SVF::DDAStat::_NumOfStrongUpdates</a></div><div class="ttdeci">u32_t _NumOfStrongUpdates</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00055">DDAStat.h:55</a></div></div>
|
|
959
959
|
<div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00745">SparseBitVector.h:745</a></div></div>
|
|
960
960
|
</div><!-- fragment -->
|
|
961
961
|
</div>
|
|
@@ -998,14 +998,14 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
998
998
|
|
|
999
999
|
<p>Backward traverse along direct value flows. </p>
|
|
1000
1000
|
|
|
1001
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1002
|
-
<div class="fragment"><div class="line"><a name="
|
|
1001
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00369">369</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1002
|
+
<div class="fragment"><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* node = oldDpm.getLoc();</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVFGEdgeSet</a> edgeSet(node->getInEdges());</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> it = edgeSet.begin(), eit = edgeSet.end(); it != eit; ++it)</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> DirectSVFGEdge* dirEdge = SVFUtil::dyn_cast<DirectSVFGEdge>(*it))</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  {</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\t\t==backtrace directVF svfgNode "</span> <<</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  dirEdge->getDstID() << <span class="stringliteral">" --> "</span> << dirEdge->getSrcID() << <span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* srcNode = dirEdge->getSrcNode();</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">backwardPropDpm</a>(pts,<a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()->getLHSTopLevPtr(srcNode)->getId(),oldDpm,dirEdge);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  }</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6489319b33a807f7caba2d34017a3e1b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVF::DDAVFSolver::SVFGEdgeSet</a></div><div class="ttdeci">SVFGEdge::SVFGEdgeSetTy SVFGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00061">DDAVFSolver.h:61</a></div></div>
|
|
1003
1003
|
<div class="ttc" id="namespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
|
|
1004
1004
|
<div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
|
|
1005
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &pts, NodeID ptr, const DPIm &oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1005
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &pts, NodeID ptr, const DPIm &oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00421">DDAVFSolver.h:421</a></div></div>
|
|
1006
1006
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
1007
1007
|
<div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
|
|
1008
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1008
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00118">DDAVFSolver.h:118</a></div></div>
|
|
1009
1009
|
<div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
|
|
1010
1010
|
</div><!-- fragment -->
|
|
1011
1011
|
</div>
|
|
@@ -1048,16 +1048,16 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1048
1048
|
|
|
1049
1049
|
<p>Backward traverse along indirect value flows. </p>
|
|
1050
1050
|
|
|
1051
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1052
|
-
<div class="fragment"><div class="line"><a name="
|
|
1053
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6489319b33a807f7caba2d34017a3e1b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVF::DDAVFSolver::SVFGEdgeSet</a></div><div class="ttdeci">SVFGEdge::SVFGEdgeSetTy SVFGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1051
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00347">347</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1052
|
+
<div class="fragment"><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* node = oldDpm.getLoc();</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> obj = oldDpm.getCurNodeID();</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">isConstantObj</a>(obj) || <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a980e54129ece0757d7f0373f37428507">isNonPointerObj</a>(obj))</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVFGEdgeSet</a> edgeSet(node->getInEdges());</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> it = edgeSet.begin(), eit = edgeSet.end(); it != eit; ++it)</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> IndirectSVFGEdge* indirEdge = SVFUtil::dyn_cast<IndirectSVFGEdge>(*it))</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  {</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa7b6a13e52671de8524b130738aeb564">NodeBS</a>& guard = indirEdge->getPointsTo();</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keywordflow">if</span>(guard.test(obj))</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  {</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\t\t==backtrace indirectVF svfgNode "</span> <<</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  indirEdge->getDstID() << <span class="stringliteral">" --> "</span> << indirEdge->getSrcID() << <span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">backwardPropDpm</a>(pts,oldDpm.getCurNodeID(),oldDpm,indirEdge);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  }</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  }</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  }</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  }</div><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>
|
|
1053
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6489319b33a807f7caba2d34017a3e1b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVF::DDAVFSolver::SVFGEdgeSet</a></div><div class="ttdeci">SVFGEdge::SVFGEdgeSetTy SVFGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00061">DDAVFSolver.h:61</a></div></div>
|
|
1054
1054
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a5d15e4b09784f438568ebe61f8aa5156"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">SVF::SVFIR::isConstantObj</a></div><div class="ttdeci">bool isConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00392">SVFIR.h:392</a></div></div>
|
|
1055
1055
|
<div class="ttc" id="namespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
|
|
1056
1056
|
<div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
|
|
1057
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &pts, NodeID ptr, const DPIm &oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1057
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &pts, NodeID ptr, const DPIm &oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00421">DDAVFSolver.h:421</a></div></div>
|
|
1058
1058
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
1059
1059
|
<div class="ttc" id="namespaceSVF_html_aa7b6a13e52671de8524b130738aeb564"><div class="ttname"><a href="namespaceSVF.html#aa7b6a13e52671de8524b130738aeb564">SVF::NodeBS</a></div><div class="ttdeci">SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00096">SVFBasicTypes.h:96</a></div></div>
|
|
1060
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1060
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
|
|
1061
1061
|
<div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
|
|
1062
1062
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a980e54129ece0757d7f0373f37428507"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a980e54129ece0757d7f0373f37428507">SVF::SVFIR::isNonPointerObj</a></div><div class="ttdeci">bool isNonPointerObj(NodeID id) const</div><div class="ttdoc">Whether an object can point to any other object or any of its fields is a pointer type...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00673">SVFIR.cpp:673</a></div></div>
|
|
1063
1063
|
<div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
|
|
@@ -1100,17 +1100,17 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1100
1100
|
</table>
|
|
1101
1101
|
</div><div class="memdoc">
|
|
1102
1102
|
|
|
1103
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1104
|
-
<div class="fragment"><div class="line"><a name="
|
|
1105
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a55803a2d30137b5ad15c5afeec7c6b28"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">SVF::DDAVFSolver::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">GetDefinition SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1106
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a630aad14a285c954a50c632f9cb13fa9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">SVF::DDAVFSolver::getLoadDpm</a></div><div class="ttdeci">const DPIm & getLoadDpm(const DPIm &dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1103
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00408">408</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1104
|
+
<div class="fragment"><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  {</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a54c5725186e66ead6faf53c10a288714">StoreSVFGNode</a>* store = SVFUtil::cast<StoreSVFGNode>(oldDpm.getLoc());</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* storeSrc = <a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(store->getPAGSrcNode());</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"++backtrace to storeSrc from svfgNode "</span> << <a class="code" href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">getLoadDpm</a>(oldDpm).getLoc()->getId() << <span class="stringliteral">" to "</span><<</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  store->getId() << <span class="stringliteral">" to "</span> << storeSrc->getId() <<<span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-><a class="code" href="classSVF_1_1VFG.html#ae1348fd6d196ee8a6bd8d98022464d50">getIntraVFGEdge</a>(storeSrc,store,<a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVFGEdge::IntraDirectVF</a>);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  assert(edge && <span class="stringliteral">"Edge not found!!"</span>);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">backwardPropDpm</a>(pts,store->getPAGSrcNodeID(),oldDpm,edge);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  }</div><div class="ttc" id="classSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVF::VFGEdge::IntraDirectVF</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00053">VFGEdge.h:53</a></div></div>
|
|
1105
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a55803a2d30137b5ad15c5afeec7c6b28"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">SVF::DDAVFSolver::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">GetDefinition SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00342">DDAVFSolver.h:342</a></div></div>
|
|
1106
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a630aad14a285c954a50c632f9cb13fa9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">SVF::DDAVFSolver::getLoadDpm</a></div><div class="ttdeci">const DPIm & getLoadDpm(const DPIm &dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00696">DDAVFSolver.h:696</a></div></div>
|
|
1107
1107
|
<div class="ttc" id="namespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
|
|
1108
1108
|
<div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
|
|
1109
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &pts, NodeID ptr, const DPIm &oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1109
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &pts, NodeID ptr, const DPIm &oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00421">DDAVFSolver.h:421</a></div></div>
|
|
1110
1110
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
1111
1111
|
<div class="ttc" id="namespaceSVF_html_a54c5725186e66ead6faf53c10a288714"><div class="ttname"><a href="namespaceSVF.html#a54c5725186e66ead6faf53c10a288714">SVF::StoreSVFGNode</a></div><div class="ttdeci">StoreVFGNode StoreSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00053">SVFG.h:53</a></div></div>
|
|
1112
1112
|
<div class="ttc" id="classSVF_1_1VFG_html_ae1348fd6d196ee8a6bd8d98022464d50"><div class="ttname"><a href="classSVF_1_1VFG.html#ae1348fd6d196ee8a6bd8d98022464d50">SVF::VFG::getIntraVFGEdge</a></div><div class="ttdeci">VFGEdge * getIntraVFGEdge(const VFGNode *src, const VFGNode *dst, VFGEdge::VFGEdgeK kind)</div><div class="ttdoc">Get a SVFG edge according to src and dst. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l00916">VFG.cpp:916</a></div></div>
|
|
1113
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1113
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00118">DDAVFSolver.h:118</a></div></div>
|
|
1114
1114
|
<div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
|
|
1115
1115
|
<div class="ttc" id="namespaceSVF_html_aa4745cf70b26e17d59752356f0b19dd9"><div class="ttname"><a href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVF::SVFGEdge</a></div><div class="ttdeci">VFGEdge SVFGEdge</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00040">SVFG.h:40</a></div></div>
|
|
1116
1116
|
</div><!-- fragment -->
|
|
@@ -1169,21 +1169,21 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1169
1169
|
<p>record the source of load dpm</p>
|
|
1170
1170
|
<p>handle out of budget case </p>
|
|
1171
1171
|
|
|
1172
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1173
|
-
<div class="fragment"><div class="line"><a name="
|
|
1174
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a99764ee5bc19378795fe464e9036e78b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">SVF::DDAVFSolver::unionDDAPts</a></div><div class="ttdeci">virtual bool unionDDAPts(CPtSet &pts, const CPtSet &targetPts)</div><div class="ttdoc">Union pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1175
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a1cd1023bca18db16bc54e622c881e494"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">SVF::DDAVFSolver::addLoadDpmAndCVar</a></div><div class="ttdeci">void addLoadDpmAndCVar(const DPIm &dpm, const DPIm &loadDpm, const CVar &loadVar)</div><div class="ttdoc">LoadDpm for must-alias analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1176
|
-
<div class="ttc" id="classSVF_1_1DDAStat_html_a9625c4623acc4f6ccaca1ec8f04f5a54"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a9625c4623acc4f6ccaca1ec8f04f5a54">SVF::DDAStat::_TotalTimeOfBKCondition</a></div><div class="ttdeci">double _TotalTimeOfBKCondition</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#
|
|
1177
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ad42efad8e857290459689833c224e467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ad42efad8e857290459689833c224e467">SVF::DDAVFSolver::getLoadCVar</a></div><div class="ttdeci">const CVar & getLoadCVar(const DPIm &dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1178
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a630aad14a285c954a50c632f9cb13fa9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">SVF::DDAVFSolver::getLoadDpm</a></div><div class="ttdeci">const DPIm & getLoadDpm(const DPIm &dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1179
|
-
<div class="ttc" id="classSVF_1_1DDAStat_html_a5ad94d2109b293d306f67741effc73aa"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">SVF::DDAStat::_NumOfDPM</a></div><div class="ttdeci">u32_t _NumOfDPM</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#
|
|
1180
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a52737dd41c63404ef91691154aa250ce"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">SVF::DDAVFSolver::findPT</a></div><div class="ttdeci">virtual const CPtSet & findPT(const DPIm &dpm)</div><div class="ttdoc">Compute points-to. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1172
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00421">421</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1173
|
+
<div class="fragment"><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  DPIm dpm(oldDpm);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  dpm.setLocVar(edge->getSrcNode(),ptr);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <a class="code" href="SVFBasicTypes_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>());</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a601282325e55badc15f3ba9141816af5">handleBKCondition</a>(dpm,edge)==<span class="keyword">false</span>)</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <a class="code" href="SVFBasicTypes_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#a9625c4623acc4f6ccaca1ec8f04f5a54">_TotalTimeOfBKCondition</a> += <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>() - start);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\t!!! infeasible path svfgNode: "</span> << edge->getDstID() << <span class="stringliteral">" --| "</span> << edge->getSrcID() << <span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#a5ebc592d6bd7ef40aff848fb63e9e166">_NumOfInfeasiblePath</a>++);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span> </div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="keywordflow">if</span>(SVFUtil::isa<IndirectSVFGEdge>(edge))</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">addLoadDpmAndCVar</a>(dpm,<a class="code" href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">getLoadDpm</a>(oldDpm),<a class="code" href="classSVF_1_1DDAVFSolver.html#ad42efad8e857290459689833c224e467">getLoadCVar</a>(oldDpm));</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> </div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">_NumOfDPM</a>++);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">unionDDAPts</a>(pts,<a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(dpm));</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
|
|
1174
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a99764ee5bc19378795fe464e9036e78b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">SVF::DDAVFSolver::unionDDAPts</a></div><div class="ttdeci">virtual bool unionDDAPts(CPtSet &pts, const CPtSet &targetPts)</div><div class="ttdoc">Union pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00102">DDAVFSolver.h:102</a></div></div>
|
|
1175
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a1cd1023bca18db16bc54e622c881e494"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">SVF::DDAVFSolver::addLoadDpmAndCVar</a></div><div class="ttdeci">void addLoadDpmAndCVar(const DPIm &dpm, const DPIm &loadDpm, const CVar &loadVar)</div><div class="ttdoc">LoadDpm for must-alias analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00682">DDAVFSolver.h:682</a></div></div>
|
|
1176
|
+
<div class="ttc" id="classSVF_1_1DDAStat_html_a9625c4623acc4f6ccaca1ec8f04f5a54"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a9625c4623acc4f6ccaca1ec8f04f5a54">SVF::DDAStat::_TotalTimeOfBKCondition</a></div><div class="ttdeci">double _TotalTimeOfBKCondition</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00064">DDAStat.h:64</a></div></div>
|
|
1177
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ad42efad8e857290459689833c224e467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ad42efad8e857290459689833c224e467">SVF::DDAVFSolver::getLoadCVar</a></div><div class="ttdeci">const CVar & getLoadCVar(const DPIm &dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00710">DDAVFSolver.h:710</a></div></div>
|
|
1178
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a630aad14a285c954a50c632f9cb13fa9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">SVF::DDAVFSolver::getLoadDpm</a></div><div class="ttdeci">const DPIm & getLoadDpm(const DPIm &dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00696">DDAVFSolver.h:696</a></div></div>
|
|
1179
|
+
<div class="ttc" id="classSVF_1_1DDAStat_html_a5ad94d2109b293d306f67741effc73aa"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">SVF::DDAStat::_NumOfDPM</a></div><div class="ttdeci">u32_t _NumOfDPM</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00054">DDAStat.h:54</a></div></div>
|
|
1180
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a52737dd41c63404ef91691154aa250ce"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">SVF::DDAVFSolver::findPT</a></div><div class="ttdeci">virtual const CPtSet & findPT(const DPIm &dpm)</div><div class="ttdoc">Compute points-to. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00138">DDAVFSolver.h:138</a></div></div>
|
|
1181
1181
|
<div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
|
|
1182
1182
|
<div class="ttc" id="SVFBasicTypes_8h_html_a6c9e2209a2c38607a9e3b7fab242886a"><div class="ttname"><a href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a></div><div class="ttdeci">#define DOSTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00156">SVFBasicTypes.h:156</a></div></div>
|
|
1183
1183
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
1184
1184
|
<div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00041">SVFStat.cpp:41</a></div></div>
|
|
1185
|
-
<div class="ttc" id="classSVF_1_1DDAStat_html_a5ebc592d6bd7ef40aff848fb63e9e166"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5ebc592d6bd7ef40aff848fb63e9e166">SVF::DDAStat::_NumOfInfeasiblePath</a></div><div class="ttdeci">u32_t _NumOfInfeasiblePath</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#
|
|
1186
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a601282325e55badc15f3ba9141816af5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a601282325e55badc15f3ba9141816af5">SVF::DDAVFSolver::handleBKCondition</a></div><div class="ttdeci">virtual bool handleBKCondition(DPIm &, const SVFGEdge *)</div><div class="ttdoc">Handle condition for context or path analysis (backward analysis) </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1185
|
+
<div class="ttc" id="classSVF_1_1DDAStat_html_a5ebc592d6bd7ef40aff848fb63e9e166"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5ebc592d6bd7ef40aff848fb63e9e166">SVF::DDAStat::_NumOfInfeasiblePath</a></div><div class="ttdeci">u32_t _NumOfInfeasiblePath</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00057">DDAStat.h:57</a></div></div>
|
|
1186
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a601282325e55badc15f3ba9141816af5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a601282325e55badc15f3ba9141816af5">SVF::DDAVFSolver::handleBKCondition</a></div><div class="ttdeci">virtual bool handleBKCondition(DPIm &, const SVFGEdge *)</div><div class="ttdoc">Handle condition for context or path analysis (backward analysis) </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00527">DDAVFSolver.h:527</a></div></div>
|
|
1187
1187
|
<div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
|
|
1188
1188
|
<div class="ttc" id="SVFBasicTypes_8h_html_ab6f41e9db3675dc689c5492418885041"><div class="ttname"><a href="SVFBasicTypes_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a></div><div class="ttdeci">#define DOTIMESTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00157">SVFBasicTypes.h:157</a></div></div>
|
|
1189
1189
|
</div><!-- fragment -->
|
|
@@ -1217,14 +1217,14 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1217
1217
|
|
|
1218
1218
|
<p>Build <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
|
|
1219
1219
|
|
|
1220
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1221
|
-
<div class="fragment"><div class="line"><a name="
|
|
1220
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00312">312</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1221
|
+
<div class="fragment"><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a> = <a class="code" href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">AndersenWaveDiff::createAndersenWaveDiff</a>(pag);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">_svfg</a> = <a class="code" href="classSVF_1_1DDAVFSolver.html#a0d563fe8b016b27a58f5b054fec9c38a">svfgBuilder</a>.<a class="code" href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">buildPTROnlySVFG</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a>);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a> = <a class="code" href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">_svfg</a>-><a class="code" href="classSVF_1_1VFG.html#a7622e381fbc1601b3f9a8384df2751bd">getPAG</a>();</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a0d563fe8b016b27a58f5b054fec9c38a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a0d563fe8b016b27a58f5b054fec9c38a">SVF::DDAVFSolver::svfgBuilder</a></div><div class="ttdeci">SVFGBuilder svfgBuilder</div><div class="ttdoc">SVFG Builder. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00791">DDAVFSolver.h:791</a></div></div>
|
|
1222
1222
|
<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>
|
|
1223
1223
|
<div class="ttc" id="classSVF_1_1SVFGBuilder_html_ab7353191edd06568e2598177d253c1d9"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">SVF::SVFGBuilder::buildPTROnlySVFG</a></div><div class="ttdeci">SVFG * buildPTROnlySVFG(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00044">SVFGBuilder.cpp:44</a></div></div>
|
|
1224
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a74d83f06e8fc0ecedc1e1846030c99c6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">SVF::DDAVFSolver::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1225
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1226
|
-
<div class="ttc" id="classSVF_1_1AndersenWaveDiff_html_a48ff6fc4badc79ad3204ae9bd95cc540"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">SVF::AndersenWaveDiff::createAndersenWaveDiff</a></div><div class="ttdeci">static AndersenWaveDiff * createAndersenWaveDiff(SVFIR *_pag)</div><div class="ttdoc">Create an singleton instance directly instead of invoking llvm pass manager. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#
|
|
1227
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1224
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a74d83f06e8fc0ecedc1e1846030c99c6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">SVF::DDAVFSolver::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00776">DDAVFSolver.h:776</a></div></div>
|
|
1225
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
|
|
1226
|
+
<div class="ttc" id="classSVF_1_1AndersenWaveDiff_html_a48ff6fc4badc79ad3204ae9bd95cc540"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">SVF::AndersenWaveDiff::createAndersenWaveDiff</a></div><div class="ttdeci">static AndersenWaveDiff * createAndersenWaveDiff(SVFIR *_pag)</div><div class="ttdoc">Create an singleton instance directly instead of invoking llvm pass manager. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00389">Andersen.h:389</a></div></div>
|
|
1227
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00777">DDAVFSolver.h:777</a></div></div>
|
|
1228
1228
|
</div><!-- fragment -->
|
|
1229
1229
|
</div>
|
|
1230
1230
|
</div>
|
|
@@ -1254,8 +1254,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1254
1254
|
</table>
|
|
1255
1255
|
</div><div class="memdoc">
|
|
1256
1256
|
|
|
1257
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1258
|
-
<div class="fragment"><div class="line"><a name="
|
|
1257
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00545">545</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1258
|
+
<div class="fragment"><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  {</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  assert(<a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.find(dpm)!=<a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.end() && <span class="stringliteral">"dpm not found!"</span>);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.erase(dpm);</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a63d04c3af4529d0e0f82acd76ed57f6c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">SVF::DDAVFSolver::backwardVisited</a></div><div class="ttdeci">DPTItemSet backwardVisited</div><div class="ttdoc">visited map during backward traversing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00782">DDAVFSolver.h:782</a></div></div>
|
|
1259
1259
|
</div><!-- fragment -->
|
|
1260
1260
|
</div>
|
|
1261
1261
|
</div>
|
|
@@ -1285,8 +1285,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1285
1285
|
</table>
|
|
1286
1286
|
</div><div class="memdoc">
|
|
1287
1287
|
|
|
1288
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1289
|
-
<div class="fragment"><div class="line"><a name="
|
|
1288
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00128">128</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1289
|
+
<div class="fragment"><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"{"</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">for</span>(<span class="keyword">typename</span> CPtSet::iterator it = cpts.begin(), eit = cpts.end(); it!=eit; ++it)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << (*it) << <span class="stringliteral">" "</span>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"}\n"</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  }</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
1290
1290
|
</div><!-- fragment -->
|
|
1291
1291
|
</div>
|
|
1292
1292
|
</div>
|
|
@@ -1318,8 +1318,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1318
1318
|
|
|
1319
1319
|
<p>Return TRUE if this edge is inside a <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> SCC, i.e., src node and dst node are in the same SCC on the <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
|
|
1320
1320
|
|
|
1321
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1322
|
-
<div class="fragment"><div class="line"><a name="
|
|
1321
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00623">623</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1322
|
+
<div class="fragment"><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  {</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a1583ed2eb1d4b88dc2a5b4c0b6842496">getSVFGSCCRepNode</a>(edge->getSrcID()) == <a class="code" href="classSVF_1_1DDAVFSolver.html#a1583ed2eb1d4b88dc2a5b4c0b6842496">getSVFGSCCRepNode</a>(edge->getDstID()));</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a1583ed2eb1d4b88dc2a5b4c0b6842496"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a1583ed2eb1d4b88dc2a5b4c0b6842496">SVF::DDAVFSolver::getSVFGSCCRepNode</a></div><div class="ttdeci">NodeID getSVFGSCCRepNode(NodeID id)</div><div class="ttdoc">Get SCC rep node of a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00613">DDAVFSolver.h:613</a></div></div>
|
|
1323
1323
|
</div><!-- fragment -->
|
|
1324
1324
|
</div>
|
|
1325
1325
|
</div>
|
|
@@ -1352,17 +1352,17 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1352
1352
|
<p>Compute points-to. </p>
|
|
1353
1353
|
<p>Add successors of current stmt if its pts has been changed. </p>
|
|
1354
1354
|
|
|
1355
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1356
|
-
<div class="fragment"><div class="line"><a name="
|
|
1355
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00138">138</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1356
|
+
<div class="fragment"><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a9a9c3a8b5e4ffc89418073110e446f20">isbkVisited</a>(dpm))</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keyword">const</span> CPtSet& cpts = <a class="code" href="classSVF_1_1DDAVFSolver.html#ae31e9281e4f1e0585fdf328b7339e1bf">getCachedPointsTo</a>(dpm);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\t already backward visited dpm: "</span>);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\t return points-to: "</span>);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="classSVF_1_1DDAVFSolver.html#aa4dc73ea65f736282a413a9d286141e5">dumpCPtSet</a>(cpts));</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">return</span> cpts;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\t backward visit dpm: "</span>);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a7112ce6145be0855f8b035bb0d8a331c">markbkVisited</a>(dpm);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#af7be3fa6c73dde97d6f9fd0395c9aee0">addDpmToLoc</a>(dpm);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fb52286c5324ea3d58e22c630b307e3">testOutOfBudget</a>(dpm) == <span class="keyword">false</span>)</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  {</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>  CPtSet pts;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a99f631cf1bc438e3f08f7f935e98e38d">handleSingleStatement</a>(dpm, pts);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a239a55960dfbbe73df63063070a18b56">updateCachedPointsTo</a>(dpm, pts);</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">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#ae31e9281e4f1e0585fdf328b7339e1bf">getCachedPointsTo</a>(dpm);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_af7be3fa6c73dde97d6f9fd0395c9aee0"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af7be3fa6c73dde97d6f9fd0395c9aee0">SVF::DDAVFSolver::addDpmToLoc</a></div><div class="ttdeci">void addDpmToLoc(const DPIm &dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00669">DDAVFSolver.h:669</a></div></div>
|
|
1357
1357
|
<div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
|
|
1358
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa4dc73ea65f736282a413a9d286141e5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa4dc73ea65f736282a413a9d286141e5">SVF::DDAVFSolver::dumpCPtSet</a></div><div class="ttdeci">void dumpCPtSet(const CPtSet &cpts) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1359
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a99f631cf1bc438e3f08f7f935e98e38d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a99f631cf1bc438e3f08f7f935e98e38d">SVF::DDAVFSolver::handleSingleStatement</a></div><div class="ttdeci">virtual void handleSingleStatement(const DPIm &dpm, CPtSet &pts)</div><div class="ttdoc">Handle single statement. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1360
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fb52286c5324ea3d58e22c630b307e3"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fb52286c5324ea3d58e22c630b307e3">SVF::DDAVFSolver::testOutOfBudget</a></div><div class="ttdeci">bool testOutOfBudget(const DPIm &dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1361
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a239a55960dfbbe73df63063070a18b56"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a239a55960dfbbe73df63063070a18b56">SVF::DDAVFSolver::updateCachedPointsTo</a></div><div class="ttdeci">virtual void updateCachedPointsTo(const DPIm &dpm, const CPtSet &pts)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1358
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa4dc73ea65f736282a413a9d286141e5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa4dc73ea65f736282a413a9d286141e5">SVF::DDAVFSolver::dumpCPtSet</a></div><div class="ttdeci">void dumpCPtSet(const CPtSet &cpts) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00128">DDAVFSolver.h:128</a></div></div>
|
|
1359
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a99f631cf1bc438e3f08f7f935e98e38d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a99f631cf1bc438e3f08f7f935e98e38d">SVF::DDAVFSolver::handleSingleStatement</a></div><div class="ttdeci">virtual void handleSingleStatement(const DPIm &dpm, CPtSet &pts)</div><div class="ttdoc">Handle single statement. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00170">DDAVFSolver.h:170</a></div></div>
|
|
1360
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fb52286c5324ea3d58e22c630b307e3"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fb52286c5324ea3d58e22c630b307e3">SVF::DDAVFSolver::testOutOfBudget</a></div><div class="ttdeci">bool testOutOfBudget(const DPIm &dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00726">DDAVFSolver.h:726</a></div></div>
|
|
1361
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a239a55960dfbbe73df63063070a18b56"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a239a55960dfbbe73df63063070a18b56">SVF::DDAVFSolver::updateCachedPointsTo</a></div><div class="ttdeci">virtual void updateCachedPointsTo(const DPIm &dpm, const CPtSet &pts)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00561">DDAVFSolver.h:561</a></div></div>
|
|
1362
1362
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
1363
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae31e9281e4f1e0585fdf328b7339e1bf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae31e9281e4f1e0585fdf328b7339e1bf">SVF::DDAVFSolver::getCachedPointsTo</a></div><div class="ttdeci">virtual const CPtSet & getCachedPointsTo(const DPIm &dpm)</div><div class="ttdoc">Points-to Caching for top-level pointers and address-taken objects. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1364
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7112ce6145be0855f8b035bb0d8a331c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7112ce6145be0855f8b035bb0d8a331c">SVF::DDAVFSolver::markbkVisited</a></div><div class="ttdeci">void markbkVisited(const DPIm &dpm)</div><div class="ttdoc">Visited flags to avoid cycles. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1365
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a9a9c3a8b5e4ffc89418073110e446f20"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a9a9c3a8b5e4ffc89418073110e446f20">SVF::DDAVFSolver::isbkVisited</a></div><div class="ttdeci">bool isbkVisited(const DPIm &dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1363
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae31e9281e4f1e0585fdf328b7339e1bf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae31e9281e4f1e0585fdf328b7339e1bf">SVF::DDAVFSolver::getCachedPointsTo</a></div><div class="ttdeci">virtual const CPtSet & getCachedPointsTo(const DPIm &dpm)</div><div class="ttdoc">Points-to Caching for top-level pointers and address-taken objects. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00554">DDAVFSolver.h:554</a></div></div>
|
|
1364
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7112ce6145be0855f8b035bb0d8a331c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7112ce6145be0855f8b035bb0d8a331c">SVF::DDAVFSolver::markbkVisited</a></div><div class="ttdeci">void markbkVisited(const DPIm &dpm)</div><div class="ttdoc">Visited flags to avoid cycles. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00537">DDAVFSolver.h:537</a></div></div>
|
|
1365
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a9a9c3a8b5e4ffc89418073110e446f20"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a9a9c3a8b5e4ffc89418073110e446f20">SVF::DDAVFSolver::isbkVisited</a></div><div class="ttdeci">bool isbkVisited(const DPIm &dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00541">DDAVFSolver.h:541</a></div></div>
|
|
1366
1366
|
<div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
|
|
1367
1367
|
</div><!-- fragment -->
|
|
1368
1368
|
</div>
|
|
@@ -1394,8 +1394,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1394
1394
|
|
|
1395
1395
|
<p>Return <a class="el" href="classSVF_1_1Andersen.html">Andersen</a>'s analysis. </p>
|
|
1396
1396
|
|
|
1397
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1398
|
-
<div class="fragment"><div class="line"><a name="
|
|
1397
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00718">718</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1398
|
+
<div class="fragment"><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  {</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a>;</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00777">DDAVFSolver.h:777</a></div></div>
|
|
1399
1399
|
</div><!-- fragment -->
|
|
1400
1400
|
</div>
|
|
1401
1401
|
</div>
|
|
@@ -1425,8 +1425,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1425
1425
|
</table>
|
|
1426
1426
|
</div><div class="memdoc">
|
|
1427
1427
|
|
|
1428
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1429
|
-
<div class="fragment"><div class="line"><a name="
|
|
1428
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00574">574</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1429
|
+
<div class="fragment"><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  {</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a2565bf8dcacb22350dc1dc98ec7595f2">dpmToADCPtSetMap</a>[dpm];</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2565bf8dcacb22350dc1dc98ec7595f2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2565bf8dcacb22350dc1dc98ec7595f2">SVF::DDAVFSolver::dpmToADCPtSetMap</a></div><div class="ttdeci">DPImToCPtSetMap dpmToADCPtSetMap</div><div class="ttdoc">points-to caching map for address-taken vars </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00784">DDAVFSolver.h:784</a></div></div>
|
|
1430
1430
|
</div><!-- fragment -->
|
|
1431
1431
|
</div>
|
|
1432
1432
|
</div>
|
|
@@ -1458,10 +1458,10 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1458
1458
|
|
|
1459
1459
|
<p>Points-to Caching for top-level pointers and address-taken objects. </p>
|
|
1460
1460
|
|
|
1461
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1462
|
-
<div class="fragment"><div class="line"><a name="
|
|
1463
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2a2b3783074c9f509fc265b97b979704"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2a2b3783074c9f509fc265b97b979704">SVF::DDAVFSolver::getCachedADPointsTo</a></div><div class="ttdeci">virtual const CPtSet & getCachedADPointsTo(const DPIm &dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1464
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aac432dfa7ccfc3434d9e0e2eb65afe7f"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aac432dfa7ccfc3434d9e0e2eb65afe7f">SVF::DDAVFSolver::getCachedTLPointsTo</a></div><div class="ttdeci">virtual const CPtSet & getCachedTLPointsTo(const DPIm &dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1461
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00554">554</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1462
|
+
<div class="fragment"><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  {</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a7b35588de00e322afd742041bf735571">isTopLevelPtrStmt</a>(dpm.getLoc()))</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aac432dfa7ccfc3434d9e0e2eb65afe7f">getCachedTLPointsTo</a>(dpm);</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a2a2b3783074c9f509fc265b97b979704">getCachedADPointsTo</a>(dpm);</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7b35588de00e322afd742041bf735571"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7b35588de00e322afd742041bf735571">SVF::DDAVFSolver::isTopLevelPtrStmt</a></div><div class="ttdeci">bool isTopLevelPtrStmt(const SVFGNode *stmt)</div><div class="ttdoc">Whether this is a top-level pointer statement. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00581">DDAVFSolver.h:581</a></div></div>
|
|
1463
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2a2b3783074c9f509fc265b97b979704"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2a2b3783074c9f509fc265b97b979704">SVF::DDAVFSolver::getCachedADPointsTo</a></div><div class="ttdeci">virtual const CPtSet & getCachedADPointsTo(const DPIm &dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00574">DDAVFSolver.h:574</a></div></div>
|
|
1464
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aac432dfa7ccfc3434d9e0e2eb65afe7f"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aac432dfa7ccfc3434d9e0e2eb65afe7f">SVF::DDAVFSolver::getCachedTLPointsTo</a></div><div class="ttdeci">virtual const CPtSet & getCachedTLPointsTo(const DPIm &dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00570">DDAVFSolver.h:570</a></div></div>
|
|
1465
1465
|
</div><!-- fragment -->
|
|
1466
1466
|
</div>
|
|
1467
1467
|
</div>
|
|
@@ -1493,8 +1493,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1493
1493
|
|
|
1494
1494
|
<p>Reimplemented in <a class="el" href="classSVF_1_1FlowDDA.html#a950d653b249cfc2d20932adb3498b99b">SVF::FlowDDA</a>.</p>
|
|
1495
1495
|
|
|
1496
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1497
|
-
<div class="fragment"><div class="line"><a name="
|
|
1496
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00570">570</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1497
|
+
<div class="fragment"><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  {</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a2d6df8149b45d719e22fc505df94171a">dpmToTLCPtSetMap</a>[dpm];</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2d6df8149b45d719e22fc505df94171a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2d6df8149b45d719e22fc505df94171a">SVF::DDAVFSolver::dpmToTLCPtSetMap</a></div><div class="ttdeci">DPImToCPtSetMap dpmToTLCPtSetMap</div><div class="ttdoc">points-to caching map for top-level vars </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00783">DDAVFSolver.h:783</a></div></div>
|
|
1498
1498
|
</div><!-- fragment -->
|
|
1499
1499
|
</div>
|
|
1500
1500
|
</div>
|
|
@@ -1525,8 +1525,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1525
1525
|
|
|
1526
1526
|
<p>Return candidate pointers for DDA. </p>
|
|
1527
1527
|
|
|
1528
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1529
|
-
<div class="fragment"><div class="line"><a name="
|
|
1528
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00091">91</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1529
|
+
<div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#ae0e78fafb7eec0fbc1a02d24547335e9">candidateQueries</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae0e78fafb7eec0fbc1a02d24547335e9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae0e78fafb7eec0fbc1a02d24547335e9">SVF::DDAVFSolver::candidateQueries</a></div><div class="ttdeci">NodeBS candidateQueries</div><div class="ttdoc">candidate pointers; </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00778">DDAVFSolver.h:778</a></div></div>
|
|
1530
1530
|
</div><!-- fragment -->
|
|
1531
1531
|
</div>
|
|
1532
1532
|
</div>
|
|
@@ -1590,9 +1590,9 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1590
1590
|
|
|
1591
1591
|
<p>GetDefinition <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
|
|
1592
1592
|
|
|
1593
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1594
|
-
<div class="fragment"><div class="line"><a name="
|
|
1595
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1593
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00342">342</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1594
|
+
<div class="fragment"><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  {</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-><a class="code" href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">getDefSVFGNode</a>(pagNode);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  }</div><div class="ttc" id="classSVF_1_1SVFG_html_a8e7a945f4266e8dc7dcfff2ad6494bfb"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">SVF::SVFG::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">Given a pagNode, return its definition site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00171">SVFG.h:171</a></div></div>
|
|
1595
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00118">DDAVFSolver.h:118</a></div></div>
|
|
1596
1596
|
</div><!-- fragment -->
|
|
1597
1597
|
</div>
|
|
1598
1598
|
</div>
|
|
@@ -1634,8 +1634,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1634
1634
|
|
|
1635
1635
|
<p>Given CVar and location (SVFGNode) return a new <a class="el" href="classSVF_1_1DPItem.html">DPItem</a>. </p>
|
|
1636
1636
|
|
|
1637
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1638
|
-
<div class="fragment"><div class="line"><a name="
|
|
1637
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00096">96</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1638
|
+
<div class="fragment"><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  DPIm dpm(var,loc);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">return</span> dpm;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div></div><!-- fragment -->
|
|
1639
1639
|
</div>
|
|
1640
1640
|
</div>
|
|
1641
1641
|
<a id="ac4cb0b666d68d135c5e385bfc880fd67"></a>
|
|
@@ -1682,12 +1682,12 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1682
1682
|
|
|
1683
1683
|
<p>Return dpm with old context and path conditions. </p>
|
|
1684
1684
|
|
|
1685
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1686
|
-
<div class="fragment"><div class="line"><a name="
|
|
1687
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a1cd1023bca18db16bc54e622c881e494"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">SVF::DDAVFSolver::addLoadDpmAndCVar</a></div><div class="ttdeci">void addLoadDpmAndCVar(const DPIm &dpm, const DPIm &loadDpm, const CVar &loadVar)</div><div class="ttdoc">LoadDpm for must-alias analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1685
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00589">589</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1686
|
+
<div class="fragment"><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  {</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  DPIm dpm(oldDpm);</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  dpm.setLocVar(loc,<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(var));</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span> </div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <span class="keywordflow">if</span>(SVFUtil::isa<StoreSVFGNode>(loc))</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">addLoadDpmAndCVar</a>(dpm,<a class="code" href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">getLoadDpm</a>(oldDpm),var);</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span> </div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="keywordflow">if</span>(SVFUtil::isa<LoadSVFGNode>(loc))</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">addLoadDpmAndCVar</a>(dpm,oldDpm,var);</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span> </div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">_NumOfDPM</a>++);</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordflow">return</span> dpm;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
|
|
1687
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a1cd1023bca18db16bc54e622c881e494"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">SVF::DDAVFSolver::addLoadDpmAndCVar</a></div><div class="ttdeci">void addLoadDpmAndCVar(const DPIm &dpm, const DPIm &loadDpm, const CVar &loadVar)</div><div class="ttdoc">LoadDpm for must-alias analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00682">DDAVFSolver.h:682</a></div></div>
|
|
1688
1688
|
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fa002d4ba4194ffde62ecbdd361a24d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">SVF::DDAVFSolver::getPtrNodeID</a></div><div class="ttdeci">virtual NodeID getPtrNodeID(const CVar &var) const =0</div><div class="ttdoc">Methods to be implemented in child class. </div></div>
|
|
1689
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a630aad14a285c954a50c632f9cb13fa9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">SVF::DDAVFSolver::getLoadDpm</a></div><div class="ttdeci">const DPIm & getLoadDpm(const DPIm &dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1690
|
-
<div class="ttc" id="classSVF_1_1DDAStat_html_a5ad94d2109b293d306f67741effc73aa"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">SVF::DDAStat::_NumOfDPM</a></div><div class="ttdeci">u32_t _NumOfDPM</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#
|
|
1689
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a630aad14a285c954a50c632f9cb13fa9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">SVF::DDAVFSolver::getLoadDpm</a></div><div class="ttdeci">const DPIm & getLoadDpm(const DPIm &dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00696">DDAVFSolver.h:696</a></div></div>
|
|
1690
|
+
<div class="ttc" id="classSVF_1_1DDAStat_html_a5ad94d2109b293d306f67741effc73aa"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">SVF::DDAStat::_NumOfDPM</a></div><div class="ttdeci">u32_t _NumOfDPM</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00054">DDAStat.h:54</a></div></div>
|
|
1691
1691
|
<div class="ttc" id="SVFBasicTypes_8h_html_a6c9e2209a2c38607a9e3b7fab242886a"><div class="ttname"><a href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a></div><div class="ttdeci">#define DOSTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00156">SVFBasicTypes.h:156</a></div></div>
|
|
1692
1692
|
</div><!-- fragment -->
|
|
1693
1693
|
</div>
|
|
@@ -1718,8 +1718,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1718
1718
|
</table>
|
|
1719
1719
|
</div><div class="memdoc">
|
|
1720
1720
|
|
|
1721
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1722
|
-
<div class="fragment"><div class="line"><a name="
|
|
1721
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00665">665</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1722
|
+
<div class="fragment"><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  {</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>[loc->getId()];</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00785">DDAVFSolver.h:785</a></div></div>
|
|
1723
1723
|
</div><!-- fragment -->
|
|
1724
1724
|
</div>
|
|
1725
1725
|
</div>
|
|
@@ -1749,8 +1749,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1749
1749
|
</table>
|
|
1750
1750
|
</div><div class="memdoc">
|
|
1751
1751
|
|
|
1752
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1753
|
-
<div class="fragment"><div class="line"><a name="
|
|
1752
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00710">710</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1753
|
+
<div class="fragment"><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  {</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <span class="keyword">typename</span> DPMToCVarMap::const_iterator it = <a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.find(dpm);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  assert(it!=<a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.end() && <span class="stringliteral">"not found??"</span>);</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6d62420837fe0c7814fc4da68a91eda4"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">SVF::DDAVFSolver::loadToPTCVarMap</a></div><div class="ttdeci">DPMToCVarMap loadToPTCVarMap</div><div class="ttdoc">map a load dpm to its cvar pointed by its pointer operand </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00787">DDAVFSolver.h:787</a></div></div>
|
|
1754
1754
|
</div><!-- fragment -->
|
|
1755
1755
|
</div>
|
|
1756
1756
|
</div>
|
|
@@ -1780,8 +1780,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1780
1780
|
</table>
|
|
1781
1781
|
</div><div class="memdoc">
|
|
1782
1782
|
|
|
1783
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1784
|
-
<div class="fragment"><div class="line"><a name="
|
|
1783
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00696">696</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1784
|
+
<div class="fragment"><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  {</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="keyword">typename</span> DPMToDPMMap::const_iterator it = <a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.find(dpm);</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  assert(it!=<a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.end() && <span class="stringliteral">"not found??"</span>);</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a9d8959dfee05685cd74d0d7a78069692"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">SVF::DDAVFSolver::dpmToloadDpmMap</a></div><div class="ttdeci">DPMToDPMMap dpmToloadDpmMap</div><div class="ttdoc">dpms at loads for may/must-alias analysis with stores </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00786">DDAVFSolver.h:786</a></div></div>
|
|
1785
1785
|
</div><!-- fragment -->
|
|
1786
1786
|
</div>
|
|
1787
1787
|
</div>
|
|
@@ -1812,8 +1812,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1812
1812
|
|
|
1813
1813
|
<p>Map a SVFGNode to its dpms for handling value-flow cycles. </p>
|
|
1814
1814
|
|
|
1815
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1816
|
-
<div class="fragment"><div class="line"><a name="
|
|
1815
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00661">661</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1816
|
+
<div class="fragment"><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  {</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>;</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00785">DDAVFSolver.h:785</a></div></div>
|
|
1817
1817
|
</div><!-- fragment -->
|
|
1818
1818
|
</div>
|
|
1819
1819
|
</div>
|
|
@@ -1877,8 +1877,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1877
1877
|
|
|
1878
1878
|
<p>Return <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
|
|
1879
1879
|
|
|
1880
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1881
|
-
<div class="fragment"><div class="line"><a name="
|
|
1880
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00118">118</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1881
|
+
<div class="fragment"><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>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">_svfg</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a74d83f06e8fc0ecedc1e1846030c99c6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">SVF::DDAVFSolver::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00776">DDAVFSolver.h:776</a></div></div>
|
|
1882
1882
|
</div><!-- fragment -->
|
|
1883
1883
|
</div>
|
|
1884
1884
|
</div>
|
|
@@ -1909,8 +1909,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1909
1909
|
|
|
1910
1910
|
<p>Return SVFGSCC. </p>
|
|
1911
1911
|
|
|
1912
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1913
|
-
<div class="fragment"><div class="line"><a name="
|
|
1912
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00123">123</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1913
|
+
<div class="fragment"><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00781">DDAVFSolver.h:781</a></div></div>
|
|
1914
1914
|
</div><!-- fragment -->
|
|
1915
1915
|
</div>
|
|
1916
1916
|
</div>
|
|
@@ -1942,9 +1942,9 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
1942
1942
|
|
|
1943
1943
|
<p>Get SCC rep node of a <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> node. </p>
|
|
1944
1944
|
|
|
1945
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
1946
|
-
<div class="fragment"><div class="line"><a name="
|
|
1947
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
1945
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00613">613</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
1946
|
+
<div class="fragment"><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  {</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>-><a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  }</div><div class="ttc" id="classSVF_1_1SCCDetection_html_a3a5fdc9330a657240f77199f5aee602d"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">SVF::SCCDetection::repNode</a></div><div class="ttdeci">NodeID repNode(NodeID n) const</div><div class="ttdoc">get the rep node if not found return itself </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00139">SCC.h:139</a></div></div>
|
|
1947
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00781">DDAVFSolver.h:781</a></div></div>
|
|
1948
1948
|
</div><!-- fragment -->
|
|
1949
1949
|
</div>
|
|
1950
1950
|
</div>
|
|
@@ -2036,8 +2036,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2036
2036
|
|
|
2037
2037
|
<p>Reimplemented in <a class="el" href="classSVF_1_1ContextDDA.html#aa8a7b6e99b92abfa5c2404515b703a2d">SVF::ContextDDA</a>, and <a class="el" href="classSVF_1_1FlowDDA.html#addb412dc03c7684889693ce263585867">SVF::FlowDDA</a>.</p>
|
|
2038
2038
|
|
|
2039
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2040
|
-
<div class="fragment"><div class="line"><a name="
|
|
2039
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00527">527</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2040
|
+
<div class="fragment"><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  {</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  }</div></div><!-- fragment -->
|
|
2041
2041
|
</div>
|
|
2042
2042
|
</div>
|
|
2043
2043
|
<a id="a9005f1f0e4a808838276ff44b300f96d"></a>
|
|
@@ -2069,8 +2069,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2069
2069
|
<p>handle out-of-budget queries </p>
|
|
2070
2070
|
<p>Handle out-of-budget dpm </p>
|
|
2071
2071
|
|
|
2072
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2073
|
-
<div class="fragment"><div class="line"><a name="
|
|
2072
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00725">725</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2073
|
+
<div class="fragment"><div class="line"><a name="l00725"></a><span class="lineno"> 725</span> {}</div></div><!-- fragment -->
|
|
2074
2074
|
</div>
|
|
2075
2075
|
</div>
|
|
2076
2076
|
<a id="a99f631cf1bc438e3f08f7f935e98e38d"></a>
|
|
@@ -2112,32 +2112,32 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2112
2112
|
<p>Handle single statement. </p>
|
|
2113
2113
|
<p>resolve function pointer first at indirect callsite </p>
|
|
2114
2114
|
|
|
2115
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2116
|
-
<div class="fragment"><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#afcc074be34dd0c45418ff16b3d9d4192">resolveFunPtr</a>(dpm);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* node = dpm.getLoc();</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">if</span>(SVFUtil::isa<AddrSVFGNode>(node))</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#acfe7d961caac8f0f558881a9a006b1fa">handleAddr</a>(pts,dpm,SVFUtil::cast<AddrSVFGNode>(node));</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<CopySVFGNode>(node) || SVFUtil::isa<PHISVFGNode>(node)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  || SVFUtil::isa<ActualParmSVFGNode>(node) || SVFUtil::isa<FormalParmSVFGNode>(node)</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  || SVFUtil::isa<ActualRetSVFGNode>(node) || SVFUtil::isa<FormalRetSVFGNode>(node)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  || SVFUtil::isa<NullPtrSVFGNode>(node))</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a7a6af30f30f32d55fc910f2ae4909791">backtraceAlongDirectVF</a>(pts,dpm);</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">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<GepSVFGNode>(node))</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>  CPtSet gepPts;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a7a6af30f30f32d55fc910f2ae4909791">backtraceAlongDirectVF</a>(gepPts,dpm);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">unionDDAPts</a>(pts, <a class="code" href="classSVF_1_1DDAVFSolver.html#ab10a34efa1acb6125ea32cf7a8cf919f">processGepPts</a>(SVFUtil::cast<GepSVFGNode>(node),gepPts));</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<LoadSVFGNode>(node))</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  CPtSet loadpts;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#acd694c2092adf8c516d1aba5f798cec7">startNewPTCompFromLoadSrc</a>(loadpts,dpm);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">for</span>(<span class="keyword">typename</span> CPtSet::iterator it = loadpts.begin(), eit = loadpts.end(); it!=eit; ++it)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">backtraceAlongIndirectVF</a>(pts,<a class="code" href="classSVF_1_1DDAVFSolver.html#ac4cb0b666d68d135c5e385bfc880fd67">getDPImWithOldCond</a>(dpm,*it,node));</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>  }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<StoreSVFGNode>(node))</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a345e5379f53b618adef014aa6887bfe7">isMustAlias</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">getLoadDpm</a>(dpm),dpm))</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"+++must alias for load and store:"</span>);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">getLoadDpm</a>(dpm).<a class="code" href="namespaceSVF.html#aae350f79ebcb9efd22ec9efa6678cd13">dump</a>());</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"+++\n"</span>);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#a0aec64ca944ea4f914a6fa799b7a8b38">_NumOfMustAliases</a>++);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#adbd209b4a2327b2b068fbb56e12042f7">backtraceToStoreSrc</a>(pts,dpm);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  CPtSet storepts;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#aff744e724dcf06a2b1cdd7ba2b1093f1">startNewPTCompFromStoreDst</a>(storepts,dpm);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">for</span>(<span class="keyword">typename</span> CPtSet::iterator it = storepts.begin(), eit = storepts.end(); it!=eit; ++it)</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ace35b8247204d9806ca1a4f01bff2364">propagateViaObj</a>(*it,<a class="code" href="classSVF_1_1DDAVFSolver.html#ad42efad8e857290459689833c224e467">getLoadCVar</a>(dpm)))</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#adbd209b4a2327b2b068fbb56e12042f7">backtraceToStoreSrc</a>(pts,<a class="code" href="classSVF_1_1DDAVFSolver.html#ac4cb0b666d68d135c5e385bfc880fd67">getDPImWithOldCond</a>(dpm,*it,node));</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a94bcddbc7b9ccecb3fbb693b13372785">isStrongUpdate</a>(storepts,SVFUtil::cast<StoreSVFGNode>(node)))</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"backward strong update for obj "</span> << dpm.getCurNodeID() << <span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#aeb6b56cf3d140d251b0524eb5cbd6dce">addSUStat</a>(dpm,node);)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a7d0775354df32f293e98578ed071d33c">rmSUStat</a>(dpm,node);)</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">backtraceAlongIndirectVF</a>(pts,<a class="code" href="classSVF_1_1DDAVFSolver.html#ac4cb0b666d68d135c5e385bfc880fd67">getDPImWithOldCond</a>(dpm,*it,node));</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">backtraceAlongIndirectVF</a>(pts,dpm);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<MRSVFGNode>(node))</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">backtraceAlongIndirectVF</a>(pts,dpm);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"unexpected kind of SVFG nodes"</span>);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a040bc02742836b0a6d46ce3c3e89fa46"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">SVF::DDAVFSolver::backtraceAlongIndirectVF</a></div><div class="ttdeci">void backtraceAlongIndirectVF(CPtSet &pts, const DPIm &oldDpm)</div><div class="ttdoc">Backward traverse along indirect value flows. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00325">DDAVFSolver.h:325</a></div></div>
|
|
2117
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2118
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7d0775354df32f293e98578ed071d33c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7d0775354df32f293e98578ed071d33c">SVF::DDAVFSolver::rmSUStat</a></div><div class="ttdeci">void rmSUStat(const DPIm &dpm, const SVFGNode *node)</div><div class="ttdoc">remove strong updates num if the dpm goes to weak updates branch </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2119
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a99764ee5bc19378795fe464e9036e78b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">SVF::DDAVFSolver::unionDDAPts</a></div><div class="ttdeci">virtual bool unionDDAPts(CPtSet &pts, const CPtSet &targetPts)</div><div class="ttdoc">Union pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2120
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aff744e724dcf06a2b1cdd7ba2b1093f1"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aff744e724dcf06a2b1cdd7ba2b1093f1">SVF::DDAVFSolver::startNewPTCompFromStoreDst</a></div><div class="ttdeci">void startNewPTCompFromStoreDst(CPtSet &pts, const DPIm &oldDpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2121
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_adbd209b4a2327b2b068fbb56e12042f7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#adbd209b4a2327b2b068fbb56e12042f7">SVF::DDAVFSolver::backtraceToStoreSrc</a></div><div class="ttdeci">void backtraceToStoreSrc(CPtSet &pts, const DPIm &oldDpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2122
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ad42efad8e857290459689833c224e467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ad42efad8e857290459689833c224e467">SVF::DDAVFSolver::getLoadCVar</a></div><div class="ttdeci">const CVar & getLoadCVar(const DPIm &dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2123
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ace35b8247204d9806ca1a4f01bff2364"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ace35b8247204d9806ca1a4f01bff2364">SVF::DDAVFSolver::propagateViaObj</a></div><div class="ttdeci">virtual bool propagateViaObj(const CVar &storeObj, const CVar &loadObj)</div><div class="ttdoc">If the points-to contain the object obj, we could move forward along indirect value-flow edge...</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2124
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a630aad14a285c954a50c632f9cb13fa9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">SVF::DDAVFSolver::getLoadDpm</a></div><div class="ttdeci">const DPIm & getLoadDpm(const DPIm &dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2115
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00170">170</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2116
|
+
<div class="fragment"><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#afcc074be34dd0c45418ff16b3d9d4192">resolveFunPtr</a>(dpm);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* node = dpm.getLoc();</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">if</span>(SVFUtil::isa<AddrSVFGNode>(node))</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#acfe7d961caac8f0f558881a9a006b1fa">handleAddr</a>(pts,dpm,SVFUtil::cast<AddrSVFGNode>(node));</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<CopySVFGNode>(node) || SVFUtil::isa<PHISVFGNode>(node)</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  || SVFUtil::isa<ActualParmSVFGNode>(node) || SVFUtil::isa<FormalParmSVFGNode>(node)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  || SVFUtil::isa<ActualRetSVFGNode>(node) || SVFUtil::isa<FormalRetSVFGNode>(node)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  || SVFUtil::isa<NullPtrSVFGNode>(node))</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a7a6af30f30f32d55fc910f2ae4909791">backtraceAlongDirectVF</a>(pts,dpm);</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>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<GepSVFGNode>(node))</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>  CPtSet gepPts;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a7a6af30f30f32d55fc910f2ae4909791">backtraceAlongDirectVF</a>(gepPts,dpm);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">unionDDAPts</a>(pts, <a class="code" href="classSVF_1_1DDAVFSolver.html#ab10a34efa1acb6125ea32cf7a8cf919f">processGepPts</a>(SVFUtil::cast<GepSVFGNode>(node),gepPts));</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<LoadSVFGNode>(node))</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  CPtSet loadpts;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#acd694c2092adf8c516d1aba5f798cec7">startNewPTCompFromLoadSrc</a>(loadpts,dpm);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">for</span>(<span class="keyword">typename</span> CPtSet::iterator it = loadpts.begin(), eit = loadpts.end(); it!=eit; ++it)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">backtraceAlongIndirectVF</a>(pts,<a class="code" href="classSVF_1_1DDAVFSolver.html#ac4cb0b666d68d135c5e385bfc880fd67">getDPImWithOldCond</a>(dpm,*it,node));</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  }</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<StoreSVFGNode>(node))</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a345e5379f53b618adef014aa6887bfe7">isMustAlias</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">getLoadDpm</a>(dpm),dpm))</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"+++must alias for load and store:"</span>);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">getLoadDpm</a>(dpm).<a class="code" href="namespaceSVF.html#aae350f79ebcb9efd22ec9efa6678cd13">dump</a>());</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"+++\n"</span>);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#a0aec64ca944ea4f914a6fa799b7a8b38">_NumOfMustAliases</a>++);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#adbd209b4a2327b2b068fbb56e12042f7">backtraceToStoreSrc</a>(pts,dpm);</div><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>  <span class="keywordflow">else</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  CPtSet storepts;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#aff744e724dcf06a2b1cdd7ba2b1093f1">startNewPTCompFromStoreDst</a>(storepts,dpm);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">for</span>(<span class="keyword">typename</span> CPtSet::iterator it = storepts.begin(), eit = storepts.end(); it!=eit; ++it)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ace35b8247204d9806ca1a4f01bff2364">propagateViaObj</a>(*it,<a class="code" href="classSVF_1_1DDAVFSolver.html#ad42efad8e857290459689833c224e467">getLoadCVar</a>(dpm)))</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#adbd209b4a2327b2b068fbb56e12042f7">backtraceToStoreSrc</a>(pts,<a class="code" href="classSVF_1_1DDAVFSolver.html#ac4cb0b666d68d135c5e385bfc880fd67">getDPImWithOldCond</a>(dpm,*it,node));</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a94bcddbc7b9ccecb3fbb693b13372785">isStrongUpdate</a>(storepts,SVFUtil::cast<StoreSVFGNode>(node)))</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"backward strong update for obj "</span> << dpm.getCurNodeID() << <span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#aeb6b56cf3d140d251b0524eb5cbd6dce">addSUStat</a>(dpm,node);)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a7d0775354df32f293e98578ed071d33c">rmSUStat</a>(dpm,node);)</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">backtraceAlongIndirectVF</a>(pts,<a class="code" href="classSVF_1_1DDAVFSolver.html#ac4cb0b666d68d135c5e385bfc880fd67">getDPImWithOldCond</a>(dpm,*it,node));</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  }</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">backtraceAlongIndirectVF</a>(pts,dpm);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  }</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<MRSVFGNode>(node))</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">backtraceAlongIndirectVF</a>(pts,dpm);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"unexpected kind of SVFG nodes"</span>);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a040bc02742836b0a6d46ce3c3e89fa46"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">SVF::DDAVFSolver::backtraceAlongIndirectVF</a></div><div class="ttdeci">void backtraceAlongIndirectVF(CPtSet &pts, const DPIm &oldDpm)</div><div class="ttdoc">Backward traverse along indirect value flows. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00347">DDAVFSolver.h:347</a></div></div>
|
|
2117
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
|
|
2118
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7d0775354df32f293e98578ed071d33c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7d0775354df32f293e98578ed071d33c">SVF::DDAVFSolver::rmSUStat</a></div><div class="ttdeci">void rmSUStat(const DPIm &dpm, const SVFGNode *node)</div><div class="ttdoc">remove strong updates num if the dpm goes to weak updates branch </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00763">DDAVFSolver.h:763</a></div></div>
|
|
2119
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a99764ee5bc19378795fe464e9036e78b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">SVF::DDAVFSolver::unionDDAPts</a></div><div class="ttdeci">virtual bool unionDDAPts(CPtSet &pts, const CPtSet &targetPts)</div><div class="ttdoc">Union pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00102">DDAVFSolver.h:102</a></div></div>
|
|
2120
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aff744e724dcf06a2b1cdd7ba2b1093f1"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aff744e724dcf06a2b1cdd7ba2b1093f1">SVF::DDAVFSolver::startNewPTCompFromStoreDst</a></div><div class="ttdeci">void startNewPTCompFromStoreDst(CPtSet &pts, const DPIm &oldDpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00398">DDAVFSolver.h:398</a></div></div>
|
|
2121
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_adbd209b4a2327b2b068fbb56e12042f7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#adbd209b4a2327b2b068fbb56e12042f7">SVF::DDAVFSolver::backtraceToStoreSrc</a></div><div class="ttdeci">void backtraceToStoreSrc(CPtSet &pts, const DPIm &oldDpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00408">DDAVFSolver.h:408</a></div></div>
|
|
2122
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ad42efad8e857290459689833c224e467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ad42efad8e857290459689833c224e467">SVF::DDAVFSolver::getLoadCVar</a></div><div class="ttdeci">const CVar & getLoadCVar(const DPIm &dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00710">DDAVFSolver.h:710</a></div></div>
|
|
2123
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ace35b8247204d9806ca1a4f01bff2364"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ace35b8247204d9806ca1a4f01bff2364">SVF::DDAVFSolver::propagateViaObj</a></div><div class="ttdeci">virtual bool propagateViaObj(const CVar &storeObj, const CVar &loadObj)</div><div class="ttdoc">If the points-to contain the object obj, we could move forward along indirect value-flow edge...</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00483">DDAVFSolver.h:483</a></div></div>
|
|
2124
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a630aad14a285c954a50c632f9cb13fa9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">SVF::DDAVFSolver::getLoadDpm</a></div><div class="ttdeci">const DPIm & getLoadDpm(const DPIm &dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00696">DDAVFSolver.h:696</a></div></div>
|
|
2125
2125
|
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acfe7d961caac8f0f558881a9a006b1fa"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acfe7d961caac8f0f558881a9a006b1fa">SVF::DDAVFSolver::handleAddr</a></div><div class="ttdeci">virtual void handleAddr(CPtSet &pts, const DPIm &dpm, const AddrSVFGNode *addr)=0</div><div class="ttdoc">Handle AddrSVFGNode to add proper points-to. </div></div>
|
|
2126
2126
|
<div class="ttc" id="namespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
|
|
2127
2127
|
<div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
|
|
2128
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ac4cb0b666d68d135c5e385bfc880fd67"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ac4cb0b666d68d135c5e385bfc880fd67">SVF::DDAVFSolver::getDPImWithOldCond</a></div><div class="ttdeci">virtual DPIm getDPImWithOldCond(const DPIm &oldDpm, const CVar &var, const SVFGNode *loc)</div><div class="ttdoc">Return dpm with old context and path conditions. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2129
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a345e5379f53b618adef014aa6887bfe7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a345e5379f53b618adef014aa6887bfe7">SVF::DDAVFSolver::isMustAlias</a></div><div class="ttdeci">virtual bool isMustAlias(const DPIm &, const DPIm &)</div><div class="ttdoc">whether load and store are aliased </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2128
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ac4cb0b666d68d135c5e385bfc880fd67"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ac4cb0b666d68d135c5e385bfc880fd67">SVF::DDAVFSolver::getDPImWithOldCond</a></div><div class="ttdeci">virtual DPIm getDPImWithOldCond(const DPIm &oldDpm, const CVar &var, const SVFGNode *loc)</div><div class="ttdoc">Return dpm with old context and path conditions. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00589">DDAVFSolver.h:589</a></div></div>
|
|
2129
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a345e5379f53b618adef014aa6887bfe7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a345e5379f53b618adef014aa6887bfe7">SVF::DDAVFSolver::isMustAlias</a></div><div class="ttdeci">virtual bool isMustAlias(const DPIm &, const DPIm &)</div><div class="ttdoc">whether load and store are aliased </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00444">DDAVFSolver.h:444</a></div></div>
|
|
2130
2130
|
<div class="ttc" id="SVFBasicTypes_8h_html_a6c9e2209a2c38607a9e3b7fab242886a"><div class="ttname"><a href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a></div><div class="ttdeci">#define DOSTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00156">SVFBasicTypes.h:156</a></div></div>
|
|
2131
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acd694c2092adf8c516d1aba5f798cec7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acd694c2092adf8c516d1aba5f798cec7">SVF::DDAVFSolver::startNewPTCompFromLoadSrc</a></div><div class="ttdeci">void startNewPTCompFromLoadSrc(CPtSet &pts, const DPIm &oldDpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2132
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7a6af30f30f32d55fc910f2ae4909791"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7a6af30f30f32d55fc910f2ae4909791">SVF::DDAVFSolver::backtraceAlongDirectVF</a></div><div class="ttdeci">void backtraceAlongDirectVF(CPtSet &pts, const DPIm &oldDpm)</div><div class="ttdoc">Backward traverse along direct value flows. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2131
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acd694c2092adf8c516d1aba5f798cec7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acd694c2092adf8c516d1aba5f798cec7">SVF::DDAVFSolver::startNewPTCompFromLoadSrc</a></div><div class="ttdeci">void startNewPTCompFromLoadSrc(CPtSet &pts, const DPIm &oldDpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00387">DDAVFSolver.h:387</a></div></div>
|
|
2132
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7a6af30f30f32d55fc910f2ae4909791"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7a6af30f30f32d55fc910f2ae4909791">SVF::DDAVFSolver::backtraceAlongDirectVF</a></div><div class="ttdeci">void backtraceAlongDirectVF(CPtSet &pts, const DPIm &oldDpm)</div><div class="ttdoc">Backward traverse along direct value flows. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00369">DDAVFSolver.h:369</a></div></div>
|
|
2133
2133
|
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ab10a34efa1acb6125ea32cf7a8cf919f"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ab10a34efa1acb6125ea32cf7a8cf919f">SVF::DDAVFSolver::processGepPts</a></div><div class="ttdeci">virtual CPtSet processGepPts(const GepSVFGNode *gep, const CPtSet &srcPts)=0</div><div class="ttdoc">ProcessGep node to generate field object nodes of a struct. </div></div>
|
|
2134
2134
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
2135
|
-
<div class="ttc" id="classSVF_1_1DDAStat_html_a0aec64ca944ea4f914a6fa799b7a8b38"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a0aec64ca944ea4f914a6fa799b7a8b38">SVF::DDAStat::_NumOfMustAliases</a></div><div class="ttdeci">u32_t _NumOfMustAliases</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#
|
|
2136
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aeb6b56cf3d140d251b0524eb5cbd6dce"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aeb6b56cf3d140d251b0524eb5cbd6dce">SVF::DDAVFSolver::addSUStat</a></div><div class="ttdeci">void addSUStat(const DPIm &dpm, const SVFGNode *node)</div><div class="ttdoc">stat strong updates num </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2135
|
+
<div class="ttc" id="classSVF_1_1DDAStat_html_a0aec64ca944ea4f914a6fa799b7a8b38"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a0aec64ca944ea4f914a6fa799b7a8b38">SVF::DDAStat::_NumOfMustAliases</a></div><div class="ttdeci">u32_t _NumOfMustAliases</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00056">DDAStat.h:56</a></div></div>
|
|
2136
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aeb6b56cf3d140d251b0524eb5cbd6dce"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aeb6b56cf3d140d251b0524eb5cbd6dce">SVF::DDAVFSolver::addSUStat</a></div><div class="ttdeci">void addSUStat(const DPIm &dpm, const SVFGNode *node)</div><div class="ttdoc">stat strong updates num </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00754">DDAVFSolver.h:754</a></div></div>
|
|
2137
2137
|
<div class="ttc" id="namespaceSVF_html_aae350f79ebcb9efd22ec9efa6678cd13"><div class="ttname"><a href="namespaceSVF.html#aae350f79ebcb9efd22ec9efa6678cd13">SVF::dump</a></div><div class="ttdeci">void dump(const SparseBitVector< ElementSize > &LHS, std::ostream &out)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01189">SparseBitVector.h:1189</a></div></div>
|
|
2138
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_afcc074be34dd0c45418ff16b3d9d4192"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afcc074be34dd0c45418ff16b3d9d4192">SVF::DDAVFSolver::resolveFunPtr</a></div><div class="ttdeci">void resolveFunPtr(const DPIm &dpm)</div><div class="ttdoc">resolve function pointer </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2138
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_afcc074be34dd0c45418ff16b3d9d4192"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afcc074be34dd0c45418ff16b3d9d4192">SVF::DDAVFSolver::resolveFunPtr</a></div><div class="ttdeci">void resolveFunPtr(const DPIm &dpm)</div><div class="ttdoc">resolve function pointer </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00490">DDAVFSolver.h:490</a></div></div>
|
|
2139
2139
|
<div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
|
|
2140
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a94bcddbc7b9ccecb3fbb693b13372785"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a94bcddbc7b9ccecb3fbb693b13372785">SVF::DDAVFSolver::isStrongUpdate</a></div><div class="ttdeci">virtual bool isStrongUpdate(const CPtSet &dstCPSet, const StoreSVFGNode *store)</div><div class="ttdoc">Return TRUE if this is a strong update STORE statement. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2140
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a94bcddbc7b9ccecb3fbb693b13372785"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a94bcddbc7b9ccecb3fbb693b13372785">SVF::DDAVFSolver::isStrongUpdate</a></div><div class="ttdeci">virtual bool isStrongUpdate(const CPtSet &dstCPSet, const StoreSVFGNode *store)</div><div class="ttdoc">Return TRUE if this is a strong update STORE statement. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00449">DDAVFSolver.h:449</a></div></div>
|
|
2141
2141
|
</div><!-- fragment -->
|
|
2142
2142
|
</div>
|
|
2143
2143
|
</div>
|
|
@@ -2167,9 +2167,9 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2167
2167
|
</table>
|
|
2168
2168
|
</div><div class="memdoc">
|
|
2169
2169
|
|
|
2170
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2171
|
-
<div class="fragment"><div class="line"><a name="
|
|
2172
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2170
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00646">646</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2171
|
+
<div class="fragment"><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  {</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keyword">const</span> MemObj* mem = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(var));</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  assert(mem && <span class="stringliteral">"memory object is null??"</span>);</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  <span class="keywordflow">return</span> mem->isArray();</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fa002d4ba4194ffde62ecbdd361a24d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">SVF::DDAVFSolver::getPtrNodeID</a></div><div class="ttdeci">virtual NodeID getPtrNodeID(const CVar &var) const =0</div><div class="ttdoc">Methods to be implemented in child class. </div></div>
|
|
2172
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
|
|
2173
2173
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00344">SVFIR.h:344</a></div></div>
|
|
2174
2174
|
</div><!-- fragment -->
|
|
2175
2175
|
</div>
|
|
@@ -2200,8 +2200,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2200
2200
|
</table>
|
|
2201
2201
|
</div><div class="memdoc">
|
|
2202
2202
|
|
|
2203
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2204
|
-
<div class="fragment"><div class="line"><a name="
|
|
2203
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00541">541</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2204
|
+
<div class="fragment"><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  {</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.find(dpm)!=<a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.end();</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a63d04c3af4529d0e0f82acd76ed57f6c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">SVF::DDAVFSolver::backwardVisited</a></div><div class="ttdeci">DPTItemSet backwardVisited</div><div class="ttdoc">visited map during backward traversing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00782">DDAVFSolver.h:782</a></div></div>
|
|
2205
2205
|
</div><!-- fragment -->
|
|
2206
2206
|
</div>
|
|
2207
2207
|
</div>
|
|
@@ -2231,10 +2231,10 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2231
2231
|
</table>
|
|
2232
2232
|
</div><div class="memdoc">
|
|
2233
2233
|
|
|
2234
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2235
|
-
<div class="fragment"><div class="line"><a name="
|
|
2234
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00652">652</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2235
|
+
<div class="fragment"><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  {</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  <span class="keyword">const</span> MemObj* mem = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(var));</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <span class="keywordflow">return</span> mem-><a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>();</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  }</div><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>
|
|
2236
2236
|
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fa002d4ba4194ffde62ecbdd361a24d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">SVF::DDAVFSolver::getPtrNodeID</a></div><div class="ttdeci">virtual NodeID getPtrNodeID(const CVar &var) const =0</div><div class="ttdoc">Methods to be implemented in child class. </div></div>
|
|
2237
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2237
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
|
|
2238
2238
|
<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>
|
|
2239
2239
|
</div><!-- fragment -->
|
|
2240
2240
|
</div>
|
|
@@ -2279,9 +2279,9 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2279
2279
|
|
|
2280
2280
|
<p>Reimplemented in <a class="el" href="classSVF_1_1ContextDDA.html#a02902af9bc4455b994a5da4a9d6cf121">SVF::ContextDDA</a>, and <a class="el" href="classSVF_1_1FlowDDA.html#afc3b2b4e0da7a2484ec35c3ce84a9d60">SVF::FlowDDA</a>.</p>
|
|
2281
2281
|
|
|
2282
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2283
|
-
<div class="fragment"><div class="line"><a name="
|
|
2284
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2282
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00639">639</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2283
|
+
<div class="fragment"><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  {</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <span class="keyword">const</span> MemObj* mem = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(var));</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  assert(mem && <span class="stringliteral">"memory object is null??"</span>);</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <span class="keywordflow">return</span> mem->isHeap();</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fa002d4ba4194ffde62ecbdd361a24d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">SVF::DDAVFSolver::getPtrNodeID</a></div><div class="ttdeci">virtual NodeID getPtrNodeID(const CVar &var) const =0</div><div class="ttdoc">Methods to be implemented in child class. </div></div>
|
|
2284
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
|
|
2285
2285
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00344">SVFIR.h:344</a></div></div>
|
|
2286
2286
|
</div><!-- fragment -->
|
|
2287
2287
|
</div>
|
|
@@ -2314,15 +2314,15 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2314
2314
|
|
|
2315
2315
|
<p>Whether a local variable is in function recursions. </p>
|
|
2316
2316
|
|
|
2317
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2318
|
-
<div class="fragment"><div class="line"><a name="
|
|
2317
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00466">466</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2318
|
+
<div class="fragment"><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  {</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span> = <a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(var);</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keyword">const</span> MemObj* obj = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  assert(obj && <span class="stringliteral">"object not found!!"</span>);</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordflow">if</span>(obj->isStack())</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  {</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>)-><a class="code" href="classSVF_1_1SVFVar.html#a53439a493963d16e5a1b5ed36ab6d33e">getFunction</a>())</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  {</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keyword">const</span> SVFFunction* svffun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(fun);</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">_callGraphSCC</a>-><a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">_callGraph</a>-><a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(svffun)-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  }</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  }</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a4c307d486756daa1e79595b1e9edc40a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">SVF::DDAVFSolver::_callGraphSCC</a></div><div class="ttdeci">CallGraphSCC * _callGraphSCC</div><div class="ttdoc">SCC for CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00780">DDAVFSolver.h:780</a></div></div>
|
|
2319
2319
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_aaab54c670518d9d6790707f76ea76aa1"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">SVF::PTACallGraph::getCallGraphNode</a></div><div class="ttdeci">PTACallGraphNode * getCallGraphNode(NodeID id) const</div><div class="ttdoc">Get call graph node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00315">PTACallGraph.h:315</a></div></div>
|
|
2320
2320
|
<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>
|
|
2321
2321
|
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fa002d4ba4194ffde62ecbdd361a24d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">SVF::DDAVFSolver::getPtrNodeID</a></div><div class="ttdeci">virtual NodeID getPtrNodeID(const CVar &var) const =0</div><div class="ttdoc">Methods to be implemented in child class. </div></div>
|
|
2322
2322
|
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00070">BasicTypes.h:70</a></div></div>
|
|
2323
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_abf24080617c6a74abed9f0bb0bc9c0c5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">SVF::DDAVFSolver::_callGraph</a></div><div class="ttdeci">PTACallGraph * _callGraph</div><div class="ttdoc">CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2323
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_abf24080617c6a74abed9f0bb0bc9c0c5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">SVF::DDAVFSolver::_callGraph</a></div><div class="ttdeci">PTACallGraph * _callGraph</div><div class="ttdoc">CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00779">DDAVFSolver.h:779</a></div></div>
|
|
2324
2324
|
<div class="ttc" id="classSVF_1_1SVFVar_html_a53439a493963d16e5a1b5ed36ab6d33e"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a53439a493963d16e5a1b5ed36ab6d33e">SVF::SVFVar::getFunction</a></div><div class="ttdeci">virtual const Function * getFunction() const</div><div class="ttdoc">Return the function that this SVFVar resides in. Return nullptr if it is a global or constantexpr nod...</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00127">SVFVariables.h:127</a></div></div>
|
|
2325
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2325
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
|
|
2326
2326
|
<div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00070">LLVMModule.h:70</a></div></div>
|
|
2327
2327
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00169">GenericGraph.h:169</a></div></div>
|
|
2328
2328
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a5d699af73b1e7ad4e3a5f6d26b8b6d15"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">SVF::SCCDetection::isInCycle</a></div><div class="ttdeci">bool isInCycle(NodeID n) const</div><div class="ttdoc">whether the node is in a cycle </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00149">SCC.h:149</a></div></div>
|
|
@@ -2370,8 +2370,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2370
2370
|
|
|
2371
2371
|
<p>whether load and store are aliased </p>
|
|
2372
2372
|
|
|
2373
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2374
|
-
<div class="fragment"><div class="line"><a name="
|
|
2373
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00444">444</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2374
|
+
<div class="fragment"><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  {</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  }</div></div><!-- fragment -->
|
|
2375
2375
|
</div>
|
|
2376
2376
|
</div>
|
|
2377
2377
|
<a id="a0b1f774883adc7d535f8363bf3c8b1e8"></a>
|
|
@@ -2400,8 +2400,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2400
2400
|
</table>
|
|
2401
2401
|
</div><div class="memdoc">
|
|
2402
2402
|
|
|
2403
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2404
|
-
<div class="fragment"><div class="line"><a name="
|
|
2403
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00741">741</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2404
|
+
<div class="fragment"><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  {</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">outOfBudgetDpms</a>.find(dpm) != <a class="code" href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">outOfBudgetDpms</a>.end();</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aad57a954473f3099188cf8c8fba87880"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">SVF::DDAVFSolver::outOfBudgetDpms</a></div><div class="ttdeci">DPTItemSet outOfBudgetDpms</div><div class="ttdoc">out of budget dpm set </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00788">DDAVFSolver.h:788</a></div></div>
|
|
2405
2405
|
</div><!-- fragment -->
|
|
2406
2406
|
</div>
|
|
2407
2407
|
</div>
|
|
@@ -2430,8 +2430,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2430
2430
|
</table>
|
|
2431
2431
|
</div><div class="memdoc">
|
|
2432
2432
|
|
|
2433
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2434
|
-
<div class="fragment"><div class="line"><a name="
|
|
2433
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00733">733</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2434
|
+
<div class="fragment"><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  {</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a>;</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_afdecfbacc64cb8d694268aa73ec8a7b6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">SVF::DDAVFSolver::outOfBudgetQuery</a></div><div class="ttdeci">bool outOfBudgetQuery</div><div class="ttdoc">Whether the current query is out of step limits. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00774">DDAVFSolver.h:774</a></div></div>
|
|
2435
2435
|
</div><!-- fragment -->
|
|
2436
2436
|
</div>
|
|
2437
2437
|
</div>
|
|
@@ -2474,11 +2474,11 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2474
2474
|
<p>Return TRUE if this is a strong update STORE statement. </p>
|
|
2475
2475
|
<p>Find the unique element in cpts </p>
|
|
2476
2476
|
|
|
2477
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2478
|
-
<div class="fragment"><div class="line"><a name="
|
|
2479
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a20cadb651b41343437e135e985c4e566"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a20cadb651b41343437e135e985c4e566">SVF::DDAVFSolver::isLocalCVarInRecursion</a></div><div class="ttdeci">virtual bool isLocalCVarInRecursion(const CVar &var) const</div><div class="ttdoc">Whether a local variable is in function recursions. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2480
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a9aaa5ee3dc8abc51c4b6e463e1949ee7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a9aaa5ee3dc8abc51c4b6e463e1949ee7">SVF::DDAVFSolver::isArrayCondMemObj</a></div><div class="ttdeci">bool isArrayCondMemObj(const CVar &var) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2481
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a645c7d0637b49e139898016ff652e1f3"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a645c7d0637b49e139898016ff652e1f3">SVF::DDAVFSolver::isHeapCondMemObj</a></div><div class="ttdeci">virtual bool isHeapCondMemObj(const CVar &var, const StoreSVFGNode *)</div><div class="ttdoc">Check heap and array object. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2477
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00449">449</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2478
|
+
<div class="fragment"><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keywordflow">if</span> (dstCPSet.count() == 1)</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  {</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keyword">typename</span> CPtSet::iterator it = dstCPSet.begin();</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keyword">const</span> CVar& var = *it;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="comment">// Strong update can be made if this points-to target is not heap, array or field-insensitive.</span></div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1DDAVFSolver.html#a645c7d0637b49e139898016ff652e1f3">isHeapCondMemObj</a>(var,store) && !<a class="code" href="classSVF_1_1DDAVFSolver.html#a9aaa5ee3dc8abc51c4b6e463e1949ee7">isArrayCondMemObj</a>(var)</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  && !<a class="code" href="classSVF_1_1DDAVFSolver.html#a37a6321f50bef2939b287cc088e76170">isFieldInsenCondMemObj</a>(var) && !<a class="code" href="classSVF_1_1DDAVFSolver.html#a20cadb651b41343437e135e985c4e566">isLocalCVarInRecursion</a>(var))</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  {</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  }</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  }</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a37a6321f50bef2939b287cc088e76170"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a37a6321f50bef2939b287cc088e76170">SVF::DDAVFSolver::isFieldInsenCondMemObj</a></div><div class="ttdeci">bool isFieldInsenCondMemObj(const CVar &var) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00652">DDAVFSolver.h:652</a></div></div>
|
|
2479
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a20cadb651b41343437e135e985c4e566"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a20cadb651b41343437e135e985c4e566">SVF::DDAVFSolver::isLocalCVarInRecursion</a></div><div class="ttdeci">virtual bool isLocalCVarInRecursion(const CVar &var) const</div><div class="ttdoc">Whether a local variable is in function recursions. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00466">DDAVFSolver.h:466</a></div></div>
|
|
2480
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a9aaa5ee3dc8abc51c4b6e463e1949ee7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a9aaa5ee3dc8abc51c4b6e463e1949ee7">SVF::DDAVFSolver::isArrayCondMemObj</a></div><div class="ttdeci">bool isArrayCondMemObj(const CVar &var) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00646">DDAVFSolver.h:646</a></div></div>
|
|
2481
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a645c7d0637b49e139898016ff652e1f3"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a645c7d0637b49e139898016ff652e1f3">SVF::DDAVFSolver::isHeapCondMemObj</a></div><div class="ttdeci">virtual bool isHeapCondMemObj(const CVar &var, const StoreSVFGNode *)</div><div class="ttdoc">Check heap and array object. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00639">DDAVFSolver.h:639</a></div></div>
|
|
2482
2482
|
</div><!-- fragment -->
|
|
2483
2483
|
</div>
|
|
2484
2484
|
</div>
|
|
@@ -2510,8 +2510,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2510
2510
|
|
|
2511
2511
|
<p>Return whether this SVFGNode is in cycle. </p>
|
|
2512
2512
|
|
|
2513
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2514
|
-
<div class="fragment"><div class="line"><a name="
|
|
2513
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00618">618</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2514
|
+
<div class="fragment"><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  {</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>-><a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(node->getId());</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00781">DDAVFSolver.h:781</a></div></div>
|
|
2515
2515
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a5d699af73b1e7ad4e3a5f6d26b8b6d15"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">SVF::SCCDetection::isInCycle</a></div><div class="ttdeci">bool isInCycle(NodeID n) const</div><div class="ttdoc">whether the node is in a cycle </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00149">SCC.h:149</a></div></div>
|
|
2516
2516
|
</div><!-- fragment -->
|
|
2517
2517
|
</div>
|
|
@@ -2544,8 +2544,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2544
2544
|
|
|
2545
2545
|
<p>Whether this is a top-level pointer statement. </p>
|
|
2546
2546
|
|
|
2547
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2548
|
-
<div class="fragment"><div class="line"><a name="
|
|
2547
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00581">581</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2548
|
+
<div class="fragment"><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  {</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keywordflow">if</span> (SVFUtil::isa<StoreSVFGNode>(stmt) || SVFUtil::isa<MRSVFGNode>(stmt))</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  }</div></div><!-- fragment -->
|
|
2549
2549
|
</div>
|
|
2550
2550
|
</div>
|
|
2551
2551
|
<a id="a7112ce6145be0855f8b035bb0d8a331c"></a>
|
|
@@ -2576,8 +2576,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2576
2576
|
|
|
2577
2577
|
<p>Visited flags to avoid cycles. </p>
|
|
2578
2578
|
|
|
2579
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2580
|
-
<div class="fragment"><div class="line"><a name="
|
|
2579
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00537">537</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2580
|
+
<div class="fragment"><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  {</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.insert(dpm);</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a63d04c3af4529d0e0f82acd76ed57f6c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">SVF::DDAVFSolver::backwardVisited</a></div><div class="ttdeci">DPTItemSet backwardVisited</div><div class="ttdoc">visited map during backward traversing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00782">DDAVFSolver.h:782</a></div></div>
|
|
2581
2581
|
</div><!-- fragment -->
|
|
2582
2582
|
</div>
|
|
2583
2583
|
</div>
|
|
@@ -2608,11 +2608,11 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2608
2608
|
|
|
2609
2609
|
<p>Reset visited map if the current query is out-of-budget. </p>
|
|
2610
2610
|
|
|
2611
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2612
|
-
<div class="fragment"><div class="line"><a name="
|
|
2613
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a05d6b074b04aad7dc1f3cbe0ca587467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">SVF::DDAVFSolver::DPTItemSet</a></div><div class="ttdeci">OrderedSet< DPIm > DPTItemSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2614
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa7e5839c5bc6f913561de10bce61e74b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">SVF::DDAVFSolver::clearbkVisited</a></div><div class="ttdeci">void clearbkVisited(const DPIm &dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2615
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2611
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00331">331</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2612
|
+
<div class="fragment"><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordflow">for</span>(<span class="keyword">typename</span> LocToDPMVecMap::const_iterator it = <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>.begin(),eit = <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">DPTItemSet</a> dpmSet(it->second.begin(), it->second.end());</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordflow">for</span>(<span class="keyword">typename</span> DPTItemSet::const_iterator dit = dpmSet.begin(),deit=dpmSet.end(); dit!=deit; ++dit)</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a0b1f774883adc7d535f8363bf3c8b1e8">isOutOfBudgetDpm</a>(*dit)==<span class="keyword">false</span>)</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">clearbkVisited</a>(*dit);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  }</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a0b1f774883adc7d535f8363bf3c8b1e8"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a0b1f774883adc7d535f8363bf3c8b1e8">SVF::DDAVFSolver::isOutOfBudgetDpm</a></div><div class="ttdeci">bool isOutOfBudgetDpm(const DPIm &dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00741">DDAVFSolver.h:741</a></div></div>
|
|
2613
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a05d6b074b04aad7dc1f3cbe0ca587467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">SVF::DDAVFSolver::DPTItemSet</a></div><div class="ttdeci">OrderedSet< DPIm > DPTItemSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00055">DDAVFSolver.h:55</a></div></div>
|
|
2614
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa7e5839c5bc6f913561de10bce61e74b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">SVF::DDAVFSolver::clearbkVisited</a></div><div class="ttdeci">void clearbkVisited(const DPIm &dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00545">DDAVFSolver.h:545</a></div></div>
|
|
2615
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00785">DDAVFSolver.h:785</a></div></div>
|
|
2616
2616
|
</div><!-- fragment -->
|
|
2617
2617
|
</div>
|
|
2618
2618
|
</div>
|
|
@@ -2698,8 +2698,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2698
2698
|
|
|
2699
2699
|
<p>Reimplemented in <a class="el" href="classSVF_1_1ContextDDA.html#a45d7a381fec0692b4d2f7d0eec47ccf1">SVF::ContextDDA</a>.</p>
|
|
2700
2700
|
|
|
2701
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2702
|
-
<div class="fragment"><div class="line"><a name="
|
|
2701
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00483">483</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2702
|
+
<div class="fragment"><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  {</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(storeObj) == <a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(loadObj))</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fa002d4ba4194ffde62ecbdd361a24d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">SVF::DDAVFSolver::getPtrNodeID</a></div><div class="ttdeci">virtual NodeID getPtrNodeID(const CVar &var) const =0</div><div class="ttdoc">Methods to be implemented in child class. </div></div>
|
|
2703
2703
|
</div><!-- fragment -->
|
|
2704
2704
|
</div>
|
|
2705
2705
|
</div>
|
|
@@ -2734,16 +2734,16 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2734
2734
|
<p>callgraph scc detection for local variable in recursion</p>
|
|
2735
2735
|
<p>re-compute for transitive closures </p>
|
|
2736
2736
|
|
|
2737
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2738
|
-
<div class="fragment"><div class="line"><a name="
|
|
2739
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6489319b33a807f7caba2d34017a3e1b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVF::DDAVFSolver::SVFGEdgeSet</a></div><div class="ttdeci">SVFGEdge::SVFGEdgeSetTy SVFGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2737
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00250">250</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2738
|
+
<div class="fragment"><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVFGEdgeSet</a> newIndirectEdges;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a9235a60e7332c8416e113e7360441d97">isFunPtr</a>(dpm.getCurNodeID()))</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a0c590e9d56b6d37cb6e0c9081363a0ef">CallSiteSet</a>& csSet = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#abf209739a97b96ae0d1c8451fdc684e8">getIndCallSites</a>(dpm.getCurNodeID());</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordflow">for</span>(CallSiteSet::const_iterator it = csSet.begin(), eit = csSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a637dddedd96942d56de6fd6d10c09169">updateCallGraphAndSVFG</a>(dpm, (*it),newIndirectEdges);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">if</span>(!newIndirectEdges.empty())</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">_callGraphSCC</a>-><a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>();</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#ace037388135f272365cee2e87844bfba">reComputeForEdges</a>(dpm,newIndirectEdges,<span class="keyword">true</span>);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVFGEdgeSet</a> edgeSet(dpm.getLoc()->getOutEdges());</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#ace037388135f272365cee2e87844bfba">reComputeForEdges</a>(dpm,edgeSet,<span class="keyword">false</span>);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a4c307d486756daa1e79595b1e9edc40a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">SVF::DDAVFSolver::_callGraphSCC</a></div><div class="ttdeci">CallGraphSCC * _callGraphSCC</div><div class="ttdoc">SCC for CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00780">DDAVFSolver.h:780</a></div></div>
|
|
2739
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6489319b33a807f7caba2d34017a3e1b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVF::DDAVFSolver::SVFGEdgeSet</a></div><div class="ttdeci">SVFGEdge::SVFGEdgeSetTy SVFGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00061">DDAVFSolver.h:61</a></div></div>
|
|
2740
2740
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a123b5006a6da7053e5e357140da3c5a3"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">SVF::SCCDetection::find</a></div><div class="ttdeci">void find(void)</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00308">SCC.h:308</a></div></div>
|
|
2741
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ace037388135f272365cee2e87844bfba"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ace037388135f272365cee2e87844bfba">SVF::DDAVFSolver::reComputeForEdges</a></div><div class="ttdeci">void reComputeForEdges(const DPIm &dpm, const SVFGEdgeSet &edgeSet, bool indirectCall=false)</div><div class="ttdoc">Traverse along out edges to find all nodes which may be affected by locDPM. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2741
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ace037388135f272365cee2e87844bfba"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ace037388135f272365cee2e87844bfba">SVF::DDAVFSolver::reComputeForEdges</a></div><div class="ttdeci">void reComputeForEdges(const DPIm &dpm, const SVFGEdgeSet &edgeSet, bool indirectCall=false)</div><div class="ttdoc">Traverse along out edges to find all nodes which may be affected by locDPM. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00271">DDAVFSolver.h:271</a></div></div>
|
|
2742
2742
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a9235a60e7332c8416e113e7360441d97"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a9235a60e7332c8416e113e7360441d97">SVF::SVFIR::isFunPtr</a></div><div class="ttdeci">bool isFunPtr(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00319">SVFIR.h:319</a></div></div>
|
|
2743
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a637dddedd96942d56de6fd6d10c09169"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a637dddedd96942d56de6fd6d10c09169">SVF::DDAVFSolver::updateCallGraphAndSVFG</a></div><div class="ttdeci">virtual void updateCallGraphAndSVFG(const DPIm &, const CallICFGNode *, SVFGEdgeSet &)</div><div class="ttdoc">Update call graph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2744
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2743
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a637dddedd96942d56de6fd6d10c09169"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a637dddedd96942d56de6fd6d10c09169">SVF::DDAVFSolver::updateCallGraphAndSVFG</a></div><div class="ttdeci">virtual void updateCallGraphAndSVFG(const DPIm &, const CallICFGNode *, SVFGEdgeSet &)</div><div class="ttdoc">Update call graph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00532">DDAVFSolver.h:532</a></div></div>
|
|
2744
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
|
|
2745
2745
|
<div class="ttc" id="classSVF_1_1SVFIR_html_abf209739a97b96ae0d1c8451fdc684e8"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abf209739a97b96ae0d1c8451fdc684e8">SVF::SVFIR::getIndCallSites</a></div><div class="ttdeci">const CallSiteSet & getIndCallSites(NodeID funPtr) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00309">SVFIR.h:309</a></div></div>
|
|
2746
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a0c590e9d56b6d37cb6e0c9081363a0ef"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a0c590e9d56b6d37cb6e0c9081363a0ef">SVF::DDAVFSolver::CallSiteSet</a></div><div class="ttdeci">SVFIR::CallSiteSet CallSiteSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2746
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a0c590e9d56b6d37cb6e0c9081363a0ef"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a0c590e9d56b6d37cb6e0c9081363a0ef">SVF::DDAVFSolver::CallSiteSet</a></div><div class="ttdeci">SVFIR::CallSiteSet CallSiteSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00054">DDAVFSolver.h:54</a></div></div>
|
|
2747
2747
|
</div><!-- fragment -->
|
|
2748
2748
|
</div>
|
|
2749
2749
|
</div>
|
|
@@ -2792,18 +2792,18 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2792
2792
|
<p>Traverse along out edges to find all nodes which may be affected by locDPM. </p>
|
|
2793
2793
|
<p>Only collect nodes we have traversed </p>
|
|
2794
2794
|
|
|
2795
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2796
|
-
<div class="fragment"><div class="line"><a name="
|
|
2797
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ad849ae4509e88832f784c748468ab959"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ad849ae4509e88832f784c748468ab959">SVF::DDAVFSolver::getLocToDPMVecMap</a></div><div class="ttdeci">const LocToDPMVecMap & getLocToDPMVecMap() const</div><div class="ttdoc">Map a SVFGNode to its dpms for handling value-flow cycles. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2798
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a52737dd41c63404ef91691154aa250ce"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">SVF::DDAVFSolver::findPT</a></div><div class="ttdeci">virtual const CPtSet & findPT(const DPIm &dpm)</div><div class="ttdoc">Compute points-to. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2795
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00271">271</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2796
|
+
<div class="fragment"><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> it = edgeSet.begin(), eit = edgeSet.end(); it != eit; ++it)</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>* edge = *it;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* dst = edge->getDstNode();</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keyword">typename</span> LocToDPMVecMap::const_iterator locIt = <a class="code" href="classSVF_1_1DDAVFSolver.html#ad849ae4509e88832f784c748468ab959">getLocToDPMVecMap</a>().find(dst->getId());</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">if</span> (locIt == <a class="code" href="classSVF_1_1DDAVFSolver.html#ad849ae4509e88832f784c748468ab959">getLocToDPMVecMap</a>().end())</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">DPTItemSet</a> dpmSet(locIt->second.begin(), locIt->second.end());</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">for</span>(<span class="keyword">typename</span> DPTItemSet::const_iterator it = dpmSet.begin(),eit = dpmSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keyword">const</span> DPIm& dstDpm = *it;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">if</span>(!indirectCall && SVFUtil::isa<IndirectSVFGEdge>(edge) && !SVFUtil::isa<LoadSVFGNode>(edge->getDstNode()))</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordflow">if</span>(dstDpm.getCurNodeID() == dpm.getCurNodeID())</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\t Recompute, forward from :"</span>);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">_NumOfStepInCycle</a>++);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">clearbkVisited</a>(dstDpm);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(dstDpm);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  }</div><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">else</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">if</span>(indirectCall)</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\t Recompute for indirect call from :"</span>);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\t Recompute forward from :"</span>);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">_NumOfStepInCycle</a>++);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">clearbkVisited</a>(dstDpm);</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(dstDpm);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  }</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  }</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
|
|
2797
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ad849ae4509e88832f784c748468ab959"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ad849ae4509e88832f784c748468ab959">SVF::DDAVFSolver::getLocToDPMVecMap</a></div><div class="ttdeci">const LocToDPMVecMap & getLocToDPMVecMap() const</div><div class="ttdoc">Map a SVFGNode to its dpms for handling value-flow cycles. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00661">DDAVFSolver.h:661</a></div></div>
|
|
2798
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a52737dd41c63404ef91691154aa250ce"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">SVF::DDAVFSolver::findPT</a></div><div class="ttdeci">virtual const CPtSet & findPT(const DPIm &dpm)</div><div class="ttdoc">Compute points-to. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00138">DDAVFSolver.h:138</a></div></div>
|
|
2799
2799
|
<div class="ttc" id="namespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
|
|
2800
2800
|
<div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
|
|
2801
2801
|
<div class="ttc" id="SVFBasicTypes_8h_html_a6c9e2209a2c38607a9e3b7fab242886a"><div class="ttname"><a href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a></div><div class="ttdeci">#define DOSTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00156">SVFBasicTypes.h:156</a></div></div>
|
|
2802
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a05d6b074b04aad7dc1f3cbe0ca587467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">SVF::DDAVFSolver::DPTItemSet</a></div><div class="ttdeci">OrderedSet< DPIm > DPTItemSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2802
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a05d6b074b04aad7dc1f3cbe0ca587467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">SVF::DDAVFSolver::DPTItemSet</a></div><div class="ttdeci">OrderedSet< DPIm > DPTItemSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00055">DDAVFSolver.h:55</a></div></div>
|
|
2803
2803
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
2804
|
-
<div class="ttc" id="classSVF_1_1DDAStat_html_aa9daed44e9d2ca2722ea9ab9d4517a21"><div class="ttname"><a href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">SVF::DDAStat::_NumOfStepInCycle</a></div><div class="ttdeci">u64_t _NumOfStepInCycle</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#
|
|
2804
|
+
<div class="ttc" id="classSVF_1_1DDAStat_html_aa9daed44e9d2ca2722ea9ab9d4517a21"><div class="ttname"><a href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">SVF::DDAStat::_NumOfStepInCycle</a></div><div class="ttdeci">u64_t _NumOfStepInCycle</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00060">DDAStat.h:60</a></div></div>
|
|
2805
2805
|
<div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
|
|
2806
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa7e5839c5bc6f913561de10bce61e74b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">SVF::DDAVFSolver::clearbkVisited</a></div><div class="ttdeci">void clearbkVisited(const DPIm &dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2806
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa7e5839c5bc6f913561de10bce61e74b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">SVF::DDAVFSolver::clearbkVisited</a></div><div class="ttdeci">void clearbkVisited(const DPIm &dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00545">DDAVFSolver.h:545</a></div></div>
|
|
2807
2807
|
<div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
|
|
2808
2808
|
<div class="ttc" id="namespaceSVF_html_aa4745cf70b26e17d59752356f0b19dd9"><div class="ttname"><a href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVF::SVFGEdge</a></div><div class="ttdeci">VFGEdge SVFGEdge</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00040">SVFG.h:40</a></div></div>
|
|
2809
2809
|
</div><!-- fragment -->
|
|
@@ -2835,8 +2835,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2835
2835
|
</table>
|
|
2836
2836
|
</div><div class="memdoc">
|
|
2837
2837
|
|
|
2838
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2839
|
-
<div class="fragment"><div class="line"><a name="
|
|
2838
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00673">673</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2839
|
+
<div class="fragment"><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  {</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  assert(dpm == <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>[dpm.getLoc()].back() && <span class="stringliteral">"dpm not match with the end of vector"</span>);</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>[dpm.getLoc()->getId()].erase(dpm);</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00785">DDAVFSolver.h:785</a></div></div>
|
|
2840
2840
|
</div><!-- fragment -->
|
|
2841
2841
|
</div>
|
|
2842
2842
|
</div>
|
|
@@ -2867,14 +2867,14 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2867
2867
|
|
|
2868
2868
|
<p>Reset visited map for next points-to query. </p>
|
|
2869
2869
|
|
|
2870
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2871
|
-
<div class="fragment"><div class="line"><a name="
|
|
2872
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ab60c701f1881d88aa4440991fb972638"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ab60c701f1881d88aa4440991fb972638">SVF::DDAVFSolver::OOBResetVisited</a></div><div class="ttdeci">void OOBResetVisited()</div><div class="ttdoc">Reset visited map if the current query is out-of-budget. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2873
|
-
<div class="ttc" id="classSVF_1_1DDAStat_html_a674248754300d58fcef8eaf09436249e"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">SVF::DDAStat::_NumOfStep</a></div><div class="ttdeci">u64_t _NumOfStep</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#
|
|
2874
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6d62420837fe0c7814fc4da68a91eda4"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">SVF::DDAVFSolver::loadToPTCVarMap</a></div><div class="ttdeci">DPMToCVarMap loadToPTCVarMap</div><div class="ttdoc">map a load dpm to its cvar pointed by its pointer operand </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2875
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a9d8959dfee05685cd74d0d7a78069692"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">SVF::DDAVFSolver::dpmToloadDpmMap</a></div><div class="ttdeci">DPMToDPMMap dpmToloadDpmMap</div><div class="ttdoc">dpms at loads for may/must-alias analysis with stores </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2876
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_afdecfbacc64cb8d694268aa73ec8a7b6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">SVF::DDAVFSolver::outOfBudgetQuery</a></div><div class="ttdeci">bool outOfBudgetQuery</div><div class="ttdoc">Whether the current query is out of step limits. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2877
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2870
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00319">319</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2871
|
+
<div class="fragment"><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a>)</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#ab60c701f1881d88aa4440991fb972638">OOBResetVisited</a>();</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>.clear();</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.clear();</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.clear();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">_NumOfStep</a> = 0;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
|
|
2872
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ab60c701f1881d88aa4440991fb972638"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ab60c701f1881d88aa4440991fb972638">SVF::DDAVFSolver::OOBResetVisited</a></div><div class="ttdeci">void OOBResetVisited()</div><div class="ttdoc">Reset visited map if the current query is out-of-budget. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00331">DDAVFSolver.h:331</a></div></div>
|
|
2873
|
+
<div class="ttc" id="classSVF_1_1DDAStat_html_a674248754300d58fcef8eaf09436249e"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">SVF::DDAStat::_NumOfStep</a></div><div class="ttdeci">u64_t _NumOfStep</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00059">DDAStat.h:59</a></div></div>
|
|
2874
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6d62420837fe0c7814fc4da68a91eda4"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">SVF::DDAVFSolver::loadToPTCVarMap</a></div><div class="ttdeci">DPMToCVarMap loadToPTCVarMap</div><div class="ttdoc">map a load dpm to its cvar pointed by its pointer operand </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00787">DDAVFSolver.h:787</a></div></div>
|
|
2875
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a9d8959dfee05685cd74d0d7a78069692"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">SVF::DDAVFSolver::dpmToloadDpmMap</a></div><div class="ttdeci">DPMToDPMMap dpmToloadDpmMap</div><div class="ttdoc">dpms at loads for may/must-alias analysis with stores </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00786">DDAVFSolver.h:786</a></div></div>
|
|
2876
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_afdecfbacc64cb8d694268aa73ec8a7b6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">SVF::DDAVFSolver::outOfBudgetQuery</a></div><div class="ttdeci">bool outOfBudgetQuery</div><div class="ttdoc">Whether the current query is out of step limits. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00774">DDAVFSolver.h:774</a></div></div>
|
|
2877
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00785">DDAVFSolver.h:785</a></div></div>
|
|
2878
2878
|
</div><!-- fragment -->
|
|
2879
2879
|
</div>
|
|
2880
2880
|
</div>
|
|
@@ -2907,18 +2907,18 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2907
2907
|
<p>resolve function pointer </p>
|
|
2908
2908
|
<p>use pre-analysis call graph to approximate all potential callsites </p>
|
|
2909
2909
|
|
|
2910
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2911
|
-
<div class="fragment"><div class="line"><a name="
|
|
2910
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00490">490</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2911
|
+
<div class="fragment"><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  {</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> CallICFGNode* cbn= <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()->isCallSiteRetSVFGNode(dpm.getLoc()))</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23">isIndirectCallSites</a>(cbn))</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  {</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> funPtr = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6">getFunPtr</a>(cbn);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  DPIm funPtrDpm(dpm);</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  funPtrDpm.setLocVar(<a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-><a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(funPtr)),funPtr);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(funPtrDpm);</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  }</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> SVFFunction* fun = <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()->isFunEntrySVFGNode(dpm.getLoc()))</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  {</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#ac227096ad71dfda8bc48c139fccb3af2">CallInstSet</a> csSet;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#a9a4b0c6672288b9201ab254b4c49548d">getIndCallSitesInvokingCallee</a>(fun,csSet);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordflow">for</span>(CallInstSet::const_iterator it = csSet.begin(), eit = csSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> funPtr = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6">getFunPtr</a>(*it);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  DPIm funPtrDpm(dpm);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  funPtrDpm.setLocVar(<a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-><a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(funPtr)),funPtr);</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(funPtrDpm);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  }</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  }</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a55803a2d30137b5ad15c5afeec7c6b28"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">SVF::DDAVFSolver::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">GetDefinition SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00342">DDAVFSolver.h:342</a></div></div>
|
|
2912
2912
|
<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>
|
|
2913
2913
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a3dbe0b17694daa74f648a70e77efaf23"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23">SVF::SVFIR::isIndirectCallSites</a></div><div class="ttdeci">bool isIndirectCallSites(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00315">SVFIR.h:315</a></div></div>
|
|
2914
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a52737dd41c63404ef91691154aa250ce"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">SVF::DDAVFSolver::findPT</a></div><div class="ttdeci">virtual const CPtSet & findPT(const DPIm &dpm)</div><div class="ttdoc">Compute points-to. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2914
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a52737dd41c63404ef91691154aa250ce"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">SVF::DDAVFSolver::findPT</a></div><div class="ttdeci">virtual const CPtSet & findPT(const DPIm &dpm)</div><div class="ttdoc">Compute points-to. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00138">DDAVFSolver.h:138</a></div></div>
|
|
2915
2915
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00174">PointerAnalysis.h:174</a></div></div>
|
|
2916
2916
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a9a4b0c6672288b9201ab254b4c49548d"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a9a4b0c6672288b9201ab254b4c49548d">SVF::PTACallGraph::getIndCallSitesInvokingCallee</a></div><div class="ttdeci">void getIndCallSitesInvokingCallee(const SVFFunction *callee, PTACallGraphEdge::CallInstSet &csSet)</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00248">PTACallGraph.cpp:248</a></div></div>
|
|
2917
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2918
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ac227096ad71dfda8bc48c139fccb3af2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ac227096ad71dfda8bc48c139fccb3af2">SVF::DDAVFSolver::CallInstSet</a></div><div class="ttdeci">PTACallGraphEdge::CallInstSet CallInstSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2917
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
|
|
2918
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ac227096ad71dfda8bc48c139fccb3af2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ac227096ad71dfda8bc48c139fccb3af2">SVF::DDAVFSolver::CallInstSet</a></div><div class="ttdeci">PTACallGraphEdge::CallInstSet CallInstSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00053">DDAVFSolver.h:53</a></div></div>
|
|
2919
2919
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a17c5d9fa7c0bd3cd03c06b5ff0906eb6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6">SVF::SVFIR::getFunPtr</a></div><div class="ttdeci">NodeID getFunPtr(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00303">SVFIR.h:303</a></div></div>
|
|
2920
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2921
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2920
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00118">DDAVFSolver.h:118</a></div></div>
|
|
2921
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00777">DDAVFSolver.h:777</a></div></div>
|
|
2922
2922
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00391">GenericGraph.h:391</a></div></div>
|
|
2923
2923
|
</div><!-- fragment -->
|
|
2924
2924
|
</div>
|
|
@@ -2961,13 +2961,13 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2961
2961
|
|
|
2962
2962
|
<p>remove strong updates num if the dpm goes to weak updates branch </p>
|
|
2963
2963
|
|
|
2964
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
2965
|
-
<div class="fragment"><div class="line"><a name="
|
|
2964
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00763">763</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
2965
|
+
<div class="fragment"><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  {</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">DPTItemSet</a>& dpmSet = <a class="code" href="classSVF_1_1DDAVFSolver.html#af66895278f0ecbc882f9e4f43ef9c8a8">storeToDPMs</a>[node];</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <span class="keywordflow">if</span> (dpmSet.erase(dpm))</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  {</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">_NumOfStrongUpdates</a>--;</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <span class="keywordflow">if</span>(dpmSet.empty())</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#ad53ad7a958c05b45624d2859a6a9e647">_StrongUpdateStores</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#ad5337b5aeed50f8b7ffd56b14ee25c9f">reset</a>(node->getId());</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  }</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
|
|
2966
2966
|
<div class="ttc" id="classSVF_1_1SparseBitVector_html_ad5337b5aeed50f8b7ffd56b14ee25c9f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ad5337b5aeed50f8b7ffd56b14ee25c9f">SVF::SparseBitVector::reset</a></div><div class="ttdeci">void reset(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00722">SparseBitVector.h:722</a></div></div>
|
|
2967
|
-
<div class="ttc" id="classSVF_1_1DDAStat_html_ad53ad7a958c05b45624d2859a6a9e647"><div class="ttname"><a href="classSVF_1_1DDAStat.html#ad53ad7a958c05b45624d2859a6a9e647">SVF::DDAStat::_StrongUpdateStores</a></div><div class="ttdeci">NodeBS _StrongUpdateStores</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#
|
|
2968
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a05d6b074b04aad7dc1f3cbe0ca587467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">SVF::DDAVFSolver::DPTItemSet</a></div><div class="ttdeci">OrderedSet< DPIm > DPTItemSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2969
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_af66895278f0ecbc882f9e4f43ef9c8a8"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af66895278f0ecbc882f9e4f43ef9c8a8">SVF::DDAVFSolver::storeToDPMs</a></div><div class="ttdeci">StoreToPMSetMap storeToDPMs</div><div class="ttdoc">map store to set of DPM which have been stong updated there </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
2970
|
-
<div class="ttc" id="classSVF_1_1DDAStat_html_a5c007645d73bfc5cfefef672f3c1dcf1"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">SVF::DDAStat::_NumOfStrongUpdates</a></div><div class="ttdeci">u32_t _NumOfStrongUpdates</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#
|
|
2967
|
+
<div class="ttc" id="classSVF_1_1DDAStat_html_ad53ad7a958c05b45624d2859a6a9e647"><div class="ttname"><a href="classSVF_1_1DDAStat.html#ad53ad7a958c05b45624d2859a6a9e647">SVF::DDAStat::_StrongUpdateStores</a></div><div class="ttdeci">NodeBS _StrongUpdateStores</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00066">DDAStat.h:66</a></div></div>
|
|
2968
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a05d6b074b04aad7dc1f3cbe0ca587467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">SVF::DDAVFSolver::DPTItemSet</a></div><div class="ttdeci">OrderedSet< DPIm > DPTItemSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00055">DDAVFSolver.h:55</a></div></div>
|
|
2969
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_af66895278f0ecbc882f9e4f43ef9c8a8"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af66895278f0ecbc882f9e4f43ef9c8a8">SVF::DDAVFSolver::storeToDPMs</a></div><div class="ttdeci">StoreToPMSetMap storeToDPMs</div><div class="ttdoc">map store to set of DPM which have been stong updated there </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00789">DDAVFSolver.h:789</a></div></div>
|
|
2970
|
+
<div class="ttc" id="classSVF_1_1DDAStat_html_a5c007645d73bfc5cfefef672f3c1dcf1"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">SVF::DDAStat::_NumOfStrongUpdates</a></div><div class="ttdeci">u32_t _NumOfStrongUpdates</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00055">DDAStat.h:55</a></div></div>
|
|
2971
2971
|
</div><!-- fragment -->
|
|
2972
2972
|
</div>
|
|
2973
2973
|
</div>
|
|
@@ -2999,8 +2999,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
2999
2999
|
|
|
3000
3000
|
<p>Set callgraph. </p>
|
|
3001
3001
|
|
|
3002
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3003
|
-
<div class="fragment"><div class="line"><a name="
|
|
3002
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00628">628</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3003
|
+
<div class="fragment"><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  {</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">_callGraph</a> = cg;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_abf24080617c6a74abed9f0bb0bc9c0c5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">SVF::DDAVFSolver::_callGraph</a></div><div class="ttdeci">PTACallGraph * _callGraph</div><div class="ttdoc">CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00779">DDAVFSolver.h:779</a></div></div>
|
|
3004
3004
|
</div><!-- fragment -->
|
|
3005
3005
|
</div>
|
|
3006
3006
|
</div>
|
|
@@ -3032,8 +3032,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3032
3032
|
|
|
3033
3033
|
<p>Set callgraphSCC. </p>
|
|
3034
3034
|
|
|
3035
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3036
|
-
<div class="fragment"><div class="line"><a name="
|
|
3035
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00633">633</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3036
|
+
<div class="fragment"><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  {</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">_callGraphSCC</a> = scc;</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a4c307d486756daa1e79595b1e9edc40a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">SVF::DDAVFSolver::_callGraphSCC</a></div><div class="ttdeci">CallGraphSCC * _callGraphSCC</div><div class="ttdoc">SCC for CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00780">DDAVFSolver.h:780</a></div></div>
|
|
3037
3037
|
</div><!-- fragment -->
|
|
3038
3038
|
</div>
|
|
3039
3039
|
</div>
|
|
@@ -3065,8 +3065,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3065
3065
|
|
|
3066
3066
|
<p>Set <a class="el" href="classSVF_1_1DDAStat.html">DDAStat</a>. </p>
|
|
3067
3067
|
|
|
3068
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3069
|
-
<div class="fragment"><div class="line"><a name="
|
|
3068
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00748">748</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3069
|
+
<div class="fragment"><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  {</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a> = s;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
|
|
3070
3070
|
</div><!-- fragment -->
|
|
3071
3071
|
</div>
|
|
3072
3072
|
</div>
|
|
@@ -3107,15 +3107,15 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3107
3107
|
</div><div class="memdoc">
|
|
3108
3108
|
<p>Backward traverse for top-level pointers of load/store statements </p>
|
|
3109
3109
|
|
|
3110
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3111
|
-
<div class="fragment"><div class="line"><a name="
|
|
3112
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a55803a2d30137b5ad15c5afeec7c6b28"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">SVF::DDAVFSolver::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">GetDefinition SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
3110
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00387">387</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3111
|
+
<div class="fragment"><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a3ce49be3724e1e8423ccdfa726fbf6c8">LoadSVFGNode</a>* load = SVFUtil::cast<LoadSVFGNode>(oldDpm.getLoc());</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* loadSrc = <a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(load->getPAGSrcNode());</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"!##start new computation from loadSrc svfgNode "</span> <<</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  load->getId() << <span class="stringliteral">" --> "</span> << loadSrc->getId() << <span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-><a class="code" href="classSVF_1_1VFG.html#ae1348fd6d196ee8a6bd8d98022464d50">getIntraVFGEdge</a>(loadSrc,load,<a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVFGEdge::IntraDirectVF</a>);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  assert(edge && <span class="stringliteral">"Edge not found!!"</span>);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">backwardPropDpm</a>(pts,load->getPAGSrcNodeID(),oldDpm,edge);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  }</div><div class="ttc" id="classSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVF::VFGEdge::IntraDirectVF</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00053">VFGEdge.h:53</a></div></div>
|
|
3112
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a55803a2d30137b5ad15c5afeec7c6b28"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">SVF::DDAVFSolver::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">GetDefinition SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00342">DDAVFSolver.h:342</a></div></div>
|
|
3113
3113
|
<div class="ttc" id="namespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
|
|
3114
3114
|
<div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
|
|
3115
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &pts, NodeID ptr, const DPIm &oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
3115
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &pts, NodeID ptr, const DPIm &oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00421">DDAVFSolver.h:421</a></div></div>
|
|
3116
3116
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
3117
3117
|
<div class="ttc" id="classSVF_1_1VFG_html_ae1348fd6d196ee8a6bd8d98022464d50"><div class="ttname"><a href="classSVF_1_1VFG.html#ae1348fd6d196ee8a6bd8d98022464d50">SVF::VFG::getIntraVFGEdge</a></div><div class="ttdeci">VFGEdge * getIntraVFGEdge(const VFGNode *src, const VFGNode *dst, VFGEdge::VFGEdgeK kind)</div><div class="ttdoc">Get a SVFG edge according to src and dst. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l00916">VFG.cpp:916</a></div></div>
|
|
3118
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
3118
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00118">DDAVFSolver.h:118</a></div></div>
|
|
3119
3119
|
<div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
|
|
3120
3120
|
<div class="ttc" id="namespaceSVF_html_aa4745cf70b26e17d59752356f0b19dd9"><div class="ttname"><a href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVF::SVFGEdge</a></div><div class="ttdeci">VFGEdge SVFGEdge</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00040">SVFG.h:40</a></div></div>
|
|
3121
3121
|
<div class="ttc" id="namespaceSVF_html_a3ce49be3724e1e8423ccdfa726fbf6c8"><div class="ttname"><a href="namespaceSVF.html#a3ce49be3724e1e8423ccdfa726fbf6c8">SVF::LoadSVFGNode</a></div><div class="ttdeci">LoadVFGNode LoadSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00054">SVFG.h:54</a></div></div>
|
|
@@ -3158,16 +3158,16 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3158
3158
|
</table>
|
|
3159
3159
|
</div><div class="memdoc">
|
|
3160
3160
|
|
|
3161
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3162
|
-
<div class="fragment"><div class="line"><a name="
|
|
3163
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a55803a2d30137b5ad15c5afeec7c6b28"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">SVF::DDAVFSolver::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">GetDefinition SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
3161
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00398">398</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3162
|
+
<div class="fragment"><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a54c5725186e66ead6faf53c10a288714">StoreSVFGNode</a>* store = SVFUtil::cast<StoreSVFGNode>(oldDpm.getLoc());</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* storeDst = <a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(store->getPAGDstNode());</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"!##start new computation from storeDst svfgNode "</span> <<</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  store->getId() << <span class="stringliteral">" --> "</span> << storeDst->getId() << <span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-><a class="code" href="classSVF_1_1VFG.html#ae1348fd6d196ee8a6bd8d98022464d50">getIntraVFGEdge</a>(storeDst,store,<a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVFGEdge::IntraDirectVF</a>);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  assert(edge && <span class="stringliteral">"Edge not found!!"</span>);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">backwardPropDpm</a>(pts,store->getPAGDstNodeID(),oldDpm,edge);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  }</div><div class="ttc" id="classSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVF::VFGEdge::IntraDirectVF</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00053">VFGEdge.h:53</a></div></div>
|
|
3163
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a55803a2d30137b5ad15c5afeec7c6b28"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">SVF::DDAVFSolver::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">GetDefinition SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00342">DDAVFSolver.h:342</a></div></div>
|
|
3164
3164
|
<div class="ttc" id="namespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
|
|
3165
3165
|
<div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
|
|
3166
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &pts, NodeID ptr, const DPIm &oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
3166
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &pts, NodeID ptr, const DPIm &oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00421">DDAVFSolver.h:421</a></div></div>
|
|
3167
3167
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
3168
3168
|
<div class="ttc" id="namespaceSVF_html_a54c5725186e66ead6faf53c10a288714"><div class="ttname"><a href="namespaceSVF.html#a54c5725186e66ead6faf53c10a288714">SVF::StoreSVFGNode</a></div><div class="ttdeci">StoreVFGNode StoreSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00053">SVFG.h:53</a></div></div>
|
|
3169
3169
|
<div class="ttc" id="classSVF_1_1VFG_html_ae1348fd6d196ee8a6bd8d98022464d50"><div class="ttname"><a href="classSVF_1_1VFG.html#ae1348fd6d196ee8a6bd8d98022464d50">SVF::VFG::getIntraVFGEdge</a></div><div class="ttdeci">VFGEdge * getIntraVFGEdge(const VFGNode *src, const VFGNode *dst, VFGEdge::VFGEdgeK kind)</div><div class="ttdoc">Get a SVFG edge according to src and dst. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l00916">VFG.cpp:916</a></div></div>
|
|
3170
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
3170
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00118">DDAVFSolver.h:118</a></div></div>
|
|
3171
3171
|
<div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
|
|
3172
3172
|
<div class="ttc" id="namespaceSVF_html_aa4745cf70b26e17d59752356f0b19dd9"><div class="ttname"><a href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVF::SVFGEdge</a></div><div class="ttdeci">VFGEdge SVFGEdge</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00040">SVFG.h:40</a></div></div>
|
|
3173
3173
|
</div><!-- fragment -->
|
|
@@ -3200,11 +3200,11 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3200
3200
|
|
|
3201
3201
|
<p><a class="el" href="classSVF_1_1SVFG.html">SVFG</a> SCC detection. </p>
|
|
3202
3202
|
|
|
3203
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3204
|
-
<div class="fragment"><div class="line"><a name="
|
|
3205
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a502207f81ed22fa42f9e18ccba83ad4e"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a502207f81ed22fa42f9e18ccba83ad4e">SVF::DDAVFSolver::SVFGSCC</a></div><div class="ttdeci">SCCDetection< SVFG * > SVFGSCC</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
3206
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
3207
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
3203
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00604">604</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3204
|
+
<div class="fragment"><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  {</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  {</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a502207f81ed22fa42f9e18ccba83ad4e">SVFGSCC</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>());</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  }</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>-><a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>();</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  }</div><div class="ttc" id="classSVF_1_1SCCDetection_html_a123b5006a6da7053e5e357140da3c5a3"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">SVF::SCCDetection::find</a></div><div class="ttdeci">void find(void)</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00308">SCC.h:308</a></div></div>
|
|
3205
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a502207f81ed22fa42f9e18ccba83ad4e"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a502207f81ed22fa42f9e18ccba83ad4e">SVF::DDAVFSolver::SVFGSCC</a></div><div class="ttdeci">SCCDetection< SVFG * > SVFGSCC</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00051">DDAVFSolver.h:51</a></div></div>
|
|
3206
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00781">DDAVFSolver.h:781</a></div></div>
|
|
3207
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00118">DDAVFSolver.h:118</a></div></div>
|
|
3208
3208
|
</div><!-- fragment -->
|
|
3209
3209
|
</div>
|
|
3210
3210
|
</div>
|
|
@@ -3234,11 +3234,11 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3234
3234
|
</table>
|
|
3235
3235
|
</div><div class="memdoc">
|
|
3236
3236
|
|
|
3237
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3238
|
-
<div class="fragment"><div class="line"><a name="
|
|
3239
|
-
<div class="ttc" id="classSVF_1_1DDAStat_html_a674248754300d58fcef8eaf09436249e"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">SVF::DDAStat::_NumOfStep</a></div><div class="ttdeci">u64_t _NumOfStep</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#
|
|
3240
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a0b1f774883adc7d535f8363bf3c8b1e8"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a0b1f774883adc7d535f8363bf3c8b1e8">SVF::DDAVFSolver::isOutOfBudgetDpm</a></div><div class="ttdeci">bool isOutOfBudgetDpm(const DPIm &dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
3241
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_afdecfbacc64cb8d694268aa73ec8a7b6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">SVF::DDAVFSolver::outOfBudgetQuery</a></div><div class="ttdeci">bool outOfBudgetQuery</div><div class="ttdoc">Whether the current query is out of step limits. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
3237
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00726">726</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3238
|
+
<div class="fragment"><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  {</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <span class="keywordflow">if</span>(++<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">_NumOfStep</a> > DPIm::getMaxBudget())</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a0b1f774883adc7d535f8363bf3c8b1e8">isOutOfBudgetDpm</a>(dpm) || <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a>;</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
|
|
3239
|
+
<div class="ttc" id="classSVF_1_1DDAStat_html_a674248754300d58fcef8eaf09436249e"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">SVF::DDAStat::_NumOfStep</a></div><div class="ttdeci">u64_t _NumOfStep</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00059">DDAStat.h:59</a></div></div>
|
|
3240
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a0b1f774883adc7d535f8363bf3c8b1e8"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a0b1f774883adc7d535f8363bf3c8b1e8">SVF::DDAVFSolver::isOutOfBudgetDpm</a></div><div class="ttdeci">bool isOutOfBudgetDpm(const DPIm &dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00741">DDAVFSolver.h:741</a></div></div>
|
|
3241
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_afdecfbacc64cb8d694268aa73ec8a7b6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">SVF::DDAVFSolver::outOfBudgetQuery</a></div><div class="ttdeci">bool outOfBudgetQuery</div><div class="ttdoc">Whether the current query is out of step limits. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00774">DDAVFSolver.h:774</a></div></div>
|
|
3242
3242
|
</div><!-- fragment -->
|
|
3243
3243
|
</div>
|
|
3244
3244
|
</div>
|
|
@@ -3280,8 +3280,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3280
3280
|
|
|
3281
3281
|
<p>Union pts. </p>
|
|
3282
3282
|
|
|
3283
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3284
|
-
<div class="fragment"><div class="line"><a name="
|
|
3283
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00102">102</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3284
|
+
<div class="fragment"><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">return</span> (pts |= targetPts);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  }</div></div><!-- fragment -->
|
|
3285
3285
|
</div>
|
|
3286
3286
|
</div>
|
|
3287
3287
|
<a id="ae7949e141978474f3b6cb510bacafa37"></a>
|
|
@@ -3324,10 +3324,10 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3324
3324
|
|
|
3325
3325
|
<p>Reimplemented in <a class="el" href="classSVF_1_1FlowDDA.html#a3d08dfe5a1571f5d631afcd304905a05">SVF::FlowDDA</a>.</p>
|
|
3326
3326
|
|
|
3327
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3328
|
-
<div class="fragment"><div class="line"><a name="
|
|
3329
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2d6df8149b45d719e22fc505df94171a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2d6df8149b45d719e22fc505df94171a">SVF::DDAVFSolver::dpmToTLCPtSetMap</a></div><div class="ttdeci">DPImToCPtSetMap dpmToTLCPtSetMap</div><div class="ttdoc">points-to caching map for top-level vars </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
3330
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2565bf8dcacb22350dc1dc98ec7595f2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2565bf8dcacb22350dc1dc98ec7595f2">SVF::DDAVFSolver::dpmToADCPtSetMap</a></div><div class="ttdeci">DPImToCPtSetMap dpmToADCPtSetMap</div><div class="ttdoc">points-to caching map for address-taken vars </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
3327
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00107">107</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3328
|
+
<div class="fragment"><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  CPtSet& pts = <a class="code" href="classSVF_1_1DDAVFSolver.html#a7b35588de00e322afd742041bf735571">isTopLevelPtrStmt</a>(dpm.getLoc()) ? <a class="code" href="classSVF_1_1DDAVFSolver.html#a2d6df8149b45d719e22fc505df94171a">dpmToTLCPtSetMap</a>[dpm] : <a class="code" href="classSVF_1_1DDAVFSolver.html#a2565bf8dcacb22350dc1dc98ec7595f2">dpmToADCPtSetMap</a>[dpm];</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">return</span> pts |= targetPts;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7b35588de00e322afd742041bf735571"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7b35588de00e322afd742041bf735571">SVF::DDAVFSolver::isTopLevelPtrStmt</a></div><div class="ttdeci">bool isTopLevelPtrStmt(const SVFGNode *stmt)</div><div class="ttdoc">Whether this is a top-level pointer statement. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00581">DDAVFSolver.h:581</a></div></div>
|
|
3329
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2d6df8149b45d719e22fc505df94171a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2d6df8149b45d719e22fc505df94171a">SVF::DDAVFSolver::dpmToTLCPtSetMap</a></div><div class="ttdeci">DPImToCPtSetMap dpmToTLCPtSetMap</div><div class="ttdoc">points-to caching map for top-level vars </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00783">DDAVFSolver.h:783</a></div></div>
|
|
3330
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2565bf8dcacb22350dc1dc98ec7595f2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2565bf8dcacb22350dc1dc98ec7595f2">SVF::DDAVFSolver::dpmToADCPtSetMap</a></div><div class="ttdeci">DPImToCPtSetMap dpmToADCPtSetMap</div><div class="ttdoc">points-to caching map for address-taken vars </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00784">DDAVFSolver.h:784</a></div></div>
|
|
3331
3331
|
</div><!-- fragment -->
|
|
3332
3332
|
</div>
|
|
3333
3333
|
</div>
|
|
@@ -3367,13 +3367,13 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3367
3367
|
</table>
|
|
3368
3368
|
</div><div class="memdoc">
|
|
3369
3369
|
|
|
3370
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3371
|
-
<div class="fragment"><div class="line"><a name="
|
|
3372
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a99764ee5bc19378795fe464e9036e78b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">SVF::DDAVFSolver::unionDDAPts</a></div><div class="ttdeci">virtual bool unionDDAPts(CPtSet &pts, const CPtSet &targetPts)</div><div class="ttdoc">Union pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
3373
|
-
<div class="ttc" id="classSVF_1_1DDAStat_html_aae8366a4876154fa66298c7bf0fc47c4"><div class="ttname"><a href="classSVF_1_1DDAStat.html#aae8366a4876154fa66298c7bf0fc47c4">SVF::DDAStat::_AnaTimeCyclePerQuery</a></div><div class="ttdeci">double _AnaTimeCyclePerQuery</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#
|
|
3370
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00561">561</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3371
|
+
<div class="fragment"><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  {</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">unionDDAPts</a>(dpm, pts))</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  {</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>());</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#a8c5220108a65fa281959529cb1e9cc57">reCompute</a>(dpm);</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#aae8366a4876154fa66298c7bf0fc47c4">_AnaTimeCyclePerQuery</a> += <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>() - start);</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  }</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
|
|
3372
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a99764ee5bc19378795fe464e9036e78b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">SVF::DDAVFSolver::unionDDAPts</a></div><div class="ttdeci">virtual bool unionDDAPts(CPtSet &pts, const CPtSet &targetPts)</div><div class="ttdoc">Union pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00102">DDAVFSolver.h:102</a></div></div>
|
|
3373
|
+
<div class="ttc" id="classSVF_1_1DDAStat_html_aae8366a4876154fa66298c7bf0fc47c4"><div class="ttname"><a href="classSVF_1_1DDAStat.html#aae8366a4876154fa66298c7bf0fc47c4">SVF::DDAStat::_AnaTimeCyclePerQuery</a></div><div class="ttdeci">double _AnaTimeCyclePerQuery</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00062">DDAStat.h:62</a></div></div>
|
|
3374
3374
|
<div class="ttc" id="SVFBasicTypes_8h_html_a6c9e2209a2c38607a9e3b7fab242886a"><div class="ttname"><a href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a></div><div class="ttdeci">#define DOSTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00156">SVFBasicTypes.h:156</a></div></div>
|
|
3375
3375
|
<div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00041">SVFStat.cpp:41</a></div></div>
|
|
3376
|
-
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a8c5220108a65fa281959529cb1e9cc57"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a8c5220108a65fa281959529cb1e9cc57">SVF::DDAVFSolver::reCompute</a></div><div class="ttdeci">void reCompute(const DPIm &dpm)</div><div class="ttdoc">recompute points-to for value-flow cycles and indirect calls </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#
|
|
3376
|
+
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a8c5220108a65fa281959529cb1e9cc57"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a8c5220108a65fa281959529cb1e9cc57">SVF::DDAVFSolver::reCompute</a></div><div class="ttdeci">void reCompute(const DPIm &dpm)</div><div class="ttdoc">recompute points-to for value-flow cycles and indirect calls </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00250">DDAVFSolver.h:250</a></div></div>
|
|
3377
3377
|
</div><!-- fragment -->
|
|
3378
3378
|
</div>
|
|
3379
3379
|
</div>
|
|
@@ -3423,8 +3423,8 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3423
3423
|
|
|
3424
3424
|
<p>Reimplemented in <a class="el" href="classSVF_1_1ContextDDA.html#a6fb1be7eef65008c7fbab6bdfe186061">SVF::ContextDDA</a>, and <a class="el" href="classSVF_1_1FlowDDA.html#ae6257ef91e9d1c5aa95fdf5333c528b0">SVF::FlowDDA</a>.</p>
|
|
3425
3425
|
|
|
3426
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3427
|
-
<div class="fragment"><div class="line"><a name="
|
|
3426
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00532">532</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3427
|
+
<div class="fragment"><div class="line"><a name="l00532"></a><span class="lineno"> 532</span> {}</div></div><!-- fragment -->
|
|
3428
3428
|
</div>
|
|
3429
3429
|
</div>
|
|
3430
3430
|
<h2 class="groupheader">Friends And Related Function Documentation</h2>
|
|
@@ -3450,7 +3450,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3450
3450
|
</table>
|
|
3451
3451
|
</div><div class="memdoc">
|
|
3452
3452
|
|
|
3453
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3453
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00049">49</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3454
3454
|
|
|
3455
3455
|
</div>
|
|
3456
3456
|
</div>
|
|
@@ -3479,7 +3479,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3479
3479
|
|
|
3480
3480
|
<p><a class="el" href="classSVF_1_1Andersen.html">Andersen</a>'s analysis. </p>
|
|
3481
3481
|
|
|
3482
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3482
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00777">777</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3483
3483
|
|
|
3484
3484
|
</div>
|
|
3485
3485
|
</div>
|
|
@@ -3507,7 +3507,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3507
3507
|
|
|
3508
3508
|
<p>CallGraph. </p>
|
|
3509
3509
|
|
|
3510
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3510
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00779">779</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3511
3511
|
|
|
3512
3512
|
</div>
|
|
3513
3513
|
</div>
|
|
@@ -3535,7 +3535,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3535
3535
|
|
|
3536
3536
|
<p>SCC for CallGraph. </p>
|
|
3537
3537
|
|
|
3538
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3538
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00780">780</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3539
3539
|
|
|
3540
3540
|
</div>
|
|
3541
3541
|
</div>
|
|
@@ -3563,7 +3563,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3563
3563
|
|
|
3564
3564
|
<p><a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a>. </p>
|
|
3565
3565
|
|
|
3566
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3566
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00775">775</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3567
3567
|
|
|
3568
3568
|
</div>
|
|
3569
3569
|
</div>
|
|
@@ -3591,7 +3591,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3591
3591
|
|
|
3592
3592
|
<p><a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
|
|
3593
3593
|
|
|
3594
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3594
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00776">776</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3595
3595
|
|
|
3596
3596
|
</div>
|
|
3597
3597
|
</div>
|
|
@@ -3619,7 +3619,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3619
3619
|
|
|
3620
3620
|
<p>SCC for <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
|
|
3621
3621
|
|
|
3622
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3622
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00781">781</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3623
3623
|
|
|
3624
3624
|
</div>
|
|
3625
3625
|
</div>
|
|
@@ -3647,7 +3647,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3647
3647
|
|
|
3648
3648
|
<p>visited map during backward traversing </p>
|
|
3649
3649
|
|
|
3650
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3650
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00782">782</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3651
3651
|
|
|
3652
3652
|
</div>
|
|
3653
3653
|
</div>
|
|
@@ -3675,7 +3675,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3675
3675
|
|
|
3676
3676
|
<p>candidate pointers; </p>
|
|
3677
3677
|
|
|
3678
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3678
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00778">778</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3679
3679
|
|
|
3680
3680
|
</div>
|
|
3681
3681
|
</div>
|
|
@@ -3703,7 +3703,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3703
3703
|
|
|
3704
3704
|
<p>DDA stat. </p>
|
|
3705
3705
|
|
|
3706
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3706
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00790">790</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3707
3707
|
|
|
3708
3708
|
</div>
|
|
3709
3709
|
</div>
|
|
@@ -3731,7 +3731,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3731
3731
|
|
|
3732
3732
|
<p>points-to caching map for address-taken vars </p>
|
|
3733
3733
|
|
|
3734
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3734
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00784">784</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3735
3735
|
|
|
3736
3736
|
</div>
|
|
3737
3737
|
</div>
|
|
@@ -3759,7 +3759,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3759
3759
|
|
|
3760
3760
|
<p>dpms at loads for may/must-alias analysis with stores </p>
|
|
3761
3761
|
|
|
3762
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3762
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00786">786</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3763
3763
|
|
|
3764
3764
|
</div>
|
|
3765
3765
|
</div>
|
|
@@ -3787,7 +3787,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3787
3787
|
|
|
3788
3788
|
<p>points-to caching map for top-level vars </p>
|
|
3789
3789
|
|
|
3790
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3790
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00783">783</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3791
3791
|
|
|
3792
3792
|
</div>
|
|
3793
3793
|
</div>
|
|
@@ -3815,7 +3815,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3815
3815
|
|
|
3816
3816
|
<p>map a load dpm to its cvar pointed by its pointer operand </p>
|
|
3817
3817
|
|
|
3818
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3818
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00787">787</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3819
3819
|
|
|
3820
3820
|
</div>
|
|
3821
3821
|
</div>
|
|
@@ -3843,7 +3843,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3843
3843
|
|
|
3844
3844
|
<p>map location to its dpms </p>
|
|
3845
3845
|
|
|
3846
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3846
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00785">785</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3847
3847
|
|
|
3848
3848
|
</div>
|
|
3849
3849
|
</div>
|
|
@@ -3871,7 +3871,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3871
3871
|
|
|
3872
3872
|
<p>out of budget dpm set </p>
|
|
3873
3873
|
|
|
3874
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3874
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00788">788</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3875
3875
|
|
|
3876
3876
|
</div>
|
|
3877
3877
|
</div>
|
|
@@ -3899,7 +3899,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3899
3899
|
|
|
3900
3900
|
<p>Whether the current query is out of step limits. </p>
|
|
3901
3901
|
|
|
3902
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3902
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00774">774</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3903
3903
|
|
|
3904
3904
|
</div>
|
|
3905
3905
|
</div>
|
|
@@ -3927,7 +3927,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3927
3927
|
|
|
3928
3928
|
<p>map store to set of DPM which have been stong updated there </p>
|
|
3929
3929
|
|
|
3930
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3930
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00789">789</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3931
3931
|
|
|
3932
3932
|
</div>
|
|
3933
3933
|
</div>
|
|
@@ -3955,7 +3955,7 @@ template<class CVar, class CPtSet, class DPIm> </div>
|
|
|
3955
3955
|
|
|
3956
3956
|
<p><a class="el" href="classSVF_1_1SVFG.html">SVFG</a> Builder. </p>
|
|
3957
3957
|
|
|
3958
|
-
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#
|
|
3958
|
+
<p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00791">791</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
|
|
3959
3959
|
|
|
3960
3960
|
</div>
|
|
3961
3961
|
</div>
|