svf-tools 1.0.613 → 1.0.615
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CMakeLists.txt +13 -0
- package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +7 -6
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +22 -22
- package/SVF-doxygen/html/html/Andersen_8h_source.html +16 -16
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +7 -7
- package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/CFLGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CSC_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +14 -14
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ConsG_8h_source.html +9 -9
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +9 -9
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +4 -6
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +22 -22
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +21 -21
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +27 -28
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +65 -65
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +24 -29
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +8 -8
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/MHP_8h_source.html +5 -5
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +12 -17
- package/SVF-doxygen/html/html/MTA_8h_source.html +3 -4
- package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +34 -34
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +7 -7
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +16 -15
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +53 -52
- package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +7 -8
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/Options_8cpp_source.html +52 -53
- package/SVF-doxygen/html/html/Options_8h_source.html +53 -54
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +33 -33
- package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +91 -95
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +31 -39
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +85 -92
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +16 -16
- package/SVF-doxygen/html/html/PointsTo_8cpp.html +1 -0
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +51 -51
- package/SVF-doxygen/html/html/PointsTo_8h_source.html +38 -38
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SCC_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +11 -22
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +14 -17
- package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +21 -19
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +49 -62
- package/SVF-doxygen/html/html/SVFG_8h_source.html +45 -45
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +10 -16
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +83 -83
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/SVFType_8h.html +22 -22
- package/SVF-doxygen/html/html/SVFType_8h_source.html +76 -77
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +11 -11
- package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFValue_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -3
- package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +69 -71
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +39 -39
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +49 -51
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +13 -13
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/VFG_8h_source.html +5 -5
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +33 -33
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
- package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +11 -11
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +2 -2
- package/SVF-doxygen/html/html/WPASolver_8h_source.html +25 -25
- package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/cfl_8cpp.html +1 -5
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -5
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +187 -188
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +104 -107
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +163 -164
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +47 -50
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +194 -195
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +45 -48
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +204 -205
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +35 -38
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +191 -192
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +29 -32
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +122 -123
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +158 -219
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +137 -138
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +57 -49
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +138 -139
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +34 -34
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +140 -141
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1CSC.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallSite-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +114 -114
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +17 -31
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +40 -40
- package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +228 -229
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +62 -65
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +194 -195
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +55 -55
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +219 -220
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +335 -342
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +57 -57
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +20 -14
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +108 -94
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +36 -36
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +87 -87
- package/SVF-doxygen/html/html/classSVF_1_1MTA-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +27 -33
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder-members.html +41 -43
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +57 -80
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +54 -54
- package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +4 -3
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +170 -143
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +13 -15
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +17 -18
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +53 -79
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1PTData.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData-members.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +174 -177
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData-members.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +99 -102
- package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData-members.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +125 -127
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData-members.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +83 -86
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +122 -122
- package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData-members.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +137 -140
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +56 -56
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo-members.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +183 -178
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator-members.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +87 -65
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFArgument-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFArgument.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFArrayType.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +13 -16
- package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstant-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstant.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +5 -7
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunctionType.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +211 -236
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder-members.html +7 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +50 -138
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +82 -82
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +203 -215
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +79 -79
- package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFIntergerType.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +0 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFPointerType.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +38 -38
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +4 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +12 -14
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +42 -68
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +108 -109
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +50 -50
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +146 -146
- package/SVF-doxygen/html/html/classSVF_1_1StInfo-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +48 -61
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +178 -179
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +35 -38
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +42 -46
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +169 -170
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +31 -34
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +263 -264
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +112 -115
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +41 -41
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1WPASolver-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +76 -81
- package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +2 -2
- package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
- package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/functions.html +1 -1
- package/SVF-doxygen/html/html/functions_0x7e.html +16 -16
- package/SVF-doxygen/html/html/functions_a.html +7 -7
- package/SVF-doxygen/html/html/functions_b.html +6 -6
- package/SVF-doxygen/html/html/functions_c.html +27 -27
- package/SVF-doxygen/html/html/functions_d.html +10 -11
- package/SVF-doxygen/html/html/functions_e.html +2 -2
- package/SVF-doxygen/html/html/functions_f.html +6 -6
- package/SVF-doxygen/html/html/functions_func.html +6 -6
- package/SVF-doxygen/html/html/functions_func_0x7e.html +16 -16
- package/SVF-doxygen/html/html/functions_func_b.html +6 -6
- package/SVF-doxygen/html/html/functions_func_c.html +27 -27
- package/SVF-doxygen/html/html/functions_func_d.html +10 -11
- package/SVF-doxygen/html/html/functions_func_e.html +2 -2
- package/SVF-doxygen/html/html/functions_func_f.html +5 -5
- package/SVF-doxygen/html/html/functions_func_g.html +22 -22
- package/SVF-doxygen/html/html/functions_func_h.html +3 -3
- package/SVF-doxygen/html/html/functions_func_i.html +3 -3
- package/SVF-doxygen/html/html/functions_func_o.html +3 -3
- package/SVF-doxygen/html/html/functions_func_p.html +5 -5
- package/SVF-doxygen/html/html/functions_func_r.html +5 -8
- package/SVF-doxygen/html/html/functions_func_s.html +6 -6
- package/SVF-doxygen/html/html/functions_func_t.html +1 -1
- package/SVF-doxygen/html/html/functions_func_u.html +23 -23
- package/SVF-doxygen/html/html/functions_g.html +25 -28
- package/SVF-doxygen/html/html/functions_h.html +3 -3
- package/SVF-doxygen/html/html/functions_i.html +6 -6
- package/SVF-doxygen/html/html/functions_m.html +1 -1
- package/SVF-doxygen/html/html/functions_o.html +13 -13
- package/SVF-doxygen/html/html/functions_p.html +19 -19
- package/SVF-doxygen/html/html/functions_r.html +11 -12
- package/SVF-doxygen/html/html/functions_s.html +33 -36
- package/SVF-doxygen/html/html/functions_t.html +12 -12
- package/SVF-doxygen/html/html/functions_type_t.html +1 -1
- package/SVF-doxygen/html/html/functions_u.html +26 -23
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/functions_vars.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_g.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_i.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_p.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_s.html +5 -8
- package/SVF-doxygen/html/html/functions_vars_t.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_u.html +3 -0
- package/SVF-doxygen/html/html/functions_w.html +3 -7
- package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
- package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/namespaceSVF.html +35 -35
- package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +2 -2
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +4 -4
- package/SVF-doxygen/html/html/saber_8cpp.html +1 -5
- package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -5
- package/SVF-doxygen/html/html/search/all_0.js +1 -1
- package/SVF-doxygen/html/html/search/all_1.js +4 -4
- package/SVF-doxygen/html/html/search/all_10.js +15 -15
- package/SVF-doxygen/html/html/search/all_11.js +1 -2
- package/SVF-doxygen/html/html/search/all_12.js +20 -21
- package/SVF-doxygen/html/html/search/all_13.js +8 -8
- package/SVF-doxygen/html/html/search/all_14.js +13 -12
- package/SVF-doxygen/html/html/search/all_15.js +4 -4
- package/SVF-doxygen/html/html/search/all_16.js +2 -2
- package/SVF-doxygen/html/html/search/all_19.js +16 -16
- package/SVF-doxygen/html/html/search/all_2.js +6 -6
- package/SVF-doxygen/html/html/search/all_3.js +14 -14
- package/SVF-doxygen/html/html/search/all_4.js +5 -5
- package/SVF-doxygen/html/html/search/all_5.js +2 -2
- package/SVF-doxygen/html/html/search/all_6.js +5 -5
- package/SVF-doxygen/html/html/search/all_7.js +11 -12
- package/SVF-doxygen/html/html/search/all_8.js +3 -3
- package/SVF-doxygen/html/html/search/all_9.js +4 -4
- package/SVF-doxygen/html/html/search/all_b.js +1 -1
- package/SVF-doxygen/html/html/search/all_c.js +3 -3
- package/SVF-doxygen/html/html/search/all_d.js +3 -3
- package/SVF-doxygen/html/html/search/all_e.js +2 -2
- package/SVF-doxygen/html/html/search/all_f.js +5 -5
- package/SVF-doxygen/html/html/search/functions_0.js +4 -4
- package/SVF-doxygen/html/html/search/functions_1.js +6 -6
- package/SVF-doxygen/html/html/search/functions_10.js +1 -2
- package/SVF-doxygen/html/html/search/functions_11.js +11 -11
- package/SVF-doxygen/html/html/search/functions_12.js +1 -1
- package/SVF-doxygen/html/html/search/functions_13.js +12 -12
- package/SVF-doxygen/html/html/search/functions_17.js +16 -16
- package/SVF-doxygen/html/html/search/functions_2.js +14 -14
- package/SVF-doxygen/html/html/search/functions_3.js +5 -5
- package/SVF-doxygen/html/html/search/functions_4.js +2 -2
- package/SVF-doxygen/html/html/search/functions_5.js +4 -4
- package/SVF-doxygen/html/html/search/functions_6.js +11 -11
- package/SVF-doxygen/html/html/search/functions_7.js +3 -3
- package/SVF-doxygen/html/html/search/functions_8.js +3 -3
- package/SVF-doxygen/html/html/search/functions_d.js +1 -1
- package/SVF-doxygen/html/html/search/functions_e.js +3 -3
- package/SVF-doxygen/html/html/search/functions_f.js +5 -5
- package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
- package/SVF-doxygen/html/html/search/variables_0.js +1 -1
- package/SVF-doxygen/html/html/search/variables_10.js +2 -2
- package/SVF-doxygen/html/html/search/variables_12.js +5 -6
- package/SVF-doxygen/html/html/search/variables_13.js +3 -3
- package/SVF-doxygen/html/html/search/variables_14.js +1 -0
- package/SVF-doxygen/html/html/search/variables_6.js +1 -1
- package/SVF-doxygen/html/html/search/variables_7.js +0 -1
- package/SVF-doxygen/html/html/search/variables_9.js +1 -1
- package/SVF-doxygen/html/html/search/variables_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +14 -14
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement-members.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +47 -57
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1PointsTo_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +5 -5
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +6 -7
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
- package/build.sh +2 -2
- package/include/DDA/DDAPass.h +1 -1
- package/include/DDA/FlowDDA.h +1 -1
- package/include/Graphs/ICFG.h +1 -1
- package/include/Graphs/SVFG.h +3 -4
- package/include/Graphs/SVFGOPT.h +7 -7
- package/include/MSSA/MemSSA.h +2 -0
- package/include/MSSA/SVFGBuilder.h +5 -14
- package/include/MTA/MTA.h +2 -2
- package/include/MemoryModel/MutablePointsToDS.h +3 -3
- package/include/MemoryModel/PersistentPointsToCache.h +7 -8
- package/include/MemoryModel/PersistentPointsToDS.h +93 -93
- package/include/MemoryModel/PointerAnalysisImpl.h +17 -28
- package/include/MemoryModel/PointsTo.h +24 -24
- package/include/SABER/SrcSnkDDA.h +10 -13
- package/include/SVF-LLVM/LLVMLoopAnalysis.h +2 -1
- package/include/SVF-LLVM/LLVMModule.h +6 -6
- package/include/SVFIR/SVFIR.h +3 -5
- package/include/SVFIR/SVFType.h +6 -8
- package/include/SVFIR/SVFValue.h +5 -5
- package/include/Util/Options.h +0 -1
- package/include/Util/SparseBitVector.h +6 -14
- package/include/WPA/FlowSensitive.h +13 -20
- package/include/WPA/WPASolver.h +5 -9
- package/lib/DDA/DDAPass.cpp +4 -4
- package/lib/Graphs/CFLGraph.cpp +3 -0
- package/lib/Graphs/SVFG.cpp +1 -1
- package/lib/MSSA/MemSSA.cpp +5 -3
- package/lib/MSSA/SVFGBuilder.cpp +9 -27
- package/lib/MTA/MTA.cpp +4 -4
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +10 -10
- package/lib/MemoryModel/PointsTo.cpp +23 -19
- package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +3 -4
- package/lib/SVF-LLVM/LLVMModule.cpp +32 -21
- package/lib/SVFIR/SVFIR.cpp +1 -1
- package/lib/SVFIR/SymbolTableInfo.cpp +4 -15
- package/lib/Util/Options.cpp +0 -6
- package/lib/WPA/AndersenSFR.cpp +1 -1
- package/lib/WPA/FlowSensitive.cpp +1 -1
- package/package.json +1 -1
- package/tools/CFL/cfl.cpp +5 -4
- package/tools/DDA/dda.cpp +3 -2
- package/tools/Example/svf-ex.cpp +3 -2
- package/tools/MTA/mta.cpp +6 -4
- package/tools/SABER/saber.cpp +7 -5
- package/tools/WPA/wpa.cpp +3 -2
|
@@ -45,30 +45,30 @@ public:
|
|
|
45
45
|
typedef Map<Data, KeySet> RevPtsMap;
|
|
46
46
|
|
|
47
47
|
/// Constructor
|
|
48
|
-
PersistentPTData(PersistentPointsToCache<DataSet> &cache, bool reversePT = true, PTDataTy ty = PTDataTy::PersBase)
|
|
48
|
+
explicit PersistentPTData(PersistentPointsToCache<DataSet> &cache, bool reversePT = true, PTDataTy ty = PTDataTy::PersBase)
|
|
49
49
|
: BasePTData(reversePT, ty), ptCache(cache) { }
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
~PersistentPTData() override = default;
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
inline void clear() override
|
|
54
54
|
{
|
|
55
55
|
ptsMap.clear();
|
|
56
56
|
revPtsMap.clear();
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
inline const DataSet& getPts(const Key &var) override
|
|
60
60
|
{
|
|
61
61
|
PointsToID id = ptsMap[var];
|
|
62
62
|
return ptCache.getActualPts(id);
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
inline const KeySet& getRevPts(const Data &data) override
|
|
66
66
|
{
|
|
67
67
|
assert(this->rev && "PersistentPTData::getRevPts: constructed without reverse PT support!");
|
|
68
68
|
return revPtsMap[data];
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
inline bool addPts(const Key &dstKey, const Data &element) override
|
|
72
72
|
{
|
|
73
73
|
DataSet srcPts;
|
|
74
74
|
srcPts.set(element);
|
|
@@ -76,23 +76,23 @@ public:
|
|
|
76
76
|
return unionPtsFromId(dstKey, srcId);
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
inline bool unionPts(const Key& dstKey, const Key& srcKey) override
|
|
80
80
|
{
|
|
81
81
|
PointsToID srcId = ptsMap[srcKey];
|
|
82
82
|
return unionPtsFromId(dstKey, srcId);
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
|
|
85
|
+
inline bool unionPts(const Key& dstKey, const DataSet& srcData) override
|
|
86
86
|
{
|
|
87
87
|
PointsToID srcId = ptCache.emplacePts(srcData);
|
|
88
88
|
return unionPtsFromId(dstKey, srcId);
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
|
|
91
|
+
inline void dumpPTData() override
|
|
92
92
|
{
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
void clearPts(const Key &var, const Data &element) override
|
|
96
96
|
{
|
|
97
97
|
DataSet toRemoveData;
|
|
98
98
|
toRemoveData.set(element);
|
|
@@ -106,18 +106,18 @@ public:
|
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
|
|
109
|
+
void clearFullPts(const Key& var) override
|
|
110
110
|
{
|
|
111
111
|
clearRevPts(getPts(var), var);
|
|
112
112
|
ptsMap[var] = PersistentPointsToCache<DataSet>::emptyPointsToId();
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
-
|
|
115
|
+
void remapAllPts() override
|
|
116
116
|
{
|
|
117
117
|
ptCache.remapAllPts();
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
|
|
120
|
+
Map<DataSet, unsigned> getAllPts(bool liveOnly) const override
|
|
121
121
|
{
|
|
122
122
|
Map<DataSet, unsigned> allPts;
|
|
123
123
|
if (liveOnly)
|
|
@@ -209,71 +209,71 @@ public:
|
|
|
209
209
|
typedef typename BasePersPTData::RevPtsMap RevPtsMap;
|
|
210
210
|
|
|
211
211
|
/// Constructor
|
|
212
|
-
PersistentDiffPTData(PersistentPointsToCache<DataSet> &cache, bool reversePT = true, PTDataTy ty = PTDataTy::PersDiff)
|
|
212
|
+
explicit PersistentDiffPTData(PersistentPointsToCache<DataSet> &cache, bool reversePT = true, PTDataTy ty = PTDataTy::PersDiff)
|
|
213
213
|
: BaseDiffPTData(reversePT, ty), ptCache(cache), persPTData(cache, reversePT) { }
|
|
214
214
|
|
|
215
|
-
|
|
215
|
+
~PersistentDiffPTData() override = default;
|
|
216
216
|
|
|
217
|
-
|
|
217
|
+
void clear() override
|
|
218
218
|
{
|
|
219
219
|
persPTData.clear();
|
|
220
220
|
diffPtsMap.clear();
|
|
221
221
|
propaPtsMap.clear();
|
|
222
222
|
}
|
|
223
223
|
|
|
224
|
-
|
|
224
|
+
inline const DataSet &getPts(const Key& var) override
|
|
225
225
|
{
|
|
226
226
|
return persPTData.getPts(var);
|
|
227
227
|
}
|
|
228
228
|
|
|
229
|
-
|
|
229
|
+
inline const KeySet& getRevPts(const Data &data) override
|
|
230
230
|
{
|
|
231
231
|
assert(this->rev && "PersistentDiffPTData::getRevPts: constructed without reverse PT support!");
|
|
232
232
|
return persPTData.getRevPts(data);
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
-
|
|
235
|
+
inline bool addPts(const Key &dstKey, const Data &element) override
|
|
236
236
|
{
|
|
237
237
|
return persPTData.addPts(dstKey, element);
|
|
238
238
|
}
|
|
239
239
|
|
|
240
|
-
|
|
240
|
+
inline bool unionPts(const Key& dstKey, const Key& srcKey) override
|
|
241
241
|
{
|
|
242
242
|
return persPTData.unionPts(dstKey, srcKey);
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
-
|
|
245
|
+
inline bool unionPts(const Key &dstKey, const DataSet &srcDataSet) override
|
|
246
246
|
{
|
|
247
247
|
return persPTData.unionPts(dstKey, srcDataSet);
|
|
248
248
|
}
|
|
249
249
|
|
|
250
|
-
|
|
250
|
+
void clearPts(const Key &var, const Data &element) override
|
|
251
251
|
{
|
|
252
252
|
return persPTData.clearPts(var, element);
|
|
253
253
|
}
|
|
254
254
|
|
|
255
|
-
|
|
255
|
+
void clearFullPts(const Key &var) override
|
|
256
256
|
{
|
|
257
257
|
return persPTData.clearFullPts(var);
|
|
258
258
|
}
|
|
259
259
|
|
|
260
|
-
|
|
260
|
+
void remapAllPts() override
|
|
261
261
|
{
|
|
262
262
|
ptCache.remapAllPts();
|
|
263
263
|
}
|
|
264
264
|
|
|
265
|
-
|
|
265
|
+
inline void dumpPTData() override
|
|
266
266
|
{
|
|
267
267
|
// TODO.
|
|
268
268
|
}
|
|
269
269
|
|
|
270
|
-
|
|
270
|
+
inline const DataSet &getDiffPts(Key &var) override
|
|
271
271
|
{
|
|
272
272
|
PointsToID id = diffPtsMap[var];
|
|
273
273
|
return ptCache.getActualPts(id);
|
|
274
274
|
}
|
|
275
275
|
|
|
276
|
-
|
|
276
|
+
inline bool computeDiffPts(Key &var, const DataSet &all) override
|
|
277
277
|
{
|
|
278
278
|
PointsToID propaId = propaPtsMap[var];
|
|
279
279
|
PointsToID allId = ptCache.emplacePts(all);
|
|
@@ -289,19 +289,19 @@ public:
|
|
|
289
289
|
return diffId != ptCache.emptyPointsToId();
|
|
290
290
|
}
|
|
291
291
|
|
|
292
|
-
|
|
292
|
+
inline void updatePropaPtsMap(Key &src, Key &dst) override
|
|
293
293
|
{
|
|
294
294
|
PointsToID dstId = propaPtsMap[dst];
|
|
295
295
|
PointsToID srcId = propaPtsMap[src];
|
|
296
296
|
propaPtsMap[dst] = ptCache.intersectPts(dstId, srcId);
|
|
297
297
|
}
|
|
298
298
|
|
|
299
|
-
|
|
299
|
+
inline void clearPropaPts(Key &var) override
|
|
300
300
|
{
|
|
301
301
|
propaPtsMap[var] = ptCache.emptyPointsToId();
|
|
302
302
|
}
|
|
303
303
|
|
|
304
|
-
|
|
304
|
+
Map<DataSet, unsigned> getAllPts(bool liveOnly) const override
|
|
305
305
|
{
|
|
306
306
|
return persPTData.getAllPts(liveOnly);
|
|
307
307
|
}
|
|
@@ -343,75 +343,75 @@ public:
|
|
|
343
343
|
typedef typename BasePersPTData::KeyToIDMap KeyToIDMap;
|
|
344
344
|
typedef Map<LocID, KeyToIDMap> DFKeyToIDMap;
|
|
345
345
|
|
|
346
|
-
PersistentDFPTData(PersistentPointsToCache<DataSet> &cache, bool reversePT = true, PTDataTy ty = PTDataTy::PersDataFlow)
|
|
346
|
+
explicit PersistentDFPTData(PersistentPointsToCache<DataSet> &cache, bool reversePT = true, PTDataTy ty = PTDataTy::PersDataFlow)
|
|
347
347
|
: BaseDFPTData(reversePT, ty), ptCache(cache), persPTData(cache, reversePT) { }
|
|
348
348
|
|
|
349
|
-
|
|
349
|
+
~PersistentDFPTData() override = default;
|
|
350
350
|
|
|
351
|
-
|
|
351
|
+
inline void clear() override
|
|
352
352
|
{
|
|
353
353
|
dfInPtsMap.clear();
|
|
354
354
|
dfOutPtsMap.clear();
|
|
355
355
|
persPTData.clear();
|
|
356
356
|
}
|
|
357
357
|
|
|
358
|
-
|
|
358
|
+
inline const DataSet &getPts(const Key& var) override
|
|
359
359
|
{
|
|
360
360
|
return persPTData.getPts(var);
|
|
361
361
|
}
|
|
362
362
|
|
|
363
|
-
|
|
363
|
+
inline const KeySet& getRevPts(const Data&) override
|
|
364
364
|
{
|
|
365
365
|
assert(false && "PersistentDFPTData::getRevPts: not supported yet!");
|
|
366
366
|
abort();
|
|
367
367
|
}
|
|
368
368
|
|
|
369
|
-
|
|
369
|
+
inline bool unionPts(const Key& dstKey, const Key& srcKey) override
|
|
370
370
|
{
|
|
371
371
|
return persPTData.unionPts(dstKey, srcKey);
|
|
372
372
|
}
|
|
373
373
|
|
|
374
|
-
|
|
374
|
+
inline bool unionPts(const Key& dstKey, const DataSet &srcDataSet) override
|
|
375
375
|
{
|
|
376
376
|
return persPTData.unionPts(dstKey, srcDataSet);
|
|
377
377
|
}
|
|
378
378
|
|
|
379
|
-
|
|
379
|
+
inline bool addPts(const Key &dstKey, const Data &element) override
|
|
380
380
|
{
|
|
381
381
|
return persPTData.addPts(dstKey, element);
|
|
382
382
|
}
|
|
383
383
|
|
|
384
|
-
|
|
384
|
+
void clearPts(const Key& var, const Data &element) override
|
|
385
385
|
{
|
|
386
386
|
persPTData.clearPts(var, element);
|
|
387
387
|
}
|
|
388
388
|
|
|
389
|
-
|
|
389
|
+
void clearFullPts(const Key& var) override
|
|
390
390
|
{
|
|
391
391
|
persPTData.clearFullPts(var);
|
|
392
392
|
}
|
|
393
393
|
|
|
394
|
-
|
|
394
|
+
void remapAllPts() override
|
|
395
395
|
{
|
|
396
396
|
ptCache.remapAllPts();
|
|
397
397
|
}
|
|
398
398
|
|
|
399
|
-
|
|
399
|
+
inline void dumpPTData() override
|
|
400
400
|
{
|
|
401
401
|
persPTData.dumpPTData();
|
|
402
402
|
}
|
|
403
403
|
|
|
404
|
-
|
|
404
|
+
bool hasDFInSet(LocID loc) const override
|
|
405
405
|
{
|
|
406
406
|
return dfInPtsMap.find(loc) != dfInPtsMap.end();
|
|
407
407
|
}
|
|
408
408
|
|
|
409
|
-
|
|
409
|
+
bool hasDFOutSet(LocID loc) const override
|
|
410
410
|
{
|
|
411
411
|
return dfOutPtsMap.find(loc) != dfOutPtsMap.end();
|
|
412
412
|
}
|
|
413
413
|
|
|
414
|
-
|
|
414
|
+
bool hasDFInSet(LocID loc, const Key& var) const override
|
|
415
415
|
{
|
|
416
416
|
typename DFKeyToIDMap::const_iterator foundInKeyToId = dfInPtsMap.find(loc);
|
|
417
417
|
if (foundInKeyToId == dfInPtsMap.end()) return false;
|
|
@@ -419,7 +419,7 @@ public:
|
|
|
419
419
|
return (inKeyToId.find(var) != inKeyToId.end());
|
|
420
420
|
}
|
|
421
421
|
|
|
422
|
-
|
|
422
|
+
bool hasDFOutSet(LocID loc, const Key& var) const override
|
|
423
423
|
{
|
|
424
424
|
typename DFKeyToIDMap::const_iterator foundOutKeyToId = dfOutPtsMap.find(loc);
|
|
425
425
|
if (foundOutKeyToId == dfOutPtsMap.end()) return false;
|
|
@@ -427,44 +427,44 @@ public:
|
|
|
427
427
|
return (outKeyToId.find(var) != outKeyToId.end());
|
|
428
428
|
}
|
|
429
429
|
|
|
430
|
-
|
|
430
|
+
const DataSet &getDFInPtsSet(LocID loc, const Key& var) override
|
|
431
431
|
{
|
|
432
432
|
PointsToID id = dfInPtsMap[loc][var];
|
|
433
433
|
return ptCache.getActualPts(id);
|
|
434
434
|
}
|
|
435
435
|
|
|
436
|
-
|
|
436
|
+
const DataSet &getDFOutPtsSet(LocID loc, const Key& var) override
|
|
437
437
|
{
|
|
438
438
|
PointsToID id = dfOutPtsMap[loc][var];
|
|
439
439
|
return ptCache.getActualPts(id);
|
|
440
440
|
}
|
|
441
441
|
|
|
442
|
-
|
|
442
|
+
bool updateDFInFromIn(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override
|
|
443
443
|
{
|
|
444
444
|
return unionPtsThroughIds(getDFInPtIdRef(dstLoc, dstVar), getDFInPtIdRef(srcLoc, srcVar));
|
|
445
445
|
}
|
|
446
446
|
|
|
447
|
-
|
|
447
|
+
bool updateAllDFInFromIn(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override
|
|
448
448
|
{
|
|
449
449
|
return updateDFInFromIn(srcLoc, srcVar, dstLoc, dstVar);
|
|
450
450
|
}
|
|
451
451
|
|
|
452
|
-
|
|
452
|
+
bool updateDFInFromOut(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override
|
|
453
453
|
{
|
|
454
454
|
return unionPtsThroughIds(getDFInPtIdRef(dstLoc, dstVar), getDFOutPtIdRef(srcLoc, srcVar));
|
|
455
455
|
}
|
|
456
456
|
|
|
457
|
-
|
|
457
|
+
bool updateAllDFInFromOut(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar) override
|
|
458
458
|
{
|
|
459
459
|
return updateDFInFromOut(srcLoc, srcVar, dstLoc, dstVar);
|
|
460
460
|
}
|
|
461
461
|
|
|
462
|
-
|
|
462
|
+
bool updateDFOutFromIn(LocID srcLoc, const Key& srcVar, LocID dstLoc, const Key& dstVar) override
|
|
463
463
|
{
|
|
464
464
|
return unionPtsThroughIds(getDFOutPtIdRef(dstLoc, dstVar), getDFInPtIdRef(srcLoc, srcVar));
|
|
465
465
|
}
|
|
466
466
|
|
|
467
|
-
|
|
467
|
+
bool updateAllDFOutFromIn(LocID loc, const Key &singleton, bool strongUpdates) override
|
|
468
468
|
{
|
|
469
469
|
bool changed = false;
|
|
470
470
|
if (this->hasDFInSet(loc))
|
|
@@ -483,22 +483,22 @@ public:
|
|
|
483
483
|
return changed;
|
|
484
484
|
}
|
|
485
485
|
|
|
486
|
-
|
|
486
|
+
void clearAllDFOutUpdatedVar(LocID) override
|
|
487
487
|
{
|
|
488
488
|
}
|
|
489
489
|
|
|
490
490
|
/// Update points-to set of top-level pointers with IN[srcLoc:srcVar].
|
|
491
|
-
|
|
491
|
+
bool updateTLVPts(LocID srcLoc, const Key &srcVar, const Key &dstVar) override
|
|
492
492
|
{
|
|
493
493
|
return unionPtsThroughIds(persPTData.ptsMap[dstVar], getDFInPtIdRef(srcLoc, srcVar));
|
|
494
494
|
}
|
|
495
495
|
|
|
496
|
-
|
|
496
|
+
bool updateATVPts(const Key& srcVar, LocID dstLoc, const Key& dstVar) override
|
|
497
497
|
{
|
|
498
498
|
return unionPtsThroughIds(getDFOutPtIdRef(dstLoc, dstVar), persPTData.ptsMap[srcVar]);
|
|
499
499
|
}
|
|
500
500
|
|
|
501
|
-
|
|
501
|
+
Map<DataSet, unsigned> getAllPts(bool liveOnly) const override
|
|
502
502
|
{
|
|
503
503
|
Map<DataSet, unsigned> allPts = persPTData.getAllPts(liveOnly);
|
|
504
504
|
for (const typename DFKeyToIDMap::value_type &lki : dfInPtsMap)
|
|
@@ -591,12 +591,12 @@ public:
|
|
|
591
591
|
|
|
592
592
|
public:
|
|
593
593
|
/// Constructor
|
|
594
|
-
PersistentIncDFPTData(PersistentPointsToCache<DataSet> &cache, bool reversePT = true, PTDataTy ty = BasePTData::PersIncDataFlow)
|
|
594
|
+
explicit PersistentIncDFPTData(PersistentPointsToCache<DataSet> &cache, bool reversePT = true, PTDataTy ty = BasePTData::PersIncDataFlow)
|
|
595
595
|
: BasePersDFPTData(cache, reversePT, ty) { }
|
|
596
596
|
|
|
597
|
-
|
|
597
|
+
~PersistentIncDFPTData() override = default;
|
|
598
598
|
|
|
599
|
-
|
|
599
|
+
inline bool updateDFInFromIn(LocID srcLoc, const Key& srcVar, LocID dstLoc, const Key& dstVar) override
|
|
600
600
|
{
|
|
601
601
|
if (varHasNewDFInPts(srcLoc, srcVar)
|
|
602
602
|
&& this->unionPtsThroughIds(this->getDFInPtIdRef(dstLoc, dstVar), this->getDFInPtIdRef(srcLoc, srcVar)))
|
|
@@ -608,7 +608,7 @@ public:
|
|
|
608
608
|
return false;
|
|
609
609
|
}
|
|
610
610
|
|
|
611
|
-
|
|
611
|
+
inline bool updateDFInFromOut(LocID srcLoc, const Key& srcVar, LocID dstLoc, const Key& dstVar) override
|
|
612
612
|
{
|
|
613
613
|
if (varHasNewDFOutPts(srcLoc, srcVar)
|
|
614
614
|
&& this->unionPtsThroughIds(this->getDFInPtIdRef(dstLoc, dstVar), this->getDFOutPtIdRef(srcLoc, srcVar)))
|
|
@@ -620,7 +620,7 @@ public:
|
|
|
620
620
|
return false;
|
|
621
621
|
}
|
|
622
622
|
|
|
623
|
-
|
|
623
|
+
inline bool updateDFOutFromIn(LocID srcLoc, const Key& srcVar, LocID dstLoc, const Key& dstVar) override
|
|
624
624
|
{
|
|
625
625
|
if (varHasNewDFInPts(srcLoc, srcVar))
|
|
626
626
|
{
|
|
@@ -635,7 +635,7 @@ public:
|
|
|
635
635
|
return false;
|
|
636
636
|
}
|
|
637
637
|
|
|
638
|
-
|
|
638
|
+
inline bool updateAllDFInFromOut(LocID srcLoc, const Key& srcVar, LocID dstLoc, const Key& dstVar) override
|
|
639
639
|
{
|
|
640
640
|
if (this->unionPtsThroughIds(this->getDFInPtIdRef(dstLoc, dstVar), this->getDFOutPtIdRef(srcLoc, srcVar)))
|
|
641
641
|
{
|
|
@@ -646,7 +646,7 @@ public:
|
|
|
646
646
|
return false;
|
|
647
647
|
}
|
|
648
648
|
|
|
649
|
-
|
|
649
|
+
inline bool updateAllDFInFromIn(LocID srcLoc, const Key& srcVar, LocID dstLoc, const Key& dstVar) override
|
|
650
650
|
{
|
|
651
651
|
if (this->unionPtsThroughIds(this->getDFInPtIdRef(dstLoc, dstVar), this->getDFInPtIdRef(srcLoc, srcVar)))
|
|
652
652
|
{
|
|
@@ -657,7 +657,7 @@ public:
|
|
|
657
657
|
return false;
|
|
658
658
|
}
|
|
659
659
|
|
|
660
|
-
|
|
660
|
+
inline bool updateAllDFOutFromIn(LocID loc, const Key& singleton, bool strongUpdates) override
|
|
661
661
|
{
|
|
662
662
|
bool changed = false;
|
|
663
663
|
if (this->hasDFInSet(loc))
|
|
@@ -675,7 +675,7 @@ public:
|
|
|
675
675
|
return changed;
|
|
676
676
|
}
|
|
677
677
|
|
|
678
|
-
|
|
678
|
+
inline bool updateTLVPts(LocID srcLoc, const Key& srcVar, const Key& dstVar) override
|
|
679
679
|
{
|
|
680
680
|
if (varHasNewDFInPts(srcLoc, srcVar))
|
|
681
681
|
{
|
|
@@ -686,7 +686,7 @@ public:
|
|
|
686
686
|
return false;
|
|
687
687
|
}
|
|
688
688
|
|
|
689
|
-
|
|
689
|
+
inline bool updateATVPts(const Key& srcVar, LocID dstLoc, const Key& dstVar) override
|
|
690
690
|
{
|
|
691
691
|
if (this->unionPtsThroughIds(this->getDFOutPtIdRef(dstLoc, dstVar), this->persPTData.ptsMap[srcVar]))
|
|
692
692
|
{
|
|
@@ -697,7 +697,7 @@ public:
|
|
|
697
697
|
return false;
|
|
698
698
|
}
|
|
699
699
|
|
|
700
|
-
|
|
700
|
+
inline void clearAllDFOutUpdatedVar(LocID loc) override
|
|
701
701
|
{
|
|
702
702
|
if (this->hasDFOutSet(loc))
|
|
703
703
|
{
|
|
@@ -709,7 +709,7 @@ public:
|
|
|
709
709
|
}
|
|
710
710
|
}
|
|
711
711
|
|
|
712
|
-
|
|
712
|
+
inline void clear() override
|
|
713
713
|
{
|
|
714
714
|
outUpdatedVarMap.clear();
|
|
715
715
|
inUpdatedVarMap.clear();
|
|
@@ -812,96 +812,96 @@ public:
|
|
|
812
812
|
typedef typename PersistentPTData<Key, KeySet, Data, DataSet>::KeyToIDMap KeyToIDMap;
|
|
813
813
|
typedef typename PersistentPTData<VersionedKey, VersionedKeySet, Data, DataSet>::KeyToIDMap VersionedKeyToIDMap;
|
|
814
814
|
|
|
815
|
-
PersistentVersionedPTData(PersistentPointsToCache<DataSet> &cache, bool reversePT = true, PTDataTy ty = PTDataTy::PersVersioned)
|
|
815
|
+
explicit PersistentVersionedPTData(PersistentPointsToCache<DataSet> &cache, bool reversePT = true, PTDataTy ty = PTDataTy::PersVersioned)
|
|
816
816
|
: BaseVersionedPTData(reversePT, ty), tlPTData(cache, reversePT), atPTData(cache, reversePT) { }
|
|
817
817
|
|
|
818
|
-
|
|
818
|
+
~PersistentVersionedPTData() override = default;
|
|
819
819
|
|
|
820
|
-
|
|
820
|
+
inline void clear() override
|
|
821
821
|
{
|
|
822
822
|
tlPTData.clear();
|
|
823
823
|
atPTData.clear();
|
|
824
824
|
}
|
|
825
825
|
|
|
826
|
-
|
|
826
|
+
const DataSet &getPts(const Key& vk) override
|
|
827
827
|
{
|
|
828
828
|
return tlPTData.getPts(vk);
|
|
829
829
|
}
|
|
830
|
-
|
|
830
|
+
const DataSet &getPts(const VersionedKey& vk) override
|
|
831
831
|
{
|
|
832
832
|
return atPTData.getPts(vk);
|
|
833
833
|
}
|
|
834
834
|
|
|
835
|
-
|
|
835
|
+
const KeySet& getRevPts(const Data &data) override
|
|
836
836
|
{
|
|
837
837
|
assert(this->rev && "PersistentVersionedPTData::getRevPts: constructed without reverse PT support!");
|
|
838
838
|
return tlPTData.getRevPts(data);
|
|
839
839
|
}
|
|
840
|
-
|
|
840
|
+
const VersionedKeySet& getVersionedKeyRevPts(const Data &data) override
|
|
841
841
|
{
|
|
842
842
|
assert(this->rev && "PersistentVersionedPTData::getVersionedKeyRevPts: constructed without reverse PT support!");
|
|
843
843
|
return atPTData.getRevPts(data);
|
|
844
844
|
}
|
|
845
845
|
|
|
846
|
-
|
|
846
|
+
bool addPts(const Key& k, const Data &element) override
|
|
847
847
|
{
|
|
848
848
|
return tlPTData.addPts(k, element);
|
|
849
849
|
}
|
|
850
|
-
|
|
850
|
+
bool addPts(const VersionedKey& vk, const Data &element) override
|
|
851
851
|
{
|
|
852
852
|
return atPTData.addPts(vk, element);
|
|
853
853
|
}
|
|
854
854
|
|
|
855
|
-
|
|
855
|
+
bool unionPts(const Key& dstVar, const Key& srcVar) override
|
|
856
856
|
{
|
|
857
857
|
return tlPTData.unionPts(dstVar, srcVar);
|
|
858
858
|
}
|
|
859
|
-
|
|
859
|
+
bool unionPts(const VersionedKey& dstVar, const VersionedKey& srcVar) override
|
|
860
860
|
{
|
|
861
861
|
return atPTData.unionPts(dstVar, srcVar);
|
|
862
862
|
}
|
|
863
|
-
|
|
863
|
+
bool unionPts(const VersionedKey& dstVar, const Key& srcVar) override
|
|
864
864
|
{
|
|
865
865
|
return atPTData.unionPtsFromId(dstVar, tlPTData.ptsMap[srcVar]);
|
|
866
866
|
}
|
|
867
|
-
|
|
867
|
+
bool unionPts(const Key& dstVar, const VersionedKey& srcVar) override
|
|
868
868
|
{
|
|
869
869
|
return tlPTData.unionPtsFromId(dstVar, atPTData.ptsMap[srcVar]);
|
|
870
870
|
}
|
|
871
|
-
|
|
871
|
+
bool unionPts(const Key &dstVar, const DataSet &srcDataSet) override
|
|
872
872
|
{
|
|
873
873
|
return tlPTData.unionPts(dstVar, srcDataSet);
|
|
874
874
|
}
|
|
875
|
-
|
|
875
|
+
bool unionPts(const VersionedKey &dstVar, const DataSet &srcDataSet) override
|
|
876
876
|
{
|
|
877
877
|
return atPTData.unionPts(dstVar, srcDataSet);
|
|
878
878
|
}
|
|
879
879
|
|
|
880
|
-
|
|
880
|
+
void clearPts(const Key& k, const Data &element) override
|
|
881
881
|
{
|
|
882
882
|
tlPTData.clearPts(k, element);
|
|
883
883
|
}
|
|
884
|
-
|
|
884
|
+
void clearPts(const VersionedKey& vk, const Data &element) override
|
|
885
885
|
{
|
|
886
886
|
atPTData.clearPts(vk, element);
|
|
887
887
|
}
|
|
888
888
|
|
|
889
|
-
|
|
889
|
+
void clearFullPts(const Key& k) override
|
|
890
890
|
{
|
|
891
891
|
tlPTData.clearFullPts(k);
|
|
892
892
|
}
|
|
893
|
-
|
|
893
|
+
void clearFullPts(const VersionedKey& vk) override
|
|
894
894
|
{
|
|
895
895
|
atPTData.clearFullPts(vk);
|
|
896
896
|
}
|
|
897
897
|
|
|
898
|
-
|
|
898
|
+
void remapAllPts() override
|
|
899
899
|
{
|
|
900
900
|
// tlPTData and atPTData use the same cache.
|
|
901
901
|
tlPTData.remapAllPts();
|
|
902
902
|
}
|
|
903
903
|
|
|
904
|
-
|
|
904
|
+
Map<DataSet, unsigned> getAllPts(bool liveOnly) const override
|
|
905
905
|
{
|
|
906
906
|
// Explicitly pass in true because if we call it with false,
|
|
907
907
|
// we will double up on the cache, since it is shared with atPTData.
|
|
@@ -923,7 +923,7 @@ public:
|
|
|
923
923
|
return allPts;
|
|
924
924
|
}
|
|
925
925
|
|
|
926
|
-
|
|
926
|
+
inline void dumpPTData() override
|
|
927
927
|
{
|
|
928
928
|
SVFUtil::outs() << "== Top-level points-to information\n";
|
|
929
929
|
tlPTData.dumpPTData();
|
|
@@ -952,4 +952,4 @@ private:
|
|
|
952
952
|
};
|
|
953
953
|
|
|
954
954
|
} // End namespace SVF
|
|
955
|
-
#endif //
|
|
955
|
+
#endif // PERSISTENT_POINTSTO_H_
|