svf-tools 1.0.289 → 1.0.293
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 -0
- package/SVF-doxygen/html/html/AndersenHCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenHLCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenWaveDiffWithType_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +45 -29
- package/SVF-doxygen/html/html/Andersen_8h_source.html +50 -50
- package/SVF-doxygen/html/html/BasicTypes_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +9 -9
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +22 -22
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +52 -32
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +58 -55
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +2 -2
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +64 -11
- package/SVF-doxygen/html/html/NodeIDAllocator_8h.html +5 -1
- package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +52 -15
- package/SVF-doxygen/html/html/PAG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +34 -33
- package/SVF-doxygen/html/html/PointsTo_8h_source.html +32 -32
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -12
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +33 -35
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +31 -36
- package/SVF-doxygen/html/html/SVFG_8h_source.html +19 -19
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +15 -7
- package/SVF-doxygen/html/html/SVFUtil_8h.html +3 -0
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +10 -8
- package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +17 -11
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +51 -43
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +34 -33
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/annotated.html +2 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +213 -212
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +124 -72
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +223 -222
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +36 -34
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +232 -231
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +21 -19
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +220 -219
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +38 -36
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +221 -220
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +11 -9
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +232 -231
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +6 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +220 -219
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +21 -19
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiffWithType-members.html +227 -226
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiffWithType.html +26 -24
- package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +2 -3
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CopyPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FIObjPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +110 -107
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +12 -4
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +109 -106
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +286 -157
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +121 -118
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +36 -28
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GepValPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LoadPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator-members.html +11 -10
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +74 -34
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer-members.html +109 -0
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +1188 -0
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +77 -66
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +32 -26
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice-members.html +36 -37
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +121 -153
- package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +49 -49
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +8 -9
- package/SVF-doxygen/html/html/classSVF_1_1StorePE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ValPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +132 -129
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +171 -116
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +37 -37
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +5 -5
- package/SVF-doxygen/html/html/classes.html +62 -62
- package/SVF-doxygen/html/html/functions_b.html +10 -5
- package/SVF-doxygen/html/html/functions_c.html +36 -22
- package/SVF-doxygen/html/html/functions_d.html +12 -0
- package/SVF-doxygen/html/html/functions_e.html +9 -3
- package/SVF-doxygen/html/html/functions_f.html +21 -18
- package/SVF-doxygen/html/html/functions_func_c.html +19 -10
- package/SVF-doxygen/html/html/functions_func_d.html +3 -0
- package/SVF-doxygen/html/html/functions_func_e.html +3 -0
- package/SVF-doxygen/html/html/functions_func_g.html +16 -10
- package/SVF-doxygen/html/html/functions_func_p.html +6 -2
- package/SVF-doxygen/html/html/functions_func_r.html +7 -1
- package/SVF-doxygen/html/html/functions_func_t.html +3 -0
- package/SVF-doxygen/html/html/functions_g.html +15 -9
- package/SVF-doxygen/html/html/functions_l.html +10 -7
- package/SVF-doxygen/html/html/functions_n.html +21 -3
- package/SVF-doxygen/html/html/functions_o.html +16 -8
- package/SVF-doxygen/html/html/functions_p.html +23 -17
- package/SVF-doxygen/html/html/functions_r.html +13 -6
- package/SVF-doxygen/html/html/functions_s.html +9 -9
- package/SVF-doxygen/html/html/functions_t.html +18 -9
- package/SVF-doxygen/html/html/functions_type_d.html +3 -0
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_b.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_c.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_d.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_e.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_f.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_l.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_n.html +18 -0
- package/SVF-doxygen/html/html/functions_vars_o.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_r.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_t.html +6 -0
- package/SVF-doxygen/html/html/functions_w.html +8 -6
- package/SVF-doxygen/html/html/globals_f.html +3 -3
- package/SVF-doxygen/html/html/hierarchy.html +413 -412
- package/SVF-doxygen/html/html/menudata.js +2 -0
- package/SVF-doxygen/html/html/namespaceSVF.html +8 -8
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +47 -16
- package/SVF-doxygen/html/html/namespacemembers_func.html +17 -10
- package/SVF-doxygen/html/html/namespacemembers_h.html +76 -0
- package/SVF-doxygen/html/html/search/all_10.js +9 -8
- package/SVF-doxygen/html/html/search/all_12.js +5 -2
- package/SVF-doxygen/html/html/search/all_13.js +7 -7
- package/SVF-doxygen/html/html/search/all_14.js +8 -5
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_2.js +1 -0
- package/SVF-doxygen/html/html/search/all_3.js +4 -0
- package/SVF-doxygen/html/html/search/all_4.js +4 -0
- package/SVF-doxygen/html/html/search/all_5.js +2 -0
- package/SVF-doxygen/html/html/search/all_6.js +4 -3
- package/SVF-doxygen/html/html/search/all_7.js +4 -2
- package/SVF-doxygen/html/html/search/all_8.js +1 -0
- package/SVF-doxygen/html/html/search/all_c.js +4 -3
- package/SVF-doxygen/html/html/search/all_d.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +9 -4
- package/SVF-doxygen/html/html/search/all_f.js +4 -2
- package/SVF-doxygen/html/html/search/classes_2.js +1 -0
- package/SVF-doxygen/html/html/search/functions_10.js +1 -1
- package/SVF-doxygen/html/html/search/functions_11.js +1 -0
- package/SVF-doxygen/html/html/search/functions_2.js +2 -0
- package/SVF-doxygen/html/html/search/functions_3.js +1 -0
- package/SVF-doxygen/html/html/search/functions_4.js +1 -0
- package/SVF-doxygen/html/html/search/functions_6.js +4 -2
- package/SVF-doxygen/html/html/search/functions_7.js +1 -0
- package/SVF-doxygen/html/html/search/functions_e.js +3 -2
- package/SVF-doxygen/html/html/search/functions_f.js +2 -0
- package/SVF-doxygen/html/html/search/typedefs_3.js +1 -0
- package/SVF-doxygen/html/html/search/variables_12.js +1 -0
- package/SVF-doxygen/html/html/search/variables_14.js +3 -1
- package/SVF-doxygen/html/html/search/variables_15.js +1 -1
- package/SVF-doxygen/html/html/search/variables_2.js +1 -0
- package/SVF-doxygen/html/html/search/variables_3.js +1 -0
- package/SVF-doxygen/html/html/search/variables_4.js +2 -0
- package/SVF-doxygen/html/html/search/variables_5.js +1 -0
- package/SVF-doxygen/html/html/search/variables_6.js +1 -0
- package/SVF-doxygen/html/html/search/variables_c.js +1 -0
- package/SVF-doxygen/html/html/search/variables_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +7 -2
- package/SVF-doxygen/html/html/search/variables_f.js +2 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +20 -20
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +18 -18
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1PointsTo_01_4.html +1 -1
- package/include/SABER/ProgSlice.h +0 -3
- package/include/Util/NodeIDAllocator.h +94 -0
- package/include/Util/SVFUtil.h +3 -0
- package/include/WPA/Andersen.h +4 -0
- package/include/WPA/FlowSensitive.h +9 -0
- package/include/WPA/VersionedFlowSensitive.h +3 -0
- package/lib/Graphs/SVFG.cpp +0 -20
- package/lib/Graphs/VFG.cpp +18 -0
- package/lib/MemoryModel/PointsTo.cpp +76 -19
- package/lib/SABER/ProgSlice.cpp +0 -37
- package/lib/SABER/SaberAnnotator.cpp +1 -1
- package/lib/Util/NodeIDAllocator.cpp +548 -1
- package/lib/Util/SVFUtil.cpp +19 -0
- package/lib/WPA/Andersen.cpp +34 -0
- package/lib/WPA/FlowSensitive.cpp +70 -0
- package/lib/WPA/VersionedFlowSensitive.cpp +20 -0
- package/package.json +1 -1
|
@@ -66,97 +66,98 @@ $(function() {
|
|
|
66
66
|
<div class="title">VersionedFlowSensitive.h</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="VersionedFlowSensitive_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">//===- VersionedFlowSensitive.h -- Versioned flow-sensitive pointer analysis --------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> </div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">/*</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * VersionedFlowSensitiveAnalysis.h</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Created on: Jun 26, 2020</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * Author: Mohamad Barbar</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#ifndef VFS_H_</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#define VFS_H_</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="preprocessor">#include "<a class="code" href="SVFGOPT_8h.html">Graphs/SVFGOPT.h</a>"</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="SVFGBuilder_8h.html">MSSA/SVFGBuilder.h</a>"</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="FlowSensitive_8h.html">WPA/FlowSensitive.h</a>"</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="WPAFSSolver_8h.html">WPA/WPAFSSolver.h</a>"</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="PointsTo_8h.html">MemoryModel/PointsTo.h</a>"</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">class </span>AndersenWaveDiff;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">class </span>SVFModule;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html"> 28</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1FlowSensitive.html">FlowSensitive</a></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#aaee58f266762146e9fdc08ecfc326b29"> 30</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html">VersionedFlowSensitiveStat</a>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#ac09fe1e8199f9ac3adb6c489ab608fd8"> 33</a></span>  <span class="keyword">typedef</span> llvm::SparseBitVector<> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ac09fe1e8199f9ac3adb6c489ab608fd8">MeldVersion</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#af9a43f48b7d99cc6694f3ae3248fd8e0"> 36</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, Version></a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af9a43f48b7d99cc6694f3ae3248fd8e0">ObjToVersionMap</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a6e36886fac2c276047def0a5acb85c0e"> 37</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, MeldVersion></a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a6e36886fac2c276047def0a5acb85c0e">ObjToMeldVersionMap</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a9ee5add09f2b446c6c6bcb84da0f75b3"> 38</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<VersionedVar, const DummyVersionPropSVFGNode *></a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a9ee5add09f2b446c6c6bcb84da0f75b3">VarToPropNodeMap</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a0ea2cc21f9de287746ca2216b08e22b4"> 40</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, ObjToVersionMap></a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a0ea2cc21f9de287746ca2216b08e22b4">LocVersionMap</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a31f2c86285f3366d0fc06590eb2a24bd"> 42</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, ObjToMeldVersionMap></a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a31f2c86285f3366d0fc06590eb2a24bd">LocMeldVersionMap</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#ad8108ee0b034877dea5e927d29ca0534"> 44</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, Map<Version, std::vector<Version></a>>> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ad8108ee0b034877dea5e927d29ca0534">VersionRelianceMap</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html"> 47</a></span>  <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html">VersionCache</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  {</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html#abbc4b4beea4318f9ccb81dbdeed239b7"> 50</a></span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html#abbc4b4beea4318f9ccb81dbdeed239b7">l</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html#a6cda550f5fe99fe2407ac9bf73d59319"> 52</a></span>  ObjToVersionMap *<a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html#a6cda550f5fe99fe2407ac9bf73d59319">ovm</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html#aa530b30b6b65bb2ba5cbc0922e8d0654"> 54</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html#aa530b30b6b65bb2ba5cbc0922e8d0654">valid</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  } <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a8509e73c41aa3369c0d05fa38c846960">VersionCache</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a3d44a343a2e3f5d276fd1b069c92e112"> 58</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a3d44a343a2e3f5d276fd1b069c92e112">invalidVersion</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a32489632f53dce062ca2e8bff42c65cf">VersionedVar</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a59f3dd74ed8c3e2fc48b9353ba2452aa">atKey</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af52cafc2bb393823f51ca89a0abacec4">VersionedFlowSensitive</a>(<a class="code" href="classSVF_1_1PAG.html">PAG</a> *_pag, <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">PTATY</a> type = <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a412254a7738029bf3ee96f5c15a6bec9">VFS_WPA</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"> 67</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a81d3528fd082018e4345f0b026bf3584">initialize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ad955fda89f4f749151a1bd14562b03f6">finalize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a6e4964389f96667bd69354fd4a742720"> 73</a></span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a6e4964389f96667bd69354fd4a742720">PTAName</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">return</span> <span class="stringliteral">"VersionedFlowSensitive"</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </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_1VersionedFlowSensitive.html#afd1e0d4445e1e50e95f816e51f8de3c8"> 80</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#afd1e0d4445e1e50e95f816e51f8de3c8">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> *)</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>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#abe1874f12ba05b4f453604c6d91598d6"> 84</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#abe1874f12ba05b4f453604c6d91598d6">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a> *pta)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">return</span> pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#ac23f71c1307cda9cba44acc40059f0a3">getAnalysisTy</a>() == <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a412254a7738029bf3ee96f5c15a6bec9">VFS_WPA</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#ab7b98127319bac71bd84652e622b5958"> 91</a></span>  <span class="keyword">static</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> *<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ab7b98127319bac71bd84652e622b5958">createVFSWPA</a>(<a class="code" href="classSVF_1_1PAG.html">PAG</a> *_pag)</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>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af52cafc2bb393823f51ca89a0abacec4">VersionedFlowSensitive</a>(_pag);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a267f7198600dde3054feb40def7a6681">analyze</a>();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a754c77fff88e8f415dc7a2096d1bffe2"> 103</a></span>  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a754c77fff88e8f415dc7a2096d1bffe2">releaseVFSWPA</a>()</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>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>) <span class="keyword">delete</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a> = <span class="keyword">nullptr</span>;</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> </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a1d1f71c41cc3e81e636b58f4436e6d9b">processLoad</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadVFGNode.html">LoadSVFGNode</a>* load) <span class="keyword">override</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aa96f517740420665168e9b0c7d2347f1">processStore</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store) <span class="keyword">override</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a8cad0df2ae7df81dc2a966e694a0f7a2">processNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> n) <span class="keyword">override</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a18f24fe34af677e2a8c78ee89b89be1c">updateConnectedNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a69289c48fa91f850da90de080b9d26e5">SVFGEdgeSetTy</a>& newEdges) <span class="keyword">override</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#ad44c735b25158d2c934bdd44eb404686"> 116</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ad44c735b25158d2c934bdd44eb404686">propAlongIndirectEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a>*)<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a7d86bc18060c0114a783aa1c3a7e9dda">prelabel</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aaff594c78d93f7ad632d344e5c1c7f6a">meldLabel</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a1da960df51570b59161e380949d910c4">meld</a>(MeldVersion &mv1, <span class="keyword">const</span> MeldVersion &mv2);</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>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a8e836aaeab108002205d2a7631e8559f">mapMeldVersions</a>();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  MeldVersion <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a24746dcada35f10cb387c94860930e84">newMeldVersion</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a25d9b2fb94c17edca9ccff220c0247b8">determineReliance</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a7a98162b69de90f80ce853a6ff43af56">propagateVersion</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o, <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a7a98162b69de90f80ce853a6ff43af56">propagateVersion</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> vp, <span class="keywordtype">bool</span> time=<span class="keyword">true</span>);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#acf23b9ce8d07431adf1799dc64c68271">delta</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html#abbc4b4beea4318f9ccb81dbdeed239b7">l</a>) <span class="keyword">const</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a08fbc3ede8007689dcde37d56003650e">getVersion</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o, <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html">VersionCache</a> &cache, LocVersionMap &lvm);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ad8a7b01257f4b425007f3e0054dc6ae9">getConsume</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a6ea3f8e2aa85ea588735514c0b6ff255">getYield</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ab0f18ae2d9c1b3b8f1d103f16df6877e">setVersion</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v, <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html">VersionCache</a> &cache, LocVersionMap &lvm);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aabc0a5a7a31b8d880e019773ba960741">setConsume</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ac33c7cef2d1d143950820ea48e97e806">setYield</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a13f00fd438df4feed73f43d6a0d55e0d">invalidateYieldCache</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ab89fb73e63f7766cbaf7735921b0cf4b">invalidateConsumeCache</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a9d5990a41e90558595d0ad0defceb4e8">dumpReliances</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a032acdcd8b84523a7ac2f0e46d21c62f">dumpLocVersionMaps</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a7565989371100f84ae5f9e2efa655fcb">dumpMeldVersion</a>(MeldVersion &v);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a0f3bc278aa733bd637c9905530ff2e6c"> 189</a></span>  LocMeldVersionMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a0f3bc278aa733bd637c9905530ff2e6c">meldConsume</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#afb0396e095bd461f146b4c5ce957b89e"> 193</a></span>  LocMeldVersionMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#afb0396e095bd461f146b4c5ce957b89e">meldYield</a>;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a32b9ff0e47ef632626f1b647c38c26f9"> 196</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, unsigned></a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a32b9ff0e47ef632626f1b647c38c26f9">meldVersions</a>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a2e4e6a84cbfd553ad9cca8fdf9fd4a8d"> 202</a></span>  LocVersionMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a2e4e6a84cbfd553ad9cca8fdf9fd4a8d">consume</a>;</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a16224ee60494bb1fdf1c8a1026fbe7ab"> 206</a></span>  LocVersionMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a16224ee60494bb1fdf1c8a1026fbe7ab">yield</a>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a6da3d01bd4f8b58c3dac952bba4ee958"> 209</a></span>  <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html">VersionCache</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a6da3d01bd4f8b58c3dac952bba4ee958">consumeCache</a>;</div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a86f03759d0c9e739d70d537ab02d7082"> 211</a></span>  <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html">VersionCache</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a86f03759d0c9e739d70d537ab02d7082">yieldCache</a>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a1dc6e3d4931b53e7e426c0f76d06aeb3"> 214</a></span>  VersionRelianceMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a1dc6e3d4931b53e7e426c0f76d06aeb3">versionReliance</a>;</div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#af0859eb2a5b46c45aa4314e6e54f4438"> 216</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, Map<Version, NodeBS></a>> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af0859eb2a5b46c45aa4314e6e54f4438">stmtReliance</a>;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#af14a4cbc0b990389d31b2f88f50ad8eb"> 220</a></span>  VarToPropNodeMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af14a4cbc0b990389d31b2f88f50ad8eb">versionedVarToPropNode</a>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#adfefc0dfa4e7fb4d20fafeaf96a5fa67"> 224</a></span>  <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList<NodeID></a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#adfefc0dfa4e7fb4d20fafeaf96a5fa67">vWorklist</a>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a03f5f16377daa0258166a73de3e21f07"> 227</a></span>  <a class="code" href="classSVF_1_1VersionedPTData.html">BVDataPTAImpl::VersionedPTDataTy</a> *<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a03f5f16377daa0258166a73de3e21f07">vPtD</a>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a593177519a6bfab63dbb12dbc1ffbc20"> 231</a></span>  <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a593177519a6bfab63dbb12dbc1ffbc20">numPrelabeledNodes</a>; </div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a9235db71172dcdf277050f6ca5f344c6"> 232</a></span>  <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a9235db71172dcdf277050f6ca5f344c6">numPrelabelVersions</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_1VersionedFlowSensitive.html#a80535bb813f8bf240a0b54ac6ad4b257"> 234</a></span>  <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a80535bb813f8bf240a0b54ac6ad4b257">relianceTime</a>; </div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a77a5dd9578def9a8e2b48e8b90d9b996"> 235</a></span>  <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a77a5dd9578def9a8e2b48e8b90d9b996">prelabelingTime</a>; </div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a4a594c8d6ccaa27b5328c6388fdb258d"> 236</a></span>  <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a4a594c8d6ccaa27b5328c6388fdb258d">meldLabelingTime</a>; </div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a8871031546861343c05346ae1a4550cd"> 237</a></span>  <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a8871031546861343c05346ae1a4550cd">meldMappingTime</a>; </div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#af15bb6be283fee2fcc4b1fb7d8190451"> 238</a></span>  <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af15bb6be283fee2fcc4b1fb7d8190451">versionPropTime</a>; </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb"> 241</a></span>  <span class="keyword">static</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> *<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> };</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> } <span class="comment">// End namespace SVF</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"> 246</span> <span class="preprocessor">#endif </span><span class="comment">/* VFS_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a9ee5add09f2b446c6c6bcb84da0f75b3"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a9ee5add09f2b446c6c6bcb84da0f75b3">SVF::VersionedFlowSensitive::VarToPropNodeMap</a></div><div class="ttdeci">Map< VersionedVar, const DummyVersionPropSVFGNode * > VarToPropNodeMap</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00038">VersionedFlowSensitive.h:38</a></div></div>
|
|
69
|
+
<a href="VersionedFlowSensitive_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">//===- VersionedFlowSensitive.h -- Versioned flow-sensitive pointer analysis --------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> </div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">/*</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * VersionedFlowSensitiveAnalysis.h</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Created on: Jun 26, 2020</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * Author: Mohamad Barbar</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> */</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#ifndef VFS_H_</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#define VFS_H_</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="preprocessor">#include "<a class="code" href="SVFGOPT_8h.html">Graphs/SVFGOPT.h</a>"</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="SVFGBuilder_8h.html">MSSA/SVFGBuilder.h</a>"</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="FlowSensitive_8h.html">WPA/FlowSensitive.h</a>"</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="WPAFSSolver_8h.html">WPA/WPAFSSolver.h</a>"</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="PointsTo_8h.html">MemoryModel/PointsTo.h</a>"</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">class </span>AndersenWaveDiff;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">class </span>SVFModule;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html"> 28</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1FlowSensitive.html">FlowSensitive</a></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#aaee58f266762146e9fdc08ecfc326b29"> 30</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1VersionedFlowSensitiveStat.html">VersionedFlowSensitiveStat</a>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#ac09fe1e8199f9ac3adb6c489ab608fd8"> 33</a></span>  <span class="keyword">typedef</span> llvm::SparseBitVector<> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ac09fe1e8199f9ac3adb6c489ab608fd8">MeldVersion</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#af9a43f48b7d99cc6694f3ae3248fd8e0"> 36</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, Version></a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af9a43f48b7d99cc6694f3ae3248fd8e0">ObjToVersionMap</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a6e36886fac2c276047def0a5acb85c0e"> 37</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, MeldVersion></a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a6e36886fac2c276047def0a5acb85c0e">ObjToMeldVersionMap</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a9ee5add09f2b446c6c6bcb84da0f75b3"> 38</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<VersionedVar, const DummyVersionPropSVFGNode *></a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a9ee5add09f2b446c6c6bcb84da0f75b3">VarToPropNodeMap</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a0ea2cc21f9de287746ca2216b08e22b4"> 40</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, ObjToVersionMap></a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a0ea2cc21f9de287746ca2216b08e22b4">LocVersionMap</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a31f2c86285f3366d0fc06590eb2a24bd"> 42</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, ObjToMeldVersionMap></a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a31f2c86285f3366d0fc06590eb2a24bd">LocMeldVersionMap</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#ad8108ee0b034877dea5e927d29ca0534"> 44</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, Map<Version, std::vector<Version></a>>> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ad8108ee0b034877dea5e927d29ca0534">VersionRelianceMap</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html"> 47</a></span>  <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html">VersionCache</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  {</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html#abbc4b4beea4318f9ccb81dbdeed239b7"> 50</a></span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html#abbc4b4beea4318f9ccb81dbdeed239b7">l</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html#a6cda550f5fe99fe2407ac9bf73d59319"> 52</a></span>  ObjToVersionMap *<a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html#a6cda550f5fe99fe2407ac9bf73d59319">ovm</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html#aa530b30b6b65bb2ba5cbc0922e8d0654"> 54</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html#aa530b30b6b65bb2ba5cbc0922e8d0654">valid</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  } <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a8509e73c41aa3369c0d05fa38c846960">VersionCache</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a3d44a343a2e3f5d276fd1b069c92e112"> 58</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a3d44a343a2e3f5d276fd1b069c92e112">invalidVersion</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a32489632f53dce062ca2e8bff42c65cf">VersionedVar</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a59f3dd74ed8c3e2fc48b9353ba2452aa">atKey</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af52cafc2bb393823f51ca89a0abacec4">VersionedFlowSensitive</a>(<a class="code" href="classSVF_1_1PAG.html">PAG</a> *_pag, <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">PTATY</a> type = <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a412254a7738029bf3ee96f5c15a6bec9">VFS_WPA</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"> 67</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a81d3528fd082018e4345f0b026bf3584">initialize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ad955fda89f4f749151a1bd14562b03f6">finalize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a6e4964389f96667bd69354fd4a742720"> 73</a></span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a6e4964389f96667bd69354fd4a742720">PTAName</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">return</span> <span class="stringliteral">"VersionedFlowSensitive"</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </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_1VersionedFlowSensitive.html#afd1e0d4445e1e50e95f816e51f8de3c8"> 80</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#afd1e0d4445e1e50e95f816e51f8de3c8">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> *)</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>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#abe1874f12ba05b4f453604c6d91598d6"> 84</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#abe1874f12ba05b4f453604c6d91598d6">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a> *pta)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">return</span> pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#ac23f71c1307cda9cba44acc40059f0a3">getAnalysisTy</a>() == <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a412254a7738029bf3ee96f5c15a6bec9">VFS_WPA</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#ab7b98127319bac71bd84652e622b5958"> 91</a></span>  <span class="keyword">static</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> *<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ab7b98127319bac71bd84652e622b5958">createVFSWPA</a>(<a class="code" href="classSVF_1_1PAG.html">PAG</a> *_pag)</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>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af52cafc2bb393823f51ca89a0abacec4">VersionedFlowSensitive</a>(_pag);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a267f7198600dde3054feb40def7a6681">analyze</a>();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a754c77fff88e8f415dc7a2096d1bffe2"> 103</a></span>  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a754c77fff88e8f415dc7a2096d1bffe2">releaseVFSWPA</a>()</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>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>) <span class="keyword">delete</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a> = <span class="keyword">nullptr</span>;</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> </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a1d1f71c41cc3e81e636b58f4436e6d9b">processLoad</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadVFGNode.html">LoadSVFGNode</a>* load) <span class="keyword">override</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aa96f517740420665168e9b0c7d2347f1">processStore</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store) <span class="keyword">override</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a8cad0df2ae7df81dc2a966e694a0f7a2">processNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> n) <span class="keyword">override</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a18f24fe34af677e2a8c78ee89b89be1c">updateConnectedNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a69289c48fa91f850da90de080b9d26e5">SVFGEdgeSetTy</a>& newEdges) <span class="keyword">override</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#ad44c735b25158d2c934bdd44eb404686"> 116</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ad44c735b25158d2c934bdd44eb404686">propAlongIndirectEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a>*)<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aedd12e894fb2c17d2201f4049e5f3793">cluster</a>(<span class="keywordtype">void</span>) <span class="keyword">override</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> <span class="keyword">private</span>:</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a7d86bc18060c0114a783aa1c3a7e9dda">prelabel</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aaff594c78d93f7ad632d344e5c1c7f6a">meldLabel</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a1da960df51570b59161e380949d910c4">meld</a>(MeldVersion &mv1, <span class="keyword">const</span> MeldVersion &mv2);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a8e836aaeab108002205d2a7631e8559f">mapMeldVersions</a>();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  MeldVersion <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a24746dcada35f10cb387c94860930e84">newMeldVersion</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a25d9b2fb94c17edca9ccff220c0247b8">determineReliance</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a7a98162b69de90f80ce853a6ff43af56">propagateVersion</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o, <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a7a98162b69de90f80ce853a6ff43af56">propagateVersion</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> vp, <span class="keywordtype">bool</span> time=<span class="keyword">true</span>);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#acf23b9ce8d07431adf1799dc64c68271">delta</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html#abbc4b4beea4318f9ccb81dbdeed239b7">l</a>) <span class="keyword">const</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a08fbc3ede8007689dcde37d56003650e">getVersion</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o, <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html">VersionCache</a> &cache, LocVersionMap &lvm);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ad8a7b01257f4b425007f3e0054dc6ae9">getConsume</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a6ea3f8e2aa85ea588735514c0b6ff255">getYield</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ab0f18ae2d9c1b3b8f1d103f16df6877e">setVersion</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v, <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html">VersionCache</a> &cache, LocVersionMap &lvm);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#aabc0a5a7a31b8d880e019773ba960741">setConsume</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ac33c7cef2d1d143950820ea48e97e806">setYield</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">Version</a> v);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a13f00fd438df4feed73f43d6a0d55e0d">invalidateYieldCache</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#ab89fb73e63f7766cbaf7735921b0cf4b">invalidateConsumeCache</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a9d5990a41e90558595d0ad0defceb4e8">dumpReliances</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a032acdcd8b84523a7ac2f0e46d21c62f">dumpLocVersionMaps</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a7565989371100f84ae5f9e2efa655fcb">dumpMeldVersion</a>(MeldVersion &v);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a0f3bc278aa733bd637c9905530ff2e6c"> 192</a></span>  LocMeldVersionMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a0f3bc278aa733bd637c9905530ff2e6c">meldConsume</a>;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#afb0396e095bd461f146b4c5ce957b89e"> 196</a></span>  LocMeldVersionMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#afb0396e095bd461f146b4c5ce957b89e">meldYield</a>;</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a32b9ff0e47ef632626f1b647c38c26f9"> 199</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, unsigned></a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a32b9ff0e47ef632626f1b647c38c26f9">meldVersions</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a2e4e6a84cbfd553ad9cca8fdf9fd4a8d"> 205</a></span>  LocVersionMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a2e4e6a84cbfd553ad9cca8fdf9fd4a8d">consume</a>;</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a16224ee60494bb1fdf1c8a1026fbe7ab"> 209</a></span>  LocVersionMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a16224ee60494bb1fdf1c8a1026fbe7ab">yield</a>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a6da3d01bd4f8b58c3dac952bba4ee958"> 212</a></span>  <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html">VersionCache</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a6da3d01bd4f8b58c3dac952bba4ee958">consumeCache</a>;</div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a86f03759d0c9e739d70d537ab02d7082"> 214</a></span>  <a class="code" href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html">VersionCache</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a86f03759d0c9e739d70d537ab02d7082">yieldCache</a>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a1dc6e3d4931b53e7e426c0f76d06aeb3"> 217</a></span>  VersionRelianceMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a1dc6e3d4931b53e7e426c0f76d06aeb3">versionReliance</a>;</div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#af0859eb2a5b46c45aa4314e6e54f4438"> 219</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, Map<Version, NodeBS></a>> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af0859eb2a5b46c45aa4314e6e54f4438">stmtReliance</a>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#af14a4cbc0b990389d31b2f88f50ad8eb"> 223</a></span>  VarToPropNodeMap <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af14a4cbc0b990389d31b2f88f50ad8eb">versionedVarToPropNode</a>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#adfefc0dfa4e7fb4d20fafeaf96a5fa67"> 227</a></span>  <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList<NodeID></a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#adfefc0dfa4e7fb4d20fafeaf96a5fa67">vWorklist</a>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a03f5f16377daa0258166a73de3e21f07"> 230</a></span>  <a class="code" href="classSVF_1_1VersionedPTData.html">BVDataPTAImpl::VersionedPTDataTy</a> *<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a03f5f16377daa0258166a73de3e21f07">vPtD</a>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a593177519a6bfab63dbb12dbc1ffbc20"> 234</a></span>  <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a593177519a6bfab63dbb12dbc1ffbc20">numPrelabeledNodes</a>; </div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a9235db71172dcdf277050f6ca5f344c6"> 235</a></span>  <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a9235db71172dcdf277050f6ca5f344c6">numPrelabelVersions</a>; </div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a80535bb813f8bf240a0b54ac6ad4b257"> 237</a></span>  <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a80535bb813f8bf240a0b54ac6ad4b257">relianceTime</a>; </div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a77a5dd9578def9a8e2b48e8b90d9b996"> 238</a></span>  <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a77a5dd9578def9a8e2b48e8b90d9b996">prelabelingTime</a>; </div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a4a594c8d6ccaa27b5328c6388fdb258d"> 239</a></span>  <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a4a594c8d6ccaa27b5328c6388fdb258d">meldLabelingTime</a>; </div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a8871031546861343c05346ae1a4550cd"> 240</a></span>  <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a8871031546861343c05346ae1a4550cd">meldMappingTime</a>; </div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#af15bb6be283fee2fcc4b1fb7d8190451"> 241</a></span>  <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html#af15bb6be283fee2fcc4b1fb7d8190451">versionPropTime</a>; </div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb"> 244</a></span>  <span class="keyword">static</span> <a class="code" href="classSVF_1_1VersionedFlowSensitive.html">VersionedFlowSensitive</a> *<a class="code" href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">vfspta</a>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> };</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> } <span class="comment">// End namespace SVF</span></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> <span class="preprocessor">#endif </span><span class="comment">/* VFS_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a9ee5add09f2b446c6c6bcb84da0f75b3"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a9ee5add09f2b446c6c6bcb84da0f75b3">SVF::VersionedFlowSensitive::VarToPropNodeMap</a></div><div class="ttdeci">Map< VersionedVar, const DummyVersionPropSVFGNode * > VarToPropNodeMap</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00038">VersionedFlowSensitive.h:38</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_abe1874f12ba05b4f453604c6d91598d6"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#abe1874f12ba05b4f453604c6d91598d6">SVF::VersionedFlowSensitive::classof</a></div><div class="ttdeci">static bool classof(const PointerAnalysis *pta)</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00084">VersionedFlowSensitive.h:84</a></div></div>
|
|
71
71
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_aaff594c78d93f7ad632d344e5c1c7f6a"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#aaff594c78d93f7ad632d344e5c1c7f6a">SVF::VersionedFlowSensitive::meldLabel</a></div><div class="ttdeci">void meldLabel(void)</div><div class="ttdoc">Meld label the prelabeled SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00111">VersionedFlowSensitive.cpp:111</a></div></div>
|
|
72
72
|
<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#l00235">AbstractPointsToDS.h:235</a></div></div>
|
|
73
73
|
<div class="ttc" id="classSVF_1_1StoreVFGNode_html"><div class="ttname"><a href="classSVF_1_1StoreVFGNode.html">SVF::StoreVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00236">VFGNode.h:236</a></div></div>
|
|
74
74
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html">SVF::VersionedFlowSensitive</a></div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00028">VersionedFlowSensitive.h:28</a></div></div>
|
|
75
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a9235db71172dcdf277050f6ca5f344c6"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a9235db71172dcdf277050f6ca5f344c6">SVF::VersionedFlowSensitive::numPrelabelVersions</a></div><div class="ttdeci">Size_t numPrelabelVersions</div><div class="ttdoc">Number of versions created during prelabeling. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
76
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a53b8a881400d7b353133c68295812efb"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">SVF::VersionedFlowSensitive::vfspta</a></div><div class="ttdeci">static VersionedFlowSensitive * vfspta</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
75
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a9235db71172dcdf277050f6ca5f344c6"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a9235db71172dcdf277050f6ca5f344c6">SVF::VersionedFlowSensitive::numPrelabelVersions</a></div><div class="ttdeci">Size_t numPrelabelVersions</div><div class="ttdoc">Number of versions created during prelabeling. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00235">VersionedFlowSensitive.h:235</a></div></div>
|
|
76
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a53b8a881400d7b353133c68295812efb"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a53b8a881400d7b353133c68295812efb">SVF::VersionedFlowSensitive::vfspta</a></div><div class="ttdeci">static VersionedFlowSensitive * vfspta</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00244">VersionedFlowSensitive.h:244</a></div></div>
|
|
77
77
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html">SVF::FlowSensitive</a></div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00049">FlowSensitive.h:49</a></div></div>
|
|
78
78
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a7a98162b69de90f80ce853a6ff43af56"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a7a98162b69de90f80ce853a6ff43af56">SVF::VersionedFlowSensitive::propagateVersion</a></div><div class="ttdeci">void propagateVersion(NodeID o, Version v)</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00314">VersionedFlowSensitive.cpp:314</a></div></div>
|
|
79
79
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a59f3dd74ed8c3e2fc48b9353ba2452aa"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a59f3dd74ed8c3e2fc48b9353ba2452aa">SVF::VersionedFlowSensitive::atKey</a></div><div class="ttdeci">static VersionedVar atKey(NodeID, Version)</div><div class="ttdoc">Return key into vPtD for address-taken var of a specific version. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00021">VersionedFlowSensitive.cpp:21</a></div></div>
|
|
80
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_adfefc0dfa4e7fb4d20fafeaf96a5fa67"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#adfefc0dfa4e7fb4d20fafeaf96a5fa67">SVF::VersionedFlowSensitive::vWorklist</a></div><div class="ttdeci">FIFOWorkList< NodeID > vWorklist</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
80
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_adfefc0dfa4e7fb4d20fafeaf96a5fa67"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#adfefc0dfa4e7fb4d20fafeaf96a5fa67">SVF::VersionedFlowSensitive::vWorklist</a></div><div class="ttdeci">FIFOWorkList< NodeID > vWorklist</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00227">VersionedFlowSensitive.h:227</a></div></div>
|
|
81
81
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a18f24fe34af677e2a8c78ee89b89be1c"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a18f24fe34af677e2a8c78ee89b89be1c">SVF::VersionedFlowSensitive::updateConnectedNodes</a></div><div class="ttdeci">virtual void updateConnectedNodes(const SVFGEdgeSetTy &newEdges) override</div><div class="ttdoc">Update nodes connected during updating call graph. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00375">VersionedFlowSensitive.cpp:375</a></div></div>
|
|
82
82
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
83
83
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a31f2c86285f3366d0fc06590eb2a24bd"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a31f2c86285f3366d0fc06590eb2a24bd">SVF::VersionedFlowSensitive::LocMeldVersionMap</a></div><div class="ttdeci">Map< NodeID, ObjToMeldVersionMap > LocMeldVersionMap</div><div class="ttdoc">Maps locations to all versions it sees (through objects). </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00042">VersionedFlowSensitive.h:42</a></div></div>
|
|
84
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a4a594c8d6ccaa27b5328c6388fdb258d"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a4a594c8d6ccaa27b5328c6388fdb258d">SVF::VersionedFlowSensitive::meldLabelingTime</a></div><div class="ttdeci">double meldLabelingTime</div><div class="ttdoc">Time to meld label SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
85
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_ac33c7cef2d1d143950820ea48e97e806"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#ac33c7cef2d1d143950820ea48e97e806">SVF::VersionedFlowSensitive::setYield</a></div><div class="ttdeci">void setYield(const NodeID l, const NodeID o, const Version v)</div><div class="ttdoc">Sets the yielded version of o at l to v. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#
|
|
86
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a13f00fd438df4feed73f43d6a0d55e0d"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a13f00fd438df4feed73f43d6a0d55e0d">SVF::VersionedFlowSensitive::invalidateYieldCache</a></div><div class="ttdeci">void invalidateYieldCache(void)</div><div class="ttdoc">Invalidates yieldCache. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#
|
|
84
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a4a594c8d6ccaa27b5328c6388fdb258d"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a4a594c8d6ccaa27b5328c6388fdb258d">SVF::VersionedFlowSensitive::meldLabelingTime</a></div><div class="ttdeci">double meldLabelingTime</div><div class="ttdoc">Time to meld label SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00239">VersionedFlowSensitive.h:239</a></div></div>
|
|
85
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_ac33c7cef2d1d143950820ea48e97e806"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#ac33c7cef2d1d143950820ea48e97e806">SVF::VersionedFlowSensitive::setYield</a></div><div class="ttdeci">void setYield(const NodeID l, const NodeID o, const Version v)</div><div class="ttdoc">Sets the yielded version of o at l to v. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00622">VersionedFlowSensitive.cpp:622</a></div></div>
|
|
86
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a13f00fd438df4feed73f43d6a0d55e0d"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a13f00fd438df4feed73f43d6a0d55e0d">SVF::VersionedFlowSensitive::invalidateYieldCache</a></div><div class="ttdeci">void invalidateYieldCache(void)</div><div class="ttdoc">Invalidates yieldCache. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00627">VersionedFlowSensitive.cpp:627</a></div></div>
|
|
87
87
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a754c77fff88e8f415dc7a2096d1bffe2"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a754c77fff88e8f415dc7a2096d1bffe2">SVF::VersionedFlowSensitive::releaseVFSWPA</a></div><div class="ttdeci">static void releaseVFSWPA()</div><div class="ttdoc">Release flow-sensitive pointer analysis. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00103">VersionedFlowSensitive.h:103</a></div></div>
|
|
88
88
|
<div class="ttc" id="structSVF_1_1VersionedFlowSensitive_1_1VersionCache_html_a6cda550f5fe99fe2407ac9bf73d59319"><div class="ttname"><a href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html#a6cda550f5fe99fe2407ac9bf73d59319">SVF::VersionedFlowSensitive::VersionCache::ovm</a></div><div class="ttdeci">ObjToVersionMap * ovm</div><div class="ttdoc">Nested map, i.e. consume[l] or yield[l]. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00052">VersionedFlowSensitive.h:52</a></div></div>
|
|
89
89
|
<div class="ttc" id="SVFGBuilder_8h_html"><div class="ttname"><a href="SVFGBuilder_8h.html">SVFGBuilder.h</a></div></div>
|
|
90
90
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a6e36886fac2c276047def0a5acb85c0e"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a6e36886fac2c276047def0a5acb85c0e">SVF::VersionedFlowSensitive::ObjToMeldVersionMap</a></div><div class="ttdeci">Map< NodeID, MeldVersion > ObjToMeldVersionMap</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00037">VersionedFlowSensitive.h:37</a></div></div>
|
|
91
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a267f7198600dde3054feb40def7a6681"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a267f7198600dde3054feb40def7a6681">SVF::FlowSensitive::analyze</a></div><div class="ttdeci">virtual void analyze()</div><div class="ttdoc">Flow sensitive analysis. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#
|
|
92
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a03f5f16377daa0258166a73de3e21f07"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a03f5f16377daa0258166a73de3e21f07">SVF::VersionedFlowSensitive::vPtD</a></div><div class="ttdeci">BVDataPTAImpl::VersionedPTDataTy * vPtD</div><div class="ttdoc">Points-to DS for working with versions. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
91
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a267f7198600dde3054feb40def7a6681"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a267f7198600dde3054feb40def7a6681">SVF::FlowSensitive::analyze</a></div><div class="ttdeci">virtual void analyze()</div><div class="ttdoc">Flow sensitive analysis. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00088">FlowSensitive.cpp:88</a></div></div>
|
|
92
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a03f5f16377daa0258166a73de3e21f07"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a03f5f16377daa0258166a73de3e21f07">SVF::VersionedFlowSensitive::vPtD</a></div><div class="ttdeci">BVDataPTAImpl::VersionedPTDataTy * vPtD</div><div class="ttdoc">Points-to DS for working with versions. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00230">VersionedFlowSensitive.h:230</a></div></div>
|
|
93
93
|
<div class="ttc" id="classSVF_1_1PAG_html"><div class="ttname"><a href="classSVF_1_1PAG.html">SVF::PAG</a></div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00047">PAG.h:47</a></div></div>
|
|
94
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_ab0f18ae2d9c1b3b8f1d103f16df6877e"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#ab0f18ae2d9c1b3b8f1d103f16df6877e">SVF::VersionedFlowSensitive::setVersion</a></div><div class="ttdeci">void setVersion(const NodeID l, const NodeID o, const Version v, VersionCache &cache, LocVersionMap &lvm)</div><div class="ttdoc">Shared code for setConsume and setYield. They wrap this function. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#
|
|
94
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_ab0f18ae2d9c1b3b8f1d103f16df6877e"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#ab0f18ae2d9c1b3b8f1d103f16df6877e">SVF::VersionedFlowSensitive::setVersion</a></div><div class="ttdeci">void setVersion(const NodeID l, const NodeID o, const Version v, VersionCache &cache, LocVersionMap &lvm)</div><div class="ttdoc">Shared code for setConsume and setYield. They wrap this function. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00598">VersionedFlowSensitive.cpp:598</a></div></div>
|
|
95
95
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitiveStat_html"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitiveStat.html">SVF::VersionedFlowSensitiveStat</a></div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00166">WPAStat.h:166</a></div></div>
|
|
96
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a9d5990a41e90558595d0ad0defceb4e8"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a9d5990a41e90558595d0ad0defceb4e8">SVF::VersionedFlowSensitive::dumpReliances</a></div><div class="ttdeci">void dumpReliances(void) const</div><div class="ttdoc">Dumps versionReliance and stmtReliance. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#
|
|
96
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a9d5990a41e90558595d0ad0defceb4e8"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a9d5990a41e90558595d0ad0defceb4e8">SVF::VersionedFlowSensitive::dumpReliances</a></div><div class="ttdeci">void dumpReliances(void) const</div><div class="ttdoc">Dumps versionReliance and stmtReliance. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00637">VersionedFlowSensitive.cpp:637</a></div></div>
|
|
97
97
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_ac23f71c1307cda9cba44acc40059f0a3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac23f71c1307cda9cba44acc40059f0a3">SVF::PointerAnalysis::getAnalysisTy</a></div><div class="ttdeci">PTATY getAnalysisTy() const</div><div class="ttdoc">Type of pointer analysis. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00192">PointerAnalysis.h:192</a></div></div>
|
|
98
98
|
<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#l00101">SVFBasicTypes.h:101</a></div></div>
|
|
99
99
|
<div class="ttc" id="namespaceSVF_html_a9ec7a8dc63411ee3724a25a59191be0c"><div class="ttname"><a href="namespaceSVF.html#a9ec7a8dc63411ee3724a25a59191be0c">SVF::Version</a></div><div class="ttdeci">unsigned Version</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
|
|
100
100
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a8509e73c41aa3369c0d05fa38c846960"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a8509e73c41aa3369c0d05fa38c846960">SVF::VersionedFlowSensitive::VersionCache</a></div><div class="ttdeci">struct SVF::VersionedFlowSensitive::VersionCache VersionCache</div><div class="ttdoc">For caching the first step in LocVersionMaps. </div></div>
|
|
101
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a86f03759d0c9e739d70d537ab02d7082"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a86f03759d0c9e739d70d537ab02d7082">SVF::VersionedFlowSensitive::yieldCache</a></div><div class="ttdeci">VersionCache yieldCache</div><div class="ttdoc">Cache for the nested map in yield. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
101
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a86f03759d0c9e739d70d537ab02d7082"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a86f03759d0c9e739d70d537ab02d7082">SVF::VersionedFlowSensitive::yieldCache</a></div><div class="ttdeci">VersionCache yieldCache</div><div class="ttdoc">Cache for the nested map in yield. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00214">VersionedFlowSensitive.h:214</a></div></div>
|
|
102
102
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_ad955fda89f4f749151a1bd14562b03f6"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#ad955fda89f4f749151a1bd14562b03f6">SVF::VersionedFlowSensitive::finalize</a></div><div class="ttdeci">virtual void finalize() override</div><div class="ttdoc">Finalize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00054">VersionedFlowSensitive.cpp:54</a></div></div>
|
|
103
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_af0859eb2a5b46c45aa4314e6e54f4438"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#af0859eb2a5b46c45aa4314e6e54f4438">SVF::VersionedFlowSensitive::stmtReliance</a></div><div class="ttdeci">Map< NodeID, Map< Version, NodeBS > > stmtReliance</div><div class="ttdoc">o x version -> statement nodes which rely on that o/version. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
103
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_af0859eb2a5b46c45aa4314e6e54f4438"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#af0859eb2a5b46c45aa4314e6e54f4438">SVF::VersionedFlowSensitive::stmtReliance</a></div><div class="ttdeci">Map< NodeID, Map< Version, NodeBS > > stmtReliance</div><div class="ttdoc">o x version -> statement nodes which rely on that o/version. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00219">VersionedFlowSensitive.h:219</a></div></div>
|
|
104
104
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a412254a7738029bf3ee96f5c15a6bec9"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a412254a7738029bf3ee96f5c15a6bec9">SVF::PointerAnalysis::VFS_WPA</a></div><div class="ttdoc">Versioned sparse flow-sensitive WPA. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00080">PointerAnalysis.h:80</a></div></div>
|
|
105
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a7565989371100f84ae5f9e2efa655fcb"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a7565989371100f84ae5f9e2efa655fcb">SVF::VersionedFlowSensitive::dumpMeldVersion</a></div><div class="ttdeci">static void dumpMeldVersion(MeldVersion &v)</div><div class="ttdoc">Dumps a MeldVersion to stdout. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#
|
|
106
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a1dc6e3d4931b53e7e426c0f76d06aeb3"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a1dc6e3d4931b53e7e426c0f76d06aeb3">SVF::VersionedFlowSensitive::versionReliance</a></div><div class="ttdeci">VersionRelianceMap versionReliance</div><div class="ttdoc">o -> (version -> versions which rely on it). </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
107
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_af15bb6be283fee2fcc4b1fb7d8190451"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#af15bb6be283fee2fcc4b1fb7d8190451">SVF::VersionedFlowSensitive::versionPropTime</a></div><div class="ttdeci">double versionPropTime</div><div class="ttdoc">Time to propagate versions to versions which rely on them. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
105
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a7565989371100f84ae5f9e2efa655fcb"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a7565989371100f84ae5f9e2efa655fcb">SVF::VersionedFlowSensitive::dumpMeldVersion</a></div><div class="ttdeci">static void dumpMeldVersion(MeldVersion &v)</div><div class="ttdoc">Dumps a MeldVersion to stdout. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00727">VersionedFlowSensitive.cpp:727</a></div></div>
|
|
106
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a1dc6e3d4931b53e7e426c0f76d06aeb3"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a1dc6e3d4931b53e7e426c0f76d06aeb3">SVF::VersionedFlowSensitive::versionReliance</a></div><div class="ttdeci">VersionRelianceMap versionReliance</div><div class="ttdoc">o -> (version -> versions which rely on it). </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00217">VersionedFlowSensitive.h:217</a></div></div>
|
|
107
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_af15bb6be283fee2fcc4b1fb7d8190451"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#af15bb6be283fee2fcc4b1fb7d8190451">SVF::VersionedFlowSensitive::versionPropTime</a></div><div class="ttdeci">double versionPropTime</div><div class="ttdoc">Time to propagate versions to versions which rely on them. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00241">VersionedFlowSensitive.h:241</a></div></div>
|
|
108
108
|
<div class="ttc" id="structSVF_1_1VersionedFlowSensitive_1_1VersionCache_html_abbc4b4beea4318f9ccb81dbdeed239b7"><div class="ttname"><a href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html#abbc4b4beea4318f9ccb81dbdeed239b7">SVF::VersionedFlowSensitive::VersionCache::l</a></div><div class="ttdeci">NodeID l</div><div class="ttdoc">SVFG node ID. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00050">VersionedFlowSensitive.h:50</a></div></div>
|
|
109
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_ad8a7b01257f4b425007f3e0054dc6ae9"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#ad8a7b01257f4b425007f3e0054dc6ae9">SVF::VersionedFlowSensitive::getConsume</a></div><div class="ttdeci">Version getConsume(const NodeID l, const NodeID o)</div><div class="ttdoc">Returns the consumed version of o at l. If no such version exists, returns invalidVersion. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#
|
|
109
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_ad8a7b01257f4b425007f3e0054dc6ae9"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#ad8a7b01257f4b425007f3e0054dc6ae9">SVF::VersionedFlowSensitive::getConsume</a></div><div class="ttdeci">Version getConsume(const NodeID l, const NodeID o)</div><div class="ttdoc">Returns the consumed version of o at l. If no such version exists, returns invalidVersion. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00588">VersionedFlowSensitive.cpp:588</a></div></div>
|
|
110
110
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a6e4964389f96667bd69354fd4a742720"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a6e4964389f96667bd69354fd4a742720">SVF::VersionedFlowSensitive::PTAName</a></div><div class="ttdeci">virtual const std::string PTAName() const override</div><div class="ttdoc">Get PTA name. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00073">VersionedFlowSensitive.h:73</a></div></div>
|
|
111
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a80535bb813f8bf240a0b54ac6ad4b257"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a80535bb813f8bf240a0b54ac6ad4b257">SVF::VersionedFlowSensitive::relianceTime</a></div><div class="ttdeci">double relianceTime</div><div class="ttdoc">Time to determine version and statement reliance. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
111
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a80535bb813f8bf240a0b54ac6ad4b257"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a80535bb813f8bf240a0b54ac6ad4b257">SVF::VersionedFlowSensitive::relianceTime</a></div><div class="ttdeci">double relianceTime</div><div class="ttdoc">Time to determine version and statement reliance. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00237">VersionedFlowSensitive.h:237</a></div></div>
|
|
112
112
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_aa96f517740420665168e9b0c7d2347f1"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#aa96f517740420665168e9b0c7d2347f1">SVF::VersionedFlowSensitive::processStore</a></div><div class="ttdeci">virtual bool processStore(const StoreSVFGNode *store) override</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00459">VersionedFlowSensitive.cpp:459</a></div></div>
|
|
113
113
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_af9a43f48b7d99cc6694f3ae3248fd8e0"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#af9a43f48b7d99cc6694f3ae3248fd8e0">SVF::VersionedFlowSensitive::ObjToVersionMap</a></div><div class="ttdeci">Map< NodeID, Version > ObjToVersionMap</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00036">VersionedFlowSensitive.h:36</a></div></div>
|
|
114
114
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a25d9b2fb94c17edca9ccff220c0247b8"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a25d9b2fb94c17edca9ccff220c0247b8">SVF::VersionedFlowSensitive::determineReliance</a></div><div class="ttdeci">void determineReliance(void)</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00253">VersionedFlowSensitive.cpp:253</a></div></div>
|
|
115
115
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a81d3528fd082018e4345f0b026bf3584"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a81d3528fd082018e4345f0b026bf3584">SVF::VersionedFlowSensitive::initialize</a></div><div class="ttdeci">virtual void initialize() override</div><div class="ttdoc">Initialize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00038">VersionedFlowSensitive.cpp:38</a></div></div>
|
|
116
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a32b9ff0e47ef632626f1b647c38c26f9"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a32b9ff0e47ef632626f1b647c38c26f9">SVF::VersionedFlowSensitive::meldVersions</a></div><div class="ttdeci">Map< NodeID, unsigned > meldVersions</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
116
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a32b9ff0e47ef632626f1b647c38c26f9"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a32b9ff0e47ef632626f1b647c38c26f9">SVF::VersionedFlowSensitive::meldVersions</a></div><div class="ttdeci">Map< NodeID, unsigned > meldVersions</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00199">VersionedFlowSensitive.h:199</a></div></div>
|
|
117
117
|
<div class="ttc" id="namespaceSVF_html_a2db29836a72e8d86e9baa6d8d55d2978"><div class="ttname"><a href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">SVF::Size_t</a></div><div class="ttdeci">signed long Size_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00078">SVFBasicTypes.h:78</a></div></div>
|
|
118
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_ab89fb73e63f7766cbaf7735921b0cf4b"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#ab89fb73e63f7766cbaf7735921b0cf4b">SVF::VersionedFlowSensitive::invalidateConsumeCache</a></div><div class="ttdeci">void invalidateConsumeCache(void)</div><div class="ttdoc">Invalidates consumeCache. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#
|
|
119
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a6da3d01bd4f8b58c3dac952bba4ee958"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a6da3d01bd4f8b58c3dac952bba4ee958">SVF::VersionedFlowSensitive::consumeCache</a></div><div class="ttdeci">VersionCache consumeCache</div><div class="ttdoc">Cache for the nested map in consume. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
120
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a2e4e6a84cbfd553ad9cca8fdf9fd4a8d"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a2e4e6a84cbfd553ad9cca8fdf9fd4a8d">SVF::VersionedFlowSensitive::consume</a></div><div class="ttdeci">LocVersionMap consume</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
118
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_ab89fb73e63f7766cbaf7735921b0cf4b"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#ab89fb73e63f7766cbaf7735921b0cf4b">SVF::VersionedFlowSensitive::invalidateConsumeCache</a></div><div class="ttdeci">void invalidateConsumeCache(void)</div><div class="ttdoc">Invalidates consumeCache. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00632">VersionedFlowSensitive.cpp:632</a></div></div>
|
|
119
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a6da3d01bd4f8b58c3dac952bba4ee958"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a6da3d01bd4f8b58c3dac952bba4ee958">SVF::VersionedFlowSensitive::consumeCache</a></div><div class="ttdeci">VersionCache consumeCache</div><div class="ttdoc">Cache for the nested map in consume. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00212">VersionedFlowSensitive.h:212</a></div></div>
|
|
120
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a2e4e6a84cbfd553ad9cca8fdf9fd4a8d"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a2e4e6a84cbfd553ad9cca8fdf9fd4a8d">SVF::VersionedFlowSensitive::consume</a></div><div class="ttdeci">LocVersionMap consume</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00205">VersionedFlowSensitive.h:205</a></div></div>
|
|
121
121
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a8e836aaeab108002205d2a7631e8559f"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a8e836aaeab108002205d2a7631e8559f">SVF::VersionedFlowSensitive::mapMeldVersions</a></div><div class="ttdeci">void mapMeldVersions()</div><div class="ttdoc">Moves meldConsume/Yield to consume/yield. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00159">VersionedFlowSensitive.cpp:159</a></div></div>
|
|
122
122
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a7d86bc18060c0114a783aa1c3a7e9dda"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a7d86bc18060c0114a783aa1c3a7e9dda">SVF::VersionedFlowSensitive::prelabel</a></div><div class="ttdeci">void prelabel(void)</div><div class="ttdoc">Prelabel the SVFG: set y(o) for stores and c(o) for delta nodes to a new version. ...</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00062">VersionedFlowSensitive.cpp:62</a></div></div>
|
|
123
123
|
<div class="ttc" id="WPAFSSolver_8h_html"><div class="ttname"><a href="WPAFSSolver_8h.html">WPAFSSolver.h</a></div></div>
|
|
124
124
|
<div class="ttc" id="PointsTo_8h_html"><div class="ttname"><a href="PointsTo_8h.html">PointsTo.h</a></div></div>
|
|
125
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_af14a4cbc0b990389d31b2f88f50ad8eb"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#af14a4cbc0b990389d31b2f88f50ad8eb">SVF::VersionedFlowSensitive::versionedVarToPropNode</a></div><div class="ttdeci">VarToPropNodeMap versionedVarToPropNode</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
125
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_af14a4cbc0b990389d31b2f88f50ad8eb"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#af14a4cbc0b990389d31b2f88f50ad8eb">SVF::VersionedFlowSensitive::versionedVarToPropNode</a></div><div class="ttdeci">VarToPropNodeMap versionedVarToPropNode</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00223">VersionedFlowSensitive.h:223</a></div></div>
|
|
126
126
|
<div class="ttc" id="classSVF_1_1LoadVFGNode_html"><div class="ttname"><a href="classSVF_1_1LoadVFGNode.html">SVF::LoadVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00197">VFGNode.h:197</a></div></div>
|
|
127
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_afb0396e095bd461f146b4c5ce957b89e"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#afb0396e095bd461f146b4c5ce957b89e">SVF::VersionedFlowSensitive::meldYield</a></div><div class="ttdeci">LocMeldVersionMap meldYield</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
127
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_afb0396e095bd461f146b4c5ce957b89e"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#afb0396e095bd461f146b4c5ce957b89e">SVF::VersionedFlowSensitive::meldYield</a></div><div class="ttdeci">LocMeldVersionMap meldYield</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00196">VersionedFlowSensitive.h:196</a></div></div>
|
|
128
128
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a3d44a343a2e3f5d276fd1b069c92e112"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a3d44a343a2e3f5d276fd1b069c92e112">SVF::VersionedFlowSensitive::invalidVersion</a></div><div class="ttdeci">static const Version invalidVersion</div><div class="ttdoc">If this version appears, there has been an error. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00058">VersionedFlowSensitive.h:58</a></div></div>
|
|
129
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a08fbc3ede8007689dcde37d56003650e"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a08fbc3ede8007689dcde37d56003650e">SVF::VersionedFlowSensitive::getVersion</a></div><div class="ttdeci">Version getVersion(const NodeID l, const NodeID o, VersionCache &cache, LocVersionMap &lvm)</div><div class="ttdoc">Shared code for getConsume and getYield. They wrap this function. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#
|
|
130
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a032acdcd8b84523a7ac2f0e46d21c62f"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a032acdcd8b84523a7ac2f0e46d21c62f">SVF::VersionedFlowSensitive::dumpLocVersionMaps</a></div><div class="ttdeci">void dumpLocVersionMaps(void) const</div><div class="ttdoc">Dumps maps consume and yield. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#
|
|
129
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a08fbc3ede8007689dcde37d56003650e"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a08fbc3ede8007689dcde37d56003650e">SVF::VersionedFlowSensitive::getVersion</a></div><div class="ttdeci">Version getVersion(const NodeID l, const NodeID o, VersionCache &cache, LocVersionMap &lvm)</div><div class="ttdoc">Shared code for getConsume and getYield. They wrap this function. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00566">VersionedFlowSensitive.cpp:566</a></div></div>
|
|
130
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a032acdcd8b84523a7ac2f0e46d21c62f"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a032acdcd8b84523a7ac2f0e46d21c62f">SVF::VersionedFlowSensitive::dumpLocVersionMaps</a></div><div class="ttdeci">void dumpLocVersionMaps(void) const</div><div class="ttdoc">Dumps maps consume and yield. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00694">VersionedFlowSensitive.cpp:694</a></div></div>
|
|
131
131
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a0ea2cc21f9de287746ca2216b08e22b4"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a0ea2cc21f9de287746ca2216b08e22b4">SVF::VersionedFlowSensitive::LocVersionMap</a></div><div class="ttdeci">Map< NodeID, ObjToVersionMap > LocVersionMap</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00040">VersionedFlowSensitive.h:40</a></div></div>
|
|
132
132
|
<div class="ttc" id="SVFGOPT_8h_html"><div class="ttname"><a href="SVFGOPT_8h.html">SVFGOPT.h</a></div></div>
|
|
133
133
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html">SVF::FIFOWorkList< NodeID ></a></div></div>
|
|
134
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_aabc0a5a7a31b8d880e019773ba960741"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#aabc0a5a7a31b8d880e019773ba960741">SVF::VersionedFlowSensitive::setConsume</a></div><div class="ttdeci">void setConsume(const NodeID l, const NodeID o, const Version v)</div><div class="ttdoc">Sets the consumed version of o at l to v. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#
|
|
134
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_aabc0a5a7a31b8d880e019773ba960741"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#aabc0a5a7a31b8d880e019773ba960741">SVF::VersionedFlowSensitive::setConsume</a></div><div class="ttdeci">void setConsume(const NodeID l, const NodeID o, const Version v)</div><div class="ttdoc">Sets the consumed version of o at l to v. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00617">VersionedFlowSensitive.cpp:617</a></div></div>
|
|
135
135
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_ab7b98127319bac71bd84652e622b5958"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#ab7b98127319bac71bd84652e622b5958">SVF::VersionedFlowSensitive::createVFSWPA</a></div><div class="ttdeci">static VersionedFlowSensitive * createVFSWPA(PAG *_pag)</div><div class="ttdoc">Create single instance of versioned flow-sensitive points-to analysis. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00091">VersionedFlowSensitive.h:91</a></div></div>
|
|
136
136
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_ad8108ee0b034877dea5e927d29ca0534"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#ad8108ee0b034877dea5e927d29ca0534">SVF::VersionedFlowSensitive::VersionRelianceMap</a></div><div class="ttdeci">Map< NodeID, Map< Version, std::vector< Version > > > VersionRelianceMap</div><div class="ttdoc">(o -> (v -> versions with rely on o:v). </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00044">VersionedFlowSensitive.h:44</a></div></div>
|
|
137
137
|
<div class="ttc" id="FlowSensitive_8h_html"><div class="ttname"><a href="FlowSensitive_8h.html">FlowSensitive.h</a></div></div>
|
|
138
138
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_af52cafc2bb393823f51ca89a0abacec4"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#af52cafc2bb393823f51ca89a0abacec4">SVF::VersionedFlowSensitive::VersionedFlowSensitive</a></div><div class="ttdeci">VersionedFlowSensitive(PAG *_pag, PTATY type=VFS_WPA)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00027">VersionedFlowSensitive.cpp:27</a></div></div>
|
|
139
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a77a5dd9578def9a8e2b48e8b90d9b996"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a77a5dd9578def9a8e2b48e8b90d9b996">SVF::VersionedFlowSensitive::prelabelingTime</a></div><div class="ttdeci">double prelabelingTime</div><div class="ttdoc">Time to prelabel SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
139
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a77a5dd9578def9a8e2b48e8b90d9b996"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a77a5dd9578def9a8e2b48e8b90d9b996">SVF::VersionedFlowSensitive::prelabelingTime</a></div><div class="ttdeci">double prelabelingTime</div><div class="ttdoc">Time to prelabel SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00238">VersionedFlowSensitive.h:238</a></div></div>
|
|
140
140
|
<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="ContextDDA_8h_source.html#l00016">ContextDDA.h:16</a></div></div>
|
|
141
141
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_acf23b9ce8d07431adf1799dc64c68271"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#acf23b9ce8d07431adf1799dc64c68271">SVF::VersionedFlowSensitive::delta</a></div><div class="ttdeci">virtual bool delta(NodeID l) const</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00214">VersionedFlowSensitive.cpp:214</a></div></div>
|
|
142
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_aedd12e894fb2c17d2201f4049e5f3793"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#aedd12e894fb2c17d2201f4049e5f3793">SVF::VersionedFlowSensitive::cluster</a></div><div class="ttdeci">virtual void cluster(void) override</div><div class="ttdoc">Override since we want to assign different weights based on versioning. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00546">VersionedFlowSensitive.cpp:546</a></div></div>
|
|
142
143
|
<div class="ttc" id="namespaceSVF_html_a32489632f53dce062ca2e8bff42c65cf"><div class="ttname"><a href="namespaceSVF.html#a32489632f53dce062ca2e8bff42c65cf">SVF::VersionedVar</a></div><div class="ttdeci">std::pair< NodeID, Version > VersionedVar</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00114">SVFBasicTypes.h:114</a></div></div>
|
|
143
144
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a1da960df51570b59161e380949d910c4"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a1da960df51570b59161e380949d910c4">SVF::VersionedFlowSensitive::meld</a></div><div class="ttdeci">static bool meld(MeldVersion &mv1, const MeldVersion &mv2)</div><div class="ttdoc">Melds v2 into v1 (in place), returns whether a change occurred. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00153">VersionedFlowSensitive.cpp:153</a></div></div>
|
|
144
145
|
<div class="ttc" id="structSVF_1_1VersionedFlowSensitive_1_1VersionCache_html_aa530b30b6b65bb2ba5cbc0922e8d0654"><div class="ttname"><a href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html#aa530b30b6b65bb2ba5cbc0922e8d0654">SVF::VersionedFlowSensitive::VersionCache::valid</a></div><div class="ttdeci">bool valid</div><div class="ttdoc">Whether l and ovm can be accessed. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00054">VersionedFlowSensitive.h:54</a></div></div>
|
|
145
146
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a69289c48fa91f850da90de080b9d26e5"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a69289c48fa91f850da90de080b9d26e5">SVF::FlowSensitive::SVFGEdgeSetTy</a></div><div class="ttdeci">SVFG::SVFGEdgeSetTy SVFGEdgeSetTy</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00053">FlowSensitive.h:53</a></div></div>
|
|
146
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a593177519a6bfab63dbb12dbc1ffbc20"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a593177519a6bfab63dbb12dbc1ffbc20">SVF::VersionedFlowSensitive::numPrelabeledNodes</a></div><div class="ttdeci">Size_t numPrelabeledNodes</div><div class="ttdoc">Additional statistics. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
147
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a8871031546861343c05346ae1a4550cd"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a8871031546861343c05346ae1a4550cd">SVF::VersionedFlowSensitive::meldMappingTime</a></div><div class="ttdeci">double meldMappingTime</div><div class="ttdoc">Time to map MeldVersions to Versions. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
147
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a593177519a6bfab63dbb12dbc1ffbc20"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a593177519a6bfab63dbb12dbc1ffbc20">SVF::VersionedFlowSensitive::numPrelabeledNodes</a></div><div class="ttdeci">Size_t numPrelabeledNodes</div><div class="ttdoc">Additional statistics. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00234">VersionedFlowSensitive.h:234</a></div></div>
|
|
148
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a8871031546861343c05346ae1a4550cd"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a8871031546861343c05346ae1a4550cd">SVF::VersionedFlowSensitive::meldMappingTime</a></div><div class="ttdeci">double meldMappingTime</div><div class="ttdoc">Time to map MeldVersions to Versions. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00240">VersionedFlowSensitive.h:240</a></div></div>
|
|
148
149
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">SVF::PointerAnalysis::PTATY</a></div><div class="ttdeci">PTATY</div><div class="ttdoc">Pointer analysis type list. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00062">PointerAnalysis.h:62</a></div></div>
|
|
149
150
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_afd1e0d4445e1e50e95f816e51f8de3c8"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#afd1e0d4445e1e50e95f816e51f8de3c8">SVF::VersionedFlowSensitive::classof</a></div><div class="ttdeci">static bool classof(const VersionedFlowSensitive *)</div><div class="ttdoc">Methods to support type inquiry through isa, cast, and dyn_cast. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00080">VersionedFlowSensitive.h:80</a></div></div>
|
|
150
151
|
<div class="ttc" id="classSVF_1_1IndirectSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1IndirectSVFGEdge.html">SVF::IndirectSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00042">SVFGEdge.h:42</a></div></div>
|
|
151
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a0f3bc278aa733bd637c9905530ff2e6c"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a0f3bc278aa733bd637c9905530ff2e6c">SVF::VersionedFlowSensitive::meldConsume</a></div><div class="ttdeci">LocMeldVersionMap meldConsume</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
152
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a16224ee60494bb1fdf1c8a1026fbe7ab"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a16224ee60494bb1fdf1c8a1026fbe7ab">SVF::VersionedFlowSensitive::yield</a></div><div class="ttdeci">LocVersionMap yield</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#
|
|
152
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a0f3bc278aa733bd637c9905530ff2e6c"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a0f3bc278aa733bd637c9905530ff2e6c">SVF::VersionedFlowSensitive::meldConsume</a></div><div class="ttdeci">LocMeldVersionMap meldConsume</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00192">VersionedFlowSensitive.h:192</a></div></div>
|
|
153
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a16224ee60494bb1fdf1c8a1026fbe7ab"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a16224ee60494bb1fdf1c8a1026fbe7ab">SVF::VersionedFlowSensitive::yield</a></div><div class="ttdeci">LocVersionMap yield</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00209">VersionedFlowSensitive.h:209</a></div></div>
|
|
153
154
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a1d1f71c41cc3e81e636b58f4436e6d9b"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a1d1f71c41cc3e81e636b58f4436e6d9b">SVF::VersionedFlowSensitive::processLoad</a></div><div class="ttdeci">virtual bool processLoad(const LoadSVFGNode *load) override</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00416">VersionedFlowSensitive.cpp:416</a></div></div>
|
|
154
155
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a8cad0df2ae7df81dc2a966e694a0f7a2"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a8cad0df2ae7df81dc2a966e694a0f7a2">SVF::VersionedFlowSensitive::processNode</a></div><div class="ttdeci">virtual void processNode(NodeID n) override</div><div class="ttdoc">Handle various constraints. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00360">VersionedFlowSensitive.cpp:360</a></div></div>
|
|
155
156
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_ad44c735b25158d2c934bdd44eb404686"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#ad44c735b25158d2c934bdd44eb404686">SVF::VersionedFlowSensitive::propAlongIndirectEdge</a></div><div class="ttdeci">virtual bool propAlongIndirectEdge(const IndirectSVFGEdge *) override</div><div class="ttdoc">Override to do nothing. Instead, we will use propagateVersion when necessary. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00116">VersionedFlowSensitive.h:116</a></div></div>
|
|
156
157
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_ac09fe1e8199f9ac3adb6c489ab608fd8"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#ac09fe1e8199f9ac3adb6c489ab608fd8">SVF::VersionedFlowSensitive::MeldVersion</a></div><div class="ttdeci">llvm::SparseBitVector MeldVersion</div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00033">VersionedFlowSensitive.h:33</a></div></div>
|
|
157
158
|
<div class="ttc" id="structSVF_1_1VersionedFlowSensitive_1_1VersionCache_html"><div class="ttname"><a href="structSVF_1_1VersionedFlowSensitive_1_1VersionCache.html">SVF::VersionedFlowSensitive::VersionCache</a></div><div class="ttdoc">For caching the first step in LocVersionMaps. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8h_source.html#l00047">VersionedFlowSensitive.h:47</a></div></div>
|
|
158
159
|
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a24746dcada35f10cb387c94860930e84"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a24746dcada35f10cb387c94860930e84">SVF::VersionedFlowSensitive::newMeldVersion</a></div><div class="ttdeci">MeldVersion newMeldVersion(NodeID o)</div><div class="ttdoc">Returns a new MeldVersion for o during the prelabeling phase. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00245">VersionedFlowSensitive.cpp:245</a></div></div>
|
|
159
|
-
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a6ea3f8e2aa85ea588735514c0b6ff255"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a6ea3f8e2aa85ea588735514c0b6ff255">SVF::VersionedFlowSensitive::getYield</a></div><div class="ttdeci">Version getYield(const NodeID l, const NodeID o)</div><div class="ttdoc">Returns the yielded version of o at l. If no such version exists, returns invalidVersion. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#
|
|
160
|
+
<div class="ttc" id="classSVF_1_1VersionedFlowSensitive_html_a6ea3f8e2aa85ea588735514c0b6ff255"><div class="ttname"><a href="classSVF_1_1VersionedFlowSensitive.html#a6ea3f8e2aa85ea588735514c0b6ff255">SVF::VersionedFlowSensitive::getYield</a></div><div class="ttdeci">Version getYield(const NodeID l, const NodeID o)</div><div class="ttdoc">Returns the yielded version of o at l. If no such version exists, returns invalidVersion. </div><div class="ttdef"><b>Definition:</b> <a href="VersionedFlowSensitive_8cpp_source.html#l00593">VersionedFlowSensitive.cpp:593</a></div></div>
|
|
160
161
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html">SVF::PointerAnalysis</a></div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00057">PointerAnalysis.h:57</a></div></div>
|
|
161
162
|
</div><!-- fragment --></div><!-- contents -->
|
|
162
163
|
<!-- start footer part -->
|