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
|
@@ -66,206 +66,206 @@ $(function() {
|
|
|
66
66
|
<div class="title">MutablePointsToDS.h</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="MutablePointsToDS_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#ifndef MUTABLE_POINTSTO_H_</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#define MUTABLE_POINTSTO_H_</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> </div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include<fstream></span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> </div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="AbstractPointsToDS_8h.html">MemoryModel/AbstractPointsToDS.h</a>"</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include "<a class="code" href="SVFBasicTypes_8h.html">Util/SVFBasicTypes.h</a>"</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include "<a class="code" href="SVFUtil_8h.html">Util/SVFUtil.h</a>"</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> {</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet></div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html"> 17</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MutableDFPTData.html">MutableDFPTData</a>;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet></div><div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html"> 21</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MutablePTData.html">MutablePTData</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1PTData.html">PTData</a><Key, KeySet, Data, DataSet></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> {</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#ad92cfe345043b1bc8d6c7a03df43310f"> 23</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MutableDFPTData.html">MutableDFPTData</a><Key, KeySet, Data, DataSet>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#ab88ea00589ec9353bccf3629a1c4e5d3"> 25</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutablePTData.html#ab88ea00589ec9353bccf3629a1c4e5d3">BasePTData</a>;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a9e69cb846a8d2da102981d1f48cb16dd"> 26</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">BasePTData::PTDataTy</a> <a class="code" href="classSVF_1_1MutablePTData.html#a9e69cb846a8d2da102981d1f48cb16dd">PTDataTy</a>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#ad74cc6c81c4a95f6ba4e89352bccee3e"> 28</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<Key, DataSet></a> <a class="code" href="classSVF_1_1MutablePTData.html#ad74cc6c81c4a95f6ba4e89352bccee3e">PtsMap</a>;</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a6d491581d17876625d0265cd26acd8e1"> 29</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<Data, KeySet></a> <a class="code" href="classSVF_1_1MutablePTData.html#a6d491581d17876625d0265cd26acd8e1">RevPtsMap</a>;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#ad08dbfa28cd0d622322091d6600748ed"> 30</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> PtsMap::iterator <a class="code" href="classSVF_1_1MutablePTData.html#ad08dbfa28cd0d622322091d6600748ed">PtsMapIter</a>;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#ae9c96f369fbe955a841badcf3fcfcc03"> 31</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> PtsMap::const_iterator <a class="code" href="classSVF_1_1MutablePTData.html#ae9c96f369fbe955a841badcf3fcfcc03">PtsMapConstIter</a>;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#ae856f07441da3988d6a31eea1e30a7d9"> 32</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> DataSet::iterator <a class="code" href="classSVF_1_1MutablePTData.html#ae856f07441da3988d6a31eea1e30a7d9">iterator</a>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a5086e718e98482a7a0330ed05993feaa"> 35</a></span>  <a class="code" href="classSVF_1_1MutablePTData.html#a5086e718e98482a7a0330ed05993feaa">MutablePTData</a>(<span class="keywordtype">bool</span> reversePT = <span class="keyword">true</span>, PTDataTy ty = PTDataTy::MutBase) : BasePTData(reversePT, ty) { }</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a90ca0be479d5c30ba96db2f8513be7be"> 37</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MutablePTData.html#a90ca0be479d5c30ba96db2f8513be7be">~MutablePTData</a>() { }</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a8838058efe94b62553bb5416fdc2ec5b"> 40</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> PtsMap& <a class="code" href="classSVF_1_1MutablePTData.html#a8838058efe94b62553bb5416fdc2ec5b">getPtsMap</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#ac8da1a3357c3bc529f6ca85615486951"> 45</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#ac8da1a3357c3bc529f6ca85615486951">clear</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>.clear();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="classSVF_1_1MutablePTData.html#ad8c9fc1b290372ed9c68e54687724b64">revPtsMap</a>.clear();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#abe4230f3ba78fc660ea291fda36ffa62"> 51</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> DataSet& <a class="code" href="classSVF_1_1MutablePTData.html#abe4230f3ba78fc660ea291fda36ffa62">getPts</a>(<span class="keyword">const</span> Key& var)<span class="keyword"> override</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>[var];</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a36aa05b8f5c308035315d6df7036c096"> 56</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> KeySet& <a class="code" href="classSVF_1_1MutablePTData.html#a36aa05b8f5c308035315d6df7036c096">getRevPts</a>(<span class="keyword">const</span> Data& datum)<span class="keyword"> override</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  assert(this-><a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a> && <span class="stringliteral">"MutablePTData::getRevPts: constructed without reverse PT support!"</span>);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MutablePTData.html#ad8c9fc1b290372ed9c68e54687724b64">revPtsMap</a>[datum];</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#aab4a2eec11e83beca70b016102431ab1"> 62</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutablePTData.html#aab4a2eec11e83beca70b016102431ab1">addPts</a>(<span class="keyword">const</span> Key &dstKey, <span class="keyword">const</span> Data& element)<span class="keyword"> override</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classSVF_1_1MutablePTData.html#a4c5d5d5d73db6dc6b721a076bcae3662">addSingleRevPts</a>(<a class="code" href="classSVF_1_1MutablePTData.html#ad8c9fc1b290372ed9c68e54687724b64">revPtsMap</a>[element], dstKey);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MutablePTData.html#aab4a2eec11e83beca70b016102431ab1">addPts</a>(<a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>[dstKey], element);</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="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f"> 68</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(<span class="keyword">const</span> Key& dstKey, <span class="keyword">const</span> Key& srcKey)<span class="keyword"> override</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="classSVF_1_1MutablePTData.html#ad3175d9c02d8a9f6ad1752ccf3e468cb">addRevPts</a>(<a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>[srcKey], dstKey);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(<a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>[dstKey], <a class="code" href="classSVF_1_1MutablePTData.html#abe4230f3ba78fc660ea291fda36ffa62">getPts</a>(srcKey));</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> </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a124e8cc8d2dbbd70682a4b7845e5d600"> 74</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutablePTData.html#a124e8cc8d2dbbd70682a4b7845e5d600">unionPts</a>(<span class="keyword">const</span> Key& dstKey, <span class="keyword">const</span> DataSet& srcDataSet)<span class="keyword"> override</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classSVF_1_1MutablePTData.html#ad3175d9c02d8a9f6ad1752ccf3e468cb">addRevPts</a>(srcDataSet,dstKey);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(<a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>[dstKey], srcDataSet);</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> </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a3206473b309c231d7d4b991a36a35279"> 80</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#a3206473b309c231d7d4b991a36a35279">dumpPTData</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="classSVF_1_1MutablePTData.html#af08060bb4d450ecc4160cb79ab3dcc77">dumpPts</a>(<a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a5ca2c5a8908d003b7ec2c17f949ae6aa"> 85</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#a5ca2c5a8908d003b7ec2c17f949ae6aa">clearPts</a>(<span class="keyword">const</span> Key& var, <span class="keyword">const</span> Data& element)<span class="keyword"> override</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="classSVF_1_1MutablePTData.html#a5756fb30b7bd405c04defb49a7d688f7">clearSingleRevPts</a>(<a class="code" href="classSVF_1_1MutablePTData.html#ad8c9fc1b290372ed9c68e54687724b64">revPtsMap</a>[element], var);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>[var].reset(element);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a3bf34d8040779b4d251bb08a58604d77"> 91</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#a3bf34d8040779b4d251bb08a58604d77">clearFullPts</a>(<span class="keyword">const</span> Key& var)<span class="keyword"> override</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  DataSet &pts = <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>[var];</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="classSVF_1_1MutablePTData.html#a80cb0bdab4aa64d81e3d61405066a0da">clearRevPts</a>(pts, var);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  pts.clear();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a3b4cd5b4f8704a5b0049923d22ce7665"> 98</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#a3b4cd5b4f8704a5b0049923d22ce7665">remapAllPts</a>(<span class="keywordtype">void</span>)<span class="keyword"> override</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> PtsMap::value_type &ppt : <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>) ppt.second.checkAndRemap();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#ad20254ace6d9976da2099413f5790458"> 103</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<DataSet, unsigned></a> <a class="code" href="classSVF_1_1MutablePTData.html#ad20254ace6d9976da2099413f5790458">getAllPts</a>(<span class="keywordtype">bool</span> liveOnly)<span class="keyword"> const override</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<DataSet, unsigned></a> allPts;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> PtsMap::value_type ppt : <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>)</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keyword">const</span> DataSet &pt = ppt.second;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  ++allPts[pt];</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">return</span> allPts;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a589d71ff881e53133e5c688f1c616ab3"> 117</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutablePTData.html#a589d71ff881e53133e5c688f1c616ab3">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MutablePTData.html">MutablePTData<Key, KeySet, Data, DataSet></a> *)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a577a7fce1affd462afeb9fefa4bdb4a8"> 122</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutablePTData.html#a577a7fce1affd462afeb9fefa4bdb4a8">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a>* ptd)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">return</span> ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == PTDataTy::MutBase;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#af08060bb4d450ecc4160cb79ab3dcc77"> 129</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#af08060bb4d450ecc4160cb79ab3dcc77">dumpPts</a>(<span class="keyword">const</span> PtsMap & ptsSet,<a class="code" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</a> & O = <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>())<span class="keyword"> const</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">for</span> (PtsMapConstIter nodeIt = ptsSet.begin(); nodeIt != ptsSet.end(); nodeIt++)</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>  <span class="keyword">const</span> Key& var = nodeIt->first;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keyword">const</span> DataSet & pts = nodeIt->second;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">if</span> (pts.empty())</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  O << var << <span class="stringliteral">" ==> { "</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">for</span>(<span class="keyword">typename</span> DataSet::iterator cit = pts.begin(), ecit=pts.end(); cit!=ecit; ++cit)</div><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>  O << *cit << <span class="stringliteral">" "</span>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  O << <span class="stringliteral">"}\n"</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#abaf96c47ab029c6bc91ff23a4c061505"> 149</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutablePTData.html#abaf96c47ab029c6bc91ff23a4c061505">unionPts</a>(DataSet& dstDataSet, <span class="keyword">const</span> DataSet& srcDataSet)</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>  <span class="keywordflow">return</span> dstDataSet |= srcDataSet;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  }</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a8cdeda0ef0e976102d05de3004bd8c8a"> 153</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutablePTData.html#a8cdeda0ef0e976102d05de3004bd8c8a">addPts</a>(DataSet &d, <span class="keyword">const</span> Data& e)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">return</span> d.test_and_set(e);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  }</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a4c5d5d5d73db6dc6b721a076bcae3662"> 157</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#a4c5d5d5d73db6dc6b721a076bcae3662">addSingleRevPts</a>(KeySet &revData, <span class="keyword">const</span> Key& tgr)</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>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a>)</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aeecfaf26800dcebf0b079395126bc7f7">SVFUtil::insertKey</a>(tgr, revData);</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>  }</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#ad3175d9c02d8a9f6ad1752ccf3e468cb"> 164</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#ad3175d9c02d8a9f6ad1752ccf3e468cb">addRevPts</a>(<span class="keyword">const</span> DataSet &ptsData, <span class="keyword">const</span> Key& tgr)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a>)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">for</span>(iterator it = ptsData.begin(), eit = ptsData.end(); it!=eit; ++it)</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="classSVF_1_1MutablePTData.html#a4c5d5d5d73db6dc6b721a076bcae3662">addSingleRevPts</a>(<a class="code" href="classSVF_1_1MutablePTData.html#ad8c9fc1b290372ed9c68e54687724b64">revPtsMap</a>[*it], tgr);</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>  }</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a5756fb30b7bd405c04defb49a7d688f7"> 172</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#a5756fb30b7bd405c04defb49a7d688f7">clearSingleRevPts</a>(KeySet &revSet, <span class="keyword">const</span> Key &k)</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a>)</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aee74719d33695e4da6fee5fc83f745d9">SVFUtil::removeKey</a>(k, revSet);</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>  }</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a80cb0bdab4aa64d81e3d61405066a0da"> 179</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#a80cb0bdab4aa64d81e3d61405066a0da">clearRevPts</a>(<span class="keyword">const</span> DataSet &pts, <span class="keyword">const</span> Key &k)</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a>)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> Data &d : pts) <a class="code" href="classSVF_1_1MutablePTData.html#a5756fb30b7bd405c04defb49a7d688f7">clearSingleRevPts</a>(<a class="code" href="classSVF_1_1MutablePTData.html#ad8c9fc1b290372ed9c68e54687724b64">revPtsMap</a>[d], k);</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>  }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942"> 189</a></span>  PtsMap <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#ad8c9fc1b290372ed9c68e54687724b64"> 190</a></span>  RevPtsMap <a class="code" href="classSVF_1_1MutablePTData.html#ad8c9fc1b290372ed9c68e54687724b64">revPtsMap</a>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> };</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet></div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html"> 195</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MutableDiffPTData.html">MutableDiffPTData</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1DiffPTData.html">DiffPTData</a><Key, KeySet, Data, DataSet></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="keyword">public</span>:</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a562f0f584cd4f3b2d18f3973fde9c068"> 198</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a562f0f584cd4f3b2d18f3973fde9c068">BasePTData</a>;</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#ab50b8026258c7c9103d2315ea3091340"> 199</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1DiffPTData.html">DiffPTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableDiffPTData.html#ab50b8026258c7c9103d2315ea3091340">BaseDiffPTData</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a9d829f0eab7f5ecf1a1d7eaf5f47daf6"> 200</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">BasePTData::PTDataTy</a> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a9d829f0eab7f5ecf1a1d7eaf5f47daf6">PTDataTy</a>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a5d64ef2d4b9ab65cc7a9e33bb6fe47cf"> 202</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1MutablePTData.html#ad74cc6c81c4a95f6ba4e89352bccee3e">MutablePTData<Key, KeySet, Data, DataSet>::PtsMap</a> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a5d64ef2d4b9ab65cc7a9e33bb6fe47cf">PtsMap</a>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#ae087d0307844312710c2d4c05535ea86"> 205</a></span>  <a class="code" href="classSVF_1_1MutableDiffPTData.html#ae087d0307844312710c2d4c05535ea86">MutableDiffPTData</a>(<span class="keywordtype">bool</span> reversePT = <span class="keyword">true</span>, PTDataTy ty = PTDataTy::Diff) : BaseDiffPTData(reversePT, ty), mutPTData(reversePT) { }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a8d69bae0bcbeecc98b51a23d50c064b6"> 207</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a8d69bae0bcbeecc98b51a23d50c064b6">~MutableDiffPTData</a>() { }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a8261a24cfb34056f3720cd6fbc0a4870"> 209</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> PtsMap& <a class="code" href="classSVF_1_1MutableDiffPTData.html#a8261a24cfb34056f3720cd6fbc0a4870">getPtsMap</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">return</span> mutPTData.getPtsMap();</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> </div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a8ae9624ac7fb1502eaa43173dacbe7b7"> 214</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a8ae9624ac7fb1502eaa43173dacbe7b7">clear</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  mutPTData.clear();</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"><a class="line" href="classSVF_1_1MutableDiffPTData.html#ac2f494da9379c336bb81a0dc438b5af9"> 219</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> DataSet& <a class="code" href="classSVF_1_1MutableDiffPTData.html#ac2f494da9379c336bb81a0dc438b5af9">getPts</a>(<span class="keyword">const</span> Key& var)<span class="keyword"> override</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordflow">return</span> mutPTData.getPts(var);</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> </div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#ad9bd6762fc6525afaed4a6c6da63688d"> 224</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> KeySet& <a class="code" href="classSVF_1_1MutableDiffPTData.html#ad9bd6762fc6525afaed4a6c6da63688d">getRevPts</a>(<span class="keyword">const</span> Data& datum)<span class="keyword"> override</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  assert(this-><a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a> && <span class="stringliteral">"MutableDiffPTData::getRevPts: constructed without reverse PT support!"</span>);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">return</span> mutPTData.getRevPts(datum);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</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"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a717c166c5efdf2e1d71be1772fc0898d"> 230</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a717c166c5efdf2e1d71be1772fc0898d">addPts</a>(<span class="keyword">const</span> Key &dstKey, <span class="keyword">const</span> Data& element)<span class="keyword"> override</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">return</span> mutPTData.addPts(dstKey, element);</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> </div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a1596ef828786325ca06a3f5bada31757"> 235</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a1596ef828786325ca06a3f5bada31757">unionPts</a>(<span class="keyword">const</span> Key& dstKey, <span class="keyword">const</span> Key& srcKey)<span class="keyword"> override</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">return</span> mutPTData.unionPts(dstKey, srcKey);</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"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a746c384cf4633c3b07b4362e7b6c087a"> 240</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a746c384cf4633c3b07b4362e7b6c087a">unionPts</a>(<span class="keyword">const</span> Key& dstKey, <span class="keyword">const</span> DataSet& srcDataSet)<span class="keyword"> override</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">return</span> mutPTData.unionPts(dstKey, srcDataSet);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  }</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a65028f1634a18f6adbd4cfdb526d1d20"> 245</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a65028f1634a18f6adbd4cfdb526d1d20">clearPts</a>(<span class="keyword">const</span> Key& var, <span class="keyword">const</span> Data& element)<span class="keyword"> override</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  mutPTData.clearPts(var, element);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a8b6e2e5e016a5ae00ae440e3f383bb16"> 250</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a8b6e2e5e016a5ae00ae440e3f383bb16">clearFullPts</a>(<span class="keyword">const</span> Key& var)<span class="keyword"> override</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  mutPTData.clearFullPts(var);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a80142c1961d5e71c8f0dbadbb3c82184"> 255</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a80142c1961d5e71c8f0dbadbb3c82184">remapAllPts</a>(<span class="keywordtype">void</span>)<span class="keyword"> override</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  mutPTData.remapAllPts();</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> PtsMap::value_type &ppt : diffPtsMap) ppt.second.checkAndRemap();</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> PtsMap::value_type &ppt : propaPtsMap) ppt.second.checkAndRemap();</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div><div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#adf10cc451517f8d3ee7aec8baa61772f"> 262</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#adf10cc451517f8d3ee7aec8baa61772f">dumpPTData</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  mutPTData.dumpPTData();</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a83dd3047c72cd1cd6ceb044cd1a924e4"> 267</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> DataSet &<a class="code" href="classSVF_1_1MutableDiffPTData.html#a83dd3047c72cd1cd6ceb044cd1a924e4">getDiffPts</a>(Key &var)<span class="keyword"> override</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordflow">return</span> diffPtsMap[var];</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#ac97bd53101f306c46ab4349a808f67c9"> 272</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#ac97bd53101f306c46ab4349a808f67c9">computeDiffPts</a>(Key &var, <span class="keyword">const</span> DataSet &all)<span class="keyword"> override</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  DataSet& diff = diffPtsMap[var];</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  diff.clear();</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  DataSet& propa = getPropaPts(var);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  diff.intersectWithComplement(all, propa);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  propa = all;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">return</span> !diff.empty();</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a2feb36e64e27e6f0bcc0e108da433278"> 284</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a2feb36e64e27e6f0bcc0e108da433278">updatePropaPtsMap</a>(Key &src, Key &dst)<span class="keyword"> override</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  DataSet& srcPropa = getPropaPts(src);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  DataSet& dstPropa = getPropaPts(dst);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  dstPropa &= srcPropa;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a3946e3b737d95539cb57b10e53d356fc"> 291</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a3946e3b737d95539cb57b10e53d356fc">clearPropaPts</a>(Key &var)<span class="keyword"> override</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  getPropaPts(var).clear();</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"><a class="line" href="classSVF_1_1MutableDiffPTData.html#adb89579b46a478f6d0e30e790838dca9"> 296</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<DataSet, unsigned></a> <a class="code" href="classSVF_1_1MutableDiffPTData.html#adb89579b46a478f6d0e30e790838dca9">getAllPts</a>(<span class="keywordtype">bool</span> liveOnly)<span class="keyword"> const override</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">return</span> mutPTData.getAllPts(liveOnly);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a1b2d520d24a8d19de00e26237e5cd098"> 303</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a1b2d520d24a8d19de00e26237e5cd098">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html">MutableDiffPTData<Key, KeySet, Data, DataSet></a> *)</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</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"><a class="line" href="classSVF_1_1MutableDiffPTData.html#af27d457e1905876631bcf74e434257ae"> 308</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#af27d457e1905876631bcf74e434257ae">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a>* ptd)</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">return</span> ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == PTDataTy::MutDiff;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  }</div><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> <span class="keyword">protected</span>:</div><div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a450ed4470b1d83d44218904dd391fd75"> 316</a></span>  <span class="keyword">inline</span> DataSet &<a class="code" href="classSVF_1_1MutableDiffPTData.html#a450ed4470b1d83d44218904dd391fd75">getPropaPts</a>(Key &var)</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">return</span> propaPtsMap[var];</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  }</div><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="keyword">private</span>:</div><div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a3603cb4baf60b1aa83b7807ac5591484"> 323</a></span>  <a class="code" href="classSVF_1_1MutablePTData.html">MutablePTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a3603cb4baf60b1aa83b7807ac5591484">mutPTData</a>;</div><div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a9ee7874e987e93eb4cb9d75ed08effd5"> 325</a></span>  PtsMap <a class="code" href="classSVF_1_1MutableDiffPTData.html#a9ee7874e987e93eb4cb9d75ed08effd5">diffPtsMap</a>;</div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#acd3c327ee7c8fd077d51751cc7069dee"> 327</a></span>  PtsMap <a class="code" href="classSVF_1_1MutableDiffPTData.html#acd3c327ee7c8fd077d51751cc7069dee">propaPtsMap</a>;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> };</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet></div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MutableDFPTData.html">MutableDFPTData</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1DFPTData.html">DFPTData</a><Key, KeySet, Data, DataSet></div><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="keyword">public</span>:</div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a25274e3029dfa655c47b72f291b906de"> 334</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableDFPTData.html#a25274e3029dfa655c47b72f291b906de">BasePTData</a>;</div><div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ad02e5645ef7a73ba4c20c557a6f11789"> 335</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MutablePTData.html">MutablePTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableDFPTData.html#ad02e5645ef7a73ba4c20c557a6f11789">BaseMutPTData</a>;</div><div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a17a5aa4a749a5ffc75c663d057454e4a"> 336</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1DFPTData.html">DFPTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableDFPTData.html#a17a5aa4a749a5ffc75c663d057454e4a">BaseDFPTData</a>;</div><div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#af3074a07345844ecd97e420218b39255"> 337</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">BasePTData::PTDataTy</a> <a class="code" href="classSVF_1_1MutableDFPTData.html#af3074a07345844ecd97e420218b39255">PTDataTy</a>;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ae847b982baec8115ede5d7d28cd91d34"> 339</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1DFPTData.html#a298a5ef6cfffbe10b9d05af0ad12e786">BaseDFPTData::LocID</a> <a class="code" href="classSVF_1_1MutableDFPTData.html#ae847b982baec8115ede5d7d28cd91d34">LocID</a>;</div><div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ae7456fccd4c95227cdd7163176703205"> 340</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1MutablePTData.html#ad74cc6c81c4a95f6ba4e89352bccee3e">BaseMutPTData::PtsMap</a> <a class="code" href="classSVF_1_1MutableDFPTData.html#ae7456fccd4c95227cdd7163176703205">PtsMap</a>;</div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a3f234abc0def4815a03de164fa258f24"> 341</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1MutablePTData.html#ae9c96f369fbe955a841badcf3fcfcc03">BaseMutPTData::PtsMapConstIter</a> <a class="code" href="classSVF_1_1MutableDFPTData.html#a3f234abc0def4815a03de164fa258f24">PtsMapConstIter</a>;</div><div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a0c73427f957d310bc85955bec6654352"> 342</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<LocID, PtsMap></a> <a class="code" href="classSVF_1_1MutableDFPTData.html#a0c73427f957d310bc85955bec6654352">DFPtsMap</a>; </div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a31ad5da37a88d2b97633d590393b0e64"> 343</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> DFPtsMap::iterator <a class="code" href="classSVF_1_1MutableDFPTData.html#a31ad5da37a88d2b97633d590393b0e64">DFPtsMapIter</a>;</div><div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#adb30678f5bbdea0f196d3b0ab67d2bad"> 344</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> DFPtsMap::const_iterator <a class="code" href="classSVF_1_1MutableDFPTData.html#adb30678f5bbdea0f196d3b0ab67d2bad">DFPtsMapconstIter</a>;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div><div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#aed141fb836cb22e02032ea46e3e5f51b"> 347</a></span>  <a class="code" href="classSVF_1_1MutableDFPTData.html#aed141fb836cb22e02032ea46e3e5f51b">MutableDFPTData</a>(<span class="keywordtype">bool</span> reversePT = <span class="keyword">true</span>, PTDataTy ty = BaseDFPTData::MutDataFlow) : BaseDFPTData(reversePT, ty), mutPTData(reversePT) { }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div><div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a96331853265be5129964a9751f64bd8d"> 349</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a96331853265be5129964a9751f64bd8d">~MutableDFPTData</a>() { }</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span> </div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a8b1814326e71f6c6fd31d5aef0592a1d"> 351</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> PtsMap& <a class="code" href="classSVF_1_1MutableDFPTData.html#a8b1814326e71f6c6fd31d5aef0592a1d">getPtsMap</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keywordflow">return</span> mutPTData.getPtsMap();</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  }</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div><div class="line"><a name="l00356"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a446112803c54ca937f8b85e42a4a1381"> 356</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a446112803c54ca937f8b85e42a4a1381">clear</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  mutPTData.clear();</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a4cbb9131a89c5c48367fb927693b5c6b"> 361</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> DataSet& <a class="code" href="classSVF_1_1MutableDFPTData.html#a4cbb9131a89c5c48367fb927693b5c6b">getPts</a>(<span class="keyword">const</span> Key& var)<span class="keyword"> override</span></div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordflow">return</span> mutPTData.getPts(var);</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"><a class="line" href="classSVF_1_1MutableDFPTData.html#a2f98940bd8266ad37a975c6d30d948b4"> 366</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> KeySet& <a class="code" href="classSVF_1_1MutableDFPTData.html#a2f98940bd8266ad37a975c6d30d948b4">getRevPts</a>(<span class="keyword">const</span> Data& datum)<span class="keyword"> override</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  assert(this-><a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a> && <span class="stringliteral">"MutableDFPTData::getRevPts: constructed without reverse PT support!"</span>);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">return</span> mutPTData.getRevPts(datum);</div><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> </div><div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a9a9641305c9d670e09f02b71a3e384a9"> 372</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a9a9641305c9d670e09f02b71a3e384a9">hasDFInSet</a>(LocID loc)<span class="keyword"> const override</span></div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordflow">return</span> (dfInPtsMap.find(loc) != dfInPtsMap.end());</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  }</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span> </div><div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ac6d487a4af529ecb30366be54b29260a"> 377</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ac6d487a4af529ecb30366be54b29260a">hasDFOutSet</a>(LocID loc)<span class="keyword"> const override</span></div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordflow">return</span> (dfOutPtsMap.find(loc) != dfOutPtsMap.end());</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  }</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> </div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#aa8b85dee2b70031a2f97e1a36c9b25de"> 382</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#aa8b85dee2b70031a2f97e1a36c9b25de">hasDFInSet</a>(LocID loc,<span class="keyword">const</span> Key& var)<span class="keyword"> const override</span></div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  DFPtsMapconstIter it = dfInPtsMap.find(loc);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">if</span> ( it == dfInPtsMap.end())</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keyword">const</span> PtsMap& <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a> = it->second;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">return</span> (ptsMap.find(var) != ptsMap.end());</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  }</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div><div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#af6d234ae2b0aa91b510f3a2fba877340"> 391</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#af6d234ae2b0aa91b510f3a2fba877340">hasDFOutSet</a>(LocID loc, <span class="keyword">const</span> Key& var)<span class="keyword"> const override</span></div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  DFPtsMapconstIter it = dfOutPtsMap.find(loc);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordflow">if</span> ( it == dfOutPtsMap.end())</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keyword">const</span> PtsMap& <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a> = it->second;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">return</span> (ptsMap.find(var) != ptsMap.end());</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  }</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span> </div><div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a44aad57ac0de594e404a6c4ceff0bd53"> 400</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> DataSet& <a class="code" href="classSVF_1_1MutableDFPTData.html#a44aad57ac0de594e404a6c4ceff0bd53">getDFInPtsSet</a>(LocID loc, <span class="keyword">const</span> Key& var)<span class="keyword"> override</span></div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  PtsMap& inSet = dfInPtsMap[loc];</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keywordflow">return</span> inSet[var];</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  }</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ab6b0496d0c34642ddd2707142334f4a2"> 406</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> DataSet& <a class="code" href="classSVF_1_1MutableDFPTData.html#ab6b0496d0c34642ddd2707142334f4a2">getDFOutPtsSet</a>(LocID loc, <span class="keyword">const</span> Key& var)<span class="keyword"> override</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  PtsMap& outSet = dfOutPtsMap[loc];</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keywordflow">return</span> outSet[var];</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  }</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div><div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a7559810e1ad40588f5fd82123ea1f150"> 414</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> PtsMap& <a class="code" href="classSVF_1_1MutableDFPTData.html#a7559810e1ad40588f5fd82123ea1f150">getDFInPtsMap</a>(LocID loc)</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keywordflow">return</span> dfInPtsMap[loc];</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  }</div><div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a034c1bf20ab8a73a97863073e08dcd4e"> 418</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> PtsMap& <a class="code" href="classSVF_1_1MutableDFPTData.html#a034c1bf20ab8a73a97863073e08dcd4e">getDFOutPtsMap</a>(LocID loc)</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keywordflow">return</span> dfOutPtsMap[loc];</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  }</div><div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ae999df6f94a097f1fcb36979327790de"> 422</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> DFPtsMap& <a class="code" href="classSVF_1_1MutableDFPTData.html#ae999df6f94a097f1fcb36979327790de">getDFIn</a>()</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">return</span> dfInPtsMap;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  }</div><div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a6d02392602cf7956ff41e345518d683c"> 426</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> DFPtsMap& <a class="code" href="classSVF_1_1MutableDFPTData.html#a6d02392602cf7956ff41e345518d683c">getDFOut</a>()</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  {</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordflow">return</span> dfOutPtsMap;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  }</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span> </div><div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ac3ebc5afa531118b2b4446d23e3b8c7a"> 432</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ac3ebc5afa531118b2b4446d23e3b8c7a">updateDFInFromIn</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keywordflow">return</span> this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(getDFInPtsSet(dstLoc,dstVar), getDFInPtsSet(srcLoc,srcVar));</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div><div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a85c0d93ee01d2c93c255e5a369248d1b"> 437</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a85c0d93ee01d2c93c255e5a369248d1b">updateDFInFromOut</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keywordflow">return</span> this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(getDFInPtsSet(dstLoc,dstVar), getDFOutPtsSet(srcLoc,srcVar));</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> </div><div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ab3c517be91b4711ace581df075d4647a"> 442</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ab3c517be91b4711ace581df075d4647a">updateDFOutFromIn</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="keywordflow">return</span> this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(getDFOutPtsSet(dstLoc,dstVar), getDFInPtsSet(srcLoc,srcVar));</div><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> </div><div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a7c7eff549ea0d153e7a72ed5bf79c30e"> 447</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a7c7eff549ea0d153e7a72ed5bf79c30e">updateAllDFInFromOut</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordflow">return</span> this->updateDFInFromOut(srcLoc,srcVar,dstLoc,dstVar);</div><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> </div><div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a23fca889a29399a91dfc916f5fab46ee"> 452</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a23fca889a29399a91dfc916f5fab46ee">updateAllDFInFromIn</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">return</span> this->updateDFInFromIn(srcLoc,srcVar,dstLoc,dstVar);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div><div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a51365299a34e3386798e78a076d6e1f5"> 457</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a51365299a34e3386798e78a076d6e1f5">updateAllDFOutFromIn</a>(LocID loc, <span class="keyword">const</span> Key& singleton, <span class="keywordtype">bool</span> strongUpdates)<span class="keyword"> override</span></div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="keywordflow">if</span> (this->hasDFInSet(loc))</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  {</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keyword">const</span> PtsMap & <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a> = getDFInPtsMap(loc);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> PtsMap::const_iterator ptsIt = ptsMap.begin(), ptsEit = ptsMap.end(); ptsIt != ptsEit; ++ptsIt)</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keyword">const</span> Key var = ptsIt->first;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keywordflow">if</span> (strongUpdates && var == singleton)</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="keywordflow">if</span> (updateDFOutFromIn(loc, var, loc, var))</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  changed = <span class="keyword">true</span>;</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>  }</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  }</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span> </div><div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a21b29c2d3e429017d910025e4ec73fc6"> 477</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a21b29c2d3e429017d910025e4ec73fc6">updateTLVPts</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keywordflow">return</span> this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(dstVar, this->getDFInPtsSet(srcLoc,srcVar));</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  }</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span> </div><div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a0ce585790bba942291bb7c7ffcaa3914"> 482</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a0ce585790bba942291bb7c7ffcaa3914">updateATVPts</a>(<span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keywordflow">return</span> (this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(this->getDFOutPtsSet(dstLoc, dstVar), this-><a class="code" href="classSVF_1_1MutablePTData.html#abe4230f3ba78fc660ea291fda36ffa62">getPts</a>(srcVar)));</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  }</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> </div><div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a43a45997f6147245fe8a552b42f3f632"> 487</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a43a45997f6147245fe8a552b42f3f632">clearAllDFOutUpdatedVar</a>(LocID)<span class="keyword"> override</span></div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  }</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span> </div><div class="line"><a name="l00494"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ab75373d16f57dbbf1e9472e9a27d6b4b"> 494</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ab75373d16f57dbbf1e9472e9a27d6b4b">addPts</a>(<span class="keyword">const</span> Key &dstKey, <span class="keyword">const</span> Key& srcKey)<span class="keyword"> override</span></div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MutablePTData.html#aab4a2eec11e83beca70b016102431ab1">addPts</a>(mutPTData.ptsMap[dstKey], srcKey);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  }</div><div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ad64eed26e054eb4e91ec1139867cd196"> 498</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ad64eed26e054eb4e91ec1139867cd196">unionPts</a>(<span class="keyword">const</span> Key& dstKey, <span class="keyword">const</span> Key& srcKey)<span class="keyword"> override</span></div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(mutPTData.ptsMap[dstKey], <a class="code" href="classSVF_1_1MutablePTData.html#abe4230f3ba78fc660ea291fda36ffa62">getPts</a>(srcKey));</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  }</div><div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ab675653138960b16f23c801298e80f48"> 502</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ab675653138960b16f23c801298e80f48">unionPts</a>(<span class="keyword">const</span> Key& dstKey, <span class="keyword">const</span> DataSet& srcDataSet)<span class="keyword"> override</span></div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(mutPTData.ptsMap[dstKey], srcDataSet);</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  }</div><div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ae0495fcba25d4baffda9f85254591ae1"> 506</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ae0495fcba25d4baffda9f85254591ae1">clearPts</a>(<span class="keyword">const</span> Key& var, <span class="keyword">const</span> Data& element)<span class="keyword"> override</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  mutPTData.clearPts(var, element);</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  }</div><div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ab345e148997b9e1c6e4c2c76267880b7"> 510</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ab345e148997b9e1c6e4c2c76267880b7">clearFullPts</a>(<span class="keyword">const</span> Key& var)<span class="keyword"> override</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  mutPTData.clearFullPts(var);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  }</div><div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ad34e442581dfe57ce7f1add25c8414b2"> 514</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ad34e442581dfe57ce7f1add25c8414b2">remapAllPts</a>(<span class="keywordtype">void</span>)<span class="keyword"> override</span></div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  mutPTData.remapAllPts();</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> DFPtsMap::value_type &lopt : dfInPtsMap)</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  {</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> PtsMap::value_type &opt : lopt.second) opt.second.checkAndRemap();</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  }</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span> </div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> DFPtsMap::value_type &lopt : dfOutPtsMap)</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  {</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> PtsMap::value_type &opt : lopt.second) opt.second.checkAndRemap();</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  }</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  }</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span> </div><div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ac9120fbb056e23cdf84646a37d809a8d"> 529</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<DataSet, unsigned></a> <a class="code" href="classSVF_1_1MutableDFPTData.html#ac9120fbb056e23cdf84646a37d809a8d">getAllPts</a>(<span class="keywordtype">bool</span> liveOnly)<span class="keyword"> const override</span></div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<DataSet, unsigned></a> allPts = mutPTData.getAllPts(liveOnly);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> DFPtsMap::value_type lptsmap : dfInPtsMap)</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  {</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> PtsMap::value_type vpt : lptsmap.second)</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  {</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  ++allPts[vpt.second];</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  }</div><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> </div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> DFPtsMap::value_type lptm : dfOutPtsMap)</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  {</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> PtsMap::value_type vpt : lptm.second)</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  {</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  ++allPts[vpt.second];</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  }</div><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> </div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="keywordflow">return</span> allPts;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  }</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span> </div><div class="line"><a name="l00553"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a5baa6fffedfd0ac356590f9a0b222ee0"> 553</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a5baa6fffedfd0ac356590f9a0b222ee0">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MutableDFPTData.html">MutableDFPTData<Key, KeySet, Data, DataSet></a> *)</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  }</div><div class="line"><a name="l00557"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#acb338bbe5773001a15b81e596a764222"> 557</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#acb338bbe5773001a15b81e596a764222">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a>* ptd)</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  {</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="keywordflow">return</span> ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == BaseDFPTData::MutDataFlow</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  || ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == BaseDFPTData::MutIncDataFlow;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  }</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span> </div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00567"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a8b30798ad9485a88238cc340e5da3db7"> 567</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a8b30798ad9485a88238cc340e5da3db7">unionPts</a>(DataSet& dstDataSet, <span class="keyword">const</span> DataSet& srcDataSet)</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>  <span class="keywordflow">return</span> dstDataSet |= srcDataSet;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  }</div><div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ab7d1a3464e561029573f6f3c13c9bff4"> 571</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ab7d1a3464e561029573f6f3c13c9bff4">addPts</a>(DataSet &d, <span class="keyword">const</span> Data& e)</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  {</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">return</span> d.test_and_set(e);</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  }</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span> </div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00580"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a95f4644a82f84674164651db66b084b8"> 580</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a95f4644a82f84674164651db66b084b8">dumpPTData</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  mutPTData.dumpPTData();</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  std::error_code ErrInfo;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  std::fstream f(<span class="stringliteral">"svfg_pts.data"</span>, std::ios_base::out);</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keywordflow">if</span> (f.good())</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  {</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> locs;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="keywordflow">for</span>(DFPtsMapconstIter it = dfInPtsMap.begin(), eit = dfInPtsMap.end(); it!=eit; ++it)</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  locs.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(it->first);</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span> </div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="keywordflow">for</span>(DFPtsMapconstIter it = dfOutPtsMap.begin(), eit = dfOutPtsMap.end(); it!=eit; ++it)</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  locs.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(it->first);</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span> </div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = locs.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = locs.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it != eit; it++)</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  {</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  LocID loc = *it;</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <span class="keywordflow">if</span> (this->hasDFInSet(loc))</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  {</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  f << <span class="stringliteral">"Loc:"</span> << loc << <span class="stringliteral">" IN:{"</span>;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  this-><a class="code" href="classSVF_1_1MutablePTData.html#af08060bb4d450ecc4160cb79ab3dcc77">dumpPts</a>(this->getDFInPtsMap(loc), f);</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  f << <span class="stringliteral">"}\n"</span>;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  }</div><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> (this->hasDFOutSet(loc))</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>  f << <span class="stringliteral">"Loc:"</span> << loc << <span class="stringliteral">" OUT:{"</span>;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  this-><a class="code" href="classSVF_1_1MutablePTData.html#af08060bb4d450ecc4160cb79ab3dcc77">dumpPts</a>(this->getDFOutPtsMap(loc), f);</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  f << <span class="stringliteral">"}\n"</span>;</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  }</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  }</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  f.close();</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="keywordflow">if</span> (f.good())</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  {</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  }</div><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>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">" error opening file for writing!\n"</span>;</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  }</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span> </div><div class="line"><a name="l00623"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ae88094abad311dd633f66db2cd78c322"> 623</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ae88094abad311dd633f66db2cd78c322">dumpPts</a>(<span class="keyword">const</span> PtsMap & ptsSet,<a class="code" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</a> & O = <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>())<span class="keyword"> const</span></div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="keywordflow">for</span> (PtsMapConstIter nodeIt = ptsSet.begin(); nodeIt != ptsSet.end(); nodeIt++)</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  {</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <span class="keyword">const</span> Key& var = nodeIt->first;</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="keyword">const</span> DataSet & pts = nodeIt->second;</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  <span class="keywordflow">if</span> (pts.empty())</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  O << <span class="stringliteral">"<"</span> << var << <span class="stringliteral">",{"</span>;</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">SVFUtil::dumpSet</a>(pts,O);</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  O << <span class="stringliteral">"}> "</span>;</div><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>  }</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span> </div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00640"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#abb59ef7367e353e65b82b54dac509f36"> 640</a></span>  DFPtsMap <a class="code" href="classSVF_1_1MutableDFPTData.html#abb59ef7367e353e65b82b54dac509f36">dfInPtsMap</a>;</div><div class="line"><a name="l00642"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ad3c53ef1c8e221299f3afe078946fbe0"> 642</a></span>  DFPtsMap <a class="code" href="classSVF_1_1MutableDFPTData.html#ad3c53ef1c8e221299f3afe078946fbe0">dfOutPtsMap</a>;</div><div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#acf40f716470f73095d44a1b9e3bb939e"> 645</a></span>  <a class="code" href="classSVF_1_1MutablePTData.html">MutablePTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableDFPTData.html#acf40f716470f73095d44a1b9e3bb939e">mutPTData</a>;</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span> };</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span> </div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet></div><div class="line"><a name="l00650"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html"> 650</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MutableIncDFPTData.html">MutableIncDFPTData</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1MutableDFPTData.html">MutableDFPTData</a><Key, KeySet, Data, DataSet></div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span> {</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00653"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a14651359d0efe886c1313fd843e4d1db"> 653</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a14651359d0efe886c1313fd843e4d1db">BasePTData</a>;</div><div class="line"><a name="l00654"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a92f00e91a338113383bcf7bc8ce0026a"> 654</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MutablePTData.html">MutablePTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a92f00e91a338113383bcf7bc8ce0026a">BaseMutPTData</a>;</div><div class="line"><a name="l00655"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a4b944ec759d0e78a7a2238db587752a9"> 655</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1DFPTData.html">DFPTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a4b944ec759d0e78a7a2238db587752a9">BaseDFPTData</a>;</div><div class="line"><a name="l00656"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a58f9b6357a5cf0243cf3b4ece30e8cf6"> 656</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MutableDFPTData.html">MutableDFPTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a58f9b6357a5cf0243cf3b4ece30e8cf6">BaseMutDFPTData</a>;</div><div class="line"><a name="l00657"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a5f1715813082c1f02d6888b9ec32a75e"> 657</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">BasePTData::PTDataTy</a> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a5f1715813082c1f02d6888b9ec32a75e">PTDataTy</a>;</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span> </div><div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a74d9f271ea0fa69e56ddbe16f10f3241"> 659</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1DFPTData.html#a298a5ef6cfffbe10b9d05af0ad12e786">BaseDFPTData::LocID</a> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a74d9f271ea0fa69e56ddbe16f10f3241">LocID</a>;</div><div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a67c24cebffdcea9c8059f6769c7f9798"> 660</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<LocID, DataSet></a> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a67c24cebffdcea9c8059f6769c7f9798">UpdatedVarMap</a>; </div><div class="line"><a name="l00661"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a8b30326d3fa3f4054e67268f512aec9e"> 661</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> UpdatedVarMap::iterator <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a8b30326d3fa3f4054e67268f512aec9e">UpdatedVarMapIter</a>;</div><div class="line"><a name="l00662"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#af815dd2108c16e1dfddbcd5bdbcceeb6"> 662</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> UpdatedVarMap::const_iterator <a class="code" href="classSVF_1_1MutableIncDFPTData.html#af815dd2108c16e1dfddbcd5bdbcceeb6">UpdatedVarconstIter</a>;</div><div class="line"><a name="l00663"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a1fc4dff28f9044234fdfeede6f4b1cb0"> 663</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> DataSet::iterator <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a1fc4dff28f9044234fdfeede6f4b1cb0">DataIter</a>;</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span> </div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#af5f7db6c55037a0e117a36982736039e"> 666</a></span>  UpdatedVarMap <a class="code" href="classSVF_1_1MutableIncDFPTData.html#af5f7db6c55037a0e117a36982736039e">outUpdatedVarMap</a>;</div><div class="line"><a name="l00667"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#ab5e9ebf9e71652b5fa63d59c97d016e4"> 667</a></span>  UpdatedVarMap <a class="code" href="classSVF_1_1MutableIncDFPTData.html#ab5e9ebf9e71652b5fa63d59c97d016e4">inUpdatedVarMap</a>;</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span> </div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a9b06421a9043dc61485acf51cfc26a91"> 671</a></span>  <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a9b06421a9043dc61485acf51cfc26a91">MutableIncDFPTData</a>(<span class="keywordtype">bool</span> reversePT = <span class="keyword">true</span>, PTDataTy ty = <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848aa4e18dfa52aad741c91bcc78339e986c">BasePTData::MutIncDataFlow</a>) : BaseMutDFPTData(reversePT, ty) { }</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span> </div><div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#adf4e5c57d7b7ae7da37bb1a4eabfe8a6"> 673</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#adf4e5c57d7b7ae7da37bb1a4eabfe8a6">~MutableIncDFPTData</a>() { }</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span> </div><div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a775ef6458314a1febef3f7372f6a2bbc"> 675</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a775ef6458314a1febef3f7372f6a2bbc">updateDFInFromIn</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <span class="keywordflow">if</span>(varHasNewDFInPts(srcLoc, srcVar) &&</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(this->getDFInPtsSet(dstLoc,dstVar), this->getDFInPtsSet(srcLoc,srcVar)))</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  {</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  setVarDFInSetUpdated(dstLoc,dstVar);</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  }</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  }</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span> </div><div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#ad199b4b84f7aab48ff1510b118e2982f"> 686</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#ad199b4b84f7aab48ff1510b118e2982f">updateDFInFromOut</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <span class="keywordflow">if</span>(varHasNewDFOutPts(srcLoc, srcVar) &&</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(this->getDFInPtsSet(dstLoc,dstVar), this->getDFOutPtsSet(srcLoc,srcVar)))</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  {</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  setVarDFInSetUpdated(dstLoc,dstVar);</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  }</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  }</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span> </div><div class="line"><a name="l00697"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#aa326ac77577a8a4a0ce3e29cc03a3989"> 697</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#aa326ac77577a8a4a0ce3e29cc03a3989">updateDFOutFromIn</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="keywordflow">if</span>(varHasNewDFInPts(srcLoc,srcVar))</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  {</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  removeVarFromDFInUpdatedSet(srcLoc,srcVar);</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(this->getDFOutPtsSet(dstLoc,dstVar), this->getDFInPtsSet(srcLoc,srcVar)))</div><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>  setVarDFOutSetUpdated(dstLoc,dstVar);</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  }</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  }</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  }</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span> </div><div class="line"><a name="l00711"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a2dd9dad547c389d5cd488b165dd145eb"> 711</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a2dd9dad547c389d5cd488b165dd145eb">updateAllDFInFromOut</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="keywordflow">if</span>(this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(this->getDFInPtsSet(dstLoc,dstVar), this->getDFOutPtsSet(srcLoc,srcVar)))</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  {</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  setVarDFInSetUpdated(dstLoc,dstVar);</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  }</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><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> </div><div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#ad68b23ed56b2c18bf75c23a658523404"> 721</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#ad68b23ed56b2c18bf75c23a658523404">updateAllDFInFromIn</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  <span class="keywordflow">if</span>(this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(this->getDFInPtsSet(dstLoc,dstVar), this->getDFInPtsSet(srcLoc,srcVar)))</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  {</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  setVarDFInSetUpdated(dstLoc,dstVar);</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><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">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  }</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span> </div><div class="line"><a name="l00731"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a3f397aaf4f3d6d04ec005c2577652e04"> 731</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a3f397aaf4f3d6d04ec005c2577652e04">updateAllDFOutFromIn</a>(LocID loc, <span class="keyword">const</span> Key& singleton, <span class="keywordtype">bool</span> strongUpdates)<span class="keyword"> override</span></div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  <span class="keywordflow">if</span> (this->hasDFInSet(loc))</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  {</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  DataSet pts = getDFInUpdatedVar(loc);</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <span class="keywordflow">for</span> (DataIter ptsIt = pts.begin(), ptsEit = pts.end(); ptsIt != ptsEit; ++ptsIt)</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  {</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <span class="keyword">const</span> Key var = *ptsIt;</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keywordflow">if</span> (strongUpdates && var == singleton)</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <span class="keywordflow">if</span> (updateDFOutFromIn(loc, var, loc, var))</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  }</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  }</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <span class="keywordflow">return</span> changed;</div><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> </div><div class="line"><a name="l00751"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a7778be60515fa3ff247b6d2cec138cfc"> 751</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a7778be60515fa3ff247b6d2cec138cfc">updateTLVPts</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <span class="keywordflow">if</span>(varHasNewDFInPts(srcLoc,srcVar))</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  {</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  removeVarFromDFInUpdatedSet(srcLoc,srcVar);</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <span class="keywordflow">return</span> this->mutPTData.unionPts(dstVar, this->getDFInPtsSet(srcLoc,srcVar));</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>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  }</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span> </div><div class="line"><a name="l00761"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#aa8fdf0f82d3d94af34d5bc1386ed21f9"> 761</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#aa8fdf0f82d3d94af34d5bc1386ed21f9">updateATVPts</a>(<span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(this->getDFOutPtsSet(dstLoc, dstVar), this->mutPTData.getPts(srcVar)))</div><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>  setVarDFOutSetUpdated(dstLoc, dstVar);</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</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>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  }</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span> </div><div class="line"><a name="l00771"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#ac9ff175dbdf75232a104e2aa34f87d43"> 771</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#ac9ff175dbdf75232a104e2aa34f87d43">clearAllDFOutUpdatedVar</a>(LocID loc)<span class="keyword"> override</span></div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <span class="keywordflow">if</span> (this->hasDFOutSet(loc))</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  {</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  DataSet pts = getDFOutUpdatedVar(loc);</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <span class="keywordflow">for</span> (DataIter ptsIt = pts.begin(), ptsEit = pts.end(); ptsIt != ptsEit; ++ptsIt)</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  {</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <span class="keyword">const</span> Key var = *ptsIt;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  removeVarFromDFOutUpdatedSet(loc, var);</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  }</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  }</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  }</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span> </div><div class="line"><a name="l00786"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a89f65d37096c82fcdddb1c324ec206d2"> 786</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a89f65d37096c82fcdddb1c324ec206d2">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html">MutableIncDFPTData<Key, KeySet, Data, DataSet></a> *)</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  {</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  }</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span> </div><div class="line"><a name="l00791"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#aa4c262f0d62e902912d4cd7999731d3d"> 791</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#aa4c262f0d62e902912d4cd7999731d3d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a>* ptd)</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  {</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  <span class="keywordflow">return</span> ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848aa4e18dfa52aad741c91bcc78339e986c">BasePTData::MutIncDataFlow</a>;</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  }</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span> </div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> setVarDFInSetUpdated(LocID loc,<span class="keyword">const</span> Key& var)</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  {</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  inUpdatedVarMap[loc].set(var);</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  }</div><div class="line"><a name="l00805"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a913c1a2c48526160eeecd028bd22cfc4"> 805</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a913c1a2c48526160eeecd028bd22cfc4">removeVarFromDFInUpdatedSet</a>(LocID loc,<span class="keyword">const</span> Key& var)</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  {</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  UpdatedVarMapIter it = inUpdatedVarMap.find(loc);</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="keywordflow">if</span> (it != inUpdatedVarMap.end())</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  it->second.reset(var);</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  }</div><div class="line"><a name="l00812"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#ae7ed810cf4de695072ba5c4d0c882353"> 812</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#ae7ed810cf4de695072ba5c4d0c882353">varHasNewDFInPts</a>(LocID loc,<span class="keyword">const</span> Key& var)</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  {</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  UpdatedVarMapIter it = inUpdatedVarMap.find(loc);</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  <span class="keywordflow">if</span> (it != inUpdatedVarMap.end())</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  <span class="keywordflow">return</span> it->second.test(var);</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  }</div><div class="line"><a name="l00820"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#ae4d0989cb98814f943bd4dfd09a37017"> 820</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> DataSet& <a class="code" href="classSVF_1_1MutableIncDFPTData.html#ae4d0989cb98814f943bd4dfd09a37017">getDFInUpdatedVar</a>(LocID loc)</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  {</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  <span class="keywordflow">return</span> inUpdatedVarMap[loc];</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  }</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span> </div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span> </div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> setVarDFOutSetUpdated(LocID loc,<span class="keyword">const</span> Key& var)</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  {</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  outUpdatedVarMap[loc].set(var);</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  }</div><div class="line"><a name="l00834"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#ac055ad77582b36083ca1950c39207f5e"> 834</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#ac055ad77582b36083ca1950c39207f5e">removeVarFromDFOutUpdatedSet</a>(LocID loc,<span class="keyword">const</span> Key& var)</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  {</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  UpdatedVarMapIter it = outUpdatedVarMap.find(loc);</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <span class="keywordflow">if</span> (it != outUpdatedVarMap.end())</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  it->second.reset(var);</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  }</div><div class="line"><a name="l00841"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a55b19f617d11dfc6632b690694f264ab"> 841</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a55b19f617d11dfc6632b690694f264ab">varHasNewDFOutPts</a>(LocID loc,<span class="keyword">const</span> Key& var)</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  {</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  UpdatedVarMapIter it = outUpdatedVarMap.find(loc);</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  <span class="keywordflow">if</span> (it != outUpdatedVarMap.end())</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <span class="keywordflow">return</span> it->second.test(var);</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  }</div><div class="line"><a name="l00849"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#ad1ae7faf04ba10ac4ac6a6f1cc498547"> 849</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> DataSet& <a class="code" href="classSVF_1_1MutableIncDFPTData.html#ad1ae7faf04ba10ac4ac6a6f1cc498547">getDFOutUpdatedVar</a>(LocID loc)</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  {</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  <span class="keywordflow">return</span> outUpdatedVarMap[loc];</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  }</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span> };</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span> </div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet, <span class="keyword">typename</span> VersionedKey, <span class="keyword">typename</span> VersionedKeySet></div><div class="line"><a name="l00860"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html"> 860</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MutableVersionedPTData.html">MutableVersionedPTData</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1VersionedPTData.html">VersionedPTData</a><Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet></div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span> {</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00863"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a31fd15a8147e3146b15b4d24fe34cf46"> 863</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a31fd15a8147e3146b15b4d24fe34cf46">BasePTData</a>;</div><div class="line"><a name="l00864"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#aa80044e3b4c3ed58117573dfa54d803b"> 864</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1VersionedPTData.html">VersionedPTData<Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet></a> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#aa80044e3b4c3ed58117573dfa54d803b">BaseVersionedPTData</a>;</div><div class="line"><a name="l00865"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#af7bf99aeb752c4216a60d1fa5187b49e"> 865</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">BasePTData::PTDataTy</a> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#af7bf99aeb752c4216a60d1fa5187b49e">PTDataTy</a>;</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span> </div><div class="line"><a name="l00867"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#ad2f9950ad71a39c400a4835e6e84fcd9"> 867</a></span>  <a class="code" href="classSVF_1_1MutableVersionedPTData.html#ad2f9950ad71a39c400a4835e6e84fcd9">MutableVersionedPTData</a>(<span class="keywordtype">bool</span> reversePT = <span class="keyword">true</span>, PTDataTy ty = PTDataTy::MutVersioned)</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  : BaseVersionedPTData(reversePT, ty), tlPTData(reversePT), atPTData(reversePT) { }</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span> </div><div class="line"><a name="l00870"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#adf809b61632067b0a987d2975e6377dc"> 870</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#adf809b61632067b0a987d2975e6377dc">~MutableVersionedPTData</a>() { }</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span> </div><div class="line"><a name="l00872"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#ab476e1b59aead37b440fd5735df3814b"> 872</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#ab476e1b59aead37b440fd5735df3814b">clear</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  tlPTData.clear();</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  atPTData.clear();</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  }</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span> </div><div class="line"><a name="l00878"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#aaf519166d2e0ca3c81088b52a1cf3066"> 878</a></span>  <span class="keyword">virtual</span> <span class="keyword">const</span> DataSet& <a class="code" href="classSVF_1_1MutableVersionedPTData.html#aaf519166d2e0ca3c81088b52a1cf3066">getPts</a>(<span class="keyword">const</span> Key& vk)<span class="keyword"> override</span></div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  <span class="keywordflow">return</span> tlPTData.getPts(vk);</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  }</div><div class="line"><a name="l00882"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#afcc34f6cedca6a8f151b1a7251832818"> 882</a></span>  <span class="keyword">virtual</span> <span class="keyword">const</span> DataSet& <a class="code" href="classSVF_1_1MutableVersionedPTData.html#afcc34f6cedca6a8f151b1a7251832818">getPts</a>(<span class="keyword">const</span> VersionedKey& vk)<span class="keyword"> override</span></div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  <span class="keywordflow">return</span> atPTData.getPts(vk);</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  }</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span> </div><div class="line"><a name="l00887"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a7de508c0d83895aee785524d28eac8b9"> 887</a></span>  <span class="keyword">virtual</span> <span class="keyword">const</span> KeySet& <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a7de508c0d83895aee785524d28eac8b9">getRevPts</a>(<span class="keyword">const</span> Data& datum)<span class="keyword"> override</span></div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  assert(this-><a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a> && <span class="stringliteral">"MutableVersionedPTData::getRevPts: constructed without reverse PT support!"</span>);</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  <span class="keywordflow">return</span> tlPTData.getRevPts(datum);</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  }</div><div class="line"><a name="l00892"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#afaef5c61bee74cbd649c787cfdef2a03"> 892</a></span>  <span class="keyword">virtual</span> <span class="keyword">const</span> VersionedKeySet& <a class="code" href="classSVF_1_1MutableVersionedPTData.html#afaef5c61bee74cbd649c787cfdef2a03">getVersionedKeyRevPts</a>(<span class="keyword">const</span> Data& datum)<span class="keyword"> override</span></div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  assert(this-><a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a> && <span class="stringliteral">"MutableVersionedPTData::getVersionedKeyRevPts: constructed without reverse PT support!"</span>);</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  <span class="keywordflow">return</span> atPTData.getRevPts(datum);</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  }</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span> </div><div class="line"><a name="l00898"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a00a88cc3e802921c6a0951801ec712a6"> 898</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a00a88cc3e802921c6a0951801ec712a6">addPts</a>(<span class="keyword">const</span> Key& k, <span class="keyword">const</span> Data& element)<span class="keyword"> override</span></div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  <span class="keywordflow">return</span> tlPTData.addPts(k, element);</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  }</div><div class="line"><a name="l00902"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#af39232f64ff0ede20161c7f265da6cf5"> 902</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#af39232f64ff0ede20161c7f265da6cf5">addPts</a>(<span class="keyword">const</span> VersionedKey& vk, <span class="keyword">const</span> Data& element)<span class="keyword"> override</span></div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  <span class="keywordflow">return</span> atPTData.addPts(vk, element);</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  }</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span> </div><div class="line"><a name="l00907"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#ae79628fc101567ba84215b624dd00c01"> 907</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#ae79628fc101567ba84215b624dd00c01">unionPts</a>(<span class="keyword">const</span> Key& dstVar, <span class="keyword">const</span> Key& srcVar)<span class="keyword"> override</span></div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  <span class="keywordflow">return</span> tlPTData.unionPts(dstVar, srcVar);</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  }</div><div class="line"><a name="l00911"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a56e752a83620f482a4b1e2f8d395dd75"> 911</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a56e752a83620f482a4b1e2f8d395dd75">unionPts</a>(<span class="keyword">const</span> VersionedKey& dstVar, <span class="keyword">const</span> VersionedKey& srcVar)<span class="keyword"> override</span></div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  <span class="keywordflow">return</span> atPTData.unionPts(dstVar, srcVar);</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  }</div><div class="line"><a name="l00915"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a5647b7fad5c14f7ec57d3de3480758eb"> 915</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a5647b7fad5c14f7ec57d3de3480758eb">unionPts</a>(<span class="keyword">const</span> VersionedKey& dstVar, <span class="keyword">const</span> Key& srcVar)<span class="keyword"> override</span></div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <span class="keywordflow">return</span> atPTData.unionPts(dstVar, tlPTData.getPts(srcVar));</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  }</div><div class="line"><a name="l00919"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a9967c530d3955a0a726b7a00653ef0ba"> 919</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a9967c530d3955a0a726b7a00653ef0ba">unionPts</a>(<span class="keyword">const</span> Key& dstVar, <span class="keyword">const</span> VersionedKey& srcVar)<span class="keyword"> override</span></div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  <span class="keywordflow">return</span> tlPTData.unionPts(dstVar, atPTData.getPts(srcVar));</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  }</div><div class="line"><a name="l00923"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#aa9ab46b7afc7f47df20e74bda300dc42"> 923</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#aa9ab46b7afc7f47df20e74bda300dc42">unionPts</a>(<span class="keyword">const</span> Key& dstVar, <span class="keyword">const</span> DataSet& srcDataSet)<span class="keyword"> override</span></div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <span class="keywordflow">return</span> tlPTData.unionPts(dstVar, srcDataSet);</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  }</div><div class="line"><a name="l00927"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#aa9d24a4defb025c075e4ec5bc7f3b618"> 927</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#aa9d24a4defb025c075e4ec5bc7f3b618">unionPts</a>(<span class="keyword">const</span> VersionedKey& dstVar, <span class="keyword">const</span> DataSet& srcDataSet)<span class="keyword"> override</span></div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  <span class="keywordflow">return</span> atPTData.unionPts(dstVar, srcDataSet);</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  }</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span> </div><div class="line"><a name="l00932"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#ab20b71c9e2f31439c95071c375bf89e0"> 932</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#ab20b71c9e2f31439c95071c375bf89e0">clearPts</a>(<span class="keyword">const</span> Key& k, <span class="keyword">const</span> Data& element)<span class="keyword"> override</span></div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  tlPTData.clearPts(k, element);</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  }</div><div class="line"><a name="l00936"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a21e823484199946541b8b79d736b2601"> 936</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a21e823484199946541b8b79d736b2601">clearPts</a>(<span class="keyword">const</span> VersionedKey& vk, <span class="keyword">const</span> Data& element)<span class="keyword"> override</span></div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  atPTData.clearPts(vk, element);</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  }</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span> </div><div class="line"><a name="l00941"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a9f985ff2daee53fb661e4b2bcfd17f05"> 941</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a9f985ff2daee53fb661e4b2bcfd17f05">clearFullPts</a>(<span class="keyword">const</span> Key& k)<span class="keyword"> override</span></div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  tlPTData.clearFullPts(k);</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  }</div><div class="line"><a name="l00945"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#aaf3df7501f84233f6a687ef9f2f0ae90"> 945</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#aaf3df7501f84233f6a687ef9f2f0ae90">clearFullPts</a>(<span class="keyword">const</span> VersionedKey& vk)<span class="keyword"> override</span></div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  atPTData.clearFullPts(vk);</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  }</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span> </div><div class="line"><a name="l00950"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a72cbf33b77f5a19221ad265691065695"> 950</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a72cbf33b77f5a19221ad265691065695">remapAllPts</a>(<span class="keywordtype">void</span>)<span class="keyword"> override</span></div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  tlPTData.remapAllPts();</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  atPTData.remapAllPts();</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  }</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span> </div><div class="line"><a name="l00956"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a6cac338e74f869d0e708c7e2b356b5d7"> 956</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<DataSet, unsigned></a> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a6cac338e74f869d0e708c7e2b356b5d7">getAllPts</a>(<span class="keywordtype">bool</span> liveOnly)<span class="keyword"> const override</span></div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<DataSet, unsigned></a> allPts = tlPTData.getAllPts(liveOnly);</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  SVFUtil::mergePtsOccMaps<DataSet>(allPts, atPTData.getAllPts(liveOnly));</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  <span class="keywordflow">return</span> allPts;</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  }</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span> </div><div class="line"><a name="l00963"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a796c1676dd5180a27dbebae5a99b57b7"> 963</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a796c1676dd5180a27dbebae5a99b57b7">dumpPTData</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"== Top-level points-to information\n"</span>;</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  tlPTData.dumpPTData();</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"== Address-taken points-to information\n"</span>;</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  atPTData.dumpPTData();</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  }</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span> </div><div class="line"><a name="l00973"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a6be54447671288a666af5d48972e2ccf"> 973</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a6be54447671288a666af5d48972e2ccf">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html">MutableVersionedPTData<Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet></a> *)</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  {</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  }</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span> </div><div class="line"><a name="l00978"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a646111552a7112b8e48c00e766ce8d9b"> 978</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a646111552a7112b8e48c00e766ce8d9b">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a>* ptd)</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  {</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  <span class="keywordflow">return</span> ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == PTDataTy::MutVersioned;</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  }</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span> </div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00986"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a01974968b7cf60a4231cc83c93b26d7f"> 986</a></span>  <a class="code" href="classSVF_1_1MutablePTData.html">MutablePTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a01974968b7cf60a4231cc83c93b26d7f">tlPTData</a>;</div><div class="line"><a name="l00988"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a3e5337d4189e98f11305491a9ef3c439"> 988</a></span>  <a class="code" href="classSVF_1_1MutablePTData.html">MutablePTData<VersionedKey, VersionedKeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a3e5337d4189e98f11305491a9ef3c439">atPTData</a>;</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span> };</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span> </div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span> </div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span> <span class="preprocessor">#endif // MUTABLE_POINTSTO_H_</span></div><div class="ttc" id="classSVF_1_1MutableDFPTData_html_a9a9641305c9d670e09f02b71a3e384a9"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a9a9641305c9d670e09f02b71a3e384a9">SVF::MutableDFPTData::hasDFInSet</a></div><div class="ttdeci">virtual bool hasDFInSet(LocID loc) const override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00372">MutablePointsToDS.h:372</a></div></div>
|
|
70
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a124e8cc8d2dbbd70682a4b7845e5d600"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a124e8cc8d2dbbd70682a4b7845e5d600">SVF::MutablePTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstKey, const DataSet &srcDataSet) override</div><div class="ttdoc">Performs pts(dstVar) = pts(dstVar) U srcDataSet. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
69
|
+
<a href="MutablePointsToDS_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===- MutablePointsToDS.h -- Mutable points-to data structure-------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">/*</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * MutablePointsToDS.h</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> *</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> * Authors: Mohamad Barbar and Yulei Sui</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> *</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> * The implementation is based on</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> * Mohamad Barbar and Yulei Sui. Hash Consed Points-To Sets.</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"> * 28th Static Analysis Symposium (SAS'21)</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment"> */</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#ifndef MUTABLE_POINTSTO_H_</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#define MUTABLE_POINTSTO_H_</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include<fstream></span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "<a class="code" href="AbstractPointsToDS_8h.html">MemoryModel/AbstractPointsToDS.h</a>"</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include "<a class="code" href="SVFBasicTypes_8h.html">Util/SVFBasicTypes.h</a>"</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "<a class="code" href="SVFUtil_8h.html">Util/SVFUtil.h</a>"</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet></div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html"> 49</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MutableDFPTData.html">MutableDFPTData</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet></div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html"> 53</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MutablePTData.html">MutablePTData</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1PTData.html">PTData</a><Key, KeySet, Data, DataSet></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> {</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#ad92cfe345043b1bc8d6c7a03df43310f"> 55</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MutableDFPTData.html">MutableDFPTData</a><Key, KeySet, Data, DataSet>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#ab88ea00589ec9353bccf3629a1c4e5d3"> 57</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutablePTData.html#ab88ea00589ec9353bccf3629a1c4e5d3">BasePTData</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a9e69cb846a8d2da102981d1f48cb16dd"> 58</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">BasePTData::PTDataTy</a> <a class="code" href="classSVF_1_1MutablePTData.html#a9e69cb846a8d2da102981d1f48cb16dd">PTDataTy</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#ad74cc6c81c4a95f6ba4e89352bccee3e"> 60</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<Key, DataSet></a> <a class="code" href="classSVF_1_1MutablePTData.html#ad74cc6c81c4a95f6ba4e89352bccee3e">PtsMap</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a6d491581d17876625d0265cd26acd8e1"> 61</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<Data, KeySet></a> <a class="code" href="classSVF_1_1MutablePTData.html#a6d491581d17876625d0265cd26acd8e1">RevPtsMap</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#ad08dbfa28cd0d622322091d6600748ed"> 62</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> PtsMap::iterator <a class="code" href="classSVF_1_1MutablePTData.html#ad08dbfa28cd0d622322091d6600748ed">PtsMapIter</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#ae9c96f369fbe955a841badcf3fcfcc03"> 63</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> PtsMap::const_iterator <a class="code" href="classSVF_1_1MutablePTData.html#ae9c96f369fbe955a841badcf3fcfcc03">PtsMapConstIter</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#ae856f07441da3988d6a31eea1e30a7d9"> 64</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> DataSet::iterator <a class="code" href="classSVF_1_1MutablePTData.html#ae856f07441da3988d6a31eea1e30a7d9">iterator</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a5086e718e98482a7a0330ed05993feaa"> 67</a></span>  <a class="code" href="classSVF_1_1MutablePTData.html#a5086e718e98482a7a0330ed05993feaa">MutablePTData</a>(<span class="keywordtype">bool</span> reversePT = <span class="keyword">true</span>, PTDataTy ty = PTDataTy::MutBase) : BasePTData(reversePT, ty) { }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a90ca0be479d5c30ba96db2f8513be7be"> 69</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MutablePTData.html#a90ca0be479d5c30ba96db2f8513be7be">~MutablePTData</a>() { }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a8838058efe94b62553bb5416fdc2ec5b"> 72</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> PtsMap& <a class="code" href="classSVF_1_1MutablePTData.html#a8838058efe94b62553bb5416fdc2ec5b">getPtsMap</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>;</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"><a class="line" href="classSVF_1_1MutablePTData.html#ac8da1a3357c3bc529f6ca85615486951"> 77</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#ac8da1a3357c3bc529f6ca85615486951">clear</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>.clear();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="classSVF_1_1MutablePTData.html#ad8c9fc1b290372ed9c68e54687724b64">revPtsMap</a>.clear();</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"><a class="line" href="classSVF_1_1MutablePTData.html#abe4230f3ba78fc660ea291fda36ffa62"> 83</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> DataSet& <a class="code" href="classSVF_1_1MutablePTData.html#abe4230f3ba78fc660ea291fda36ffa62">getPts</a>(<span class="keyword">const</span> Key& var)<span class="keyword"> override</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>[var];</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> </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a36aa05b8f5c308035315d6df7036c096"> 88</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> KeySet& <a class="code" href="classSVF_1_1MutablePTData.html#a36aa05b8f5c308035315d6df7036c096">getRevPts</a>(<span class="keyword">const</span> Data& datum)<span class="keyword"> override</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  assert(this-><a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a> && <span class="stringliteral">"MutablePTData::getRevPts: constructed without reverse PT support!"</span>);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MutablePTData.html#ad8c9fc1b290372ed9c68e54687724b64">revPtsMap</a>[datum];</div><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> </div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#aab4a2eec11e83beca70b016102431ab1"> 94</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutablePTData.html#aab4a2eec11e83beca70b016102431ab1">addPts</a>(<span class="keyword">const</span> Key &dstKey, <span class="keyword">const</span> Data& element)<span class="keyword"> override</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="classSVF_1_1MutablePTData.html#a4c5d5d5d73db6dc6b721a076bcae3662">addSingleRevPts</a>(<a class="code" href="classSVF_1_1MutablePTData.html#ad8c9fc1b290372ed9c68e54687724b64">revPtsMap</a>[element], dstKey);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MutablePTData.html#aab4a2eec11e83beca70b016102431ab1">addPts</a>(<a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>[dstKey], element);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f"> 100</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(<span class="keyword">const</span> Key& dstKey, <span class="keyword">const</span> Key& srcKey)<span class="keyword"> override</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="classSVF_1_1MutablePTData.html#ad3175d9c02d8a9f6ad1752ccf3e468cb">addRevPts</a>(<a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>[srcKey], dstKey);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(<a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>[dstKey], <a class="code" href="classSVF_1_1MutablePTData.html#abe4230f3ba78fc660ea291fda36ffa62">getPts</a>(srcKey));</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a124e8cc8d2dbbd70682a4b7845e5d600"> 106</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutablePTData.html#a124e8cc8d2dbbd70682a4b7845e5d600">unionPts</a>(<span class="keyword">const</span> Key& dstKey, <span class="keyword">const</span> DataSet& srcDataSet)<span class="keyword"> override</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="classSVF_1_1MutablePTData.html#ad3175d9c02d8a9f6ad1752ccf3e468cb">addRevPts</a>(srcDataSet,dstKey);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(<a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>[dstKey], srcDataSet);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a3206473b309c231d7d4b991a36a35279"> 112</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#a3206473b309c231d7d4b991a36a35279">dumpPTData</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <a class="code" href="classSVF_1_1MutablePTData.html#af08060bb4d450ecc4160cb79ab3dcc77">dumpPts</a>(<a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a5ca2c5a8908d003b7ec2c17f949ae6aa"> 117</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#a5ca2c5a8908d003b7ec2c17f949ae6aa">clearPts</a>(<span class="keyword">const</span> Key& var, <span class="keyword">const</span> Data& element)<span class="keyword"> override</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="classSVF_1_1MutablePTData.html#a5756fb30b7bd405c04defb49a7d688f7">clearSingleRevPts</a>(<a class="code" href="classSVF_1_1MutablePTData.html#ad8c9fc1b290372ed9c68e54687724b64">revPtsMap</a>[element], var);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>[var].reset(element);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a3bf34d8040779b4d251bb08a58604d77"> 123</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#a3bf34d8040779b4d251bb08a58604d77">clearFullPts</a>(<span class="keyword">const</span> Key& var)<span class="keyword"> override</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  DataSet &pts = <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>[var];</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="classSVF_1_1MutablePTData.html#a80cb0bdab4aa64d81e3d61405066a0da">clearRevPts</a>(pts, var);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  pts.clear();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a3b4cd5b4f8704a5b0049923d22ce7665"> 130</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#a3b4cd5b4f8704a5b0049923d22ce7665">remapAllPts</a>(<span class="keywordtype">void</span>)<span class="keyword"> override</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> PtsMap::value_type &ppt : <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>) ppt.second.checkAndRemap();</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</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"><a class="line" href="classSVF_1_1MutablePTData.html#ad20254ace6d9976da2099413f5790458"> 135</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<DataSet, unsigned></a> <a class="code" href="classSVF_1_1MutablePTData.html#ad20254ace6d9976da2099413f5790458">getAllPts</a>(<span class="keywordtype">bool</span> liveOnly)<span class="keyword"> const override</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<DataSet, unsigned></a> allPts;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> PtsMap::value_type ppt : <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>)</div><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>  <span class="keyword">const</span> DataSet &pt = ppt.second;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  ++allPts[pt];</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> </div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">return</span> allPts;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a589d71ff881e53133e5c688f1c616ab3"> 149</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutablePTData.html#a589d71ff881e53133e5c688f1c616ab3">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MutablePTData.html">MutablePTData<Key, KeySet, Data, DataSet></a> *)</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>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</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> </div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a577a7fce1affd462afeb9fefa4bdb4a8"> 154</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutablePTData.html#a577a7fce1affd462afeb9fefa4bdb4a8">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a>* ptd)</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">return</span> ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == PTDataTy::MutBase;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#af08060bb4d450ecc4160cb79ab3dcc77"> 161</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#af08060bb4d450ecc4160cb79ab3dcc77">dumpPts</a>(<span class="keyword">const</span> PtsMap & ptsSet,<a class="code" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</a> & O = <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>())<span class="keyword"> const</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">for</span> (PtsMapConstIter nodeIt = ptsSet.begin(); nodeIt != ptsSet.end(); nodeIt++)</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="keyword">const</span> Key& var = nodeIt->first;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keyword">const</span> DataSet & pts = nodeIt->second;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">if</span> (pts.empty())</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  O << var << <span class="stringliteral">" ==> { "</span>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">for</span>(<span class="keyword">typename</span> DataSet::iterator cit = pts.begin(), ecit=pts.end(); cit!=ecit; ++cit)</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  O << *cit << <span class="stringliteral">" "</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  }</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  O << <span class="stringliteral">"}\n"</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  }</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> </div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#abaf96c47ab029c6bc91ff23a4c061505"> 181</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutablePTData.html#abaf96c47ab029c6bc91ff23a4c061505">unionPts</a>(DataSet& dstDataSet, <span class="keyword">const</span> DataSet& srcDataSet)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">return</span> dstDataSet |= srcDataSet;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  }</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a8cdeda0ef0e976102d05de3004bd8c8a"> 185</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutablePTData.html#a8cdeda0ef0e976102d05de3004bd8c8a">addPts</a>(DataSet &d, <span class="keyword">const</span> Data& e)</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">return</span> d.test_and_set(e);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  }</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a4c5d5d5d73db6dc6b721a076bcae3662"> 189</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#a4c5d5d5d73db6dc6b721a076bcae3662">addSingleRevPts</a>(KeySet &revData, <span class="keyword">const</span> Key& tgr)</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">if</span> (this-><a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a>)</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>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aeecfaf26800dcebf0b079395126bc7f7">SVFUtil::insertKey</a>(tgr, revData);</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>  }</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#ad3175d9c02d8a9f6ad1752ccf3e468cb"> 196</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#ad3175d9c02d8a9f6ad1752ccf3e468cb">addRevPts</a>(<span class="keyword">const</span> DataSet &ptsData, <span class="keyword">const</span> Key& tgr)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a>)</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">for</span>(iterator it = ptsData.begin(), eit = ptsData.end(); it!=eit; ++it)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="classSVF_1_1MutablePTData.html#a4c5d5d5d73db6dc6b721a076bcae3662">addSingleRevPts</a>(<a class="code" href="classSVF_1_1MutablePTData.html#ad8c9fc1b290372ed9c68e54687724b64">revPtsMap</a>[*it], tgr);</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>  }</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a5756fb30b7bd405c04defb49a7d688f7"> 204</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#a5756fb30b7bd405c04defb49a7d688f7">clearSingleRevPts</a>(KeySet &revSet, <span class="keyword">const</span> Key &k)</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">if</span> (this-><a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a>)</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="namespaceSVF_1_1SVFUtil.html#aee74719d33695e4da6fee5fc83f745d9">SVFUtil::removeKey</a>(k, revSet);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  }</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  }</div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a80cb0bdab4aa64d81e3d61405066a0da"> 211</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutablePTData.html#a80cb0bdab4aa64d81e3d61405066a0da">clearRevPts</a>(<span class="keyword">const</span> DataSet &pts, <span class="keyword">const</span> Key &k)</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">if</span> (this-><a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a>)</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>  <span class="keywordflow">for</span> (<span class="keyword">const</span> Data &d : pts) <a class="code" href="classSVF_1_1MutablePTData.html#a5756fb30b7bd405c04defb49a7d688f7">clearSingleRevPts</a>(<a class="code" href="classSVF_1_1MutablePTData.html#ad8c9fc1b290372ed9c68e54687724b64">revPtsMap</a>[d], k);</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="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942"> 221</a></span>  PtsMap <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a>;</div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="classSVF_1_1MutablePTData.html#ad8c9fc1b290372ed9c68e54687724b64"> 222</a></span>  RevPtsMap <a class="code" href="classSVF_1_1MutablePTData.html#ad8c9fc1b290372ed9c68e54687724b64">revPtsMap</a>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> };</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet></div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html"> 227</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MutableDiffPTData.html">MutableDiffPTData</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1DiffPTData.html">DiffPTData</a><Key, KeySet, Data, DataSet></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> {</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a562f0f584cd4f3b2d18f3973fde9c068"> 230</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a562f0f584cd4f3b2d18f3973fde9c068">BasePTData</a>;</div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#ab50b8026258c7c9103d2315ea3091340"> 231</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1DiffPTData.html">DiffPTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableDiffPTData.html#ab50b8026258c7c9103d2315ea3091340">BaseDiffPTData</a>;</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a9d829f0eab7f5ecf1a1d7eaf5f47daf6"> 232</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">BasePTData::PTDataTy</a> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a9d829f0eab7f5ecf1a1d7eaf5f47daf6">PTDataTy</a>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a5d64ef2d4b9ab65cc7a9e33bb6fe47cf"> 234</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1MutablePTData.html#ad74cc6c81c4a95f6ba4e89352bccee3e">MutablePTData<Key, KeySet, Data, DataSet>::PtsMap</a> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a5d64ef2d4b9ab65cc7a9e33bb6fe47cf">PtsMap</a>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#ae087d0307844312710c2d4c05535ea86"> 237</a></span>  <a class="code" href="classSVF_1_1MutableDiffPTData.html#ae087d0307844312710c2d4c05535ea86">MutableDiffPTData</a>(<span class="keywordtype">bool</span> reversePT = <span class="keyword">true</span>, PTDataTy ty = PTDataTy::Diff) : BaseDiffPTData(reversePT, ty), mutPTData(reversePT) { }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a8d69bae0bcbeecc98b51a23d50c064b6"> 239</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a8d69bae0bcbeecc98b51a23d50c064b6">~MutableDiffPTData</a>() { }</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a8261a24cfb34056f3720cd6fbc0a4870"> 241</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> PtsMap& <a class="code" href="classSVF_1_1MutableDiffPTData.html#a8261a24cfb34056f3720cd6fbc0a4870">getPtsMap</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">return</span> mutPTData.getPtsMap();</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> </div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a8ae9624ac7fb1502eaa43173dacbe7b7"> 246</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a8ae9624ac7fb1502eaa43173dacbe7b7">clear</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  mutPTData.clear();</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> </div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#ac2f494da9379c336bb81a0dc438b5af9"> 251</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> DataSet& <a class="code" href="classSVF_1_1MutableDiffPTData.html#ac2f494da9379c336bb81a0dc438b5af9">getPts</a>(<span class="keyword">const</span> Key& var)<span class="keyword"> override</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">return</span> mutPTData.getPts(var);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#ad9bd6762fc6525afaed4a6c6da63688d"> 256</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> KeySet& <a class="code" href="classSVF_1_1MutableDiffPTData.html#ad9bd6762fc6525afaed4a6c6da63688d">getRevPts</a>(<span class="keyword">const</span> Data& datum)<span class="keyword"> override</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  assert(this-><a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a> && <span class="stringliteral">"MutableDiffPTData::getRevPts: constructed without reverse PT support!"</span>);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordflow">return</span> mutPTData.getRevPts(datum);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div><div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a717c166c5efdf2e1d71be1772fc0898d"> 262</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a717c166c5efdf2e1d71be1772fc0898d">addPts</a>(<span class="keyword">const</span> Key &dstKey, <span class="keyword">const</span> Data& element)<span class="keyword"> override</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">return</span> mutPTData.addPts(dstKey, element);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a1596ef828786325ca06a3f5bada31757"> 267</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a1596ef828786325ca06a3f5bada31757">unionPts</a>(<span class="keyword">const</span> Key& dstKey, <span class="keyword">const</span> Key& srcKey)<span class="keyword"> override</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordflow">return</span> mutPTData.unionPts(dstKey, srcKey);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a746c384cf4633c3b07b4362e7b6c087a"> 272</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a746c384cf4633c3b07b4362e7b6c087a">unionPts</a>(<span class="keyword">const</span> Key& dstKey, <span class="keyword">const</span> DataSet& srcDataSet)<span class="keyword"> override</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">return</span> mutPTData.unionPts(dstKey, srcDataSet);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a65028f1634a18f6adbd4cfdb526d1d20"> 277</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a65028f1634a18f6adbd4cfdb526d1d20">clearPts</a>(<span class="keyword">const</span> Key& var, <span class="keyword">const</span> Data& element)<span class="keyword"> override</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  mutPTData.clearPts(var, element);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  }</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div><div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a8b6e2e5e016a5ae00ae440e3f383bb16"> 282</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a8b6e2e5e016a5ae00ae440e3f383bb16">clearFullPts</a>(<span class="keyword">const</span> Key& var)<span class="keyword"> override</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  mutPTData.clearFullPts(var);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  }</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div><div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a80142c1961d5e71c8f0dbadbb3c82184"> 287</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a80142c1961d5e71c8f0dbadbb3c82184">remapAllPts</a>(<span class="keywordtype">void</span>)<span class="keyword"> override</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  mutPTData.remapAllPts();</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> PtsMap::value_type &ppt : diffPtsMap) ppt.second.checkAndRemap();</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> PtsMap::value_type &ppt : propaPtsMap) ppt.second.checkAndRemap();</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  }</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#adf10cc451517f8d3ee7aec8baa61772f"> 294</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#adf10cc451517f8d3ee7aec8baa61772f">dumpPTData</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  mutPTData.dumpPTData();</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> </div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a83dd3047c72cd1cd6ceb044cd1a924e4"> 299</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> DataSet &<a class="code" href="classSVF_1_1MutableDiffPTData.html#a83dd3047c72cd1cd6ceb044cd1a924e4">getDiffPts</a>(Key &var)<span class="keyword"> override</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">return</span> diffPtsMap[var];</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  }</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#ac97bd53101f306c46ab4349a808f67c9"> 304</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#ac97bd53101f306c46ab4349a808f67c9">computeDiffPts</a>(Key &var, <span class="keyword">const</span> DataSet &all)<span class="keyword"> override</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  DataSet& diff = diffPtsMap[var];</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  diff.clear();</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  DataSet& propa = getPropaPts(var);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  diff.intersectWithComplement(all, propa);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  propa = all;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">return</span> !diff.empty();</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  }</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div><div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a2feb36e64e27e6f0bcc0e108da433278"> 316</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a2feb36e64e27e6f0bcc0e108da433278">updatePropaPtsMap</a>(Key &src, Key &dst)<span class="keyword"> override</span></div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  DataSet& srcPropa = getPropaPts(src);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  DataSet& dstPropa = getPropaPts(dst);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  dstPropa &= srcPropa;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  }</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div><div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a3946e3b737d95539cb57b10e53d356fc"> 323</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a3946e3b737d95539cb57b10e53d356fc">clearPropaPts</a>(Key &var)<span class="keyword"> override</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  getPropaPts(var).clear();</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  }</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div><div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#adb89579b46a478f6d0e30e790838dca9"> 328</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<DataSet, unsigned></a> <a class="code" href="classSVF_1_1MutableDiffPTData.html#adb89579b46a478f6d0e30e790838dca9">getAllPts</a>(<span class="keywordtype">bool</span> liveOnly)<span class="keyword"> const override</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keywordflow">return</span> mutPTData.getAllPts(liveOnly);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  }</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div><div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a1b2d520d24a8d19de00e26237e5cd098"> 335</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a1b2d520d24a8d19de00e26237e5cd098">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html">MutableDiffPTData<Key, KeySet, Data, DataSet></a> *)</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  {</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#af27d457e1905876631bcf74e434257ae"> 340</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDiffPTData.html#af27d457e1905876631bcf74e434257ae">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a>* ptd)</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">return</span> ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == PTDataTy::MutDiff;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  }</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a450ed4470b1d83d44218904dd391fd75"> 348</a></span>  <span class="keyword">inline</span> DataSet &<a class="code" href="classSVF_1_1MutableDiffPTData.html#a450ed4470b1d83d44218904dd391fd75">getPropaPts</a>(Key &var)</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  {</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keywordflow">return</span> propaPtsMap[var];</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  }</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a3603cb4baf60b1aa83b7807ac5591484"> 355</a></span>  <a class="code" href="classSVF_1_1MutablePTData.html">MutablePTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableDiffPTData.html#a3603cb4baf60b1aa83b7807ac5591484">mutPTData</a>;</div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#a9ee7874e987e93eb4cb9d75ed08effd5"> 357</a></span>  PtsMap <a class="code" href="classSVF_1_1MutableDiffPTData.html#a9ee7874e987e93eb4cb9d75ed08effd5">diffPtsMap</a>;</div><div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDiffPTData.html#acd3c327ee7c8fd077d51751cc7069dee"> 359</a></span>  PtsMap <a class="code" href="classSVF_1_1MutableDiffPTData.html#acd3c327ee7c8fd077d51751cc7069dee">propaPtsMap</a>;</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> </div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet></div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MutableDFPTData.html">MutableDFPTData</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1DFPTData.html">DFPTData</a><Key, KeySet, Data, DataSet></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> <span class="keyword">public</span>:</div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a25274e3029dfa655c47b72f291b906de"> 366</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableDFPTData.html#a25274e3029dfa655c47b72f291b906de">BasePTData</a>;</div><div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ad02e5645ef7a73ba4c20c557a6f11789"> 367</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MutablePTData.html">MutablePTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableDFPTData.html#ad02e5645ef7a73ba4c20c557a6f11789">BaseMutPTData</a>;</div><div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a17a5aa4a749a5ffc75c663d057454e4a"> 368</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1DFPTData.html">DFPTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableDFPTData.html#a17a5aa4a749a5ffc75c663d057454e4a">BaseDFPTData</a>;</div><div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#af3074a07345844ecd97e420218b39255"> 369</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">BasePTData::PTDataTy</a> <a class="code" href="classSVF_1_1MutableDFPTData.html#af3074a07345844ecd97e420218b39255">PTDataTy</a>;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div><div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ae847b982baec8115ede5d7d28cd91d34"> 371</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1DFPTData.html#a298a5ef6cfffbe10b9d05af0ad12e786">BaseDFPTData::LocID</a> <a class="code" href="classSVF_1_1MutableDFPTData.html#ae847b982baec8115ede5d7d28cd91d34">LocID</a>;</div><div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ae7456fccd4c95227cdd7163176703205"> 372</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1MutablePTData.html#ad74cc6c81c4a95f6ba4e89352bccee3e">BaseMutPTData::PtsMap</a> <a class="code" href="classSVF_1_1MutableDFPTData.html#ae7456fccd4c95227cdd7163176703205">PtsMap</a>;</div><div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a3f234abc0def4815a03de164fa258f24"> 373</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1MutablePTData.html#ae9c96f369fbe955a841badcf3fcfcc03">BaseMutPTData::PtsMapConstIter</a> <a class="code" href="classSVF_1_1MutableDFPTData.html#a3f234abc0def4815a03de164fa258f24">PtsMapConstIter</a>;</div><div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a0c73427f957d310bc85955bec6654352"> 374</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<LocID, PtsMap></a> <a class="code" href="classSVF_1_1MutableDFPTData.html#a0c73427f957d310bc85955bec6654352">DFPtsMap</a>; </div><div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a31ad5da37a88d2b97633d590393b0e64"> 375</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> DFPtsMap::iterator <a class="code" href="classSVF_1_1MutableDFPTData.html#a31ad5da37a88d2b97633d590393b0e64">DFPtsMapIter</a>;</div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#adb30678f5bbdea0f196d3b0ab67d2bad"> 376</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> DFPtsMap::const_iterator <a class="code" href="classSVF_1_1MutableDFPTData.html#adb30678f5bbdea0f196d3b0ab67d2bad">DFPtsMapconstIter</a>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div><div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#aed141fb836cb22e02032ea46e3e5f51b"> 379</a></span>  <a class="code" href="classSVF_1_1MutableDFPTData.html#aed141fb836cb22e02032ea46e3e5f51b">MutableDFPTData</a>(<span class="keywordtype">bool</span> reversePT = <span class="keyword">true</span>, PTDataTy ty = BaseDFPTData::MutDataFlow) : BaseDFPTData(reversePT, ty), mutPTData(reversePT) { }</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> </div><div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a96331853265be5129964a9751f64bd8d"> 381</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a96331853265be5129964a9751f64bd8d">~MutableDFPTData</a>() { }</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div><div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a8b1814326e71f6c6fd31d5aef0592a1d"> 383</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> PtsMap& <a class="code" href="classSVF_1_1MutableDFPTData.html#a8b1814326e71f6c6fd31d5aef0592a1d">getPtsMap</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">return</span> mutPTData.getPtsMap();</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  }</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div><div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a446112803c54ca937f8b85e42a4a1381"> 388</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a446112803c54ca937f8b85e42a4a1381">clear</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  mutPTData.clear();</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  }</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div><div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a4cbb9131a89c5c48367fb927693b5c6b"> 393</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> DataSet& <a class="code" href="classSVF_1_1MutableDFPTData.html#a4cbb9131a89c5c48367fb927693b5c6b">getPts</a>(<span class="keyword">const</span> Key& var)<span class="keyword"> override</span></div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keywordflow">return</span> mutPTData.getPts(var);</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="line"><a name="l00398"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a2f98940bd8266ad37a975c6d30d948b4"> 398</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> KeySet& <a class="code" href="classSVF_1_1MutableDFPTData.html#a2f98940bd8266ad37a975c6d30d948b4">getRevPts</a>(<span class="keyword">const</span> Data& datum)<span class="keyword"> override</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  assert(this-><a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a> && <span class="stringliteral">"MutableDFPTData::getRevPts: constructed without reverse PT support!"</span>);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordflow">return</span> mutPTData.getRevPts(datum);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  }</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div><div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a9a9641305c9d670e09f02b71a3e384a9"> 404</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a9a9641305c9d670e09f02b71a3e384a9">hasDFInSet</a>(LocID loc)<span class="keyword"> const override</span></div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keywordflow">return</span> (dfInPtsMap.find(loc) != dfInPtsMap.end());</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  }</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> </div><div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ac6d487a4af529ecb30366be54b29260a"> 409</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ac6d487a4af529ecb30366be54b29260a">hasDFOutSet</a>(LocID loc)<span class="keyword"> const override</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">return</span> (dfOutPtsMap.find(loc) != dfOutPtsMap.end());</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  }</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span> </div><div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#aa8b85dee2b70031a2f97e1a36c9b25de"> 414</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#aa8b85dee2b70031a2f97e1a36c9b25de">hasDFInSet</a>(LocID loc,<span class="keyword">const</span> Key& var)<span class="keyword"> const override</span></div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  DFPtsMapconstIter it = dfInPtsMap.find(loc);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keywordflow">if</span> ( it == dfInPtsMap.end())</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keyword">const</span> PtsMap& <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a> = it->second;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keywordflow">return</span> (ptsMap.find(var) != ptsMap.end());</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span> </div><div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#af6d234ae2b0aa91b510f3a2fba877340"> 423</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#af6d234ae2b0aa91b510f3a2fba877340">hasDFOutSet</a>(LocID loc, <span class="keyword">const</span> Key& var)<span class="keyword"> const override</span></div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  DFPtsMapconstIter it = dfOutPtsMap.find(loc);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordflow">if</span> ( it == dfOutPtsMap.end())</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keyword">const</span> PtsMap& <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a> = it->second;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="keywordflow">return</span> (ptsMap.find(var) != ptsMap.end());</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  }</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span> </div><div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a44aad57ac0de594e404a6c4ceff0bd53"> 432</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> DataSet& <a class="code" href="classSVF_1_1MutableDFPTData.html#a44aad57ac0de594e404a6c4ceff0bd53">getDFInPtsSet</a>(LocID loc, <span class="keyword">const</span> Key& var)<span class="keyword"> override</span></div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  PtsMap& inSet = dfInPtsMap[loc];</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keywordflow">return</span> inSet[var];</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  }</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span> </div><div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ab6b0496d0c34642ddd2707142334f4a2"> 438</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> DataSet& <a class="code" href="classSVF_1_1MutableDFPTData.html#ab6b0496d0c34642ddd2707142334f4a2">getDFOutPtsSet</a>(LocID loc, <span class="keyword">const</span> Key& var)<span class="keyword"> override</span></div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  PtsMap& outSet = dfOutPtsMap[loc];</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keywordflow">return</span> outSet[var];</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  }</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span> </div><div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a7559810e1ad40588f5fd82123ea1f150"> 446</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> PtsMap& <a class="code" href="classSVF_1_1MutableDFPTData.html#a7559810e1ad40588f5fd82123ea1f150">getDFInPtsMap</a>(LocID loc)</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  {</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keywordflow">return</span> dfInPtsMap[loc];</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  }</div><div class="line"><a name="l00450"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a034c1bf20ab8a73a97863073e08dcd4e"> 450</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> PtsMap& <a class="code" href="classSVF_1_1MutableDFPTData.html#a034c1bf20ab8a73a97863073e08dcd4e">getDFOutPtsMap</a>(LocID loc)</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  {</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keywordflow">return</span> dfOutPtsMap[loc];</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  }</div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ae999df6f94a097f1fcb36979327790de"> 454</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> DFPtsMap& <a class="code" href="classSVF_1_1MutableDFPTData.html#ae999df6f94a097f1fcb36979327790de">getDFIn</a>()</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  {</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordflow">return</span> dfInPtsMap;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  }</div><div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a6d02392602cf7956ff41e345518d683c"> 458</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> DFPtsMap& <a class="code" href="classSVF_1_1MutableDFPTData.html#a6d02392602cf7956ff41e345518d683c">getDFOut</a>()</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> dfOutPtsMap;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  }</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div><div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ac3ebc5afa531118b2b4446d23e3b8c7a"> 464</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ac3ebc5afa531118b2b4446d23e3b8c7a">updateDFInFromIn</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordflow">return</span> this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(getDFInPtsSet(dstLoc,dstVar), getDFInPtsSet(srcLoc,srcVar));</div><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> </div><div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a85c0d93ee01d2c93c255e5a369248d1b"> 469</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a85c0d93ee01d2c93c255e5a369248d1b">updateDFInFromOut</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordflow">return</span> this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(getDFInPtsSet(dstLoc,dstVar), getDFOutPtsSet(srcLoc,srcVar));</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> </div><div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ab3c517be91b4711ace581df075d4647a"> 474</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ab3c517be91b4711ace581df075d4647a">updateDFOutFromIn</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="keywordflow">return</span> this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(getDFOutPtsSet(dstLoc,dstVar), getDFInPtsSet(srcLoc,srcVar));</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"><a class="line" href="classSVF_1_1MutableDFPTData.html#a7c7eff549ea0d153e7a72ed5bf79c30e"> 479</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a7c7eff549ea0d153e7a72ed5bf79c30e">updateAllDFInFromOut</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordflow">return</span> this->updateDFInFromOut(srcLoc,srcVar,dstLoc,dstVar);</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  }</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div><div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a23fca889a29399a91dfc916f5fab46ee"> 484</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a23fca889a29399a91dfc916f5fab46ee">updateAllDFInFromIn</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordflow">return</span> this->updateDFInFromIn(srcLoc,srcVar,dstLoc,dstVar);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  }</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </div><div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a51365299a34e3386798e78a076d6e1f5"> 489</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a51365299a34e3386798e78a076d6e1f5">updateAllDFOutFromIn</a>(LocID loc, <span class="keyword">const</span> Key& singleton, <span class="keywordtype">bool</span> strongUpdates)<span class="keyword"> override</span></div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keywordflow">if</span> (this->hasDFInSet(loc))</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  {</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keyword">const</span> PtsMap & <a class="code" href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">ptsMap</a> = getDFInPtsMap(loc);</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> PtsMap::const_iterator ptsIt = ptsMap.begin(), ptsEit = ptsMap.end(); ptsIt != ptsEit; ++ptsIt)</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keyword">const</span> Key var = ptsIt->first;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">if</span> (strongUpdates && var == singleton)</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keywordflow">if</span> (updateDFOutFromIn(loc, var, loc, var))</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  }</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  }</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  }</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span> </div><div class="line"><a name="l00509"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a21b29c2d3e429017d910025e4ec73fc6"> 509</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a21b29c2d3e429017d910025e4ec73fc6">updateTLVPts</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="keywordflow">return</span> this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(dstVar, this->getDFInPtsSet(srcLoc,srcVar));</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  }</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span> </div><div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a0ce585790bba942291bb7c7ffcaa3914"> 514</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a0ce585790bba942291bb7c7ffcaa3914">updateATVPts</a>(<span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keywordflow">return</span> (this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(this->getDFOutPtsSet(dstLoc, dstVar), this-><a class="code" href="classSVF_1_1MutablePTData.html#abe4230f3ba78fc660ea291fda36ffa62">getPts</a>(srcVar)));</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  }</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span> </div><div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a43a45997f6147245fe8a552b42f3f632"> 519</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a43a45997f6147245fe8a552b42f3f632">clearAllDFOutUpdatedVar</a>(LocID)<span class="keyword"> override</span></div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  }</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span> </div><div class="line"><a name="l00526"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ab75373d16f57dbbf1e9472e9a27d6b4b"> 526</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ab75373d16f57dbbf1e9472e9a27d6b4b">addPts</a>(<span class="keyword">const</span> Key &dstKey, <span class="keyword">const</span> Key& srcKey)<span class="keyword"> override</span></div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MutablePTData.html#aab4a2eec11e83beca70b016102431ab1">addPts</a>(mutPTData.ptsMap[dstKey], srcKey);</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  }</div><div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ad64eed26e054eb4e91ec1139867cd196"> 530</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ad64eed26e054eb4e91ec1139867cd196">unionPts</a>(<span class="keyword">const</span> Key& dstKey, <span class="keyword">const</span> Key& srcKey)<span class="keyword"> override</span></div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(mutPTData.ptsMap[dstKey], <a class="code" href="classSVF_1_1MutablePTData.html#abe4230f3ba78fc660ea291fda36ffa62">getPts</a>(srcKey));</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  }</div><div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ab675653138960b16f23c801298e80f48"> 534</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ab675653138960b16f23c801298e80f48">unionPts</a>(<span class="keyword">const</span> Key& dstKey, <span class="keyword">const</span> DataSet& srcDataSet)<span class="keyword"> override</span></div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(mutPTData.ptsMap[dstKey], srcDataSet);</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  }</div><div class="line"><a name="l00538"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ae0495fcba25d4baffda9f85254591ae1"> 538</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ae0495fcba25d4baffda9f85254591ae1">clearPts</a>(<span class="keyword">const</span> Key& var, <span class="keyword">const</span> Data& element)<span class="keyword"> override</span></div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  mutPTData.clearPts(var, element);</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  }</div><div class="line"><a name="l00542"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ab345e148997b9e1c6e4c2c76267880b7"> 542</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ab345e148997b9e1c6e4c2c76267880b7">clearFullPts</a>(<span class="keyword">const</span> Key& var)<span class="keyword"> override</span></div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  mutPTData.clearFullPts(var);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  }</div><div class="line"><a name="l00546"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ad34e442581dfe57ce7f1add25c8414b2"> 546</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ad34e442581dfe57ce7f1add25c8414b2">remapAllPts</a>(<span class="keywordtype">void</span>)<span class="keyword"> override</span></div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  mutPTData.remapAllPts();</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> DFPtsMap::value_type &lopt : dfInPtsMap)</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  {</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> PtsMap::value_type &opt : lopt.second) opt.second.checkAndRemap();</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  }</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span> </div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> DFPtsMap::value_type &lopt : dfOutPtsMap)</div><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">for</span> (<span class="keyword">typename</span> PtsMap::value_type &opt : lopt.second) opt.second.checkAndRemap();</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  }</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  }</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span> </div><div class="line"><a name="l00561"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ac9120fbb056e23cdf84646a37d809a8d"> 561</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<DataSet, unsigned></a> <a class="code" href="classSVF_1_1MutableDFPTData.html#ac9120fbb056e23cdf84646a37d809a8d">getAllPts</a>(<span class="keywordtype">bool</span> liveOnly)<span class="keyword"> const override</span></div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<DataSet, unsigned></a> allPts = mutPTData.getAllPts(liveOnly);</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> DFPtsMap::value_type lptsmap : dfInPtsMap)</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  {</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> PtsMap::value_type vpt : lptsmap.second)</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  {</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  ++allPts[vpt.second];</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  }</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  }</div><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">for</span> (<span class="keyword">typename</span> DFPtsMap::value_type lptm : dfOutPtsMap)</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  {</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> PtsMap::value_type vpt : lptm.second)</div><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>  ++allPts[vpt.second];</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  }</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  }</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span> </div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keywordflow">return</span> allPts;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  }</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span> </div><div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a5baa6fffedfd0ac356590f9a0b222ee0"> 585</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a5baa6fffedfd0ac356590f9a0b222ee0">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MutableDFPTData.html">MutableDFPTData<Key, KeySet, Data, DataSet></a> *)</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  {</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  }</div><div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#acb338bbe5773001a15b81e596a764222"> 589</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#acb338bbe5773001a15b81e596a764222">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a>* ptd)</div><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>  <span class="keywordflow">return</span> ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == BaseDFPTData::MutDataFlow</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  || ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == BaseDFPTData::MutIncDataFlow;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  }</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span> </div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00599"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a8b30798ad9485a88238cc340e5da3db7"> 599</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a8b30798ad9485a88238cc340e5da3db7">unionPts</a>(DataSet& dstDataSet, <span class="keyword">const</span> DataSet& srcDataSet)</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  {</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordflow">return</span> dstDataSet |= srcDataSet;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  }</div><div class="line"><a name="l00603"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ab7d1a3464e561029573f6f3c13c9bff4"> 603</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ab7d1a3464e561029573f6f3c13c9bff4">addPts</a>(DataSet &d, <span class="keyword">const</span> Data& e)</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  {</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="keywordflow">return</span> d.test_and_set(e);</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  }</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span> </div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00612"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#a95f4644a82f84674164651db66b084b8"> 612</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#a95f4644a82f84674164651db66b084b8">dumpPTData</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  mutPTData.dumpPTData();</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  std::error_code ErrInfo;</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  std::fstream f(<span class="stringliteral">"svfg_pts.data"</span>, std::ios_base::out);</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="keywordflow">if</span> (f.good())</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  {</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> locs;</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keywordflow">for</span>(DFPtsMapconstIter it = dfInPtsMap.begin(), eit = dfInPtsMap.end(); it!=eit; ++it)</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  locs.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(it->first);</div><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">for</span>(DFPtsMapconstIter it = dfOutPtsMap.begin(), eit = dfOutPtsMap.end(); it!=eit; ++it)</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  locs.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(it->first);</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span> </div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = locs.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = locs.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it != eit; it++)</div><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>  LocID loc = *it;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <span class="keywordflow">if</span> (this->hasDFInSet(loc))</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  {</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  f << <span class="stringliteral">"Loc:"</span> << loc << <span class="stringliteral">" IN:{"</span>;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  this-><a class="code" href="classSVF_1_1MutablePTData.html#af08060bb4d450ecc4160cb79ab3dcc77">dumpPts</a>(this->getDFInPtsMap(loc), f);</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  f << <span class="stringliteral">"}\n"</span>;</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  }</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span> </div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <span class="keywordflow">if</span> (this->hasDFOutSet(loc))</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  {</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  f << <span class="stringliteral">"Loc:"</span> << loc << <span class="stringliteral">" OUT:{"</span>;</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  this-><a class="code" href="classSVF_1_1MutablePTData.html#af08060bb4d450ecc4160cb79ab3dcc77">dumpPts</a>(this->getDFOutPtsMap(loc), f);</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  f << <span class="stringliteral">"}\n"</span>;</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  }</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  }</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  f.close();</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <span class="keywordflow">if</span> (f.good())</div><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>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  }</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  }</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">" error opening file for writing!\n"</span>;</div><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> </div><div class="line"><a name="l00655"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ae88094abad311dd633f66db2cd78c322"> 655</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableDFPTData.html#ae88094abad311dd633f66db2cd78c322">dumpPts</a>(<span class="keyword">const</span> PtsMap & ptsSet,<a class="code" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</a> & O = <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>())<span class="keyword"> const</span></div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <span class="keywordflow">for</span> (PtsMapConstIter nodeIt = ptsSet.begin(); nodeIt != ptsSet.end(); nodeIt++)</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  {</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <span class="keyword">const</span> Key& var = nodeIt->first;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <span class="keyword">const</span> DataSet & pts = nodeIt->second;</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  <span class="keywordflow">if</span> (pts.empty())</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  O << <span class="stringliteral">"<"</span> << var << <span class="stringliteral">",{"</span>;</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">SVFUtil::dumpSet</a>(pts,O);</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  O << <span class="stringliteral">"}> "</span>;</div><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>  }</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span> </div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#abb59ef7367e353e65b82b54dac509f36"> 672</a></span>  DFPtsMap <a class="code" href="classSVF_1_1MutableDFPTData.html#abb59ef7367e353e65b82b54dac509f36">dfInPtsMap</a>;</div><div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#ad3c53ef1c8e221299f3afe078946fbe0"> 674</a></span>  DFPtsMap <a class="code" href="classSVF_1_1MutableDFPTData.html#ad3c53ef1c8e221299f3afe078946fbe0">dfOutPtsMap</a>;</div><div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableDFPTData.html#acf40f716470f73095d44a1b9e3bb939e"> 677</a></span>  <a class="code" href="classSVF_1_1MutablePTData.html">MutablePTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableDFPTData.html#acf40f716470f73095d44a1b9e3bb939e">mutPTData</a>;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span> };</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span> </div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet></div><div class="line"><a name="l00682"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html"> 682</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MutableIncDFPTData.html">MutableIncDFPTData</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1MutableDFPTData.html">MutableDFPTData</a><Key, KeySet, Data, DataSet></div><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> <span class="keyword">public</span>:</div><div class="line"><a name="l00685"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a14651359d0efe886c1313fd843e4d1db"> 685</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a14651359d0efe886c1313fd843e4d1db">BasePTData</a>;</div><div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a92f00e91a338113383bcf7bc8ce0026a"> 686</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MutablePTData.html">MutablePTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a92f00e91a338113383bcf7bc8ce0026a">BaseMutPTData</a>;</div><div class="line"><a name="l00687"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a4b944ec759d0e78a7a2238db587752a9"> 687</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1DFPTData.html">DFPTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a4b944ec759d0e78a7a2238db587752a9">BaseDFPTData</a>;</div><div class="line"><a name="l00688"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a58f9b6357a5cf0243cf3b4ece30e8cf6"> 688</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MutableDFPTData.html">MutableDFPTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a58f9b6357a5cf0243cf3b4ece30e8cf6">BaseMutDFPTData</a>;</div><div class="line"><a name="l00689"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a5f1715813082c1f02d6888b9ec32a75e"> 689</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">BasePTData::PTDataTy</a> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a5f1715813082c1f02d6888b9ec32a75e">PTDataTy</a>;</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span> </div><div class="line"><a name="l00691"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a74d9f271ea0fa69e56ddbe16f10f3241"> 691</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1DFPTData.html#a298a5ef6cfffbe10b9d05af0ad12e786">BaseDFPTData::LocID</a> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a74d9f271ea0fa69e56ddbe16f10f3241">LocID</a>;</div><div class="line"><a name="l00692"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a67c24cebffdcea9c8059f6769c7f9798"> 692</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<LocID, DataSet></a> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a67c24cebffdcea9c8059f6769c7f9798">UpdatedVarMap</a>; </div><div class="line"><a name="l00693"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a8b30326d3fa3f4054e67268f512aec9e"> 693</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> UpdatedVarMap::iterator <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a8b30326d3fa3f4054e67268f512aec9e">UpdatedVarMapIter</a>;</div><div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#af815dd2108c16e1dfddbcd5bdbcceeb6"> 694</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> UpdatedVarMap::const_iterator <a class="code" href="classSVF_1_1MutableIncDFPTData.html#af815dd2108c16e1dfddbcd5bdbcceeb6">UpdatedVarconstIter</a>;</div><div class="line"><a name="l00695"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a1fc4dff28f9044234fdfeede6f4b1cb0"> 695</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> DataSet::iterator <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a1fc4dff28f9044234fdfeede6f4b1cb0">DataIter</a>;</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span> </div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00698"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#af5f7db6c55037a0e117a36982736039e"> 698</a></span>  UpdatedVarMap <a class="code" href="classSVF_1_1MutableIncDFPTData.html#af5f7db6c55037a0e117a36982736039e">outUpdatedVarMap</a>;</div><div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#ab5e9ebf9e71652b5fa63d59c97d016e4"> 699</a></span>  UpdatedVarMap <a class="code" href="classSVF_1_1MutableIncDFPTData.html#ab5e9ebf9e71652b5fa63d59c97d016e4">inUpdatedVarMap</a>;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span> </div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a9b06421a9043dc61485acf51cfc26a91"> 703</a></span>  <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a9b06421a9043dc61485acf51cfc26a91">MutableIncDFPTData</a>(<span class="keywordtype">bool</span> reversePT = <span class="keyword">true</span>, PTDataTy ty = <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848aa4e18dfa52aad741c91bcc78339e986c">BasePTData::MutIncDataFlow</a>) : BaseMutDFPTData(reversePT, ty) { }</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span> </div><div class="line"><a name="l00705"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#adf4e5c57d7b7ae7da37bb1a4eabfe8a6"> 705</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#adf4e5c57d7b7ae7da37bb1a4eabfe8a6">~MutableIncDFPTData</a>() { }</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span> </div><div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a775ef6458314a1febef3f7372f6a2bbc"> 707</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a775ef6458314a1febef3f7372f6a2bbc">updateDFInFromIn</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="keywordflow">if</span>(varHasNewDFInPts(srcLoc, srcVar) &&</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(this->getDFInPtsSet(dstLoc,dstVar), this->getDFInPtsSet(srcLoc,srcVar)))</div><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>  setVarDFInSetUpdated(dstLoc,dstVar);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  }</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  }</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span> </div><div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#ad199b4b84f7aab48ff1510b118e2982f"> 718</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#ad199b4b84f7aab48ff1510b118e2982f">updateDFInFromOut</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="keywordflow">if</span>(varHasNewDFOutPts(srcLoc, srcVar) &&</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(this->getDFInPtsSet(dstLoc,dstVar), this->getDFOutPtsSet(srcLoc,srcVar)))</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  {</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  setVarDFInSetUpdated(dstLoc,dstVar);</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  }</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><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> </div><div class="line"><a name="l00729"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#aa326ac77577a8a4a0ce3e29cc03a3989"> 729</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#aa326ac77577a8a4a0ce3e29cc03a3989">updateDFOutFromIn</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <span class="keywordflow">if</span>(varHasNewDFInPts(srcLoc,srcVar))</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  {</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  removeVarFromDFInUpdatedSet(srcLoc,srcVar);</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(this->getDFOutPtsSet(dstLoc,dstVar), this->getDFInPtsSet(srcLoc,srcVar)))</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  {</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  setVarDFOutSetUpdated(dstLoc,dstVar);</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><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>  }</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  }</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span> </div><div class="line"><a name="l00743"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a2dd9dad547c389d5cd488b165dd145eb"> 743</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a2dd9dad547c389d5cd488b165dd145eb">updateAllDFInFromOut</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  <span class="keywordflow">if</span>(this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(this->getDFInPtsSet(dstLoc,dstVar), this->getDFOutPtsSet(srcLoc,srcVar)))</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  {</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  setVarDFInSetUpdated(dstLoc,dstVar);</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><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>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  }</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span> </div><div class="line"><a name="l00753"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#ad68b23ed56b2c18bf75c23a658523404"> 753</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#ad68b23ed56b2c18bf75c23a658523404">updateAllDFInFromIn</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <span class="keywordflow">if</span>(this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(this->getDFInPtsSet(dstLoc,dstVar), this->getDFInPtsSet(srcLoc,srcVar)))</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  {</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  setVarDFInSetUpdated(dstLoc,dstVar);</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  }</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  }</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span> </div><div class="line"><a name="l00763"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a3f397aaf4f3d6d04ec005c2577652e04"> 763</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a3f397aaf4f3d6d04ec005c2577652e04">updateAllDFOutFromIn</a>(LocID loc, <span class="keyword">const</span> Key& singleton, <span class="keywordtype">bool</span> strongUpdates)<span class="keyword"> override</span></div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <span class="keywordflow">if</span> (this->hasDFInSet(loc))</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  {</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  DataSet pts = getDFInUpdatedVar(loc);</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <span class="keywordflow">for</span> (DataIter ptsIt = pts.begin(), ptsEit = pts.end(); ptsIt != ptsEit; ++ptsIt)</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>  <span class="keyword">const</span> Key var = *ptsIt;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <span class="keywordflow">if</span> (strongUpdates && var == singleton)</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <span class="keywordflow">if</span> (updateDFOutFromIn(loc, var, loc, var))</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  }</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  }</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  }</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span> </div><div class="line"><a name="l00783"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a7778be60515fa3ff247b6d2cec138cfc"> 783</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a7778be60515fa3ff247b6d2cec138cfc">updateTLVPts</a>(LocID srcLoc, <span class="keyword">const</span> Key& srcVar, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  <span class="keywordflow">if</span>(varHasNewDFInPts(srcLoc,srcVar))</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  {</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  removeVarFromDFInUpdatedSet(srcLoc,srcVar);</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="keywordflow">return</span> this->mutPTData.unionPts(dstVar, this->getDFInPtsSet(srcLoc,srcVar));</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  }</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  }</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span> </div><div class="line"><a name="l00793"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#aa8fdf0f82d3d94af34d5bc1386ed21f9"> 793</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#aa8fdf0f82d3d94af34d5bc1386ed21f9">updateATVPts</a>(<span class="keyword">const</span> Key& srcVar, LocID dstLoc, <span class="keyword">const</span> Key& dstVar)<span class="keyword"> override</span></div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">unionPts</a>(this->getDFOutPtsSet(dstLoc, dstVar), this->mutPTData.getPts(srcVar)))</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  {</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  setVarDFOutSetUpdated(dstLoc, dstVar);</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  }</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  }</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span> </div><div class="line"><a name="l00803"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#ac9ff175dbdf75232a104e2aa34f87d43"> 803</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#ac9ff175dbdf75232a104e2aa34f87d43">clearAllDFOutUpdatedVar</a>(LocID loc)<span class="keyword"> override</span></div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  <span class="keywordflow">if</span> (this->hasDFOutSet(loc))</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  {</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  DataSet pts = getDFOutUpdatedVar(loc);</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="keywordflow">for</span> (DataIter ptsIt = pts.begin(), ptsEit = pts.end(); ptsIt != ptsEit; ++ptsIt)</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  {</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <span class="keyword">const</span> Key var = *ptsIt;</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  removeVarFromDFOutUpdatedSet(loc, var);</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  }</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  }</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  }</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span> </div><div class="line"><a name="l00818"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a89f65d37096c82fcdddb1c324ec206d2"> 818</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a89f65d37096c82fcdddb1c324ec206d2">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html">MutableIncDFPTData<Key, KeySet, Data, DataSet></a> *)</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  {</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  }</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span> </div><div class="line"><a name="l00823"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#aa4c262f0d62e902912d4cd7999731d3d"> 823</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#aa4c262f0d62e902912d4cd7999731d3d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a>* ptd)</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  {</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <span class="keywordflow">return</span> ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848aa4e18dfa52aad741c91bcc78339e986c">BasePTData::MutIncDataFlow</a>;</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  }</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span> </div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> setVarDFInSetUpdated(LocID loc,<span class="keyword">const</span> Key& var)</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  {</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  inUpdatedVarMap[loc].set(var);</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  }</div><div class="line"><a name="l00837"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a913c1a2c48526160eeecd028bd22cfc4"> 837</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a913c1a2c48526160eeecd028bd22cfc4">removeVarFromDFInUpdatedSet</a>(LocID loc,<span class="keyword">const</span> Key& var)</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  {</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  UpdatedVarMapIter it = inUpdatedVarMap.find(loc);</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  <span class="keywordflow">if</span> (it != inUpdatedVarMap.end())</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  it->second.reset(var);</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  }</div><div class="line"><a name="l00844"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#ae7ed810cf4de695072ba5c4d0c882353"> 844</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#ae7ed810cf4de695072ba5c4d0c882353">varHasNewDFInPts</a>(LocID loc,<span class="keyword">const</span> Key& var)</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  {</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  UpdatedVarMapIter it = inUpdatedVarMap.find(loc);</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  <span class="keywordflow">if</span> (it != inUpdatedVarMap.end())</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  <span class="keywordflow">return</span> it->second.test(var);</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  }</div><div class="line"><a name="l00852"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#ae4d0989cb98814f943bd4dfd09a37017"> 852</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> DataSet& <a class="code" href="classSVF_1_1MutableIncDFPTData.html#ae4d0989cb98814f943bd4dfd09a37017">getDFInUpdatedVar</a>(LocID loc)</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  {</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <span class="keywordflow">return</span> inUpdatedVarMap[loc];</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  }</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span> </div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span> </div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> setVarDFOutSetUpdated(LocID loc,<span class="keyword">const</span> Key& var)</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  {</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  outUpdatedVarMap[loc].set(var);</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  }</div><div class="line"><a name="l00866"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#ac055ad77582b36083ca1950c39207f5e"> 866</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#ac055ad77582b36083ca1950c39207f5e">removeVarFromDFOutUpdatedSet</a>(LocID loc,<span class="keyword">const</span> Key& var)</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  {</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  UpdatedVarMapIter it = outUpdatedVarMap.find(loc);</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  <span class="keywordflow">if</span> (it != outUpdatedVarMap.end())</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  it->second.reset(var);</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  }</div><div class="line"><a name="l00873"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#a55b19f617d11dfc6632b690694f264ab"> 873</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableIncDFPTData.html#a55b19f617d11dfc6632b690694f264ab">varHasNewDFOutPts</a>(LocID loc,<span class="keyword">const</span> Key& var)</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  {</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  UpdatedVarMapIter it = outUpdatedVarMap.find(loc);</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  <span class="keywordflow">if</span> (it != outUpdatedVarMap.end())</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <span class="keywordflow">return</span> it->second.test(var);</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  }</div><div class="line"><a name="l00881"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableIncDFPTData.html#ad1ae7faf04ba10ac4ac6a6f1cc498547"> 881</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> DataSet& <a class="code" href="classSVF_1_1MutableIncDFPTData.html#ad1ae7faf04ba10ac4ac6a6f1cc498547">getDFOutUpdatedVar</a>(LocID loc)</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  {</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <span class="keywordflow">return</span> outUpdatedVarMap[loc];</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  }</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span> };</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span> </div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet, <span class="keyword">typename</span> Data, <span class="keyword">typename</span> DataSet, <span class="keyword">typename</span> VersionedKey, <span class="keyword">typename</span> VersionedKeySet></div><div class="line"><a name="l00892"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html"> 892</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MutableVersionedPTData.html">MutableVersionedPTData</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1VersionedPTData.html">VersionedPTData</a><Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet></div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span> {</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00895"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a31fd15a8147e3146b15b4d24fe34cf46"> 895</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a31fd15a8147e3146b15b4d24fe34cf46">BasePTData</a>;</div><div class="line"><a name="l00896"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#aa80044e3b4c3ed58117573dfa54d803b"> 896</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1VersionedPTData.html">VersionedPTData<Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet></a> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#aa80044e3b4c3ed58117573dfa54d803b">BaseVersionedPTData</a>;</div><div class="line"><a name="l00897"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#af7bf99aeb752c4216a60d1fa5187b49e"> 897</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">BasePTData::PTDataTy</a> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#af7bf99aeb752c4216a60d1fa5187b49e">PTDataTy</a>;</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span> </div><div class="line"><a name="l00899"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#ad2f9950ad71a39c400a4835e6e84fcd9"> 899</a></span>  <a class="code" href="classSVF_1_1MutableVersionedPTData.html#ad2f9950ad71a39c400a4835e6e84fcd9">MutableVersionedPTData</a>(<span class="keywordtype">bool</span> reversePT = <span class="keyword">true</span>, PTDataTy ty = PTDataTy::MutVersioned)</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  : BaseVersionedPTData(reversePT, ty), tlPTData(reversePT), atPTData(reversePT) { }</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span> </div><div class="line"><a name="l00902"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#adf809b61632067b0a987d2975e6377dc"> 902</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#adf809b61632067b0a987d2975e6377dc">~MutableVersionedPTData</a>() { }</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span> </div><div class="line"><a name="l00904"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#ab476e1b59aead37b440fd5735df3814b"> 904</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#ab476e1b59aead37b440fd5735df3814b">clear</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  tlPTData.clear();</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  atPTData.clear();</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  }</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span> </div><div class="line"><a name="l00910"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#aaf519166d2e0ca3c81088b52a1cf3066"> 910</a></span>  <span class="keyword">virtual</span> <span class="keyword">const</span> DataSet& <a class="code" href="classSVF_1_1MutableVersionedPTData.html#aaf519166d2e0ca3c81088b52a1cf3066">getPts</a>(<span class="keyword">const</span> Key& vk)<span class="keyword"> override</span></div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  <span class="keywordflow">return</span> tlPTData.getPts(vk);</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  }</div><div class="line"><a name="l00914"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#afcc34f6cedca6a8f151b1a7251832818"> 914</a></span>  <span class="keyword">virtual</span> <span class="keyword">const</span> DataSet& <a class="code" href="classSVF_1_1MutableVersionedPTData.html#afcc34f6cedca6a8f151b1a7251832818">getPts</a>(<span class="keyword">const</span> VersionedKey& vk)<span class="keyword"> override</span></div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  <span class="keywordflow">return</span> atPTData.getPts(vk);</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  }</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span> </div><div class="line"><a name="l00919"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a7de508c0d83895aee785524d28eac8b9"> 919</a></span>  <span class="keyword">virtual</span> <span class="keyword">const</span> KeySet& <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a7de508c0d83895aee785524d28eac8b9">getRevPts</a>(<span class="keyword">const</span> Data& datum)<span class="keyword"> override</span></div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  assert(this-><a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a> && <span class="stringliteral">"MutableVersionedPTData::getRevPts: constructed without reverse PT support!"</span>);</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  <span class="keywordflow">return</span> tlPTData.getRevPts(datum);</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  }</div><div class="line"><a name="l00924"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#afaef5c61bee74cbd649c787cfdef2a03"> 924</a></span>  <span class="keyword">virtual</span> <span class="keyword">const</span> VersionedKeySet& <a class="code" href="classSVF_1_1MutableVersionedPTData.html#afaef5c61bee74cbd649c787cfdef2a03">getVersionedKeyRevPts</a>(<span class="keyword">const</span> Data& datum)<span class="keyword"> override</span></div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  assert(this-><a class="code" href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">rev</a> && <span class="stringliteral">"MutableVersionedPTData::getVersionedKeyRevPts: constructed without reverse PT support!"</span>);</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  <span class="keywordflow">return</span> atPTData.getRevPts(datum);</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  }</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span> </div><div class="line"><a name="l00930"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a00a88cc3e802921c6a0951801ec712a6"> 930</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a00a88cc3e802921c6a0951801ec712a6">addPts</a>(<span class="keyword">const</span> Key& k, <span class="keyword">const</span> Data& element)<span class="keyword"> override</span></div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  <span class="keywordflow">return</span> tlPTData.addPts(k, element);</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  }</div><div class="line"><a name="l00934"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#af39232f64ff0ede20161c7f265da6cf5"> 934</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#af39232f64ff0ede20161c7f265da6cf5">addPts</a>(<span class="keyword">const</span> VersionedKey& vk, <span class="keyword">const</span> Data& element)<span class="keyword"> override</span></div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  <span class="keywordflow">return</span> atPTData.addPts(vk, element);</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  }</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span> </div><div class="line"><a name="l00939"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#ae79628fc101567ba84215b624dd00c01"> 939</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#ae79628fc101567ba84215b624dd00c01">unionPts</a>(<span class="keyword">const</span> Key& dstVar, <span class="keyword">const</span> Key& srcVar)<span class="keyword"> override</span></div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  <span class="keywordflow">return</span> tlPTData.unionPts(dstVar, srcVar);</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  }</div><div class="line"><a name="l00943"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a56e752a83620f482a4b1e2f8d395dd75"> 943</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a56e752a83620f482a4b1e2f8d395dd75">unionPts</a>(<span class="keyword">const</span> VersionedKey& dstVar, <span class="keyword">const</span> VersionedKey& srcVar)<span class="keyword"> override</span></div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  <span class="keywordflow">return</span> atPTData.unionPts(dstVar, srcVar);</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  }</div><div class="line"><a name="l00947"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a5647b7fad5c14f7ec57d3de3480758eb"> 947</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a5647b7fad5c14f7ec57d3de3480758eb">unionPts</a>(<span class="keyword">const</span> VersionedKey& dstVar, <span class="keyword">const</span> Key& srcVar)<span class="keyword"> override</span></div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  <span class="keywordflow">return</span> atPTData.unionPts(dstVar, tlPTData.getPts(srcVar));</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  }</div><div class="line"><a name="l00951"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a9967c530d3955a0a726b7a00653ef0ba"> 951</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a9967c530d3955a0a726b7a00653ef0ba">unionPts</a>(<span class="keyword">const</span> Key& dstVar, <span class="keyword">const</span> VersionedKey& srcVar)<span class="keyword"> override</span></div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  <span class="keywordflow">return</span> tlPTData.unionPts(dstVar, atPTData.getPts(srcVar));</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  }</div><div class="line"><a name="l00955"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#aa9ab46b7afc7f47df20e74bda300dc42"> 955</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#aa9ab46b7afc7f47df20e74bda300dc42">unionPts</a>(<span class="keyword">const</span> Key& dstVar, <span class="keyword">const</span> DataSet& srcDataSet)<span class="keyword"> override</span></div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  <span class="keywordflow">return</span> tlPTData.unionPts(dstVar, srcDataSet);</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  }</div><div class="line"><a name="l00959"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#aa9d24a4defb025c075e4ec5bc7f3b618"> 959</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#aa9d24a4defb025c075e4ec5bc7f3b618">unionPts</a>(<span class="keyword">const</span> VersionedKey& dstVar, <span class="keyword">const</span> DataSet& srcDataSet)<span class="keyword"> override</span></div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  <span class="keywordflow">return</span> atPTData.unionPts(dstVar, srcDataSet);</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  }</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span> </div><div class="line"><a name="l00964"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#ab20b71c9e2f31439c95071c375bf89e0"> 964</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#ab20b71c9e2f31439c95071c375bf89e0">clearPts</a>(<span class="keyword">const</span> Key& k, <span class="keyword">const</span> Data& element)<span class="keyword"> override</span></div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  tlPTData.clearPts(k, element);</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  }</div><div class="line"><a name="l00968"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a21e823484199946541b8b79d736b2601"> 968</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a21e823484199946541b8b79d736b2601">clearPts</a>(<span class="keyword">const</span> VersionedKey& vk, <span class="keyword">const</span> Data& element)<span class="keyword"> override</span></div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  atPTData.clearPts(vk, element);</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  }</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span> </div><div class="line"><a name="l00973"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a9f985ff2daee53fb661e4b2bcfd17f05"> 973</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a9f985ff2daee53fb661e4b2bcfd17f05">clearFullPts</a>(<span class="keyword">const</span> Key& k)<span class="keyword"> override</span></div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  tlPTData.clearFullPts(k);</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  }</div><div class="line"><a name="l00977"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#aaf3df7501f84233f6a687ef9f2f0ae90"> 977</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#aaf3df7501f84233f6a687ef9f2f0ae90">clearFullPts</a>(<span class="keyword">const</span> VersionedKey& vk)<span class="keyword"> override</span></div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  atPTData.clearFullPts(vk);</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  }</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span> </div><div class="line"><a name="l00982"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a72cbf33b77f5a19221ad265691065695"> 982</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a72cbf33b77f5a19221ad265691065695">remapAllPts</a>(<span class="keywordtype">void</span>)<span class="keyword"> override</span></div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  tlPTData.remapAllPts();</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  atPTData.remapAllPts();</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  }</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span> </div><div class="line"><a name="l00988"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a6cac338e74f869d0e708c7e2b356b5d7"> 988</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<DataSet, unsigned></a> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a6cac338e74f869d0e708c7e2b356b5d7">getAllPts</a>(<span class="keywordtype">bool</span> liveOnly)<span class="keyword"> const override</span></div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<DataSet, unsigned></a> allPts = tlPTData.getAllPts(liveOnly);</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  SVFUtil::mergePtsOccMaps<DataSet>(allPts, atPTData.getAllPts(liveOnly));</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  <span class="keywordflow">return</span> allPts;</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  }</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span> </div><div class="line"><a name="l00995"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a796c1676dd5180a27dbebae5a99b57b7"> 995</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a796c1676dd5180a27dbebae5a99b57b7">dumpPTData</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"== Top-level points-to information\n"</span>;</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  tlPTData.dumpPTData();</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"== Address-taken points-to information\n"</span>;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  atPTData.dumpPTData();</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  }</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> </div><div class="line"><a name="l01005"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a6be54447671288a666af5d48972e2ccf"> 1005</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a6be54447671288a666af5d48972e2ccf">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html">MutableVersionedPTData<Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet></a> *)</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  {</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  }</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> </div><div class="line"><a name="l01010"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a646111552a7112b8e48c00e766ce8d9b"> 1010</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a646111552a7112b8e48c00e766ce8d9b">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTData.html">PTData<Key, KeySet, Data, DataSet></a>* ptd)</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  {</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  <span class="keywordflow">return</span> ptd-><a class="code" href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">getPTDTY</a>() == PTDataTy::MutVersioned;</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  }</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> </div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01018"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a01974968b7cf60a4231cc83c93b26d7f"> 1018</a></span>  <a class="code" href="classSVF_1_1MutablePTData.html">MutablePTData<Key, KeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a01974968b7cf60a4231cc83c93b26d7f">tlPTData</a>;</div><div class="line"><a name="l01020"></a><span class="lineno"><a class="line" href="classSVF_1_1MutableVersionedPTData.html#a3e5337d4189e98f11305491a9ef3c439"> 1020</a></span>  <a class="code" href="classSVF_1_1MutablePTData.html">MutablePTData<VersionedKey, VersionedKeySet, Data, DataSet></a> <a class="code" href="classSVF_1_1MutableVersionedPTData.html#a3e5337d4189e98f11305491a9ef3c439">atPTData</a>;</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> };</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> </div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> </div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> <span class="preprocessor">#endif // MUTABLE_POINTSTO_H_</span></div><div class="ttc" id="classSVF_1_1MutableDFPTData_html_a9a9641305c9d670e09f02b71a3e384a9"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a9a9641305c9d670e09f02b71a3e384a9">SVF::MutableDFPTData::hasDFInSet</a></div><div class="ttdeci">virtual bool hasDFInSet(LocID loc) const override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00404">MutablePointsToDS.h:404</a></div></div>
|
|
70
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a124e8cc8d2dbbd70682a4b7845e5d600"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a124e8cc8d2dbbd70682a4b7845e5d600">SVF::MutablePTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstKey, const DataSet &srcDataSet) override</div><div class="ttdoc">Performs pts(dstVar) = pts(dstVar) U srcDataSet. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00106">MutablePointsToDS.h:106</a></div></div>
|
|
71
71
|
<div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00534">SparseBitVector.h:534</a></div></div>
|
|
72
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_af815dd2108c16e1dfddbcd5bdbcceeb6"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#af815dd2108c16e1dfddbcd5bdbcceeb6">SVF::MutableIncDFPTData::UpdatedVarconstIter</a></div><div class="ttdeci">UpdatedVarMap::const_iterator UpdatedVarconstIter</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
73
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a80cb0bdab4aa64d81e3d61405066a0da"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a80cb0bdab4aa64d81e3d61405066a0da">SVF::MutablePTData::clearRevPts</a></div><div class="ttdeci">void clearRevPts(const DataSet &pts, const Key &k)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
74
|
-
<div class="ttc" id="classSVF_1_1VersionedPTData_html"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html">SVF::VersionedPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
75
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a36aa05b8f5c308035315d6df7036c096"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a36aa05b8f5c308035315d6df7036c096">SVF::MutablePTData::getRevPts</a></div><div class="ttdeci">virtual const KeySet & getRevPts(const Data &datum) override</div><div class="ttdoc">Get reverse points-to set of a datum. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
72
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_af815dd2108c16e1dfddbcd5bdbcceeb6"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#af815dd2108c16e1dfddbcd5bdbcceeb6">SVF::MutableIncDFPTData::UpdatedVarconstIter</a></div><div class="ttdeci">UpdatedVarMap::const_iterator UpdatedVarconstIter</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00694">MutablePointsToDS.h:694</a></div></div>
|
|
73
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a80cb0bdab4aa64d81e3d61405066a0da"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a80cb0bdab4aa64d81e3d61405066a0da">SVF::MutablePTData::clearRevPts</a></div><div class="ttdeci">void clearRevPts(const DataSet &pts, const Key &k)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00211">MutablePointsToDS.h:211</a></div></div>
|
|
74
|
+
<div class="ttc" id="classSVF_1_1VersionedPTData_html"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html">SVF::VersionedPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00269">AbstractPointsToDS.h:269</a></div></div>
|
|
75
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a36aa05b8f5c308035315d6df7036c096"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a36aa05b8f5c308035315d6df7036c096">SVF::MutablePTData::getRevPts</a></div><div class="ttdeci">virtual const KeySet & getRevPts(const Data &datum) override</div><div class="ttdoc">Get reverse points-to set of a datum. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00088">MutablePointsToDS.h:88</a></div></div>
|
|
76
76
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aeb570e9267fd7b189bd1bc877896d7ab"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">SVF::SVFUtil::dumpSet</a></div><div class="ttdeci">void dumpSet(NodeBS To, OutStream &O=SVFUtil::outs())</div><div class="ttdoc">Dump sparse bitvector set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00147">SVFUtil.cpp:147</a></div></div>
|
|
77
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a796c1676dd5180a27dbebae5a99b57b7"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a796c1676dd5180a27dbebae5a99b57b7">SVF::MutableVersionedPTData::dumpPTData</a></div><div class="ttdeci">virtual void dumpPTData() override</div><div class="ttdoc">Dump stored keys and points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
78
|
-
<div class="ttc" id="classSVF_1_1DiffPTData_html"><div class="ttname"><a href="classSVF_1_1DiffPTData.html">SVF::DiffPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
79
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ab75373d16f57dbbf1e9472e9a27d6b4b"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ab75373d16f57dbbf1e9472e9a27d6b4b">SVF::MutableDFPTData::addPts</a></div><div class="ttdeci">virtual bool addPts(const Key &dstKey, const Key &srcKey) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
80
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a0ce585790bba942291bb7c7ffcaa3914"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a0ce585790bba942291bb7c7ffcaa3914">SVF::MutableDFPTData::updateATVPts</a></div><div class="ttdeci">virtual bool updateATVPts(const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Update address-taken variables OUT[dstLoc:dstVar] with points-to of top-level pointers. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
81
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_af08060bb4d450ecc4160cb79ab3dcc77"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#af08060bb4d450ecc4160cb79ab3dcc77">SVF::MutablePTData::dumpPts</a></div><div class="ttdeci">virtual void dumpPts(const PtsMap &ptsSet, OutStream &O=SVFUtil::outs()) const</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
82
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a1fc4dff28f9044234fdfeede6f4b1cb0"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a1fc4dff28f9044234fdfeede6f4b1cb0">SVF::MutableIncDFPTData::DataIter</a></div><div class="ttdeci">DataSet::iterator DataIter</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
83
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_adf10cc451517f8d3ee7aec8baa61772f"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#adf10cc451517f8d3ee7aec8baa61772f">SVF::MutableDiffPTData::dumpPTData</a></div><div class="ttdeci">virtual void dumpPTData() override</div><div class="ttdoc">Dump stored keys and points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
84
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ad02e5645ef7a73ba4c20c557a6f11789"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ad02e5645ef7a73ba4c20c557a6f11789">SVF::MutableDFPTData::BaseMutPTData</a></div><div class="ttdeci">MutablePTData< Key, KeySet, Data, DataSet > BaseMutPTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
85
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a562f0f584cd4f3b2d18f3973fde9c068"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a562f0f584cd4f3b2d18f3973fde9c068">SVF::MutableDiffPTData::BasePTData</a></div><div class="ttdeci">PTData< Key, KeySet, Data, DataSet > BasePTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
86
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_afcc34f6cedca6a8f151b1a7251832818"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#afcc34f6cedca6a8f151b1a7251832818">SVF::MutableVersionedPTData::getPts</a></div><div class="ttdeci">virtual const DataSet & getPts(const VersionedKey &vk) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
87
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_ae9c96f369fbe955a841badcf3fcfcc03"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ae9c96f369fbe955a841badcf3fcfcc03">SVF::MutablePTData::PtsMapConstIter</a></div><div class="ttdeci">PtsMap::const_iterator PtsMapConstIter</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
88
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a775ef6458314a1febef3f7372f6a2bbc"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a775ef6458314a1febef3f7372f6a2bbc">SVF::MutableIncDFPTData::updateDFInFromIn</a></div><div class="ttdeci">virtual bool updateDFInFromIn(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
89
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_ad2f9950ad71a39c400a4835e6e84fcd9"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#ad2f9950ad71a39c400a4835e6e84fcd9">SVF::MutableVersionedPTData::MutableVersionedPTData</a></div><div class="ttdeci">MutableVersionedPTData(bool reversePT=true, PTDataTy ty=PTDataTy::MutVersioned)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
90
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_ae087d0307844312710c2d4c05535ea86"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#ae087d0307844312710c2d4c05535ea86">SVF::MutableDiffPTData::MutableDiffPTData</a></div><div class="ttdeci">MutableDiffPTData(bool reversePT=true, PTDataTy ty=PTDataTy::Diff)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
91
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a3946e3b737d95539cb57b10e53d356fc"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a3946e3b737d95539cb57b10e53d356fc">SVF::MutableDiffPTData::clearPropaPts</a></div><div class="ttdeci">virtual void clearPropaPts(Key &var) override</div><div class="ttdoc">Clear propagated points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
92
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a1b2d520d24a8d19de00e26237e5cd098"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a1b2d520d24a8d19de00e26237e5cd098">SVF::MutableDiffPTData::classof</a></div><div class="ttdeci">static bool classof(const MutableDiffPTData< Key, KeySet, Data, DataSet > *)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
77
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a796c1676dd5180a27dbebae5a99b57b7"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a796c1676dd5180a27dbebae5a99b57b7">SVF::MutableVersionedPTData::dumpPTData</a></div><div class="ttdeci">virtual void dumpPTData() override</div><div class="ttdoc">Dump stored keys and points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00995">MutablePointsToDS.h:995</a></div></div>
|
|
78
|
+
<div class="ttc" id="classSVF_1_1DiffPTData_html"><div class="ttname"><a href="classSVF_1_1DiffPTData.html">SVF::DiffPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00149">AbstractPointsToDS.h:149</a></div></div>
|
|
79
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ab75373d16f57dbbf1e9472e9a27d6b4b"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ab75373d16f57dbbf1e9472e9a27d6b4b">SVF::MutableDFPTData::addPts</a></div><div class="ttdeci">virtual bool addPts(const Key &dstKey, const Key &srcKey) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00526">MutablePointsToDS.h:526</a></div></div>
|
|
80
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a0ce585790bba942291bb7c7ffcaa3914"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a0ce585790bba942291bb7c7ffcaa3914">SVF::MutableDFPTData::updateATVPts</a></div><div class="ttdeci">virtual bool updateATVPts(const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Update address-taken variables OUT[dstLoc:dstVar] with points-to of top-level pointers. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00514">MutablePointsToDS.h:514</a></div></div>
|
|
81
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_af08060bb4d450ecc4160cb79ab3dcc77"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#af08060bb4d450ecc4160cb79ab3dcc77">SVF::MutablePTData::dumpPts</a></div><div class="ttdeci">virtual void dumpPts(const PtsMap &ptsSet, OutStream &O=SVFUtil::outs()) const</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00161">MutablePointsToDS.h:161</a></div></div>
|
|
82
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a1fc4dff28f9044234fdfeede6f4b1cb0"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a1fc4dff28f9044234fdfeede6f4b1cb0">SVF::MutableIncDFPTData::DataIter</a></div><div class="ttdeci">DataSet::iterator DataIter</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00695">MutablePointsToDS.h:695</a></div></div>
|
|
83
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_adf10cc451517f8d3ee7aec8baa61772f"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#adf10cc451517f8d3ee7aec8baa61772f">SVF::MutableDiffPTData::dumpPTData</a></div><div class="ttdeci">virtual void dumpPTData() override</div><div class="ttdoc">Dump stored keys and points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00294">MutablePointsToDS.h:294</a></div></div>
|
|
84
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ad02e5645ef7a73ba4c20c557a6f11789"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ad02e5645ef7a73ba4c20c557a6f11789">SVF::MutableDFPTData::BaseMutPTData</a></div><div class="ttdeci">MutablePTData< Key, KeySet, Data, DataSet > BaseMutPTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00367">MutablePointsToDS.h:367</a></div></div>
|
|
85
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a562f0f584cd4f3b2d18f3973fde9c068"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a562f0f584cd4f3b2d18f3973fde9c068">SVF::MutableDiffPTData::BasePTData</a></div><div class="ttdeci">PTData< Key, KeySet, Data, DataSet > BasePTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00230">MutablePointsToDS.h:230</a></div></div>
|
|
86
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_afcc34f6cedca6a8f151b1a7251832818"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#afcc34f6cedca6a8f151b1a7251832818">SVF::MutableVersionedPTData::getPts</a></div><div class="ttdeci">virtual const DataSet & getPts(const VersionedKey &vk) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00914">MutablePointsToDS.h:914</a></div></div>
|
|
87
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_ae9c96f369fbe955a841badcf3fcfcc03"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ae9c96f369fbe955a841badcf3fcfcc03">SVF::MutablePTData::PtsMapConstIter</a></div><div class="ttdeci">PtsMap::const_iterator PtsMapConstIter</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00063">MutablePointsToDS.h:63</a></div></div>
|
|
88
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a775ef6458314a1febef3f7372f6a2bbc"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a775ef6458314a1febef3f7372f6a2bbc">SVF::MutableIncDFPTData::updateDFInFromIn</a></div><div class="ttdeci">virtual bool updateDFInFromIn(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00707">MutablePointsToDS.h:707</a></div></div>
|
|
89
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_ad2f9950ad71a39c400a4835e6e84fcd9"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#ad2f9950ad71a39c400a4835e6e84fcd9">SVF::MutableVersionedPTData::MutableVersionedPTData</a></div><div class="ttdeci">MutableVersionedPTData(bool reversePT=true, PTDataTy ty=PTDataTy::MutVersioned)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00899">MutablePointsToDS.h:899</a></div></div>
|
|
90
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_ae087d0307844312710c2d4c05535ea86"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#ae087d0307844312710c2d4c05535ea86">SVF::MutableDiffPTData::MutableDiffPTData</a></div><div class="ttdeci">MutableDiffPTData(bool reversePT=true, PTDataTy ty=PTDataTy::Diff)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00237">MutablePointsToDS.h:237</a></div></div>
|
|
91
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a3946e3b737d95539cb57b10e53d356fc"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a3946e3b737d95539cb57b10e53d356fc">SVF::MutableDiffPTData::clearPropaPts</a></div><div class="ttdeci">virtual void clearPropaPts(Key &var) override</div><div class="ttdoc">Clear propagated points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00323">MutablePointsToDS.h:323</a></div></div>
|
|
92
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a1b2d520d24a8d19de00e26237e5cd098"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a1b2d520d24a8d19de00e26237e5cd098">SVF::MutableDiffPTData::classof</a></div><div class="ttdeci">static bool classof(const MutableDiffPTData< Key, KeySet, Data, DataSet > *)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00335">MutablePointsToDS.h:335</a></div></div>
|
|
93
93
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aeecfaf26800dcebf0b079395126bc7f7"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aeecfaf26800dcebf0b079395126bc7f7">SVF::SVFUtil::insertKey</a></div><div class="ttdeci">void insertKey(const Key &key, KeySet &keySet)</div><div class="ttdoc">Inserts an element into a Set/CondSet (with ::insert). </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00307">SVFUtil.h:307</a></div></div>
|
|
94
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a85c0d93ee01d2c93c255e5a369248d1b"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a85c0d93ee01d2c93c255e5a369248d1b">SVF::MutableDFPTData::updateDFInFromOut</a></div><div class="ttdeci">virtual bool updateDFInFromOut(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Union (IN[dstLoc:dstVar], OUT[srcLoc:srcVar]). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
95
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a4c5d5d5d73db6dc6b721a076bcae3662"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a4c5d5d5d73db6dc6b721a076bcae3662">SVF::MutablePTData::addSingleRevPts</a></div><div class="ttdeci">void addSingleRevPts(KeySet &revData, const Key &tgr)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
96
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a2dd9dad547c389d5cd488b165dd145eb"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a2dd9dad547c389d5cd488b165dd145eb">SVF::MutableIncDFPTData::updateAllDFInFromOut</a></div><div class="ttdeci">virtual bool updateAllDFInFromOut(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Union (IN[dstLoc::dstVar], OUT[srcLoc:srcVar]. There is no flag check, unlike the above...</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
97
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_ac055ad77582b36083ca1950c39207f5e"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#ac055ad77582b36083ca1950c39207f5e">SVF::MutableIncDFPTData::removeVarFromDFOutUpdatedSet</a></div><div class="ttdeci">void removeVarFromDFOutUpdatedSet(LocID loc, const Key &var)</div><div class="ttdoc">Remove var from loc&#39;s OUT updated set. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
98
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a5f1715813082c1f02d6888b9ec32a75e"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a5f1715813082c1f02d6888b9ec32a75e">SVF::MutableIncDFPTData::PTDataTy</a></div><div class="ttdeci">BasePTData::PTDataTy PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
99
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a72cbf33b77f5a19221ad265691065695"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a72cbf33b77f5a19221ad265691065695">SVF::MutableVersionedPTData::remapAllPts</a></div><div class="ttdeci">virtual void remapAllPts(void) override</div><div class="ttdoc">Remaps all points-to sets to use the current mapping. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
100
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_af3074a07345844ecd97e420218b39255"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#af3074a07345844ecd97e420218b39255">SVF::MutableDFPTData::PTDataTy</a></div><div class="ttdeci">BasePTData::PTDataTy PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
101
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ad64eed26e054eb4e91ec1139867cd196"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ad64eed26e054eb4e91ec1139867cd196">SVF::MutableDFPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstKey, const Key &srcKey) override</div><div class="ttdoc">Performs pts(dstVar) = pts(dstVar) U pts(srcVar). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
102
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a51365299a34e3386798e78a076d6e1f5"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a51365299a34e3386798e78a076d6e1f5">SVF::MutableDFPTData::updateAllDFOutFromIn</a></div><div class="ttdeci">virtual bool updateAllDFOutFromIn(LocID loc, const Key &singleton, bool strongUpdates) override</div><div class="ttdoc">For each variable var in IN at loc, do updateDFOutFromIn(loc, var, loc, var). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
103
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a96331853265be5129964a9751f64bd8d"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a96331853265be5129964a9751f64bd8d">SVF::MutableDFPTData::~MutableDFPTData</a></div><div class="ttdeci">virtual ~MutableDFPTData()</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
104
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html">SVF::MutableVersionedPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
105
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_ad199b4b84f7aab48ff1510b118e2982f"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#ad199b4b84f7aab48ff1510b118e2982f">SVF::MutableIncDFPTData::updateDFInFromOut</a></div><div class="ttdeci">virtual bool updateDFInFromOut(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Union (IN[dstLoc:dstVar], OUT[srcLoc:srcVar]). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
106
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a6d491581d17876625d0265cd26acd8e1"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a6d491581d17876625d0265cd26acd8e1">SVF::MutablePTData::RevPtsMap</a></div><div class="ttdeci">Map< Data, KeySet > RevPtsMap</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
107
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_ad20254ace6d9976da2099413f5790458"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ad20254ace6d9976da2099413f5790458">SVF::MutablePTData::getAllPts</a></div><div class="ttdeci">virtual Map< DataSet, unsigned > getAllPts(bool liveOnly) const override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
108
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ae88094abad311dd633f66db2cd78c322"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ae88094abad311dd633f66db2cd78c322">SVF::MutableDFPTData::dumpPts</a></div><div class="ttdeci">virtual void dumpPts(const PtsMap &ptsSet, OutStream &O=SVFUtil::outs()) const</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
109
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a8838058efe94b62553bb5416fdc2ec5b"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a8838058efe94b62553bb5416fdc2ec5b">SVF::MutablePTData::getPtsMap</a></div><div class="ttdeci">virtual const PtsMap & getPtsMap() const</div><div class="ttdoc">Return Points-to map. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
94
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a85c0d93ee01d2c93c255e5a369248d1b"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a85c0d93ee01d2c93c255e5a369248d1b">SVF::MutableDFPTData::updateDFInFromOut</a></div><div class="ttdeci">virtual bool updateDFInFromOut(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Union (IN[dstLoc:dstVar], OUT[srcLoc:srcVar]). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00469">MutablePointsToDS.h:469</a></div></div>
|
|
95
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a4c5d5d5d73db6dc6b721a076bcae3662"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a4c5d5d5d73db6dc6b721a076bcae3662">SVF::MutablePTData::addSingleRevPts</a></div><div class="ttdeci">void addSingleRevPts(KeySet &revData, const Key &tgr)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00189">MutablePointsToDS.h:189</a></div></div>
|
|
96
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a2dd9dad547c389d5cd488b165dd145eb"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a2dd9dad547c389d5cd488b165dd145eb">SVF::MutableIncDFPTData::updateAllDFInFromOut</a></div><div class="ttdeci">virtual bool updateAllDFInFromOut(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Union (IN[dstLoc::dstVar], OUT[srcLoc:srcVar]. There is no flag check, unlike the above...</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00743">MutablePointsToDS.h:743</a></div></div>
|
|
97
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_ac055ad77582b36083ca1950c39207f5e"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#ac055ad77582b36083ca1950c39207f5e">SVF::MutableIncDFPTData::removeVarFromDFOutUpdatedSet</a></div><div class="ttdeci">void removeVarFromDFOutUpdatedSet(LocID loc, const Key &var)</div><div class="ttdoc">Remove var from loc&#39;s OUT updated set. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00866">MutablePointsToDS.h:866</a></div></div>
|
|
98
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a5f1715813082c1f02d6888b9ec32a75e"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a5f1715813082c1f02d6888b9ec32a75e">SVF::MutableIncDFPTData::PTDataTy</a></div><div class="ttdeci">BasePTData::PTDataTy PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00689">MutablePointsToDS.h:689</a></div></div>
|
|
99
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a72cbf33b77f5a19221ad265691065695"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a72cbf33b77f5a19221ad265691065695">SVF::MutableVersionedPTData::remapAllPts</a></div><div class="ttdeci">virtual void remapAllPts(void) override</div><div class="ttdoc">Remaps all points-to sets to use the current mapping. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00982">MutablePointsToDS.h:982</a></div></div>
|
|
100
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_af3074a07345844ecd97e420218b39255"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#af3074a07345844ecd97e420218b39255">SVF::MutableDFPTData::PTDataTy</a></div><div class="ttdeci">BasePTData::PTDataTy PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00369">MutablePointsToDS.h:369</a></div></div>
|
|
101
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ad64eed26e054eb4e91ec1139867cd196"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ad64eed26e054eb4e91ec1139867cd196">SVF::MutableDFPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstKey, const Key &srcKey) override</div><div class="ttdoc">Performs pts(dstVar) = pts(dstVar) U pts(srcVar). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00530">MutablePointsToDS.h:530</a></div></div>
|
|
102
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a51365299a34e3386798e78a076d6e1f5"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a51365299a34e3386798e78a076d6e1f5">SVF::MutableDFPTData::updateAllDFOutFromIn</a></div><div class="ttdeci">virtual bool updateAllDFOutFromIn(LocID loc, const Key &singleton, bool strongUpdates) override</div><div class="ttdoc">For each variable var in IN at loc, do updateDFOutFromIn(loc, var, loc, var). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00489">MutablePointsToDS.h:489</a></div></div>
|
|
103
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a96331853265be5129964a9751f64bd8d"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a96331853265be5129964a9751f64bd8d">SVF::MutableDFPTData::~MutableDFPTData</a></div><div class="ttdeci">virtual ~MutableDFPTData()</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00381">MutablePointsToDS.h:381</a></div></div>
|
|
104
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html">SVF::MutableVersionedPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00892">MutablePointsToDS.h:892</a></div></div>
|
|
105
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_ad199b4b84f7aab48ff1510b118e2982f"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#ad199b4b84f7aab48ff1510b118e2982f">SVF::MutableIncDFPTData::updateDFInFromOut</a></div><div class="ttdeci">virtual bool updateDFInFromOut(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Union (IN[dstLoc:dstVar], OUT[srcLoc:srcVar]). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00718">MutablePointsToDS.h:718</a></div></div>
|
|
106
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a6d491581d17876625d0265cd26acd8e1"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a6d491581d17876625d0265cd26acd8e1">SVF::MutablePTData::RevPtsMap</a></div><div class="ttdeci">Map< Data, KeySet > RevPtsMap</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00061">MutablePointsToDS.h:61</a></div></div>
|
|
107
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_ad20254ace6d9976da2099413f5790458"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ad20254ace6d9976da2099413f5790458">SVF::MutablePTData::getAllPts</a></div><div class="ttdeci">virtual Map< DataSet, unsigned > getAllPts(bool liveOnly) const override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00135">MutablePointsToDS.h:135</a></div></div>
|
|
108
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ae88094abad311dd633f66db2cd78c322"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ae88094abad311dd633f66db2cd78c322">SVF::MutableDFPTData::dumpPts</a></div><div class="ttdeci">virtual void dumpPts(const PtsMap &ptsSet, OutStream &O=SVFUtil::outs()) const</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00655">MutablePointsToDS.h:655</a></div></div>
|
|
109
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a8838058efe94b62553bb5416fdc2ec5b"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a8838058efe94b62553bb5416fdc2ec5b">SVF::MutablePTData::getPtsMap</a></div><div class="ttdeci">virtual const PtsMap & getPtsMap() const</div><div class="ttdoc">Return Points-to map. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00072">MutablePointsToDS.h:72</a></div></div>
|
|
110
110
|
<div class="ttc" id="SVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
|
|
111
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_ab88ea00589ec9353bccf3629a1c4e5d3"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ab88ea00589ec9353bccf3629a1c4e5d3">SVF::MutablePTData::BasePTData</a></div><div class="ttdeci">PTData< Key, KeySet, Data, DataSet > BasePTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
112
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a8b30798ad9485a88238cc340e5da3db7"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a8b30798ad9485a88238cc340e5da3db7">SVF::MutableDFPTData::unionPts</a></div><div class="ttdeci">bool unionPts(DataSet &dstDataSet, const DataSet &srcDataSet)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
113
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a01974968b7cf60a4231cc83c93b26d7f"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a01974968b7cf60a4231cc83c93b26d7f">SVF::MutableVersionedPTData::tlPTData</a></div><div class="ttdeci">MutablePTData< Key, KeySet, Data, DataSet > tlPTData</div><div class="ttdoc">PTData for Keys (top-level pointers, generally). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
114
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_aaf519166d2e0ca3c81088b52a1cf3066"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#aaf519166d2e0ca3c81088b52a1cf3066">SVF::MutableVersionedPTData::getPts</a></div><div class="ttdeci">virtual const DataSet & getPts(const Key &vk) override</div><div class="ttdoc">Get points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
115
|
-
<div class="ttc" id="classSVF_1_1DFPTData_html"><div class="ttname"><a href="classSVF_1_1DFPTData.html">SVF::DFPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
116
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_abb59ef7367e353e65b82b54dac509f36"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#abb59ef7367e353e65b82b54dac509f36">SVF::MutableDFPTData::dfInPtsMap</a></div><div class="ttdeci">DFPtsMap dfInPtsMap</div><div class="ttdoc">Data-flow IN set. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
117
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_ad1ae7faf04ba10ac4ac6a6f1cc498547"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#ad1ae7faf04ba10ac4ac6a6f1cc498547">SVF::MutableIncDFPTData::getDFOutUpdatedVar</a></div><div class="ttdeci">const DataSet & getDFOutUpdatedVar(LocID loc)</div><div class="ttdoc">Get all var which have new pts informationin loc&#39;s OUT set. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
118
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_aa80044e3b4c3ed58117573dfa54d803b"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#aa80044e3b4c3ed58117573dfa54d803b">SVF::MutableVersionedPTData::BaseVersionedPTData</a></div><div class="ttdeci">VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet > BaseVersionedPTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
119
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_af7bf99aeb752c4216a60d1fa5187b49e"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#af7bf99aeb752c4216a60d1fa5187b49e">SVF::MutableVersionedPTData::PTDataTy</a></div><div class="ttdeci">BasePTData::PTDataTy PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
120
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_ad3175d9c02d8a9f6ad1752ccf3e468cb"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ad3175d9c02d8a9f6ad1752ccf3e468cb">SVF::MutablePTData::addRevPts</a></div><div class="ttdeci">void addRevPts(const DataSet &ptsData, const Key &tgr)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
121
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a31ad5da37a88d2b97633d590393b0e64"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a31ad5da37a88d2b97633d590393b0e64">SVF::MutableDFPTData::DFPtsMapIter</a></div><div class="ttdeci">DFPtsMap::iterator DFPtsMapIter</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
122
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_aa8fdf0f82d3d94af34d5bc1386ed21f9"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#aa8fdf0f82d3d94af34d5bc1386ed21f9">SVF::MutableIncDFPTData::updateATVPts</a></div><div class="ttdeci">virtual bool updateATVPts(const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Update address-taken variables OUT[dstLoc:dstVar] with points-to of top-level pointers. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
123
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html">SVF::MutableIncDFPTData</a></div><div class="ttdoc">Incremental version of the mutable data-flow points-to data structure. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
111
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_ab88ea00589ec9353bccf3629a1c4e5d3"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ab88ea00589ec9353bccf3629a1c4e5d3">SVF::MutablePTData::BasePTData</a></div><div class="ttdeci">PTData< Key, KeySet, Data, DataSet > BasePTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00057">MutablePointsToDS.h:57</a></div></div>
|
|
112
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a8b30798ad9485a88238cc340e5da3db7"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a8b30798ad9485a88238cc340e5da3db7">SVF::MutableDFPTData::unionPts</a></div><div class="ttdeci">bool unionPts(DataSet &dstDataSet, const DataSet &srcDataSet)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00599">MutablePointsToDS.h:599</a></div></div>
|
|
113
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a01974968b7cf60a4231cc83c93b26d7f"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a01974968b7cf60a4231cc83c93b26d7f">SVF::MutableVersionedPTData::tlPTData</a></div><div class="ttdeci">MutablePTData< Key, KeySet, Data, DataSet > tlPTData</div><div class="ttdoc">PTData for Keys (top-level pointers, generally). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l01018">MutablePointsToDS.h:1018</a></div></div>
|
|
114
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_aaf519166d2e0ca3c81088b52a1cf3066"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#aaf519166d2e0ca3c81088b52a1cf3066">SVF::MutableVersionedPTData::getPts</a></div><div class="ttdeci">virtual const DataSet & getPts(const Key &vk) override</div><div class="ttdoc">Get points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00910">MutablePointsToDS.h:910</a></div></div>
|
|
115
|
+
<div class="ttc" id="classSVF_1_1DFPTData_html"><div class="ttname"><a href="classSVF_1_1DFPTData.html">SVF::DFPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00194">AbstractPointsToDS.h:194</a></div></div>
|
|
116
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_abb59ef7367e353e65b82b54dac509f36"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#abb59ef7367e353e65b82b54dac509f36">SVF::MutableDFPTData::dfInPtsMap</a></div><div class="ttdeci">DFPtsMap dfInPtsMap</div><div class="ttdoc">Data-flow IN set. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00672">MutablePointsToDS.h:672</a></div></div>
|
|
117
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_ad1ae7faf04ba10ac4ac6a6f1cc498547"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#ad1ae7faf04ba10ac4ac6a6f1cc498547">SVF::MutableIncDFPTData::getDFOutUpdatedVar</a></div><div class="ttdeci">const DataSet & getDFOutUpdatedVar(LocID loc)</div><div class="ttdoc">Get all var which have new pts informationin loc&#39;s OUT set. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00881">MutablePointsToDS.h:881</a></div></div>
|
|
118
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_aa80044e3b4c3ed58117573dfa54d803b"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#aa80044e3b4c3ed58117573dfa54d803b">SVF::MutableVersionedPTData::BaseVersionedPTData</a></div><div class="ttdeci">VersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet > BaseVersionedPTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00896">MutablePointsToDS.h:896</a></div></div>
|
|
119
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_af7bf99aeb752c4216a60d1fa5187b49e"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#af7bf99aeb752c4216a60d1fa5187b49e">SVF::MutableVersionedPTData::PTDataTy</a></div><div class="ttdeci">BasePTData::PTDataTy PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00897">MutablePointsToDS.h:897</a></div></div>
|
|
120
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_ad3175d9c02d8a9f6ad1752ccf3e468cb"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ad3175d9c02d8a9f6ad1752ccf3e468cb">SVF::MutablePTData::addRevPts</a></div><div class="ttdeci">void addRevPts(const DataSet &ptsData, const Key &tgr)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00196">MutablePointsToDS.h:196</a></div></div>
|
|
121
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a31ad5da37a88d2b97633d590393b0e64"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a31ad5da37a88d2b97633d590393b0e64">SVF::MutableDFPTData::DFPtsMapIter</a></div><div class="ttdeci">DFPtsMap::iterator DFPtsMapIter</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00375">MutablePointsToDS.h:375</a></div></div>
|
|
122
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_aa8fdf0f82d3d94af34d5bc1386ed21f9"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#aa8fdf0f82d3d94af34d5bc1386ed21f9">SVF::MutableIncDFPTData::updateATVPts</a></div><div class="ttdeci">virtual bool updateATVPts(const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Update address-taken variables OUT[dstLoc:dstVar] with points-to of top-level pointers. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00793">MutablePointsToDS.h:793</a></div></div>
|
|
123
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html">SVF::MutableIncDFPTData</a></div><div class="ttdoc">Incremental version of the mutable data-flow points-to data structure. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00682">MutablePointsToDS.h:682</a></div></div>
|
|
124
124
|
<div class="ttc" id="AbstractPointsToDS_8h_html"><div class="ttname"><a href="AbstractPointsToDS_8h.html">AbstractPointsToDS.h</a></div></div>
|
|
125
125
|
<div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00110">SVFBasicTypes.h:110</a></div></div>
|
|
126
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_abaf96c47ab029c6bc91ff23a4c061505"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#abaf96c47ab029c6bc91ff23a4c061505">SVF::MutablePTData::unionPts</a></div><div class="ttdeci">bool unionPts(DataSet &dstDataSet, const DataSet &srcDataSet)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
127
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a8d69bae0bcbeecc98b51a23d50c064b6"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a8d69bae0bcbeecc98b51a23d50c064b6">SVF::MutableDiffPTData::~MutableDiffPTData</a></div><div class="ttdeci">virtual ~MutableDiffPTData()</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
128
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a9e69cb846a8d2da102981d1f48cb16dd"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a9e69cb846a8d2da102981d1f48cb16dd">SVF::MutablePTData::PTDataTy</a></div><div class="ttdeci">BasePTData::PTDataTy PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
129
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_adf809b61632067b0a987d2975e6377dc"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#adf809b61632067b0a987d2975e6377dc">SVF::MutableVersionedPTData::~MutableVersionedPTData</a></div><div class="ttdeci">virtual ~MutableVersionedPTData()</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
130
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a589d71ff881e53133e5c688f1c616ab3"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a589d71ff881e53133e5c688f1c616ab3">SVF::MutablePTData::classof</a></div><div class="ttdeci">static bool classof(const MutablePTData< Key, KeySet, Data, DataSet > *)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
131
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ae847b982baec8115ede5d7d28cd91d34"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ae847b982baec8115ede5d7d28cd91d34">SVF::MutableDFPTData::LocID</a></div><div class="ttdeci">BaseDFPTData::LocID LocID</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
132
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a5ee6e307acd4edbf4f7c2b063032d942"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">SVF::MutablePTData::ptsMap</a></div><div class="ttdeci">PtsMap ptsMap</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
133
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a08528faf56bf68fd0ddbb6c5ffa3d24f"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">SVF::MutablePTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstKey, const Key &srcKey) override</div><div class="ttdoc">Performs pts(dstVar) = pts(dstVar) U pts(srcVar). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
126
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_abaf96c47ab029c6bc91ff23a4c061505"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#abaf96c47ab029c6bc91ff23a4c061505">SVF::MutablePTData::unionPts</a></div><div class="ttdeci">bool unionPts(DataSet &dstDataSet, const DataSet &srcDataSet)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00181">MutablePointsToDS.h:181</a></div></div>
|
|
127
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a8d69bae0bcbeecc98b51a23d50c064b6"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a8d69bae0bcbeecc98b51a23d50c064b6">SVF::MutableDiffPTData::~MutableDiffPTData</a></div><div class="ttdeci">virtual ~MutableDiffPTData()</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00239">MutablePointsToDS.h:239</a></div></div>
|
|
128
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a9e69cb846a8d2da102981d1f48cb16dd"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a9e69cb846a8d2da102981d1f48cb16dd">SVF::MutablePTData::PTDataTy</a></div><div class="ttdeci">BasePTData::PTDataTy PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00058">MutablePointsToDS.h:58</a></div></div>
|
|
129
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_adf809b61632067b0a987d2975e6377dc"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#adf809b61632067b0a987d2975e6377dc">SVF::MutableVersionedPTData::~MutableVersionedPTData</a></div><div class="ttdeci">virtual ~MutableVersionedPTData()</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00902">MutablePointsToDS.h:902</a></div></div>
|
|
130
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a589d71ff881e53133e5c688f1c616ab3"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a589d71ff881e53133e5c688f1c616ab3">SVF::MutablePTData::classof</a></div><div class="ttdeci">static bool classof(const MutablePTData< Key, KeySet, Data, DataSet > *)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00149">MutablePointsToDS.h:149</a></div></div>
|
|
131
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ae847b982baec8115ede5d7d28cd91d34"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ae847b982baec8115ede5d7d28cd91d34">SVF::MutableDFPTData::LocID</a></div><div class="ttdeci">BaseDFPTData::LocID LocID</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00371">MutablePointsToDS.h:371</a></div></div>
|
|
132
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a5ee6e307acd4edbf4f7c2b063032d942"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942">SVF::MutablePTData::ptsMap</a></div><div class="ttdeci">PtsMap ptsMap</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00221">MutablePointsToDS.h:221</a></div></div>
|
|
133
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a08528faf56bf68fd0ddbb6c5ffa3d24f"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a08528faf56bf68fd0ddbb6c5ffa3d24f">SVF::MutablePTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstKey, const Key &srcKey) override</div><div class="ttdoc">Performs pts(dstVar) = pts(dstVar) U pts(srcVar). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00100">MutablePointsToDS.h:100</a></div></div>
|
|
134
134
|
<div class="ttc" id="SVFBasicTypes_8h_html"><div class="ttname"><a href="SVFBasicTypes_8h.html">SVFBasicTypes.h</a></div></div>
|
|
135
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_acd3c327ee7c8fd077d51751cc7069dee"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#acd3c327ee7c8fd077d51751cc7069dee">SVF::MutableDiffPTData::propaPtsMap</a></div><div class="ttdeci">PtsMap propaPtsMap</div><div class="ttdoc">Points-to already propagated. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
136
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a446112803c54ca937f8b85e42a4a1381"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a446112803c54ca937f8b85e42a4a1381">SVF::MutableDFPTData::clear</a></div><div class="ttdeci">virtual void clear() override</div><div class="ttdoc">Clears all points-to sets as if nothing is stored. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
137
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ab675653138960b16f23c801298e80f48"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ab675653138960b16f23c801298e80f48">SVF::MutableDFPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstKey, const DataSet &srcDataSet) override</div><div class="ttdoc">Performs pts(dstVar) = pts(dstVar) U srcDataSet. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
138
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_ab50b8026258c7c9103d2315ea3091340"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#ab50b8026258c7c9103d2315ea3091340">SVF::MutableDiffPTData::BaseDiffPTData</a></div><div class="ttdeci">DiffPTData< Key, KeySet, Data, DataSet > BaseDiffPTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
139
|
-
<div class="ttc" id="classSVF_1_1PTData_html"><div class="ttname"><a href="classSVF_1_1PTData.html">SVF::PTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
140
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a7778be60515fa3ff247b6d2cec138cfc"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a7778be60515fa3ff247b6d2cec138cfc">SVF::MutableIncDFPTData::updateTLVPts</a></div><div class="ttdeci">virtual bool updateTLVPts(LocID srcLoc, const Key &srcVar, const Key &dstVar) override</div><div class="ttdoc">Update points-to set of top-level pointers with IN[srcLoc:srcVar]. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
141
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a5086e718e98482a7a0330ed05993feaa"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a5086e718e98482a7a0330ed05993feaa">SVF::MutablePTData::MutablePTData</a></div><div class="ttdeci">MutablePTData(bool reversePT=true, PTDataTy ty=PTDataTy::MutBase)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
142
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_ae79628fc101567ba84215b624dd00c01"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#ae79628fc101567ba84215b624dd00c01">SVF::MutableVersionedPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstVar, const Key &srcVar) override</div><div class="ttdoc">Performs pts(dstVar) = pts(dstVar) U pts(srcVar). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
143
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_ac97bd53101f306c46ab4349a808f67c9"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#ac97bd53101f306c46ab4349a808f67c9">SVF::MutableDiffPTData::computeDiffPts</a></div><div class="ttdeci">virtual bool computeDiffPts(Key &var, const DataSet &all) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
144
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ac9120fbb056e23cdf84646a37d809a8d"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ac9120fbb056e23cdf84646a37d809a8d">SVF::MutableDFPTData::getAllPts</a></div><div class="ttdeci">virtual Map< DataSet, unsigned > getAllPts(bool liveOnly) const override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
145
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a7559810e1ad40588f5fd82123ea1f150"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a7559810e1ad40588f5fd82123ea1f150">SVF::MutableDFPTData::getDFInPtsMap</a></div><div class="ttdeci">const PtsMap & getDFInPtsMap(LocID loc)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
146
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_af27d457e1905876631bcf74e434257ae"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#af27d457e1905876631bcf74e434257ae">SVF::MutableDiffPTData::classof</a></div><div class="ttdeci">static bool classof(const PTData< Key, KeySet, Data, DataSet > *ptd)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
147
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_acf40f716470f73095d44a1b9e3bb939e"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#acf40f716470f73095d44a1b9e3bb939e">SVF::MutableDFPTData::mutPTData</a></div><div class="ttdeci">MutablePTData< Key, KeySet, Data, DataSet > mutPTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
148
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a90ca0be479d5c30ba96db2f8513be7be"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a90ca0be479d5c30ba96db2f8513be7be">SVF::MutablePTData::~MutablePTData</a></div><div class="ttdeci">virtual ~MutablePTData()</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
149
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a6be54447671288a666af5d48972e2ccf"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a6be54447671288a666af5d48972e2ccf">SVF::MutableVersionedPTData::classof</a></div><div class="ttdeci">static bool classof(const MutableVersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet > *)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
150
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_af39232f64ff0ede20161c7f265da6cf5"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#af39232f64ff0ede20161c7f265da6cf5">SVF::MutableVersionedPTData::addPts</a></div><div class="ttdeci">virtual bool addPts(const VersionedKey &vk, const Data &element) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
151
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a9d829f0eab7f5ecf1a1d7eaf5f47daf6"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a9d829f0eab7f5ecf1a1d7eaf5f47daf6">SVF::MutableDiffPTData::PTDataTy</a></div><div class="ttdeci">BasePTData::PTDataTy PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
152
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a31fd15a8147e3146b15b4d24fe34cf46"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a31fd15a8147e3146b15b4d24fe34cf46">SVF::MutableVersionedPTData::BasePTData</a></div><div class="ttdeci">PTData< Key, KeySet, Data, DataSet > BasePTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
153
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ad3c53ef1c8e221299f3afe078946fbe0"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ad3c53ef1c8e221299f3afe078946fbe0">SVF::MutableDFPTData::dfOutPtsMap</a></div><div class="ttdeci">DFPtsMap dfOutPtsMap</div><div class="ttdoc">Data-flow OUT set. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
154
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a83dd3047c72cd1cd6ceb044cd1a924e4"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a83dd3047c72cd1cd6ceb044cd1a924e4">SVF::MutableDiffPTData::getDiffPts</a></div><div class="ttdeci">virtual const DataSet & getDiffPts(Key &var) override</div><div class="ttdoc">Get diff points to. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
155
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_afaef5c61bee74cbd649c787cfdef2a03"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#afaef5c61bee74cbd649c787cfdef2a03">SVF::MutableVersionedPTData::getVersionedKeyRevPts</a></div><div class="ttdeci">virtual const VersionedKeySet & getVersionedKeyRevPts(const Data &datum) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
156
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ad34e442581dfe57ce7f1add25c8414b2"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ad34e442581dfe57ce7f1add25c8414b2">SVF::MutableDFPTData::remapAllPts</a></div><div class="ttdeci">virtual void remapAllPts(void) override</div><div class="ttdoc">Remaps all points-to sets to use the current mapping. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
157
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a0c73427f957d310bc85955bec6654352"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a0c73427f957d310bc85955bec6654352">SVF::MutableDFPTData::DFPtsMap</a></div><div class="ttdeci">Map< LocID, PtsMap > DFPtsMap</div><div class="ttdoc">Data-flow point-to map. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
158
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html">SVF::MutableDiffPTData</a></div><div class="ttdoc">DiffPTData implemented with points-to sets which are updated continuously. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
159
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_aa326ac77577a8a4a0ce3e29cc03a3989"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#aa326ac77577a8a4a0ce3e29cc03a3989">SVF::MutableIncDFPTData::updateDFOutFromIn</a></div><div class="ttdeci">virtual bool updateDFOutFromIn(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Union (OUT[dstLoc:dstVar], IN[srcLoc:srcVar]). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
160
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">SVF::PTData< VersionedKey, VersionedKeySet, Data, DataSet >::PTDataTy</a></div><div class="ttdeci">PTDataTy</div><div class="ttdoc">Types of a points-to data structures. </div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
161
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_adb89579b46a478f6d0e30e790838dca9"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#adb89579b46a478f6d0e30e790838dca9">SVF::MutableDiffPTData::getAllPts</a></div><div class="ttdeci">virtual Map< DataSet, unsigned > getAllPts(bool liveOnly) const override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
162
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a5ca2c5a8908d003b7ec2c17f949ae6aa"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a5ca2c5a8908d003b7ec2c17f949ae6aa">SVF::MutablePTData::clearPts</a></div><div class="ttdeci">virtual void clearPts(const Key &var, const Data &element) override</div><div class="ttdoc">Clears element from the points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
163
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a3f397aaf4f3d6d04ec005c2577652e04"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a3f397aaf4f3d6d04ec005c2577652e04">SVF::MutableIncDFPTData::updateAllDFOutFromIn</a></div><div class="ttdeci">virtual bool updateAllDFOutFromIn(LocID loc, const Key &singleton, bool strongUpdates) override</div><div class="ttdoc">For each variable var in IN at loc, do updateDFOutFromIn(loc, var, loc, var). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
164
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a95f4644a82f84674164651db66b084b8"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a95f4644a82f84674164651db66b084b8">SVF::MutableDFPTData::dumpPTData</a></div><div class="ttdeci">virtual void dumpPTData() override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
165
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_ae4d0989cb98814f943bd4dfd09a37017"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#ae4d0989cb98814f943bd4dfd09a37017">SVF::MutableIncDFPTData::getDFInUpdatedVar</a></div><div class="ttdeci">const DataSet & getDFInUpdatedVar(LocID loc)</div><div class="ttdoc">Get all var which have new pts informationin loc&#39;s IN set. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
166
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a746c384cf4633c3b07b4362e7b6c087a"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a746c384cf4633c3b07b4362e7b6c087a">SVF::MutableDiffPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstKey, const DataSet &srcDataSet) override</div><div class="ttdoc">Performs pts(dstVar) = pts(dstVar) U srcDataSet. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
167
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a74d9f271ea0fa69e56ddbe16f10f3241"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a74d9f271ea0fa69e56ddbe16f10f3241">SVF::MutableIncDFPTData::LocID</a></div><div class="ttdeci">BaseDFPTData::LocID LocID</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
168
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_abe4230f3ba78fc660ea291fda36ffa62"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#abe4230f3ba78fc660ea291fda36ffa62">SVF::MutablePTData::getPts</a></div><div class="ttdeci">virtual const DataSet & getPts(const Key &var) override</div><div class="ttdoc">Get points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
169
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ab3c517be91b4711ace581df075d4647a"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ab3c517be91b4711ace581df075d4647a">SVF::MutableDFPTData::updateDFOutFromIn</a></div><div class="ttdeci">virtual bool updateDFOutFromIn(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Union (OUT[dstLoc:dstVar], IN[srcLoc:srcVar]). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
170
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a6d02392602cf7956ff41e345518d683c"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a6d02392602cf7956ff41e345518d683c">SVF::MutableDFPTData::getDFOut</a></div><div class="ttdeci">const DFPtsMap & getDFOut()</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
171
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ac3ebc5afa531118b2b4446d23e3b8c7a"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ac3ebc5afa531118b2b4446d23e3b8c7a">SVF::MutableDFPTData::updateDFInFromIn</a></div><div class="ttdeci">virtual bool updateDFInFromIn(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
172
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_aa4c262f0d62e902912d4cd7999731d3d"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#aa4c262f0d62e902912d4cd7999731d3d">SVF::MutableIncDFPTData::classof</a></div><div class="ttdeci">static bool classof(const PTData< Key, KeySet, Data, DataSet > *ptd)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
173
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ac6d487a4af529ecb30366be54b29260a"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ac6d487a4af529ecb30366be54b29260a">SVF::MutableDFPTData::hasDFOutSet</a></div><div class="ttdeci">virtual bool hasDFOutSet(LocID loc) const override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
174
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a7de508c0d83895aee785524d28eac8b9"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a7de508c0d83895aee785524d28eac8b9">SVF::MutableVersionedPTData::getRevPts</a></div><div class="ttdeci">virtual const KeySet & getRevPts(const Data &datum) override</div><div class="ttdoc">Get reverse points-to set of a datum. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
175
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a3b4cd5b4f8704a5b0049923d22ce7665"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a3b4cd5b4f8704a5b0049923d22ce7665">SVF::MutablePTData::remapAllPts</a></div><div class="ttdeci">virtual void remapAllPts(void) override</div><div class="ttdoc">Remaps all points-to sets to use the current mapping. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
176
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a5756fb30b7bd405c04defb49a7d688f7"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a5756fb30b7bd405c04defb49a7d688f7">SVF::MutablePTData::clearSingleRevPts</a></div><div class="ttdeci">void clearSingleRevPts(KeySet &revSet, const Key &k)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
177
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a5baa6fffedfd0ac356590f9a0b222ee0"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a5baa6fffedfd0ac356590f9a0b222ee0">SVF::MutableDFPTData::classof</a></div><div class="ttdeci">static bool classof(const MutableDFPTData< Key, KeySet, Data, DataSet > *)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
178
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a1596ef828786325ca06a3f5bada31757"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a1596ef828786325ca06a3f5bada31757">SVF::MutableDiffPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstKey, const Key &srcKey) override</div><div class="ttdoc">Performs pts(dstVar) = pts(dstVar) U pts(srcVar). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
179
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a8b6e2e5e016a5ae00ae440e3f383bb16"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a8b6e2e5e016a5ae00ae440e3f383bb16">SVF::MutableDiffPTData::clearFullPts</a></div><div class="ttdeci">virtual void clearFullPts(const Key &var) override</div><div class="ttdoc">Fully clears the points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
135
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_acd3c327ee7c8fd077d51751cc7069dee"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#acd3c327ee7c8fd077d51751cc7069dee">SVF::MutableDiffPTData::propaPtsMap</a></div><div class="ttdeci">PtsMap propaPtsMap</div><div class="ttdoc">Points-to already propagated. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00359">MutablePointsToDS.h:359</a></div></div>
|
|
136
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a446112803c54ca937f8b85e42a4a1381"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a446112803c54ca937f8b85e42a4a1381">SVF::MutableDFPTData::clear</a></div><div class="ttdeci">virtual void clear() override</div><div class="ttdoc">Clears all points-to sets as if nothing is stored. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00388">MutablePointsToDS.h:388</a></div></div>
|
|
137
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ab675653138960b16f23c801298e80f48"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ab675653138960b16f23c801298e80f48">SVF::MutableDFPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstKey, const DataSet &srcDataSet) override</div><div class="ttdoc">Performs pts(dstVar) = pts(dstVar) U srcDataSet. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00534">MutablePointsToDS.h:534</a></div></div>
|
|
138
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_ab50b8026258c7c9103d2315ea3091340"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#ab50b8026258c7c9103d2315ea3091340">SVF::MutableDiffPTData::BaseDiffPTData</a></div><div class="ttdeci">DiffPTData< Key, KeySet, Data, DataSet > BaseDiffPTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00231">MutablePointsToDS.h:231</a></div></div>
|
|
139
|
+
<div class="ttc" id="classSVF_1_1PTData_html"><div class="ttname"><a href="classSVF_1_1PTData.html">SVF::PTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00074">AbstractPointsToDS.h:74</a></div></div>
|
|
140
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a7778be60515fa3ff247b6d2cec138cfc"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a7778be60515fa3ff247b6d2cec138cfc">SVF::MutableIncDFPTData::updateTLVPts</a></div><div class="ttdeci">virtual bool updateTLVPts(LocID srcLoc, const Key &srcVar, const Key &dstVar) override</div><div class="ttdoc">Update points-to set of top-level pointers with IN[srcLoc:srcVar]. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00783">MutablePointsToDS.h:783</a></div></div>
|
|
141
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a5086e718e98482a7a0330ed05993feaa"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a5086e718e98482a7a0330ed05993feaa">SVF::MutablePTData::MutablePTData</a></div><div class="ttdeci">MutablePTData(bool reversePT=true, PTDataTy ty=PTDataTy::MutBase)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00067">MutablePointsToDS.h:67</a></div></div>
|
|
142
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_ae79628fc101567ba84215b624dd00c01"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#ae79628fc101567ba84215b624dd00c01">SVF::MutableVersionedPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstVar, const Key &srcVar) override</div><div class="ttdoc">Performs pts(dstVar) = pts(dstVar) U pts(srcVar). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00939">MutablePointsToDS.h:939</a></div></div>
|
|
143
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_ac97bd53101f306c46ab4349a808f67c9"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#ac97bd53101f306c46ab4349a808f67c9">SVF::MutableDiffPTData::computeDiffPts</a></div><div class="ttdeci">virtual bool computeDiffPts(Key &var, const DataSet &all) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00304">MutablePointsToDS.h:304</a></div></div>
|
|
144
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ac9120fbb056e23cdf84646a37d809a8d"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ac9120fbb056e23cdf84646a37d809a8d">SVF::MutableDFPTData::getAllPts</a></div><div class="ttdeci">virtual Map< DataSet, unsigned > getAllPts(bool liveOnly) const override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00561">MutablePointsToDS.h:561</a></div></div>
|
|
145
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a7559810e1ad40588f5fd82123ea1f150"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a7559810e1ad40588f5fd82123ea1f150">SVF::MutableDFPTData::getDFInPtsMap</a></div><div class="ttdeci">const PtsMap & getDFInPtsMap(LocID loc)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00446">MutablePointsToDS.h:446</a></div></div>
|
|
146
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_af27d457e1905876631bcf74e434257ae"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#af27d457e1905876631bcf74e434257ae">SVF::MutableDiffPTData::classof</a></div><div class="ttdeci">static bool classof(const PTData< Key, KeySet, Data, DataSet > *ptd)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00340">MutablePointsToDS.h:340</a></div></div>
|
|
147
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_acf40f716470f73095d44a1b9e3bb939e"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#acf40f716470f73095d44a1b9e3bb939e">SVF::MutableDFPTData::mutPTData</a></div><div class="ttdeci">MutablePTData< Key, KeySet, Data, DataSet > mutPTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00677">MutablePointsToDS.h:677</a></div></div>
|
|
148
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a90ca0be479d5c30ba96db2f8513be7be"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a90ca0be479d5c30ba96db2f8513be7be">SVF::MutablePTData::~MutablePTData</a></div><div class="ttdeci">virtual ~MutablePTData()</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00069">MutablePointsToDS.h:69</a></div></div>
|
|
149
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a6be54447671288a666af5d48972e2ccf"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a6be54447671288a666af5d48972e2ccf">SVF::MutableVersionedPTData::classof</a></div><div class="ttdeci">static bool classof(const MutableVersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet > *)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l01005">MutablePointsToDS.h:1005</a></div></div>
|
|
150
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_af39232f64ff0ede20161c7f265da6cf5"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#af39232f64ff0ede20161c7f265da6cf5">SVF::MutableVersionedPTData::addPts</a></div><div class="ttdeci">virtual bool addPts(const VersionedKey &vk, const Data &element) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00934">MutablePointsToDS.h:934</a></div></div>
|
|
151
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a9d829f0eab7f5ecf1a1d7eaf5f47daf6"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a9d829f0eab7f5ecf1a1d7eaf5f47daf6">SVF::MutableDiffPTData::PTDataTy</a></div><div class="ttdeci">BasePTData::PTDataTy PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00232">MutablePointsToDS.h:232</a></div></div>
|
|
152
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a31fd15a8147e3146b15b4d24fe34cf46"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a31fd15a8147e3146b15b4d24fe34cf46">SVF::MutableVersionedPTData::BasePTData</a></div><div class="ttdeci">PTData< Key, KeySet, Data, DataSet > BasePTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00895">MutablePointsToDS.h:895</a></div></div>
|
|
153
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ad3c53ef1c8e221299f3afe078946fbe0"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ad3c53ef1c8e221299f3afe078946fbe0">SVF::MutableDFPTData::dfOutPtsMap</a></div><div class="ttdeci">DFPtsMap dfOutPtsMap</div><div class="ttdoc">Data-flow OUT set. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00674">MutablePointsToDS.h:674</a></div></div>
|
|
154
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a83dd3047c72cd1cd6ceb044cd1a924e4"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a83dd3047c72cd1cd6ceb044cd1a924e4">SVF::MutableDiffPTData::getDiffPts</a></div><div class="ttdeci">virtual const DataSet & getDiffPts(Key &var) override</div><div class="ttdoc">Get diff points to. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00299">MutablePointsToDS.h:299</a></div></div>
|
|
155
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_afaef5c61bee74cbd649c787cfdef2a03"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#afaef5c61bee74cbd649c787cfdef2a03">SVF::MutableVersionedPTData::getVersionedKeyRevPts</a></div><div class="ttdeci">virtual const VersionedKeySet & getVersionedKeyRevPts(const Data &datum) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00924">MutablePointsToDS.h:924</a></div></div>
|
|
156
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ad34e442581dfe57ce7f1add25c8414b2"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ad34e442581dfe57ce7f1add25c8414b2">SVF::MutableDFPTData::remapAllPts</a></div><div class="ttdeci">virtual void remapAllPts(void) override</div><div class="ttdoc">Remaps all points-to sets to use the current mapping. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00546">MutablePointsToDS.h:546</a></div></div>
|
|
157
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a0c73427f957d310bc85955bec6654352"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a0c73427f957d310bc85955bec6654352">SVF::MutableDFPTData::DFPtsMap</a></div><div class="ttdeci">Map< LocID, PtsMap > DFPtsMap</div><div class="ttdoc">Data-flow point-to map. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00374">MutablePointsToDS.h:374</a></div></div>
|
|
158
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html">SVF::MutableDiffPTData</a></div><div class="ttdoc">DiffPTData implemented with points-to sets which are updated continuously. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00227">MutablePointsToDS.h:227</a></div></div>
|
|
159
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_aa326ac77577a8a4a0ce3e29cc03a3989"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#aa326ac77577a8a4a0ce3e29cc03a3989">SVF::MutableIncDFPTData::updateDFOutFromIn</a></div><div class="ttdeci">virtual bool updateDFOutFromIn(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Union (OUT[dstLoc:dstVar], IN[srcLoc:srcVar]). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00729">MutablePointsToDS.h:729</a></div></div>
|
|
160
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848">SVF::PTData< VersionedKey, VersionedKeySet, Data, DataSet >::PTDataTy</a></div><div class="ttdeci">PTDataTy</div><div class="ttdoc">Types of a points-to data structures. </div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00078">AbstractPointsToDS.h:78</a></div></div>
|
|
161
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_adb89579b46a478f6d0e30e790838dca9"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#adb89579b46a478f6d0e30e790838dca9">SVF::MutableDiffPTData::getAllPts</a></div><div class="ttdeci">virtual Map< DataSet, unsigned > getAllPts(bool liveOnly) const override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00328">MutablePointsToDS.h:328</a></div></div>
|
|
162
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a5ca2c5a8908d003b7ec2c17f949ae6aa"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a5ca2c5a8908d003b7ec2c17f949ae6aa">SVF::MutablePTData::clearPts</a></div><div class="ttdeci">virtual void clearPts(const Key &var, const Data &element) override</div><div class="ttdoc">Clears element from the points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00117">MutablePointsToDS.h:117</a></div></div>
|
|
163
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a3f397aaf4f3d6d04ec005c2577652e04"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a3f397aaf4f3d6d04ec005c2577652e04">SVF::MutableIncDFPTData::updateAllDFOutFromIn</a></div><div class="ttdeci">virtual bool updateAllDFOutFromIn(LocID loc, const Key &singleton, bool strongUpdates) override</div><div class="ttdoc">For each variable var in IN at loc, do updateDFOutFromIn(loc, var, loc, var). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00763">MutablePointsToDS.h:763</a></div></div>
|
|
164
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a95f4644a82f84674164651db66b084b8"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a95f4644a82f84674164651db66b084b8">SVF::MutableDFPTData::dumpPTData</a></div><div class="ttdeci">virtual void dumpPTData() override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00612">MutablePointsToDS.h:612</a></div></div>
|
|
165
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_ae4d0989cb98814f943bd4dfd09a37017"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#ae4d0989cb98814f943bd4dfd09a37017">SVF::MutableIncDFPTData::getDFInUpdatedVar</a></div><div class="ttdeci">const DataSet & getDFInUpdatedVar(LocID loc)</div><div class="ttdoc">Get all var which have new pts informationin loc&#39;s IN set. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00852">MutablePointsToDS.h:852</a></div></div>
|
|
166
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a746c384cf4633c3b07b4362e7b6c087a"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a746c384cf4633c3b07b4362e7b6c087a">SVF::MutableDiffPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstKey, const DataSet &srcDataSet) override</div><div class="ttdoc">Performs pts(dstVar) = pts(dstVar) U srcDataSet. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00272">MutablePointsToDS.h:272</a></div></div>
|
|
167
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a74d9f271ea0fa69e56ddbe16f10f3241"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a74d9f271ea0fa69e56ddbe16f10f3241">SVF::MutableIncDFPTData::LocID</a></div><div class="ttdeci">BaseDFPTData::LocID LocID</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00691">MutablePointsToDS.h:691</a></div></div>
|
|
168
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_abe4230f3ba78fc660ea291fda36ffa62"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#abe4230f3ba78fc660ea291fda36ffa62">SVF::MutablePTData::getPts</a></div><div class="ttdeci">virtual const DataSet & getPts(const Key &var) override</div><div class="ttdoc">Get points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00083">MutablePointsToDS.h:83</a></div></div>
|
|
169
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ab3c517be91b4711ace581df075d4647a"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ab3c517be91b4711ace581df075d4647a">SVF::MutableDFPTData::updateDFOutFromIn</a></div><div class="ttdeci">virtual bool updateDFOutFromIn(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Union (OUT[dstLoc:dstVar], IN[srcLoc:srcVar]). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00474">MutablePointsToDS.h:474</a></div></div>
|
|
170
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a6d02392602cf7956ff41e345518d683c"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a6d02392602cf7956ff41e345518d683c">SVF::MutableDFPTData::getDFOut</a></div><div class="ttdeci">const DFPtsMap & getDFOut()</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00458">MutablePointsToDS.h:458</a></div></div>
|
|
171
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ac3ebc5afa531118b2b4446d23e3b8c7a"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ac3ebc5afa531118b2b4446d23e3b8c7a">SVF::MutableDFPTData::updateDFInFromIn</a></div><div class="ttdeci">virtual bool updateDFInFromIn(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00464">MutablePointsToDS.h:464</a></div></div>
|
|
172
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_aa4c262f0d62e902912d4cd7999731d3d"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#aa4c262f0d62e902912d4cd7999731d3d">SVF::MutableIncDFPTData::classof</a></div><div class="ttdeci">static bool classof(const PTData< Key, KeySet, Data, DataSet > *ptd)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00823">MutablePointsToDS.h:823</a></div></div>
|
|
173
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ac6d487a4af529ecb30366be54b29260a"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ac6d487a4af529ecb30366be54b29260a">SVF::MutableDFPTData::hasDFOutSet</a></div><div class="ttdeci">virtual bool hasDFOutSet(LocID loc) const override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00409">MutablePointsToDS.h:409</a></div></div>
|
|
174
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a7de508c0d83895aee785524d28eac8b9"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a7de508c0d83895aee785524d28eac8b9">SVF::MutableVersionedPTData::getRevPts</a></div><div class="ttdeci">virtual const KeySet & getRevPts(const Data &datum) override</div><div class="ttdoc">Get reverse points-to set of a datum. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00919">MutablePointsToDS.h:919</a></div></div>
|
|
175
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a3b4cd5b4f8704a5b0049923d22ce7665"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a3b4cd5b4f8704a5b0049923d22ce7665">SVF::MutablePTData::remapAllPts</a></div><div class="ttdeci">virtual void remapAllPts(void) override</div><div class="ttdoc">Remaps all points-to sets to use the current mapping. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00130">MutablePointsToDS.h:130</a></div></div>
|
|
176
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a5756fb30b7bd405c04defb49a7d688f7"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a5756fb30b7bd405c04defb49a7d688f7">SVF::MutablePTData::clearSingleRevPts</a></div><div class="ttdeci">void clearSingleRevPts(KeySet &revSet, const Key &k)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00204">MutablePointsToDS.h:204</a></div></div>
|
|
177
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a5baa6fffedfd0ac356590f9a0b222ee0"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a5baa6fffedfd0ac356590f9a0b222ee0">SVF::MutableDFPTData::classof</a></div><div class="ttdeci">static bool classof(const MutableDFPTData< Key, KeySet, Data, DataSet > *)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00585">MutablePointsToDS.h:585</a></div></div>
|
|
178
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a1596ef828786325ca06a3f5bada31757"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a1596ef828786325ca06a3f5bada31757">SVF::MutableDiffPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstKey, const Key &srcKey) override</div><div class="ttdoc">Performs pts(dstVar) = pts(dstVar) U pts(srcVar). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00267">MutablePointsToDS.h:267</a></div></div>
|
|
179
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a8b6e2e5e016a5ae00ae440e3f383bb16"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a8b6e2e5e016a5ae00ae440e3f383bb16">SVF::MutableDiffPTData::clearFullPts</a></div><div class="ttdeci">virtual void clearFullPts(const Key &var) override</div><div class="ttdoc">Fully clears the points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00282">MutablePointsToDS.h:282</a></div></div>
|
|
180
180
|
<div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01118">SparseBitVector.h:1118</a></div></div>
|
|
181
181
|
<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>
|
|
182
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a4cbb9131a89c5c48367fb927693b5c6b"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a4cbb9131a89c5c48367fb927693b5c6b">SVF::MutableDFPTData::getPts</a></div><div class="ttdeci">virtual const DataSet & getPts(const Key &var) override</div><div class="ttdoc">Get points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
183
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a2feb36e64e27e6f0bcc0e108da433278"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a2feb36e64e27e6f0bcc0e108da433278">SVF::MutableDiffPTData::updatePropaPtsMap</a></div><div class="ttdeci">virtual void updatePropaPtsMap(Key &src, Key &dst) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
184
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a21b29c2d3e429017d910025e4ec73fc6"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a21b29c2d3e429017d910025e4ec73fc6">SVF::MutableDFPTData::updateTLVPts</a></div><div class="ttdeci">virtual bool updateTLVPts(LocID srcLoc, const Key &srcVar, const Key &dstVar) override</div><div class="ttdoc">Update points-to set of top-level pointers with IN[srcLoc:srcVar]. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
185
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_ab20b71c9e2f31439c95071c375bf89e0"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#ab20b71c9e2f31439c95071c375bf89e0">SVF::MutableVersionedPTData::clearPts</a></div><div class="ttdeci">virtual void clearPts(const Key &k, const Data &element) override</div><div class="ttdoc">Clears element from the points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
186
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a5647b7fad5c14f7ec57d3de3480758eb"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a5647b7fad5c14f7ec57d3de3480758eb">SVF::MutableVersionedPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const VersionedKey &dstVar, const Key &srcVar) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
187
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_af6d234ae2b0aa91b510f3a2fba877340"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#af6d234ae2b0aa91b510f3a2fba877340">SVF::MutableDFPTData::hasDFOutSet</a></div><div class="ttdeci">virtual bool hasDFOutSet(LocID loc, const Key &var) const override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
188
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ae0495fcba25d4baffda9f85254591ae1"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ae0495fcba25d4baffda9f85254591ae1">SVF::MutableDFPTData::clearPts</a></div><div class="ttdeci">virtual void clearPts(const Key &var, const Data &element) override</div><div class="ttdoc">Clears element from the points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
189
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a58f9b6357a5cf0243cf3b4ece30e8cf6"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a58f9b6357a5cf0243cf3b4ece30e8cf6">SVF::MutableIncDFPTData::BaseMutDFPTData</a></div><div class="ttdeci">MutableDFPTData< Key, KeySet, Data, DataSet > BaseMutDFPTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
190
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_aab4a2eec11e83beca70b016102431ab1"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#aab4a2eec11e83beca70b016102431ab1">SVF::MutablePTData::addPts</a></div><div class="ttdeci">virtual bool addPts(const Key &dstKey, const Data &element) override</div><div class="ttdoc">Adds element to the points-to set associated with var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
191
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a577a7fce1affd462afeb9fefa4bdb4a8"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a577a7fce1affd462afeb9fefa4bdb4a8">SVF::MutablePTData::classof</a></div><div class="ttdeci">static bool classof(const PTData< Key, KeySet, Data, DataSet > *ptd)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
192
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a034c1bf20ab8a73a97863073e08dcd4e"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a034c1bf20ab8a73a97863073e08dcd4e">SVF::MutableDFPTData::getDFOutPtsMap</a></div><div class="ttdeci">const PtsMap & getDFOutPtsMap(LocID loc)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
193
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a67c24cebffdcea9c8059f6769c7f9798"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a67c24cebffdcea9c8059f6769c7f9798">SVF::MutableIncDFPTData::UpdatedVarMap</a></div><div class="ttdeci">Map< LocID, DataSet > UpdatedVarMap</div><div class="ttdoc">for propagating only newly added variable in IN/OUT set </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
194
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a14651359d0efe886c1313fd843e4d1db"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a14651359d0efe886c1313fd843e4d1db">SVF::MutableIncDFPTData::BasePTData</a></div><div class="ttdeci">PTData< Key, KeySet, Data, DataSet > BasePTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
195
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_ad74cc6c81c4a95f6ba4e89352bccee3e"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ad74cc6c81c4a95f6ba4e89352bccee3e">SVF::MutablePTData::PtsMap</a></div><div class="ttdeci">Map< Key, DataSet > PtsMap</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
196
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html">SVF::MutableDFPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
197
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a17a5aa4a749a5ffc75c663d057454e4a"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a17a5aa4a749a5ffc75c663d057454e4a">SVF::MutableDFPTData::BaseDFPTData</a></div><div class="ttdeci">DFPTData< Key, KeySet, Data, DataSet > BaseDFPTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
198
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a2f98940bd8266ad37a975c6d30d948b4"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a2f98940bd8266ad37a975c6d30d948b4">SVF::MutableDFPTData::getRevPts</a></div><div class="ttdeci">virtual const KeySet & getRevPts(const Data &datum) override</div><div class="ttdoc">Get reverse points-to set of a datum. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
199
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html"><div class="ttname"><a href="classSVF_1_1MutablePTData.html">SVF::MutablePTData</a></div><div class="ttdoc">PTData implemented using points-to sets which are created once and updated continuously. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
200
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a80142c1961d5e71c8f0dbadbb3c82184"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a80142c1961d5e71c8f0dbadbb3c82184">SVF::MutableDiffPTData::remapAllPts</a></div><div class="ttdeci">virtual void remapAllPts(void) override</div><div class="ttdoc">Remaps all points-to sets to use the current mapping. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
201
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_ab5e9ebf9e71652b5fa63d59c97d016e4"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#ab5e9ebf9e71652b5fa63d59c97d016e4">SVF::MutableIncDFPTData::inUpdatedVarMap</a></div><div class="ttdeci">UpdatedVarMap inUpdatedVarMap</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
182
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a4cbb9131a89c5c48367fb927693b5c6b"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a4cbb9131a89c5c48367fb927693b5c6b">SVF::MutableDFPTData::getPts</a></div><div class="ttdeci">virtual const DataSet & getPts(const Key &var) override</div><div class="ttdoc">Get points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00393">MutablePointsToDS.h:393</a></div></div>
|
|
183
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a2feb36e64e27e6f0bcc0e108da433278"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a2feb36e64e27e6f0bcc0e108da433278">SVF::MutableDiffPTData::updatePropaPtsMap</a></div><div class="ttdeci">virtual void updatePropaPtsMap(Key &src, Key &dst) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00316">MutablePointsToDS.h:316</a></div></div>
|
|
184
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a21b29c2d3e429017d910025e4ec73fc6"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a21b29c2d3e429017d910025e4ec73fc6">SVF::MutableDFPTData::updateTLVPts</a></div><div class="ttdeci">virtual bool updateTLVPts(LocID srcLoc, const Key &srcVar, const Key &dstVar) override</div><div class="ttdoc">Update points-to set of top-level pointers with IN[srcLoc:srcVar]. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00509">MutablePointsToDS.h:509</a></div></div>
|
|
185
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_ab20b71c9e2f31439c95071c375bf89e0"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#ab20b71c9e2f31439c95071c375bf89e0">SVF::MutableVersionedPTData::clearPts</a></div><div class="ttdeci">virtual void clearPts(const Key &k, const Data &element) override</div><div class="ttdoc">Clears element from the points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00964">MutablePointsToDS.h:964</a></div></div>
|
|
186
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a5647b7fad5c14f7ec57d3de3480758eb"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a5647b7fad5c14f7ec57d3de3480758eb">SVF::MutableVersionedPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const VersionedKey &dstVar, const Key &srcVar) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00947">MutablePointsToDS.h:947</a></div></div>
|
|
187
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_af6d234ae2b0aa91b510f3a2fba877340"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#af6d234ae2b0aa91b510f3a2fba877340">SVF::MutableDFPTData::hasDFOutSet</a></div><div class="ttdeci">virtual bool hasDFOutSet(LocID loc, const Key &var) const override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00423">MutablePointsToDS.h:423</a></div></div>
|
|
188
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ae0495fcba25d4baffda9f85254591ae1"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ae0495fcba25d4baffda9f85254591ae1">SVF::MutableDFPTData::clearPts</a></div><div class="ttdeci">virtual void clearPts(const Key &var, const Data &element) override</div><div class="ttdoc">Clears element from the points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00538">MutablePointsToDS.h:538</a></div></div>
|
|
189
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a58f9b6357a5cf0243cf3b4ece30e8cf6"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a58f9b6357a5cf0243cf3b4ece30e8cf6">SVF::MutableIncDFPTData::BaseMutDFPTData</a></div><div class="ttdeci">MutableDFPTData< Key, KeySet, Data, DataSet > BaseMutDFPTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00688">MutablePointsToDS.h:688</a></div></div>
|
|
190
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_aab4a2eec11e83beca70b016102431ab1"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#aab4a2eec11e83beca70b016102431ab1">SVF::MutablePTData::addPts</a></div><div class="ttdeci">virtual bool addPts(const Key &dstKey, const Data &element) override</div><div class="ttdoc">Adds element to the points-to set associated with var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00094">MutablePointsToDS.h:94</a></div></div>
|
|
191
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a577a7fce1affd462afeb9fefa4bdb4a8"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a577a7fce1affd462afeb9fefa4bdb4a8">SVF::MutablePTData::classof</a></div><div class="ttdeci">static bool classof(const PTData< Key, KeySet, Data, DataSet > *ptd)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00154">MutablePointsToDS.h:154</a></div></div>
|
|
192
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a034c1bf20ab8a73a97863073e08dcd4e"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a034c1bf20ab8a73a97863073e08dcd4e">SVF::MutableDFPTData::getDFOutPtsMap</a></div><div class="ttdeci">const PtsMap & getDFOutPtsMap(LocID loc)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00450">MutablePointsToDS.h:450</a></div></div>
|
|
193
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a67c24cebffdcea9c8059f6769c7f9798"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a67c24cebffdcea9c8059f6769c7f9798">SVF::MutableIncDFPTData::UpdatedVarMap</a></div><div class="ttdeci">Map< LocID, DataSet > UpdatedVarMap</div><div class="ttdoc">for propagating only newly added variable in IN/OUT set </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00692">MutablePointsToDS.h:692</a></div></div>
|
|
194
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a14651359d0efe886c1313fd843e4d1db"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a14651359d0efe886c1313fd843e4d1db">SVF::MutableIncDFPTData::BasePTData</a></div><div class="ttdeci">PTData< Key, KeySet, Data, DataSet > BasePTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00685">MutablePointsToDS.h:685</a></div></div>
|
|
195
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_ad74cc6c81c4a95f6ba4e89352bccee3e"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ad74cc6c81c4a95f6ba4e89352bccee3e">SVF::MutablePTData::PtsMap</a></div><div class="ttdeci">Map< Key, DataSet > PtsMap</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00060">MutablePointsToDS.h:60</a></div></div>
|
|
196
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html">SVF::MutableDFPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00049">MutablePointsToDS.h:49</a></div></div>
|
|
197
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a17a5aa4a749a5ffc75c663d057454e4a"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a17a5aa4a749a5ffc75c663d057454e4a">SVF::MutableDFPTData::BaseDFPTData</a></div><div class="ttdeci">DFPTData< Key, KeySet, Data, DataSet > BaseDFPTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00368">MutablePointsToDS.h:368</a></div></div>
|
|
198
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a2f98940bd8266ad37a975c6d30d948b4"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a2f98940bd8266ad37a975c6d30d948b4">SVF::MutableDFPTData::getRevPts</a></div><div class="ttdeci">virtual const KeySet & getRevPts(const Data &datum) override</div><div class="ttdoc">Get reverse points-to set of a datum. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00398">MutablePointsToDS.h:398</a></div></div>
|
|
199
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html"><div class="ttname"><a href="classSVF_1_1MutablePTData.html">SVF::MutablePTData</a></div><div class="ttdoc">PTData implemented using points-to sets which are created once and updated continuously. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00053">MutablePointsToDS.h:53</a></div></div>
|
|
200
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a80142c1961d5e71c8f0dbadbb3c82184"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a80142c1961d5e71c8f0dbadbb3c82184">SVF::MutableDiffPTData::remapAllPts</a></div><div class="ttdeci">virtual void remapAllPts(void) override</div><div class="ttdoc">Remaps all points-to sets to use the current mapping. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00287">MutablePointsToDS.h:287</a></div></div>
|
|
201
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_ab5e9ebf9e71652b5fa63d59c97d016e4"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#ab5e9ebf9e71652b5fa63d59c97d016e4">SVF::MutableIncDFPTData::inUpdatedVarMap</a></div><div class="ttdeci">UpdatedVarMap inUpdatedVarMap</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00699">MutablePointsToDS.h:699</a></div></div>
|
|
202
202
|
<div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01113">SparseBitVector.h:1113</a></div></div>
|
|
203
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a9b06421a9043dc61485acf51cfc26a91"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a9b06421a9043dc61485acf51cfc26a91">SVF::MutableIncDFPTData::MutableIncDFPTData</a></div><div class="ttdeci">MutableIncDFPTData(bool reversePT=true, PTDataTy ty=BasePTData::MutIncDataFlow)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
204
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a3bf34d8040779b4d251bb08a58604d77"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a3bf34d8040779b4d251bb08a58604d77">SVF::MutablePTData::clearFullPts</a></div><div class="ttdeci">virtual void clearFullPts(const Key &var) override</div><div class="ttdoc">Fully clears the points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
205
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a56e752a83620f482a4b1e2f8d395dd75"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a56e752a83620f482a4b1e2f8d395dd75">SVF::MutableVersionedPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const VersionedKey &dstVar, const VersionedKey &srcVar) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
206
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a21e823484199946541b8b79d736b2601"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a21e823484199946541b8b79d736b2601">SVF::MutableVersionedPTData::clearPts</a></div><div class="ttdeci">virtual void clearPts(const VersionedKey &vk, const Data &element) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
207
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ae999df6f94a097f1fcb36979327790de"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ae999df6f94a097f1fcb36979327790de">SVF::MutableDFPTData::getDFIn</a></div><div class="ttdeci">const DFPtsMap & getDFIn()</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
208
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a43a45997f6147245fe8a552b42f3f632"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a43a45997f6147245fe8a552b42f3f632">SVF::MutableDFPTData::clearAllDFOutUpdatedVar</a></div><div class="ttdeci">virtual void clearAllDFOutUpdatedVar(LocID) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
209
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_ad68b23ed56b2c18bf75c23a658523404"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#ad68b23ed56b2c18bf75c23a658523404">SVF::MutableIncDFPTData::updateAllDFInFromIn</a></div><div class="ttdeci">virtual bool updateAllDFInFromIn(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Union (IN[dstLoc::dstVar], IN[srcLoc:srcVar]. There is no flag check, unlike the above. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
210
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ab7d1a3464e561029573f6f3c13c9bff4"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ab7d1a3464e561029573f6f3c13c9bff4">SVF::MutableDFPTData::addPts</a></div><div class="ttdeci">bool addPts(DataSet &d, const Data &e)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
203
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a9b06421a9043dc61485acf51cfc26a91"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a9b06421a9043dc61485acf51cfc26a91">SVF::MutableIncDFPTData::MutableIncDFPTData</a></div><div class="ttdeci">MutableIncDFPTData(bool reversePT=true, PTDataTy ty=BasePTData::MutIncDataFlow)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00703">MutablePointsToDS.h:703</a></div></div>
|
|
204
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a3bf34d8040779b4d251bb08a58604d77"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a3bf34d8040779b4d251bb08a58604d77">SVF::MutablePTData::clearFullPts</a></div><div class="ttdeci">virtual void clearFullPts(const Key &var) override</div><div class="ttdoc">Fully clears the points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00123">MutablePointsToDS.h:123</a></div></div>
|
|
205
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a56e752a83620f482a4b1e2f8d395dd75"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a56e752a83620f482a4b1e2f8d395dd75">SVF::MutableVersionedPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const VersionedKey &dstVar, const VersionedKey &srcVar) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00943">MutablePointsToDS.h:943</a></div></div>
|
|
206
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a21e823484199946541b8b79d736b2601"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a21e823484199946541b8b79d736b2601">SVF::MutableVersionedPTData::clearPts</a></div><div class="ttdeci">virtual void clearPts(const VersionedKey &vk, const Data &element) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00968">MutablePointsToDS.h:968</a></div></div>
|
|
207
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ae999df6f94a097f1fcb36979327790de"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ae999df6f94a097f1fcb36979327790de">SVF::MutableDFPTData::getDFIn</a></div><div class="ttdeci">const DFPtsMap & getDFIn()</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00454">MutablePointsToDS.h:454</a></div></div>
|
|
208
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a43a45997f6147245fe8a552b42f3f632"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a43a45997f6147245fe8a552b42f3f632">SVF::MutableDFPTData::clearAllDFOutUpdatedVar</a></div><div class="ttdeci">virtual void clearAllDFOutUpdatedVar(LocID) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00519">MutablePointsToDS.h:519</a></div></div>
|
|
209
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_ad68b23ed56b2c18bf75c23a658523404"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#ad68b23ed56b2c18bf75c23a658523404">SVF::MutableIncDFPTData::updateAllDFInFromIn</a></div><div class="ttdeci">virtual bool updateAllDFInFromIn(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Union (IN[dstLoc::dstVar], IN[srcLoc:srcVar]. There is no flag check, unlike the above. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00753">MutablePointsToDS.h:753</a></div></div>
|
|
210
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ab7d1a3464e561029573f6f3c13c9bff4"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ab7d1a3464e561029573f6f3c13c9bff4">SVF::MutableDFPTData::addPts</a></div><div class="ttdeci">bool addPts(DataSet &d, const Data &e)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00603">MutablePointsToDS.h:603</a></div></div>
|
|
211
211
|
<div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00460">SparseBitVector.h:460</a></div></div>
|
|
212
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a8b30326d3fa3f4054e67268f512aec9e"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a8b30326d3fa3f4054e67268f512aec9e">SVF::MutableIncDFPTData::UpdatedVarMapIter</a></div><div class="ttdeci">UpdatedVarMap::iterator UpdatedVarMapIter</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
213
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a8cdeda0ef0e976102d05de3004bd8c8a"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a8cdeda0ef0e976102d05de3004bd8c8a">SVF::MutablePTData::addPts</a></div><div class="ttdeci">bool addPts(DataSet &d, const Data &e)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
214
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a3f234abc0def4815a03de164fa258f24"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a3f234abc0def4815a03de164fa258f24">SVF::MutableDFPTData::PtsMapConstIter</a></div><div class="ttdeci">BaseMutPTData::PtsMapConstIter PtsMapConstIter</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
212
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a8b30326d3fa3f4054e67268f512aec9e"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a8b30326d3fa3f4054e67268f512aec9e">SVF::MutableIncDFPTData::UpdatedVarMapIter</a></div><div class="ttdeci">UpdatedVarMap::iterator UpdatedVarMapIter</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00693">MutablePointsToDS.h:693</a></div></div>
|
|
213
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a8cdeda0ef0e976102d05de3004bd8c8a"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a8cdeda0ef0e976102d05de3004bd8c8a">SVF::MutablePTData::addPts</a></div><div class="ttdeci">bool addPts(DataSet &d, const Data &e)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00185">MutablePointsToDS.h:185</a></div></div>
|
|
214
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a3f234abc0def4815a03de164fa258f24"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a3f234abc0def4815a03de164fa258f24">SVF::MutableDFPTData::PtsMapConstIter</a></div><div class="ttdeci">BaseMutPTData::PtsMapConstIter PtsMapConstIter</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00373">MutablePointsToDS.h:373</a></div></div>
|
|
215
215
|
<div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
|
|
216
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_ab476e1b59aead37b440fd5735df3814b"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#ab476e1b59aead37b440fd5735df3814b">SVF::MutableVersionedPTData::clear</a></div><div class="ttdeci">virtual void clear() override</div><div class="ttdoc">Clears all points-to sets as if nothing is stored. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
217
|
-
<div class="ttc" id="classSVF_1_1DFPTData_html_a298a5ef6cfffbe10b9d05af0ad12e786"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a298a5ef6cfffbe10b9d05af0ad12e786">SVF::DFPTData::LocID</a></div><div class="ttdeci">NodeID LocID</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
218
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_a3206473b309c231d7d4b991a36a35279"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a3206473b309c231d7d4b991a36a35279">SVF::MutablePTData::dumpPTData</a></div><div class="ttdeci">virtual void dumpPTData() override</div><div class="ttdoc">Dump stored keys and points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
219
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a9f985ff2daee53fb661e4b2bcfd17f05"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a9f985ff2daee53fb661e4b2bcfd17f05">SVF::MutableVersionedPTData::clearFullPts</a></div><div class="ttdeci">virtual void clearFullPts(const Key &k) override</div><div class="ttdoc">Fully clears the points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
220
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a8261a24cfb34056f3720cd6fbc0a4870"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a8261a24cfb34056f3720cd6fbc0a4870">SVF::MutableDiffPTData::getPtsMap</a></div><div class="ttdeci">virtual const PtsMap & getPtsMap() const</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
221
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a25274e3029dfa655c47b72f291b906de"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a25274e3029dfa655c47b72f291b906de">SVF::MutableDFPTData::BasePTData</a></div><div class="ttdeci">PTData< Key, KeySet, Data, DataSet > BasePTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
222
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_ad9bd6762fc6525afaed4a6c6da63688d"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#ad9bd6762fc6525afaed4a6c6da63688d">SVF::MutableDiffPTData::getRevPts</a></div><div class="ttdeci">virtual const KeySet & getRevPts(const Data &datum) override</div><div class="ttdoc">Get reverse points-to set of a datum. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
223
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_ae856f07441da3988d6a31eea1e30a7d9"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ae856f07441da3988d6a31eea1e30a7d9">SVF::MutablePTData::iterator</a></div><div class="ttdeci">DataSet::iterator iterator</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
224
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_aa9d24a4defb025c075e4ec5bc7f3b618"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#aa9d24a4defb025c075e4ec5bc7f3b618">SVF::MutableVersionedPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const VersionedKey &dstVar, const DataSet &srcDataSet) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
225
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a646111552a7112b8e48c00e766ce8d9b"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a646111552a7112b8e48c00e766ce8d9b">SVF::MutableVersionedPTData::classof</a></div><div class="ttdeci">static bool classof(const PTData< Key, KeySet, Data, DataSet > *ptd)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
226
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ab345e148997b9e1c6e4c2c76267880b7"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ab345e148997b9e1c6e4c2c76267880b7">SVF::MutableDFPTData::clearFullPts</a></div><div class="ttdeci">virtual void clearFullPts(const Key &var) override</div><div class="ttdoc">Fully clears the points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
227
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a450ed4470b1d83d44218904dd391fd75"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a450ed4470b1d83d44218904dd391fd75">SVF::MutableDiffPTData::getPropaPts</a></div><div class="ttdeci">DataSet & getPropaPts(Key &var)</div><div class="ttdoc">Get propagated points to. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
216
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_ab476e1b59aead37b440fd5735df3814b"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#ab476e1b59aead37b440fd5735df3814b">SVF::MutableVersionedPTData::clear</a></div><div class="ttdeci">virtual void clear() override</div><div class="ttdoc">Clears all points-to sets as if nothing is stored. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00904">MutablePointsToDS.h:904</a></div></div>
|
|
217
|
+
<div class="ttc" id="classSVF_1_1DFPTData_html_a298a5ef6cfffbe10b9d05af0ad12e786"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a298a5ef6cfffbe10b9d05af0ad12e786">SVF::DFPTData::LocID</a></div><div class="ttdeci">NodeID LocID</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00200">AbstractPointsToDS.h:200</a></div></div>
|
|
218
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_a3206473b309c231d7d4b991a36a35279"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#a3206473b309c231d7d4b991a36a35279">SVF::MutablePTData::dumpPTData</a></div><div class="ttdeci">virtual void dumpPTData() override</div><div class="ttdoc">Dump stored keys and points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00112">MutablePointsToDS.h:112</a></div></div>
|
|
219
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a9f985ff2daee53fb661e4b2bcfd17f05"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a9f985ff2daee53fb661e4b2bcfd17f05">SVF::MutableVersionedPTData::clearFullPts</a></div><div class="ttdeci">virtual void clearFullPts(const Key &k) override</div><div class="ttdoc">Fully clears the points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00973">MutablePointsToDS.h:973</a></div></div>
|
|
220
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a8261a24cfb34056f3720cd6fbc0a4870"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a8261a24cfb34056f3720cd6fbc0a4870">SVF::MutableDiffPTData::getPtsMap</a></div><div class="ttdeci">virtual const PtsMap & getPtsMap() const</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00241">MutablePointsToDS.h:241</a></div></div>
|
|
221
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a25274e3029dfa655c47b72f291b906de"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a25274e3029dfa655c47b72f291b906de">SVF::MutableDFPTData::BasePTData</a></div><div class="ttdeci">PTData< Key, KeySet, Data, DataSet > BasePTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00366">MutablePointsToDS.h:366</a></div></div>
|
|
222
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_ad9bd6762fc6525afaed4a6c6da63688d"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#ad9bd6762fc6525afaed4a6c6da63688d">SVF::MutableDiffPTData::getRevPts</a></div><div class="ttdeci">virtual const KeySet & getRevPts(const Data &datum) override</div><div class="ttdoc">Get reverse points-to set of a datum. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00256">MutablePointsToDS.h:256</a></div></div>
|
|
223
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_ae856f07441da3988d6a31eea1e30a7d9"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ae856f07441da3988d6a31eea1e30a7d9">SVF::MutablePTData::iterator</a></div><div class="ttdeci">DataSet::iterator iterator</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00064">MutablePointsToDS.h:64</a></div></div>
|
|
224
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_aa9d24a4defb025c075e4ec5bc7f3b618"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#aa9d24a4defb025c075e4ec5bc7f3b618">SVF::MutableVersionedPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const VersionedKey &dstVar, const DataSet &srcDataSet) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00959">MutablePointsToDS.h:959</a></div></div>
|
|
225
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a646111552a7112b8e48c00e766ce8d9b"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a646111552a7112b8e48c00e766ce8d9b">SVF::MutableVersionedPTData::classof</a></div><div class="ttdeci">static bool classof(const PTData< Key, KeySet, Data, DataSet > *ptd)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l01010">MutablePointsToDS.h:1010</a></div></div>
|
|
226
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ab345e148997b9e1c6e4c2c76267880b7"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ab345e148997b9e1c6e4c2c76267880b7">SVF::MutableDFPTData::clearFullPts</a></div><div class="ttdeci">virtual void clearFullPts(const Key &var) override</div><div class="ttdoc">Fully clears the points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00542">MutablePointsToDS.h:542</a></div></div>
|
|
227
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a450ed4470b1d83d44218904dd391fd75"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a450ed4470b1d83d44218904dd391fd75">SVF::MutableDiffPTData::getPropaPts</a></div><div class="ttdeci">DataSet & getPropaPts(Key &var)</div><div class="ttdoc">Get propagated points to. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00348">MutablePointsToDS.h:348</a></div></div>
|
|
228
228
|
<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>
|
|
229
229
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aee74719d33695e4da6fee5fc83f745d9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aee74719d33695e4da6fee5fc83f745d9">SVF::SVFUtil::removeKey</a></div><div class="ttdeci">void removeKey(const Key &key, KeySet &keySet)</div><div class="ttdoc">Removes an element from a Set/CondSet (or anything implementing ::erase). </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00320">SVFUtil.h:320</a></div></div>
|
|
230
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_aed141fb836cb22e02032ea46e3e5f51b"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#aed141fb836cb22e02032ea46e3e5f51b">SVF::MutableDFPTData::MutableDFPTData</a></div><div class="ttdeci">MutableDFPTData(bool reversePT=true, PTDataTy ty=BaseDFPTData::MutDataFlow)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
231
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a55b19f617d11dfc6632b690694f264ab"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a55b19f617d11dfc6632b690694f264ab">SVF::MutableIncDFPTData::varHasNewDFOutPts</a></div><div class="ttdeci">bool varHasNewDFOutPts(LocID loc, const Key &var)</div><div class="ttdoc">Return TRUE if var has new pts in loc&#39;s OUT set. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
232
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_adf4e5c57d7b7ae7da37bb1a4eabfe8a6"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#adf4e5c57d7b7ae7da37bb1a4eabfe8a6">SVF::MutableIncDFPTData::~MutableIncDFPTData</a></div><div class="ttdeci">virtual ~MutableIncDFPTData()</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
233
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a9967c530d3955a0a726b7a00653ef0ba"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a9967c530d3955a0a726b7a00653ef0ba">SVF::MutableVersionedPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstVar, const VersionedKey &srcVar) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
234
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ab6b0496d0c34642ddd2707142334f4a2"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ab6b0496d0c34642ddd2707142334f4a2">SVF::MutableDFPTData::getDFOutPtsSet</a></div><div class="ttdeci">virtual DataSet & getDFOutPtsSet(LocID loc, const Key &var) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
235
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a8b1814326e71f6c6fd31d5aef0592a1d"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a8b1814326e71f6c6fd31d5aef0592a1d">SVF::MutableDFPTData::getPtsMap</a></div><div class="ttdeci">virtual const PtsMap & getPtsMap() const</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
236
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_aaf3df7501f84233f6a687ef9f2f0ae90"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#aaf3df7501f84233f6a687ef9f2f0ae90">SVF::MutableVersionedPTData::clearFullPts</a></div><div class="ttdeci">virtual void clearFullPts(const VersionedKey &vk) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
237
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_ad8c9fc1b290372ed9c68e54687724b64"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ad8c9fc1b290372ed9c68e54687724b64">SVF::MutablePTData::revPtsMap</a></div><div class="ttdeci">RevPtsMap revPtsMap</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
238
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_adb30678f5bbdea0f196d3b0ab67d2bad"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#adb30678f5bbdea0f196d3b0ab67d2bad">SVF::MutableDFPTData::DFPtsMapconstIter</a></div><div class="ttdeci">DFPtsMap::const_iterator DFPtsMapconstIter</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
239
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a92f00e91a338113383bcf7bc8ce0026a"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a92f00e91a338113383bcf7bc8ce0026a">SVF::MutableIncDFPTData::BaseMutPTData</a></div><div class="ttdeci">MutablePTData< Key, KeySet, Data, DataSet > BaseMutPTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
240
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a7c7eff549ea0d153e7a72ed5bf79c30e"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a7c7eff549ea0d153e7a72ed5bf79c30e">SVF::MutableDFPTData::updateAllDFInFromOut</a></div><div class="ttdeci">virtual bool updateAllDFInFromOut(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Union (IN[dstLoc::dstVar], OUT[srcLoc:srcVar]. There is no flag check, unlike the above...</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
241
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a65028f1634a18f6adbd4cfdb526d1d20"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a65028f1634a18f6adbd4cfdb526d1d20">SVF::MutableDiffPTData::clearPts</a></div><div class="ttdeci">virtual void clearPts(const Key &var, const Data &element) override</div><div class="ttdoc">Clears element from the points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
242
|
-
<div class="ttc" id="classSVF_1_1PTData_html_adfcbaefe1c058d9ddf14aa3da07e1daf"><div class="ttname"><a href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">SVF::PTData::getPTDTY</a></div><div class="ttdeci">PTDataTy getPTDTY() const</div><div class="ttdoc">Get the type of points-to data structure that this is. </div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
243
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a23fca889a29399a91dfc916f5fab46ee"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a23fca889a29399a91dfc916f5fab46ee">SVF::MutableDFPTData::updateAllDFInFromIn</a></div><div class="ttdeci">virtual bool updateAllDFInFromIn(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Union (IN[dstLoc::dstVar], IN[srcLoc:srcVar]. There is no flag check, unlike the above. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
244
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a3603cb4baf60b1aa83b7807ac5591484"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a3603cb4baf60b1aa83b7807ac5591484">SVF::MutableDiffPTData::mutPTData</a></div><div class="ttdeci">MutablePTData< Key, KeySet, Data, DataSet > mutPTData</div><div class="ttdoc">Backing to implement the basic PTData methods. This allows us to avoid multiple-inheritance. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
245
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a00a88cc3e802921c6a0951801ec712a6"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a00a88cc3e802921c6a0951801ec712a6">SVF::MutableVersionedPTData::addPts</a></div><div class="ttdeci">virtual bool addPts(const Key &k, const Data &element) override</div><div class="ttdoc">Adds element to the points-to set associated with var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
246
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a44aad57ac0de594e404a6c4ceff0bd53"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a44aad57ac0de594e404a6c4ceff0bd53">SVF::MutableDFPTData::getDFInPtsSet</a></div><div class="ttdeci">virtual DataSet & getDFInPtsSet(LocID loc, const Key &var) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
247
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_aa9ab46b7afc7f47df20e74bda300dc42"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#aa9ab46b7afc7f47df20e74bda300dc42">SVF::MutableVersionedPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstVar, const DataSet &srcDataSet) override</div><div class="ttdoc">Performs pts(dstVar) = pts(dstVar) U srcDataSet. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
230
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_aed141fb836cb22e02032ea46e3e5f51b"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#aed141fb836cb22e02032ea46e3e5f51b">SVF::MutableDFPTData::MutableDFPTData</a></div><div class="ttdeci">MutableDFPTData(bool reversePT=true, PTDataTy ty=BaseDFPTData::MutDataFlow)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00379">MutablePointsToDS.h:379</a></div></div>
|
|
231
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a55b19f617d11dfc6632b690694f264ab"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a55b19f617d11dfc6632b690694f264ab">SVF::MutableIncDFPTData::varHasNewDFOutPts</a></div><div class="ttdeci">bool varHasNewDFOutPts(LocID loc, const Key &var)</div><div class="ttdoc">Return TRUE if var has new pts in loc&#39;s OUT set. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00873">MutablePointsToDS.h:873</a></div></div>
|
|
232
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_adf4e5c57d7b7ae7da37bb1a4eabfe8a6"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#adf4e5c57d7b7ae7da37bb1a4eabfe8a6">SVF::MutableIncDFPTData::~MutableIncDFPTData</a></div><div class="ttdeci">virtual ~MutableIncDFPTData()</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00705">MutablePointsToDS.h:705</a></div></div>
|
|
233
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a9967c530d3955a0a726b7a00653ef0ba"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a9967c530d3955a0a726b7a00653ef0ba">SVF::MutableVersionedPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstVar, const VersionedKey &srcVar) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00951">MutablePointsToDS.h:951</a></div></div>
|
|
234
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ab6b0496d0c34642ddd2707142334f4a2"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ab6b0496d0c34642ddd2707142334f4a2">SVF::MutableDFPTData::getDFOutPtsSet</a></div><div class="ttdeci">virtual DataSet & getDFOutPtsSet(LocID loc, const Key &var) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00438">MutablePointsToDS.h:438</a></div></div>
|
|
235
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a8b1814326e71f6c6fd31d5aef0592a1d"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a8b1814326e71f6c6fd31d5aef0592a1d">SVF::MutableDFPTData::getPtsMap</a></div><div class="ttdeci">virtual const PtsMap & getPtsMap() const</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00383">MutablePointsToDS.h:383</a></div></div>
|
|
236
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_aaf3df7501f84233f6a687ef9f2f0ae90"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#aaf3df7501f84233f6a687ef9f2f0ae90">SVF::MutableVersionedPTData::clearFullPts</a></div><div class="ttdeci">virtual void clearFullPts(const VersionedKey &vk) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00977">MutablePointsToDS.h:977</a></div></div>
|
|
237
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_ad8c9fc1b290372ed9c68e54687724b64"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ad8c9fc1b290372ed9c68e54687724b64">SVF::MutablePTData::revPtsMap</a></div><div class="ttdeci">RevPtsMap revPtsMap</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00222">MutablePointsToDS.h:222</a></div></div>
|
|
238
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_adb30678f5bbdea0f196d3b0ab67d2bad"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#adb30678f5bbdea0f196d3b0ab67d2bad">SVF::MutableDFPTData::DFPtsMapconstIter</a></div><div class="ttdeci">DFPtsMap::const_iterator DFPtsMapconstIter</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00376">MutablePointsToDS.h:376</a></div></div>
|
|
239
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a92f00e91a338113383bcf7bc8ce0026a"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a92f00e91a338113383bcf7bc8ce0026a">SVF::MutableIncDFPTData::BaseMutPTData</a></div><div class="ttdeci">MutablePTData< Key, KeySet, Data, DataSet > BaseMutPTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00686">MutablePointsToDS.h:686</a></div></div>
|
|
240
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a7c7eff549ea0d153e7a72ed5bf79c30e"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a7c7eff549ea0d153e7a72ed5bf79c30e">SVF::MutableDFPTData::updateAllDFInFromOut</a></div><div class="ttdeci">virtual bool updateAllDFInFromOut(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Union (IN[dstLoc::dstVar], OUT[srcLoc:srcVar]. There is no flag check, unlike the above...</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00479">MutablePointsToDS.h:479</a></div></div>
|
|
241
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a65028f1634a18f6adbd4cfdb526d1d20"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a65028f1634a18f6adbd4cfdb526d1d20">SVF::MutableDiffPTData::clearPts</a></div><div class="ttdeci">virtual void clearPts(const Key &var, const Data &element) override</div><div class="ttdoc">Clears element from the points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00277">MutablePointsToDS.h:277</a></div></div>
|
|
242
|
+
<div class="ttc" id="classSVF_1_1PTData_html_adfcbaefe1c058d9ddf14aa3da07e1daf"><div class="ttname"><a href="classSVF_1_1PTData.html#adfcbaefe1c058d9ddf14aa3da07e1daf">SVF::PTData::getPTDTY</a></div><div class="ttdeci">PTDataTy getPTDTY() const</div><div class="ttdoc">Get the type of points-to data structure that this is. </div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00101">AbstractPointsToDS.h:101</a></div></div>
|
|
243
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a23fca889a29399a91dfc916f5fab46ee"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a23fca889a29399a91dfc916f5fab46ee">SVF::MutableDFPTData::updateAllDFInFromIn</a></div><div class="ttdeci">virtual bool updateAllDFInFromIn(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override</div><div class="ttdoc">Union (IN[dstLoc::dstVar], IN[srcLoc:srcVar]. There is no flag check, unlike the above. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00484">MutablePointsToDS.h:484</a></div></div>
|
|
244
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a3603cb4baf60b1aa83b7807ac5591484"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a3603cb4baf60b1aa83b7807ac5591484">SVF::MutableDiffPTData::mutPTData</a></div><div class="ttdeci">MutablePTData< Key, KeySet, Data, DataSet > mutPTData</div><div class="ttdoc">Backing to implement the basic PTData methods. This allows us to avoid multiple-inheritance. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00355">MutablePointsToDS.h:355</a></div></div>
|
|
245
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a00a88cc3e802921c6a0951801ec712a6"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a00a88cc3e802921c6a0951801ec712a6">SVF::MutableVersionedPTData::addPts</a></div><div class="ttdeci">virtual bool addPts(const Key &k, const Data &element) override</div><div class="ttdoc">Adds element to the points-to set associated with var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00930">MutablePointsToDS.h:930</a></div></div>
|
|
246
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a44aad57ac0de594e404a6c4ceff0bd53"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a44aad57ac0de594e404a6c4ceff0bd53">SVF::MutableDFPTData::getDFInPtsSet</a></div><div class="ttdeci">virtual DataSet & getDFInPtsSet(LocID loc, const Key &var) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00432">MutablePointsToDS.h:432</a></div></div>
|
|
247
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_aa9ab46b7afc7f47df20e74bda300dc42"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#aa9ab46b7afc7f47df20e74bda300dc42">SVF::MutableVersionedPTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstVar, const DataSet &srcDataSet) override</div><div class="ttdoc">Performs pts(dstVar) = pts(dstVar) U srcDataSet. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00955">MutablePointsToDS.h:955</a></div></div>
|
|
248
248
|
<div class="ttc" id="namespaceSVF_html_a8bd74fdcb0e58d0249003df9c3fb8b31"><div class="ttname"><a href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">SVF::OutStream</a></div><div class="ttdeci">std::ostream OutStream</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00083">SVFBasicTypes.h:83</a></div></div>
|
|
249
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_af5f7db6c55037a0e117a36982736039e"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#af5f7db6c55037a0e117a36982736039e">SVF::MutableIncDFPTData::outUpdatedVarMap</a></div><div class="ttdeci">UpdatedVarMap outUpdatedVarMap</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
250
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_ac8da1a3357c3bc529f6ca85615486951"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ac8da1a3357c3bc529f6ca85615486951">SVF::MutablePTData::clear</a></div><div class="ttdeci">virtual void clear() override</div><div class="ttdoc">Clears all points-to sets as if nothing is stored. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
251
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_acb338bbe5773001a15b81e596a764222"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#acb338bbe5773001a15b81e596a764222">SVF::MutableDFPTData::classof</a></div><div class="ttdeci">static bool classof(const PTData< Key, KeySet, Data, DataSet > *ptd)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
252
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_aa8b85dee2b70031a2f97e1a36c9b25de"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#aa8b85dee2b70031a2f97e1a36c9b25de">SVF::MutableDFPTData::hasDFInSet</a></div><div class="ttdeci">virtual bool hasDFInSet(LocID loc, const Key &var) const override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
253
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a8ae9624ac7fb1502eaa43173dacbe7b7"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a8ae9624ac7fb1502eaa43173dacbe7b7">SVF::MutableDiffPTData::clear</a></div><div class="ttdeci">virtual void clear() override</div><div class="ttdoc">Clears all points-to sets as if nothing is stored. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
254
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a5d64ef2d4b9ab65cc7a9e33bb6fe47cf"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a5d64ef2d4b9ab65cc7a9e33bb6fe47cf">SVF::MutableDiffPTData::PtsMap</a></div><div class="ttdeci">MutablePTData< Key, KeySet, Data, DataSet >::PtsMap PtsMap</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
255
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a89f65d37096c82fcdddb1c324ec206d2"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a89f65d37096c82fcdddb1c324ec206d2">SVF::MutableIncDFPTData::classof</a></div><div class="ttdeci">static bool classof(const MutableIncDFPTData< Key, KeySet, Data, DataSet > *)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
256
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848aa4e18dfa52aad741c91bcc78339e986c"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848aa4e18dfa52aad741c91bcc78339e986c">SVF::PTData::MutIncDataFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
257
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a4b944ec759d0e78a7a2238db587752a9"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a4b944ec759d0e78a7a2238db587752a9">SVF::MutableIncDFPTData::BaseDFPTData</a></div><div class="ttdeci">DFPTData< Key, KeySet, Data, DataSet > BaseDFPTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
258
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_ac2f494da9379c336bb81a0dc438b5af9"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#ac2f494da9379c336bb81a0dc438b5af9">SVF::MutableDiffPTData::getPts</a></div><div class="ttdeci">virtual const DataSet & getPts(const Key &var) override</div><div class="ttdoc">Get points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
259
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a913c1a2c48526160eeecd028bd22cfc4"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a913c1a2c48526160eeecd028bd22cfc4">SVF::MutableIncDFPTData::removeVarFromDFInUpdatedSet</a></div><div class="ttdeci">void removeVarFromDFInUpdatedSet(LocID loc, const Key &var)</div><div class="ttdoc">Remove var from loc&#39;s IN updated set. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
260
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_ae7ed810cf4de695072ba5c4d0c882353"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#ae7ed810cf4de695072ba5c4d0c882353">SVF::MutableIncDFPTData::varHasNewDFInPts</a></div><div class="ttdeci">bool varHasNewDFInPts(LocID loc, const Key &var)</div><div class="ttdoc">Return TRUE if var has new pts in loc&#39;s IN set. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
261
|
-
<div class="ttc" id="classSVF_1_1MutablePTData_html_ad08dbfa28cd0d622322091d6600748ed"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ad08dbfa28cd0d622322091d6600748ed">SVF::MutablePTData::PtsMapIter</a></div><div class="ttdeci">PtsMap::iterator PtsMapIter</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
262
|
-
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ae7456fccd4c95227cdd7163176703205"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ae7456fccd4c95227cdd7163176703205">SVF::MutableDFPTData::PtsMap</a></div><div class="ttdeci">BaseMutPTData::PtsMap PtsMap</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
263
|
-
<div class="ttc" id="classSVF_1_1PTData_html_a46fa3ec6462f3dda19549340281bb219"><div class="ttname"><a href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">SVF::PTData::rev</a></div><div class="ttdeci">bool rev</div><div class="ttdoc">Whether we maintain reverse points-to sets or not. </div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#
|
|
264
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a3e5337d4189e98f11305491a9ef3c439"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a3e5337d4189e98f11305491a9ef3c439">SVF::MutableVersionedPTData::atPTData</a></div><div class="ttdeci">MutablePTData< VersionedKey, VersionedKeySet, Data, DataSet > atPTData</div><div class="ttdoc">PTData for VersionedKeys (address-taken objects, generally). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
265
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a717c166c5efdf2e1d71be1772fc0898d"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a717c166c5efdf2e1d71be1772fc0898d">SVF::MutableDiffPTData::addPts</a></div><div class="ttdeci">virtual bool addPts(const Key &dstKey, const Data &element) override</div><div class="ttdoc">Adds element to the points-to set associated with var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
266
|
-
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_ac9ff175dbdf75232a104e2aa34f87d43"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#ac9ff175dbdf75232a104e2aa34f87d43">SVF::MutableIncDFPTData::clearAllDFOutUpdatedVar</a></div><div class="ttdeci">virtual void clearAllDFOutUpdatedVar(LocID loc) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
267
|
-
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a6cac338e74f869d0e708c7e2b356b5d7"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a6cac338e74f869d0e708c7e2b356b5d7">SVF::MutableVersionedPTData::getAllPts</a></div><div class="ttdeci">virtual Map< DataSet, unsigned > getAllPts(bool liveOnly) const override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
268
|
-
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a9ee7874e987e93eb4cb9d75ed08effd5"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a9ee7874e987e93eb4cb9d75ed08effd5">SVF::MutableDiffPTData::diffPtsMap</a></div><div class="ttdeci">PtsMap diffPtsMap</div><div class="ttdoc">Diff points-to to be propagated. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#
|
|
249
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_af5f7db6c55037a0e117a36982736039e"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#af5f7db6c55037a0e117a36982736039e">SVF::MutableIncDFPTData::outUpdatedVarMap</a></div><div class="ttdeci">UpdatedVarMap outUpdatedVarMap</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00698">MutablePointsToDS.h:698</a></div></div>
|
|
250
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_ac8da1a3357c3bc529f6ca85615486951"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ac8da1a3357c3bc529f6ca85615486951">SVF::MutablePTData::clear</a></div><div class="ttdeci">virtual void clear() override</div><div class="ttdoc">Clears all points-to sets as if nothing is stored. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00077">MutablePointsToDS.h:77</a></div></div>
|
|
251
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_acb338bbe5773001a15b81e596a764222"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#acb338bbe5773001a15b81e596a764222">SVF::MutableDFPTData::classof</a></div><div class="ttdeci">static bool classof(const PTData< Key, KeySet, Data, DataSet > *ptd)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00589">MutablePointsToDS.h:589</a></div></div>
|
|
252
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_aa8b85dee2b70031a2f97e1a36c9b25de"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#aa8b85dee2b70031a2f97e1a36c9b25de">SVF::MutableDFPTData::hasDFInSet</a></div><div class="ttdeci">virtual bool hasDFInSet(LocID loc, const Key &var) const override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00414">MutablePointsToDS.h:414</a></div></div>
|
|
253
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a8ae9624ac7fb1502eaa43173dacbe7b7"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a8ae9624ac7fb1502eaa43173dacbe7b7">SVF::MutableDiffPTData::clear</a></div><div class="ttdeci">virtual void clear() override</div><div class="ttdoc">Clears all points-to sets as if nothing is stored. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00246">MutablePointsToDS.h:246</a></div></div>
|
|
254
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a5d64ef2d4b9ab65cc7a9e33bb6fe47cf"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a5d64ef2d4b9ab65cc7a9e33bb6fe47cf">SVF::MutableDiffPTData::PtsMap</a></div><div class="ttdeci">MutablePTData< Key, KeySet, Data, DataSet >::PtsMap PtsMap</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00234">MutablePointsToDS.h:234</a></div></div>
|
|
255
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a89f65d37096c82fcdddb1c324ec206d2"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a89f65d37096c82fcdddb1c324ec206d2">SVF::MutableIncDFPTData::classof</a></div><div class="ttdeci">static bool classof(const MutableIncDFPTData< Key, KeySet, Data, DataSet > *)</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00818">MutablePointsToDS.h:818</a></div></div>
|
|
256
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a74ce29609c51f2be34a0b5b7650a9848aa4e18dfa52aad741c91bcc78339e986c"><div class="ttname"><a href="classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848aa4e18dfa52aad741c91bcc78339e986c">SVF::PTData::MutIncDataFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00086">AbstractPointsToDS.h:86</a></div></div>
|
|
257
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a4b944ec759d0e78a7a2238db587752a9"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a4b944ec759d0e78a7a2238db587752a9">SVF::MutableIncDFPTData::BaseDFPTData</a></div><div class="ttdeci">DFPTData< Key, KeySet, Data, DataSet > BaseDFPTData</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00687">MutablePointsToDS.h:687</a></div></div>
|
|
258
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_ac2f494da9379c336bb81a0dc438b5af9"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#ac2f494da9379c336bb81a0dc438b5af9">SVF::MutableDiffPTData::getPts</a></div><div class="ttdeci">virtual const DataSet & getPts(const Key &var) override</div><div class="ttdoc">Get points-to set of var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00251">MutablePointsToDS.h:251</a></div></div>
|
|
259
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_a913c1a2c48526160eeecd028bd22cfc4"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#a913c1a2c48526160eeecd028bd22cfc4">SVF::MutableIncDFPTData::removeVarFromDFInUpdatedSet</a></div><div class="ttdeci">void removeVarFromDFInUpdatedSet(LocID loc, const Key &var)</div><div class="ttdoc">Remove var from loc&#39;s IN updated set. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00837">MutablePointsToDS.h:837</a></div></div>
|
|
260
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_ae7ed810cf4de695072ba5c4d0c882353"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#ae7ed810cf4de695072ba5c4d0c882353">SVF::MutableIncDFPTData::varHasNewDFInPts</a></div><div class="ttdeci">bool varHasNewDFInPts(LocID loc, const Key &var)</div><div class="ttdoc">Return TRUE if var has new pts in loc&#39;s IN set. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00844">MutablePointsToDS.h:844</a></div></div>
|
|
261
|
+
<div class="ttc" id="classSVF_1_1MutablePTData_html_ad08dbfa28cd0d622322091d6600748ed"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ad08dbfa28cd0d622322091d6600748ed">SVF::MutablePTData::PtsMapIter</a></div><div class="ttdeci">PtsMap::iterator PtsMapIter</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00062">MutablePointsToDS.h:62</a></div></div>
|
|
262
|
+
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ae7456fccd4c95227cdd7163176703205"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ae7456fccd4c95227cdd7163176703205">SVF::MutableDFPTData::PtsMap</a></div><div class="ttdeci">BaseMutPTData::PtsMap PtsMap</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00372">MutablePointsToDS.h:372</a></div></div>
|
|
263
|
+
<div class="ttc" id="classSVF_1_1PTData_html_a46fa3ec6462f3dda19549340281bb219"><div class="ttname"><a href="classSVF_1_1PTData.html#a46fa3ec6462f3dda19549340281bb219">SVF::PTData::rev</a></div><div class="ttdeci">bool rev</div><div class="ttdoc">Whether we maintain reverse points-to sets or not. </div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00141">AbstractPointsToDS.h:141</a></div></div>
|
|
264
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a3e5337d4189e98f11305491a9ef3c439"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a3e5337d4189e98f11305491a9ef3c439">SVF::MutableVersionedPTData::atPTData</a></div><div class="ttdeci">MutablePTData< VersionedKey, VersionedKeySet, Data, DataSet > atPTData</div><div class="ttdoc">PTData for VersionedKeys (address-taken objects, generally). </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l01020">MutablePointsToDS.h:1020</a></div></div>
|
|
265
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a717c166c5efdf2e1d71be1772fc0898d"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a717c166c5efdf2e1d71be1772fc0898d">SVF::MutableDiffPTData::addPts</a></div><div class="ttdeci">virtual bool addPts(const Key &dstKey, const Data &element) override</div><div class="ttdoc">Adds element to the points-to set associated with var. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00262">MutablePointsToDS.h:262</a></div></div>
|
|
266
|
+
<div class="ttc" id="classSVF_1_1MutableIncDFPTData_html_ac9ff175dbdf75232a104e2aa34f87d43"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html#ac9ff175dbdf75232a104e2aa34f87d43">SVF::MutableIncDFPTData::clearAllDFOutUpdatedVar</a></div><div class="ttdeci">virtual void clearAllDFOutUpdatedVar(LocID loc) override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00803">MutablePointsToDS.h:803</a></div></div>
|
|
267
|
+
<div class="ttc" id="classSVF_1_1MutableVersionedPTData_html_a6cac338e74f869d0e708c7e2b356b5d7"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html#a6cac338e74f869d0e708c7e2b356b5d7">SVF::MutableVersionedPTData::getAllPts</a></div><div class="ttdeci">virtual Map< DataSet, unsigned > getAllPts(bool liveOnly) const override</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00988">MutablePointsToDS.h:988</a></div></div>
|
|
268
|
+
<div class="ttc" id="classSVF_1_1MutableDiffPTData_html_a9ee7874e987e93eb4cb9d75ed08effd5"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html#a9ee7874e987e93eb4cb9d75ed08effd5">SVF::MutableDiffPTData::diffPtsMap</a></div><div class="ttdeci">PtsMap diffPtsMap</div><div class="ttdoc">Diff points-to to be propagated. </div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00357">MutablePointsToDS.h:357</a></div></div>
|
|
269
269
|
</div><!-- fragment --></div><!-- contents -->
|
|
270
270
|
<!-- start footer part -->
|
|
271
271
|
<hr class="footer"/><address class="footer"><small>
|