svf-tools 1.0.773 → 1.0.775
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/SVF-doxygen/html/html/AddressValue_8h_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +8 -9
- package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CFBasicBlockG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ConsExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8h_source.html +8 -8
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +4 -4
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +9 -9
- package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +670 -671
- package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +114 -107
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +395 -350
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +443 -433
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +12 -12
- package/SVF-doxygen/html/html/SVFFileSystem_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIR2ConsExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +288 -286
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +667 -665
- package/SVF-doxygen/html/html/SVFLoop_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/VFG_8h_source.html +5 -5
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +284 -124
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +108 -95
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddressValue.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +59 -54
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +30 -20
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +52 -47
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +18 -9
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +64 -59
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +11 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +65 -60
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +11 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +60 -55
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +10 -0
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +31 -26
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +573 -379
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +37 -32
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +24 -14
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +39 -34
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +10 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +40 -35
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +10 -0
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +305 -305
- package/SVF-doxygen/html/html/classSVF_1_1ConsExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +66 -61
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +10 -0
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +54 -49
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +11 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +65 -60
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +28 -14
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator-members.html +14 -13
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +131 -99
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +554 -554
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1POCRAlias-members.html +41 -36
- package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.html +10 -0
- package/SVF-doxygen/html/html/classSVF_1_1POCRHybrid-members.html +41 -36
- package/SVF-doxygen/html/html/classSVF_1_1POCRHybrid.html +10 -0
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +175 -174
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +754 -720
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ConsExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRReader.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRWriter.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFLoop.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +55 -50
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +24 -14
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +55 -50
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +12 -2
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +21 -14
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +339 -49
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +86 -86
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +1 -1
- package/SVF-doxygen/html/html/functions_a.html +1 -1
- package/SVF-doxygen/html/html/functions_b.html +1 -0
- package/SVF-doxygen/html/html/functions_f.html +6 -6
- package/SVF-doxygen/html/html/functions_func.html +1 -1
- package/SVF-doxygen/html/html/functions_func_i.html +14 -11
- package/SVF-doxygen/html/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/html/functions_func_r.html +16 -3
- package/SVF-doxygen/html/html/functions_func_s.html +21 -20
- package/SVF-doxygen/html/html/functions_func_w.html +11 -2
- package/SVF-doxygen/html/html/functions_i.html +22 -19
- package/SVF-doxygen/html/html/functions_l.html +3 -3
- package/SVF-doxygen/html/html/functions_o.html +12 -12
- package/SVF-doxygen/html/html/functions_p.html +13 -13
- package/SVF-doxygen/html/html/functions_r.html +20 -11
- package/SVF-doxygen/html/html/functions_rela_b.html +3 -0
- package/SVF-doxygen/html/html/functions_s.html +23 -24
- package/SVF-doxygen/html/html/functions_t.html +5 -5
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/functions_w.html +17 -8
- package/SVF-doxygen/html/html/namespaceSVF.html +1 -1
- package/SVF-doxygen/html/html/search/all_1.js +1 -1
- package/SVF-doxygen/html/html/search/all_10.js +324 -324
- package/SVF-doxygen/html/html/search/all_11.js +217 -213
- package/SVF-doxygen/html/html/search/all_12.js +541 -541
- package/SVF-doxygen/html/html/search/all_13.js +190 -190
- package/SVF-doxygen/html/html/search/all_14.js +66 -66
- package/SVF-doxygen/html/html/search/all_15.js +170 -170
- package/SVF-doxygen/html/html/search/all_16.js +63 -60
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/html/search/all_19.js +11 -11
- package/SVF-doxygen/html/html/search/all_1a.js +169 -169
- package/SVF-doxygen/html/html/search/all_2.js +1 -1
- package/SVF-doxygen/html/html/search/all_6.js +2 -2
- package/SVF-doxygen/html/html/search/all_9.js +535 -534
- package/SVF-doxygen/html/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/html/search/all_c.js +116 -116
- package/SVF-doxygen/html/html/search/all_d.js +196 -196
- package/SVF-doxygen/html/html/search/all_e.js +206 -206
- package/SVF-doxygen/html/html/search/all_f.js +116 -116
- package/SVF-doxygen/html/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/html/search/classes_2.js +76 -76
- package/SVF-doxygen/html/html/search/classes_3.js +35 -35
- package/SVF-doxygen/html/html/search/classes_4.js +8 -8
- package/SVF-doxygen/html/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/html/search/classes_6.js +98 -98
- package/SVF-doxygen/html/html/search/classes_7.js +33 -33
- package/SVF-doxygen/html/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/html/search/defines_4.js +3 -3
- package/SVF-doxygen/html/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/html/search/defines_e.js +7 -7
- package/SVF-doxygen/html/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/html/search/files_2.js +49 -49
- package/SVF-doxygen/html/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/html/search/functions_0.js +12 -12
- package/SVF-doxygen/html/html/search/functions_1.js +350 -350
- package/SVF-doxygen/html/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/html/search/functions_11.js +131 -127
- package/SVF-doxygen/html/html/search/functions_12.js +275 -275
- package/SVF-doxygen/html/html/search/functions_13.js +58 -58
- package/SVF-doxygen/html/html/search/functions_14.js +38 -38
- package/SVF-doxygen/html/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/html/search/functions_16.js +32 -29
- package/SVF-doxygen/html/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/html/search/functions_18.js +169 -169
- package/SVF-doxygen/html/html/search/functions_2.js +84 -84
- package/SVF-doxygen/html/html/search/functions_3.js +253 -253
- package/SVF-doxygen/html/html/search/functions_4.js +74 -74
- package/SVF-doxygen/html/html/search/functions_5.js +51 -51
- package/SVF-doxygen/html/html/search/functions_6.js +58 -58
- package/SVF-doxygen/html/html/search/functions_7.js +842 -842
- package/SVF-doxygen/html/html/search/functions_8.js +143 -143
- package/SVF-doxygen/html/html/search/functions_9.js +423 -422
- package/SVF-doxygen/html/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/html/search/functions_c.js +26 -26
- package/SVF-doxygen/html/html/search/functions_d.js +77 -77
- package/SVF-doxygen/html/html/search/functions_e.js +35 -35
- package/SVF-doxygen/html/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/html/search/related_1.js +2 -1
- package/SVF-doxygen/html/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/html/search/related_c.js +1 -1
- package/SVF-doxygen/html/html/search/related_d.js +11 -11
- package/SVF-doxygen/html/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
- package/SVF-doxygen/html/html/search/typedefs_1.js +25 -25
- package/SVF-doxygen/html/html/search/typedefs_10.js +62 -62
- package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
- package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/html/search/typedefs_2.js +126 -126
- package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/html/search/typedefs_4.js +16 -16
- package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/html/search/typedefs_6.js +52 -52
- package/SVF-doxygen/html/html/search/typedefs_7.js +40 -40
- package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/html/search/typedefs_c.js +40 -40
- package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
- package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/html/search/variables_0.js +147 -147
- package/SVF-doxygen/html/html/search/variables_1.js +75 -75
- package/SVF-doxygen/html/html/search/variables_10.js +97 -97
- package/SVF-doxygen/html/html/search/variables_11.js +46 -46
- package/SVF-doxygen/html/html/search/variables_12.js +92 -92
- package/SVF-doxygen/html/html/search/variables_13.js +75 -75
- package/SVF-doxygen/html/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/html/search/variables_15.js +48 -48
- package/SVF-doxygen/html/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/html/search/variables_2.js +34 -34
- package/SVF-doxygen/html/html/search/variables_3.js +141 -141
- package/SVF-doxygen/html/html/search/variables_4.js +55 -55
- package/SVF-doxygen/html/html/search/variables_5.js +38 -38
- package/SVF-doxygen/html/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/html/search/variables_7.js +33 -33
- package/SVF-doxygen/html/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/html/search/variables_9.js +77 -77
- package/SVF-doxygen/html/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/html/search/variables_d.js +56 -56
- package/SVF-doxygen/html/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/html/search/variables_f.js +30 -30
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html +4 -4
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
- package/package.json +1 -1
- package/svf/include/MemoryModel/PointerAnalysisImpl.h +5 -0
- package/svf/include/MemoryModel/SVFLoop.h +3 -3
- package/svf/include/SVFIR/SVFIR.h +2 -1
- package/svf/include/Util/NodeIDAllocator.h +6 -0
- package/svf/include/WPA/VersionedFlowSensitive.h +8 -0
- package/svf/lib/MemoryModel/PointerAnalysisImpl.cpp +101 -66
- package/svf/lib/SVFIR/SVFIR.cpp +5 -3
- package/svf/lib/Util/NodeIDAllocator.cpp +2 -4
- package/svf/lib/WPA/Andersen.cpp +1 -1
- package/svf/lib/WPA/VersionedFlowSensitive.cpp +148 -0
|
@@ -194,429 +194,436 @@ $(function() {
|
|
|
194
194
|
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div>
|
|
195
195
|
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a25c68f9d2b88437778e854ff0d741d1b">writeToFile</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& filename);</div>
|
|
196
196
|
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a3279969934d6778a6cffe926ed724bfc">writeObjVarToFile</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& filename);</div>
|
|
197
|
-
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">virtual</span> <span class="keywordtype">
|
|
198
|
-
<div class="line"><a name="
|
|
199
|
-
<div class="line"><a name="
|
|
200
|
-
<div class="line"><a name="
|
|
201
|
-
<div class="line"><a name="
|
|
202
|
-
<div class="line"><a name="
|
|
203
|
-
<div class="line"><a name="
|
|
204
|
-
<div class="line"><a name="
|
|
205
|
-
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  </div>
|
|
206
|
-
<div class="line"><a name="
|
|
207
|
-
<div class="line"><a name="
|
|
208
|
-
<div class="line"><a name="
|
|
209
|
-
<div class="line"><a name="
|
|
210
|
-
<div class="line"><a name="
|
|
211
|
-
<div class="line"><a name="
|
|
212
|
-
<div class="line"><a name="
|
|
213
|
-
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  </div>
|
|
214
|
-
<div class="line"><a name="l00166"></a><span class="lineno"
|
|
215
|
-
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> 
|
|
216
|
-
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <
|
|
217
|
-
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> 
|
|
218
|
-
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> 
|
|
219
|
-
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> 
|
|
220
|
-
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> 
|
|
221
|
-
<div class="line"><a name="l00173"></a><span class="lineno"
|
|
222
|
-
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> 
|
|
223
|
-
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <
|
|
224
|
-
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> 
|
|
225
|
-
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> 
|
|
226
|
-
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> 
|
|
227
|
-
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> 
|
|
228
|
-
<div class="line"><a name="l00180"></a><span class="lineno"
|
|
229
|
-
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> 
|
|
230
|
-
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <
|
|
231
|
-
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> 
|
|
232
|
-
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> 
|
|
233
|
-
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> 
|
|
234
|
-
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> 
|
|
235
|
-
<div class="line"><a name="l00187"></a><span class="lineno"
|
|
236
|
-
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> 
|
|
237
|
-
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <
|
|
238
|
-
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> 
|
|
239
|
-
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> 
|
|
240
|
-
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> 
|
|
241
|
-
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> 
|
|
242
|
-
<div class="line"><a name="
|
|
243
|
-
<div class="line"><a name="
|
|
244
|
-
<div class="line"><a name="
|
|
245
|
-
<div class="line"><a name="
|
|
246
|
-
<div class="line"><a name="
|
|
247
|
-
<div class="line"><a name="
|
|
248
|
-
<div class="line"><a name="
|
|
249
|
-
<div class="line"><a name="
|
|
250
|
-
<div class="line"><a name="
|
|
251
|
-
<div class="line"><a name="
|
|
252
|
-
<div class="line"><a name="
|
|
253
|
-
<div class="line"><a name="
|
|
197
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a6ca3ab1e32012ef13613f52f27f3c502">writePtsResultToFile</a>(std::fstream& f);</div>
|
|
198
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a5e782fb9a94a62403046c483ca4176c3">writeGepObjVarMapToFile</a>(std::fstream& f);</div>
|
|
199
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a290501006cb700db0e07dc577429c928">readFromFile</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& filename);</div>
|
|
200
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#af4e17ce3667d40d1a377508a275af384">readPtsResultFromFile</a>(std::ifstream& f);</div>
|
|
201
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#afce21c2a8fca8a2eae4883d2fe148cc0">readGepObjVarMapFromFile</a>(std::ifstream& f);</div>
|
|
202
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a4ad982a53fbf62c5513afe63b2435fa5">readAndSetObjFieldSensitivity</a>(std::ifstream& f, <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& delimiterStr);</div>
|
|
203
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  </div>
|
|
204
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">protected</span>:</div>
|
|
205
|
+
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81"> 155</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1PTData.html">PTDataTy</a>* <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">getPTDataTy</a>()<span class="keyword"> const</span></div>
|
|
206
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keyword"> </span>{</div>
|
|
207
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">ptD</a>.get();</div>
|
|
208
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div>
|
|
209
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  </div>
|
|
210
|
+
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div>
|
|
211
|
+
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a638f58c3bf6efdb3787fafaa4e6f19ca">finalize</a>() <span class="keyword">override</span>;</div>
|
|
212
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  </div>
|
|
213
|
+
<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classSVF_1_1BVDataPTAImpl.html#aa534e475fa34fa322c567bc376a3da70"> 165</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#aa534e475fa34fa322c567bc376a3da70">updateCallGraph</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ad95c842964e6ca46e51fb763fefec585">CallSiteToFunPtrMap</a>&)</div>
|
|
214
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  {</div>
|
|
215
|
+
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"Virtual function not implemented!"</span>);</div>
|
|
216
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
217
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  }</div>
|
|
218
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  </div>
|
|
219
|
+
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classSVF_1_1BVDataPTAImpl.html#ab9c0bb439f98ae11dd178148109697ab"> 171</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1DiffPTData.html">DiffPTDataTy</a>* <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab9c0bb439f98ae11dd178148109697ab">getDiffPTDataTy</a>()<span class="keyword"> const</span></div>
|
|
220
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keyword"> </span>{</div>
|
|
221
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="classSVF_1_1DiffPTData.html">DiffPTDataTy</a>* diff = SVFUtil::dyn_cast<DiffPTDataTy>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">ptD</a>.get());</div>
|
|
222
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  assert(diff && <span class="stringliteral">"BVDataPTAImpl::getDiffPTDataTy: not a DiffPTDataTy!"</span>);</div>
|
|
223
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">return</span> diff;</div>
|
|
224
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  }</div>
|
|
225
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  </div>
|
|
226
|
+
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502"> 178</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1DFPTData.html">DFPTDataTy</a>* <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()<span class="keyword"> const</span></div>
|
|
227
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword"> </span>{</div>
|
|
228
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="classSVF_1_1DFPTData.html">DFPTDataTy</a>* df = SVFUtil::dyn_cast<DFPTDataTy>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">ptD</a>.get());</div>
|
|
229
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  assert(df && <span class="stringliteral">"BVDataPTAImpl::getDFPTDataTy: not a DFPTDataTy!"</span>);</div>
|
|
230
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">return</span> df;</div>
|
|
231
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  }</div>
|
|
232
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  </div>
|
|
233
|
+
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483"> 185</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MutableDFPTData.html">MutDFPTDataTy</a>* <a class="code" href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">getMutDFPTDataTy</a>()<span class="keyword"> const</span></div>
|
|
234
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keyword"> </span>{</div>
|
|
235
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="classSVF_1_1MutableDFPTData.html">MutDFPTDataTy</a>* mdf = SVFUtil::dyn_cast<MutDFPTDataTy>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">ptD</a>.get());</div>
|
|
236
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  assert(mdf && <span class="stringliteral">"BVDataPTAImpl::getMutDFPTDataTy: not a MutDFPTDataTy!"</span>);</div>
|
|
237
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordflow">return</span> mdf;</div>
|
|
238
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div>
|
|
239
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  </div>
|
|
240
|
+
<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classSVF_1_1BVDataPTAImpl.html#a4859864a4c72d5e04c10305e4579e8ee"> 192</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1VersionedPTData.html">VersionedPTDataTy</a>* <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a4859864a4c72d5e04c10305e4579e8ee">getVersionedPTDataTy</a>()<span class="keyword"> const</span></div>
|
|
241
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keyword"> </span>{</div>
|
|
242
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="classSVF_1_1VersionedPTData.html">VersionedPTDataTy</a>* v = SVFUtil::dyn_cast<VersionedPTDataTy>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">ptD</a>.get());</div>
|
|
243
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  assert(v && <span class="stringliteral">"BVDataPTAImpl::getVersionedPTDataTy: not a VersionedPTDataTy!"</span>);</div>
|
|
244
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">return</span> v;</div>
|
|
245
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  }</div>
|
|
246
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  </div>
|
|
247
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a9830d4676fd424b633f8e4d918734296">onTheFlyCallGraphSolve</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ad95c842964e6ca46e51fb763fefec585">CallSiteToFunPtrMap</a>& callsites, <a class="code" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a>& newEdges);</div>
|
|
248
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  </div>
|
|
249
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a2026cffd7043208333083ed1a6603e7b">normalizePointsTo</a>();</div>
|
|
250
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  </div>
|
|
251
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="keyword">private</span>:</div>
|
|
252
|
+
<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd"> 208</a></span>  std::unique_ptr<PTDataTy> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">ptD</a>;</div>
|
|
253
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  </div>
|
|
254
|
+
<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1BVDataPTAImpl.html#a94acf249e50ad56f966ddad6843c18f8"> 210</a></span>  <a class="code" href="classSVF_1_1PersistentPointsToCache.html">PersistentPointsToCache<PointsTo></a> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a94acf249e50ad56f966ddad6843c18f8">ptCache</a>;</div>
|
|
254
255
|
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  </div>
|
|
255
|
-
<div class="line"><a name="
|
|
256
|
-
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  </div>
|
|
257
|
-
<div class="line"><a name="
|
|
258
|
-
<div class="line"><a name="
|
|
256
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">public</span>:</div>
|
|
257
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a236d3e9c894fd7c34c8d7a77ac11dd48">alias</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* V1,</div>
|
|
258
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* V2) <span class="keyword">override</span>;</div>
|
|
259
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  </div>
|
|
260
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a236d3e9c894fd7c34c8d7a77ac11dd48">alias</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node1, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node2) <span class="keyword">override</span>;</div>
|
|
259
261
|
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div>
|
|
260
|
-
<div class="line"><a name="
|
|
261
|
-
<div class="line"><a name="
|
|
262
|
-
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">ptD</a>->dumpPTData();</div>
|
|
263
|
-
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  }</div>
|
|
262
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keyword">virtual</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a236d3e9c894fd7c34c8d7a77ac11dd48">alias</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts1, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts2);</div>
|
|
263
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  </div>
|
|
264
264
|
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  </div>
|
|
265
|
-
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#
|
|
266
|
-
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> 
|
|
267
|
-
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> 
|
|
268
|
-
<div class="line"><a name="
|
|
269
|
-
<div class="line"><a name="
|
|
270
|
-
<div class="line"><a name="
|
|
271
|
-
<div class="line"><a name="
|
|
272
|
-
<div class="line"><a name="
|
|
273
|
-
<div class="line"><a name="
|
|
274
|
-
<div class="line"><a name="
|
|
275
|
-
<div class="line"><a name="l00239"></a><span class="lineno"
|
|
276
|
-
<div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html
|
|
277
|
-
<div class="line"><a name="l00241"></a><span class="lineno"
|
|
278
|
-
<div class="line"><a name="l00242"></a><span class="lineno"
|
|
279
|
-
<div class="line"><a name="l00243"></a><span class="lineno"
|
|
280
|
-
<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#
|
|
281
|
-
<div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#
|
|
282
|
-
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  </div>
|
|
283
|
-
<div class="line"><a name="
|
|
284
|
-
<div class="line"><a name="
|
|
285
|
-
<div class="line"><a name="
|
|
286
|
-
<div class="line"><a name="
|
|
287
|
-
<div class="line"><a name="
|
|
288
|
-
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> 
|
|
289
|
-
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> 
|
|
290
|
-
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#
|
|
291
|
-
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> 
|
|
292
|
-
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  </div>
|
|
293
|
-
<div class="line"><a name="
|
|
294
|
-
<div class="line"><a name="
|
|
295
|
-
<div class="line"><a name="
|
|
296
|
-
<div class="line"><a name="
|
|
297
|
-
<div class="line"><a name="
|
|
298
|
-
<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#
|
|
265
|
+
<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classSVF_1_1BVDataPTAImpl.html#acd9a15c398be20db43ed9fd910bd1758"> 225</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#acd9a15c398be20db43ed9fd910bd1758">dumpCPts</a>()<span class="keyword"> override</span></div>
|
|
266
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="keyword"> </span>{</div>
|
|
267
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">ptD</a>->dumpPTData();</div>
|
|
268
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  }</div>
|
|
269
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  </div>
|
|
270
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ad34eea2a5ec26e0b2b6a78914879f989">dumpTopLevelPtsTo</a>() <span class="keyword">override</span>;</div>
|
|
271
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  </div>
|
|
272
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a7996a2c07b015e8557398ec10db1acef">dumpAllPts</a>() <span class="keyword">override</span>;</div>
|
|
273
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> };</div>
|
|
274
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  </div>
|
|
275
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div>
|
|
276
|
+
<div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html"> 240</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CondPTAImpl.html">CondPTAImpl</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a></div>
|
|
277
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> {</div>
|
|
278
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  </div>
|
|
279
|
+
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="keyword">public</span>:</div>
|
|
280
|
+
<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#af71b4ec9844701582d997466c2e4d94f"> 244</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1CondVar.html">CondVar<Cond></a> <a class="code" href="classSVF_1_1CondPTAImpl.html#af71b4ec9844701582d997466c2e4d94f">CVar</a>;</div>
|
|
281
|
+
<div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a3f2f48fc122c07ff9eb1382aa7a3f966"> 245</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1CondStdSet.html">CondStdSet<CVar></a> <a class="code" href="classSVF_1_1CondPTAImpl.html#a3f2f48fc122c07ff9eb1382aa7a3f966">CPtSet</a>;</div>
|
|
282
|
+
<div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a761f8a7c6ab4a160e279e9a831f037b1"> 246</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PTData.html">PTData<CVar, Set<CVar></a>, <a class="code" href="classSVF_1_1CondPTAImpl.html#af71b4ec9844701582d997466c2e4d94f">CVar</a>, <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a>> <a class="code" href="classSVF_1_1CondPTAImpl.html#a761f8a7c6ab4a160e279e9a831f037b1">PTDataTy</a>;</div>
|
|
283
|
+
<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#af3ae2748edfdefaa08a73930bd012d6c"> 247</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MutablePTData.html">MutablePTData<CVar, Set<CVar></a>, <a class="code" href="classSVF_1_1CondPTAImpl.html#af71b4ec9844701582d997466c2e4d94f">CVar</a>, <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a>> <a class="code" href="classSVF_1_1CondPTAImpl.html#af3ae2748edfdefaa08a73930bd012d6c">MutPTDataTy</a>;</div>
|
|
284
|
+
<div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#aba828ca8e2aa2bd71b78be8b45a48c9b"> 248</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID,PointsTo></a> <a class="code" href="classSVF_1_1CondPTAImpl.html#aba828ca8e2aa2bd71b78be8b45a48c9b">PtrToBVPtsMap</a>; </div>
|
|
285
|
+
<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a838c3f2be39d278072f7a9df7c0bcb4d"> 249</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, NodeSet></a> <a class="code" href="classSVF_1_1CondPTAImpl.html#a838c3f2be39d278072f7a9df7c0bcb4d">PtrToNSMap</a>;</div>
|
|
286
|
+
<div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a5043e9d9255d31777d038c48c809bb09"> 250</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID,CPtSet></a> <a class="code" href="classSVF_1_1CondPTAImpl.html#a5043e9d9255d31777d038c48c809bb09">PtrToCPtsMap</a>; </div>
|
|
287
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  </div>
|
|
288
|
+
<div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a60678dda5071557483b27d09d26dc270"> 253</a></span>  <a class="code" href="classSVF_1_1CondPTAImpl.html#a60678dda5071557483b27d09d26dc270">CondPTAImpl</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>, <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">PointerAnalysis::PTATY</a> <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>) : <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>, <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>), <a class="code" href="classSVF_1_1CondPTAImpl.html#ab4115f25e2e477bfd73d01f069f47241">normalized</a>(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>)</div>
|
|
289
|
+
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  {</div>
|
|
290
|
+
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> == <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85acaf0c0774025005647deaf59582b9d58">PathS_DDA</a> || <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> == <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a0ab6564c48897595c9d23382a026e0a8">Cxt_DDA</a>)</div>
|
|
291
|
+
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <a class="code" href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">ptD</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#af3ae2748edfdefaa08a73930bd012d6c">MutPTDataTy</a>();</div>
|
|
292
|
+
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordflow">else</span></div>
|
|
293
|
+
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"no points-to data available"</span>);</div>
|
|
294
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  </div>
|
|
295
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a5d3c3094e263bf16a4f312a118c1bd36">ptaImplTy</a> = <a class="code" href="classSVF_1_1PointerAnalysis.html#ac0c0855918cb2cdc3d8ebc175acfbd4da88380bb05f60a1349e192364ba6c5292">CondImpl</a>;</div>
|
|
296
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div>
|
|
297
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  </div>
|
|
298
|
+
<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a01f64600bf6581403836019e4e5ae741"> 264</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a01f64600bf6581403836019e4e5ae741">~CondPTAImpl</a>()</div>
|
|
299
299
|
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  {</div>
|
|
300
|
-
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <
|
|
300
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <a class="code" href="classSVF_1_1CondPTAImpl.html#a5fa3d986e4ef710a2148b2854167c3ed">destroy</a>();</div>
|
|
301
301
|
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  }</div>
|
|
302
302
|
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  </div>
|
|
303
|
-
<div class="line"><a name="
|
|
304
|
-
<div class="line"><a name="
|
|
305
|
-
<div class="line"><a name="
|
|
306
|
-
<div class="line"><a name="
|
|
307
|
-
<div class="line"><a name="
|
|
308
|
-
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  </div>
|
|
309
|
-
<div class="line"><a name="
|
|
310
|
-
<div class="line"><a name="
|
|
311
|
-
<div class="line"><a name="
|
|
312
|
-
<div class="line"><a name="
|
|
313
|
-
<div class="line"><a name="
|
|
314
|
-
<div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#
|
|
303
|
+
<div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#ae76fb767c13ca39baa0fbec55a7780fe"> 269</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#ae76fb767c13ca39baa0fbec55a7780fe">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a> *pta)</div>
|
|
304
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  {</div>
|
|
305
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">return</span> pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#ac0f821cfe4fb9c9c8816e7a1b1bc0c5e">getImplTy</a>() == <a class="code" href="classSVF_1_1PointerAnalysis.html#ac0c0855918cb2cdc3d8ebc175acfbd4da88380bb05f60a1349e192364ba6c5292">CondImpl</a>;</div>
|
|
306
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  }</div>
|
|
307
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  </div>
|
|
308
|
+
<div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a5fa3d986e4ef710a2148b2854167c3ed"> 275</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a5fa3d986e4ef710a2148b2854167c3ed">destroy</a>()</div>
|
|
309
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  {</div>
|
|
310
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">ptD</a>;</div>
|
|
311
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <a class="code" href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">ptD</a> = <span class="keyword">nullptr</span>;</div>
|
|
312
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div>
|
|
313
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  </div>
|
|
314
|
+
<div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a35cb1fd6e18cdc8e8466ee94846bc553"> 282</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1PTData.html">PTDataTy</a>* <a class="code" href="classSVF_1_1CondPTAImpl.html#a35cb1fd6e18cdc8e8466ee94846bc553">getPTDataTy</a>()<span class="keyword"> const</span></div>
|
|
315
315
|
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="keyword"> </span>{</div>
|
|
316
|
-
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <
|
|
317
|
-
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> 
|
|
318
|
-
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> 
|
|
319
|
-
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> 
|
|
320
|
-
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> 
|
|
321
|
-
<div class="line"><a name="l00289"></a><span class="lineno"
|
|
322
|
-
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> 
|
|
323
|
-
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">return</span>
|
|
316
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">ptD</a>;</div>
|
|
317
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  }</div>
|
|
318
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  </div>
|
|
319
|
+
<div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#ab582d46731c06a7fa022bf301d6008c1"> 287</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MutablePTData.html">MutPTDataTy</a>* <a class="code" href="classSVF_1_1CondPTAImpl.html#ab582d46731c06a7fa022bf301d6008c1">getMutPTDataTy</a>()<span class="keyword"> const</span></div>
|
|
320
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="keyword"> </span>{</div>
|
|
321
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <a class="code" href="classSVF_1_1MutablePTData.html">MutPTDataTy</a>* mut = SVFUtil::dyn_cast<MutPTDataTy>(<a class="code" href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">ptD</a>);</div>
|
|
322
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  assert(mut && <span class="stringliteral">"BVDataPTAImpl::getMutPTDataTy: not a MutPTDataTy!"</span>);</div>
|
|
323
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">return</span> mut;</div>
|
|
324
324
|
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  }</div>
|
|
325
325
|
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  </div>
|
|
326
|
-
<div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#
|
|
326
|
+
<div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a597e9c4e76f358c36d4b820c4d69ebc6"> 294</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a597e9c4e76f358c36d4b820c4d69ebc6">hasPtsMap</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div>
|
|
327
327
|
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="keyword"> </span>{</div>
|
|
328
|
-
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">
|
|
329
|
-
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> 
|
|
330
|
-
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> 
|
|
331
|
-
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> 
|
|
332
|
-
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> 
|
|
333
|
-
<div class="line"><a name="
|
|
334
|
-
<div class="line"><a name="
|
|
335
|
-
<div class="line"><a name="
|
|
336
|
-
<div class="line"><a name="
|
|
337
|
-
<div class="line"><a name="
|
|
338
|
-
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> 
|
|
339
|
-
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> 
|
|
340
|
-
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> 
|
|
341
|
-
<div class="line"><a name="
|
|
342
|
-
<div class="line"><a name="
|
|
343
|
-
<div class="line"><a name="
|
|
344
|
-
<div class="line"><a name="
|
|
345
|
-
<div class="line"><a name="
|
|
346
|
-
<div class="line"><a name="
|
|
347
|
-
<div class="line"><a name="
|
|
348
|
-
<div class="line"><a name="
|
|
349
|
-
<div class="line"><a name="
|
|
350
|
-
<div class="line"><a name="
|
|
351
|
-
<div class="line"><a name="
|
|
352
|
-
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> 
|
|
353
|
-
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> 
|
|
354
|
-
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> 
|
|
355
|
-
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> 
|
|
356
|
-
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> 
|
|
357
|
-
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> 
|
|
358
|
-
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> 
|
|
359
|
-
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  </div>
|
|
360
|
-
<div class="line"><a name="
|
|
361
|
-
<div class="line"><a name="
|
|
362
|
-
<div class="line"><a name="
|
|
363
|
-
<div class="line"><a name="
|
|
364
|
-
<div class="line"><a name="
|
|
365
|
-
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> 
|
|
366
|
-
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> 
|
|
367
|
-
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> 
|
|
368
|
-
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> 
|
|
369
|
-
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> 
|
|
370
|
-
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> 
|
|
371
|
-
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> 
|
|
372
|
-
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> 
|
|
373
|
-
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> 
|
|
374
|
-
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> 
|
|
375
|
-
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> 
|
|
376
|
-
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  </div>
|
|
377
|
-
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> 
|
|
378
|
-
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> 
|
|
379
|
-
<div class="line"><a name="
|
|
380
|
-
<div class="line"><a name="
|
|
381
|
-
<div class="line"><a name="
|
|
382
|
-
<div class="line"><a name="
|
|
383
|
-
<div class="line"><a name="
|
|
384
|
-
<div class="line"><a name="
|
|
385
|
-
<div class="line"><a name="
|
|
386
|
-
<div class="line"><a name="
|
|
387
|
-
<div class="line"><a name="
|
|
388
|
-
<div class="line"><a name="
|
|
328
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">return</span> SVFUtil::isa<MutPTDataTy>(<a class="code" href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">ptD</a>);</div>
|
|
329
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div>
|
|
330
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  </div>
|
|
331
|
+
<div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a979486e35b529fbc62b2974899627113"> 299</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1MutablePTData.html#ad74cc6c81c4a95f6ba4e89352bccee3e">MutPTDataTy::PtsMap</a>& <a class="code" href="classSVF_1_1CondPTAImpl.html#a979486e35b529fbc62b2974899627113">getPtsMap</a>()<span class="keyword"> const</span></div>
|
|
332
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="keyword"> </span>{</div>
|
|
333
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MutablePTData.html">MutPTDataTy</a> *m = SVFUtil::dyn_cast<MutPTDataTy>(<a class="code" href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">ptD</a>)) <span class="keywordflow">return</span> m->getPtsMap();</div>
|
|
334
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"CondPTAImpl::getPtsMap: not a PTData with a PtsMap!"</span>);</div>
|
|
335
|
+
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  exit(1);</div>
|
|
336
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div>
|
|
337
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  </div>
|
|
338
|
+
<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a63fa2b3a96696ffc67a119c1ba5ce748"> 308</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a>& <a class="code" href="classSVF_1_1CondPTAImpl.html#a63fa2b3a96696ffc67a119c1ba5ce748">getPts</a>(<a class="code" href="classSVF_1_1CondVar.html">CVar</a> <span class="keywordtype">id</span>)</div>
|
|
339
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  {</div>
|
|
340
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">ptD</a>-><a class="code" href="classSVF_1_1PTData.html#a9ae6037637d8b9acb323333f491f4a7d">getPts</a>(<span class="keywordtype">id</span>);</div>
|
|
341
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  }</div>
|
|
342
|
+
<div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a0da0602c5b260afaba4bef1abcbcf7b3"> 312</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<CVar></a>& <a class="code" href="classSVF_1_1CondPTAImpl.html#a0da0602c5b260afaba4bef1abcbcf7b3">getRevPts</a>(<a class="code" href="classSVF_1_1CondVar.html">CVar</a> nodeId)</div>
|
|
343
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  {</div>
|
|
344
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">ptD</a>-><a class="code" href="classSVF_1_1PTData.html#ab6146f5582946c08568f3a8d45e57b03">getRevPts</a>(nodeId);</div>
|
|
345
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  }</div>
|
|
346
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  </div>
|
|
347
|
+
<div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#adfae199dfbe05c9c20052e0fc204e6de"> 319</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#adfae199dfbe05c9c20052e0fc204e6de">clearPts</a>()</div>
|
|
348
|
+
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  {</div>
|
|
349
|
+
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <a class="code" href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">ptD</a>-><a class="code" href="classSVF_1_1PTData.html#ad45879017d8fdeedc987ce35c4eba1a5">clear</a>();</div>
|
|
350
|
+
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div>
|
|
351
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  </div>
|
|
352
|
+
<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#adf0acbb0c605278e43d88787d651bbd8"> 325</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#adf0acbb0c605278e43d88787d651bbd8">overlap</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a>& cpts1, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a>& cpts2)<span class="keyword"> const</span></div>
|
|
353
|
+
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="keyword"> </span>{</div>
|
|
354
|
+
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> <a class="code" href="classSVF_1_1CondStdSet.html#a55152b7749868cc25f1c3c33ea57a650">CPtSet::const_iterator</a> it1 = cpts1.<a class="code" href="classSVF_1_1CondStdSet.html#adf095111734d81b6ad1908a7f795b038">begin</a>(); it1 != cpts1.<a class="code" href="classSVF_1_1CondStdSet.html#a93c232ef7e5dea652622da7f994e1dc3">end</a>(); ++it1)</div>
|
|
355
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  {</div>
|
|
356
|
+
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> <a class="code" href="classSVF_1_1CondStdSet.html#a55152b7749868cc25f1c3c33ea57a650">CPtSet::const_iterator</a> it2 = cpts2.<a class="code" href="classSVF_1_1CondStdSet.html#adf095111734d81b6ad1908a7f795b038">begin</a>(); it2 != cpts2.<a class="code" href="classSVF_1_1CondStdSet.html#a93c232ef7e5dea652622da7f994e1dc3">end</a>(); ++it2)</div>
|
|
357
|
+
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  {</div>
|
|
358
|
+
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CondPTAImpl.html#a7a1be735c76ba4a6b235264fe8ec6c28">isSameVar</a>(*it1,*it2))</div>
|
|
359
|
+
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
360
|
+
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  }</div>
|
|
361
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  }</div>
|
|
362
|
+
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
363
|
+
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  }</div>
|
|
364
|
+
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  </div>
|
|
365
|
+
<div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a87b48287d7edb97fc120200fe0e5218d"> 339</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a87b48287d7edb97fc120200fe0e5218d">expandFIObjs</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a>& cpts, <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a>& expandedCpts)</div>
|
|
366
|
+
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  {</div>
|
|
367
|
+
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  expandedCpts = cpts;;</div>
|
|
368
|
+
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">for</span>(<span class="keyword">typename</span> <a class="code" href="classSVF_1_1CondStdSet.html#a55152b7749868cc25f1c3c33ea57a650">CPtSet::const_iterator</a> cit = cpts.<a class="code" href="classSVF_1_1CondStdSet.html#adf095111734d81b6ad1908a7f795b038">begin</a>(), ecit=cpts.<a class="code" href="classSVF_1_1CondStdSet.html#a93c232ef7e5dea652622da7f994e1dc3">end</a>(); cit!=ecit; ++cit)</div>
|
|
369
|
+
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  {</div>
|
|
370
|
+
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">getBaseObjVar</a>(cit->get_id())==cit->get_id())</div>
|
|
371
|
+
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  {</div>
|
|
372
|
+
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& fields = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">getAllFieldsObjVars</a>(cit->get_id());</div>
|
|
373
|
+
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = fields.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = fields.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it!=eit; ++it)</div>
|
|
374
|
+
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  {</div>
|
|
375
|
+
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <a class="code" href="classSVF_1_1CondVar.html">CVar</a> cvar(cit->get_cond(),*it);</div>
|
|
376
|
+
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  expandedCpts.<a class="code" href="classSVF_1_1CondStdSet.html#ae11deddad534be115d29daad08c90599">set</a>(cvar);</div>
|
|
377
|
+
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  }</div>
|
|
378
|
+
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  }</div>
|
|
379
|
+
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  }</div>
|
|
380
|
+
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  }</div>
|
|
381
|
+
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  </div>
|
|
382
|
+
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="keyword">protected</span>:</div>
|
|
383
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  </div>
|
|
384
|
+
<div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a9bdc3a50c695029a28371116ddc3ef8d"> 359</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a9bdc3a50c695029a28371116ddc3ef8d">finalize</a>()</div>
|
|
385
|
+
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  {</div>
|
|
386
|
+
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <a class="code" href="classSVF_1_1CondPTAImpl.html#aa945d068c8935fc6926833fdf102e21c">normalizePointsTo</a>();</div>
|
|
387
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a118dabc50024b5cd91095814ade47166">PointerAnalysis::finalize</a>();</div>
|
|
388
|
+
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  }</div>
|
|
389
389
|
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  </div>
|
|
390
|
-
<div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#
|
|
390
|
+
<div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a1a95d1d6ac48157c896d9895cff697b4"> 367</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a1a95d1d6ac48157c896d9895cff697b4">unionPts</a>(<a class="code" href="classSVF_1_1CondVar.html">CVar</a> <span class="keywordtype">id</span>, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a>& target)</div>
|
|
391
391
|
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  {</div>
|
|
392
|
-
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">ptD</a>-><a class="code" href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">unionPts</a>(<span class="keywordtype">id</span>,
|
|
392
|
+
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">ptD</a>-><a class="code" href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">unionPts</a>(<span class="keywordtype">id</span>, target);</div>
|
|
393
393
|
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  }</div>
|
|
394
394
|
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  </div>
|
|
395
|
-
<div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#
|
|
395
|
+
<div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a4ad5da56c8b7bc75bf2dc30a1bcf1552"> 372</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a4ad5da56c8b7bc75bf2dc30a1bcf1552">unionPts</a>(<a class="code" href="classSVF_1_1CondVar.html">CVar</a> <span class="keywordtype">id</span>, <a class="code" href="classSVF_1_1CondVar.html">CVar</a> ptd)</div>
|
|
396
396
|
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  {</div>
|
|
397
|
-
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">ptD</a>-><a class="code" href="classSVF_1_1PTData.html#
|
|
397
|
+
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">ptD</a>-><a class="code" href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">unionPts</a>(<span class="keywordtype">id</span>,ptd);</div>
|
|
398
398
|
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  }</div>
|
|
399
|
-
<div class="line"><a name="
|
|
400
|
-
<div class="line"><a name="
|
|
401
|
-
<div class="line"><a name="
|
|
402
|
-
<div class="line"><a name="
|
|
403
|
-
<div class="line"><a name="
|
|
404
|
-
<div class="line"><a name="
|
|
399
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  </div>
|
|
400
|
+
<div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a08037f32b927fe2e6be47a61a060463c"> 377</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a08037f32b927fe2e6be47a61a060463c">addPts</a>(<a class="code" href="classSVF_1_1CondVar.html">CVar</a> <span class="keywordtype">id</span>, <a class="code" href="classSVF_1_1CondVar.html">CVar</a> ptd)</div>
|
|
401
|
+
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  {</div>
|
|
402
|
+
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">ptD</a>-><a class="code" href="classSVF_1_1PTData.html#ac1b9dc035fb0bdf468c7d14b9f9d437a">addPts</a>(<span class="keywordtype">id</span>,ptd);</div>
|
|
403
|
+
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  }</div>
|
|
404
|
+
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  </div>
|
|
405
405
|
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  </div>
|
|
406
|
-
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> 
|
|
407
|
-
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> 
|
|
408
|
-
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> 
|
|
409
|
-
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  </div>
|
|
410
|
-
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> 
|
|
411
|
-
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="
|
|
412
|
-
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keywordflow">
|
|
413
|
-
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> 
|
|
406
|
+
<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a3b5877fec52bbfa7c83bab6c9bc95684"> 385</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a3b5877fec52bbfa7c83bab6c9bc95684">mustAlias</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondVar.html">CVar</a>& var1, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondVar.html">CVar</a>& var2)</div>
|
|
407
|
+
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  {</div>
|
|
408
|
+
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CondPTAImpl.html#a7a1be735c76ba4a6b235264fe8ec6c28">isSameVar</a>(var1,var2))</div>
|
|
409
|
+
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
410
|
+
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  </div>
|
|
411
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordtype">bool</span> singleton = !(<a class="code" href="classSVF_1_1PointerAnalysis.html#ae6ea391ac44dffeb6899bb44323c5361">isHeapMemObj</a>(var1.<a class="code" href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">get_id</a>()) || <a class="code" href="classSVF_1_1PointerAnalysis.html#a108380f6f0b67654bb7c7676686096c8">isLocalVarInRecursiveFun</a>(var1.<a class="code" href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">get_id</a>()));</div>
|
|
412
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CondPTAImpl.html#a6b746c30161c7dab86510895e0032935">isCondCompatible</a>(var1.<a class="code" href="classSVF_1_1CondVar.html#af84e7bfcff909009be5e109c600c63fe">get_cond</a>(),var2.<a class="code" href="classSVF_1_1CondVar.html#af84e7bfcff909009be5e109c600c63fe">get_cond</a>(),singleton) == <span class="keyword">false</span>)</div>
|
|
413
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
414
414
|
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  </div>
|
|
415
|
-
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> 
|
|
416
|
-
<div class="line"><a name="l00395"></a><span class="lineno"
|
|
417
|
-
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> 
|
|
418
|
-
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> 
|
|
419
|
-
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> 
|
|
420
|
-
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  </div>
|
|
421
|
-
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> 
|
|
422
|
-
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> 
|
|
423
|
-
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> 
|
|
424
|
-
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keywordflow">
|
|
425
|
-
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> 
|
|
426
|
-
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> 
|
|
427
|
-
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> 
|
|
428
|
-
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> 
|
|
429
|
-
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> 
|
|
430
|
-
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> 
|
|
431
|
-
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> 
|
|
432
|
-
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> 
|
|
433
|
-
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> 
|
|
434
|
-
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> 
|
|
435
|
-
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> 
|
|
436
|
-
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> 
|
|
437
|
-
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  </div>
|
|
438
|
-
<div class="line"><a name="
|
|
439
|
-
<div class="line"><a name="
|
|
440
|
-
<div class="line"><a name="
|
|
441
|
-
<div class="line"><a name="
|
|
442
|
-
<div class="line"><a name="
|
|
443
|
-
<div class="line"><a name="
|
|
444
|
-
<div class="line"><a name="
|
|
445
|
-
<div class="line"><a name="
|
|
446
|
-
<div class="line"><a name="
|
|
447
|
-
<div class="line"><a name="
|
|
448
|
-
<div class="line"><a name="
|
|
449
|
-
<div class="line"><a name="
|
|
450
|
-
<div class="line"><a name="
|
|
451
|
-
<div class="line"><a name="
|
|
452
|
-
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> 
|
|
453
|
-
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> 
|
|
454
|
-
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> 
|
|
455
|
-
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> 
|
|
456
|
-
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> 
|
|
457
|
-
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> 
|
|
458
|
-
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> 
|
|
459
|
-
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> 
|
|
460
|
-
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> 
|
|
461
|
-
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> 
|
|
462
|
-
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> 
|
|
463
|
-
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> 
|
|
464
|
-
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> 
|
|
465
|
-
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> 
|
|
466
|
-
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> 
|
|
467
|
-
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> 
|
|
468
|
-
<div class="line"><a name="
|
|
469
|
-
<div class="line"><a name="
|
|
470
|
-
<div class="line"><a name="
|
|
471
|
-
<div class="line"><a name="
|
|
472
|
-
<div class="line"><a name="
|
|
473
|
-
<div class="line"><a name="
|
|
474
|
-
<div class="line"><a name="
|
|
475
|
-
<div class="line"><a name="
|
|
476
|
-
<div class="line"><a name="
|
|
477
|
-
<div class="line"><a name="
|
|
478
|
-
<div class="line"><a name="
|
|
479
|
-
<div class="line"><a name="
|
|
480
|
-
<div class="line"><a name="
|
|
481
|
-
<div class="line"><a name="
|
|
482
|
-
<div class="line"><a name="
|
|
483
|
-
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> 
|
|
484
|
-
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> 
|
|
485
|
-
<div class="line"><a name="
|
|
486
|
-
<div class="line"><a name="
|
|
487
|
-
<div class="line"><a name="
|
|
488
|
-
<div class="line"><a name="
|
|
489
|
-
<div class="line"><a name="
|
|
490
|
-
<div class="line"><a name="
|
|
491
|
-
<div class="line"><a name="
|
|
492
|
-
<div class="line"><a name="
|
|
493
|
-
<div class="line"><a name="
|
|
494
|
-
<div class="line"><a name="
|
|
495
|
-
<div class="line"><a name="
|
|
496
|
-
<div class="line"><a name="
|
|
497
|
-
<div class="line"><a name="
|
|
498
|
-
<div class="line"><a name="
|
|
499
|
-
<div class="line"><a name="
|
|
500
|
-
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  </div>
|
|
501
|
-
<div class="line"><a name="
|
|
502
|
-
<div class="line"><a name="
|
|
503
|
-
<div class="line"><a name="
|
|
504
|
-
<div class="line"><a name="
|
|
505
|
-
<div class="line"><a name="
|
|
415
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a>& cpts1 = <a class="code" href="classSVF_1_1CondPTAImpl.html#a63fa2b3a96696ffc67a119c1ba5ce748">getPts</a>(var1);</div>
|
|
416
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a>& cpts2 = <a class="code" href="classSVF_1_1CondPTAImpl.html#a63fa2b3a96696ffc67a119c1ba5ce748">getPts</a>(var2);</div>
|
|
417
|
+
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1CondPTAImpl.html#a5af00bb26800882ab96c470ee9fc4632">contains</a>(cpts1,cpts2) && <a class="code" href="classSVF_1_1CondPTAImpl.html#a5af00bb26800882ab96c470ee9fc4632">contains</a>(cpts2,cpts1));</div>
|
|
418
|
+
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  }</div>
|
|
419
|
+
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  </div>
|
|
420
|
+
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="comment">// Whether cpts1 contains all points-to targets of pts2</span></div>
|
|
421
|
+
<div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a5af00bb26800882ab96c470ee9fc4632"> 400</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a5af00bb26800882ab96c470ee9fc4632">contains</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a>& cpts1, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a>& cpts2)</div>
|
|
422
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  {</div>
|
|
423
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordflow">if</span> (cpts1.<a class="code" href="classSVF_1_1CondStdSet.html#a0305cbf452b4e858e464023727417d76">empty</a>() || cpts2.<a class="code" href="classSVF_1_1CondStdSet.html#a0305cbf452b4e858e464023727417d76">empty</a>())</div>
|
|
424
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
425
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  </div>
|
|
426
|
+
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> <a class="code" href="classSVF_1_1CondStdSet.html#a55152b7749868cc25f1c3c33ea57a650">CPtSet::const_iterator</a> it2 = cpts2.<a class="code" href="classSVF_1_1CondStdSet.html#adf095111734d81b6ad1908a7f795b038">begin</a>(); it2 != cpts2.<a class="code" href="classSVF_1_1CondStdSet.html#a93c232ef7e5dea652622da7f994e1dc3">end</a>(); ++it2)</div>
|
|
427
|
+
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  {</div>
|
|
428
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keywordtype">bool</span> hasObj = <span class="keyword">false</span>;</div>
|
|
429
|
+
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> <a class="code" href="classSVF_1_1CondStdSet.html#a55152b7749868cc25f1c3c33ea57a650">CPtSet::const_iterator</a> it1 = cpts1.<a class="code" href="classSVF_1_1CondStdSet.html#adf095111734d81b6ad1908a7f795b038">begin</a>(); it1 != cpts1.<a class="code" href="classSVF_1_1CondStdSet.html#a93c232ef7e5dea652622da7f994e1dc3">end</a>(); ++it1)</div>
|
|
430
|
+
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  {</div>
|
|
431
|
+
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CondPTAImpl.html#a7a1be735c76ba4a6b235264fe8ec6c28">isSameVar</a>(*it1,*it2))</div>
|
|
432
|
+
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  {</div>
|
|
433
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  hasObj = <span class="keyword">true</span>;</div>
|
|
434
|
+
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keywordflow">break</span>;</div>
|
|
435
|
+
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  }</div>
|
|
436
|
+
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  }</div>
|
|
437
|
+
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keywordflow">if</span>(hasObj == <span class="keyword">false</span>)</div>
|
|
438
|
+
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
439
|
+
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  }</div>
|
|
440
|
+
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
441
|
+
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  }</div>
|
|
442
|
+
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  </div>
|
|
443
|
+
<div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a7a1be735c76ba4a6b235264fe8ec6c28"> 423</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a7a1be735c76ba4a6b235264fe8ec6c28">isSameVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondVar.html">CVar</a>& var1, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondVar.html">CVar</a>& var2)<span class="keyword"> const</span></div>
|
|
444
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="keyword"> </span>{</div>
|
|
445
|
+
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">if</span>(var1.<a class="code" href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">get_id</a>() != var2.<a class="code" href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">get_id</a>())</div>
|
|
446
|
+
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
447
|
+
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  </div>
|
|
448
|
+
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="keywordtype">bool</span> singleton = !(<a class="code" href="classSVF_1_1PointerAnalysis.html#ae6ea391ac44dffeb6899bb44323c5361">isHeapMemObj</a>(var1.<a class="code" href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">get_id</a>()) || <a class="code" href="classSVF_1_1PointerAnalysis.html#a108380f6f0b67654bb7c7676686096c8">isLocalVarInRecursiveFun</a>(var1.<a class="code" href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">get_id</a>()));</div>
|
|
449
|
+
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a6b746c30161c7dab86510895e0032935">isCondCompatible</a>(var1.<a class="code" href="classSVF_1_1CondVar.html#af84e7bfcff909009be5e109c600c63fe">get_cond</a>(),var2.<a class="code" href="classSVF_1_1CondVar.html#af84e7bfcff909009be5e109c600c63fe">get_cond</a>(),singleton);</div>
|
|
450
|
+
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  }</div>
|
|
451
|
+
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  </div>
|
|
452
|
+
<div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#aa945d068c8935fc6926833fdf102e21c"> 435</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#aa945d068c8935fc6926833fdf102e21c">normalizePointsTo</a>()</div>
|
|
453
|
+
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  {</div>
|
|
454
|
+
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <a class="code" href="classSVF_1_1CondPTAImpl.html#ab4115f25e2e477bfd73d01f069f47241">normalized</a> = <span class="keyword">true</span>;</div>
|
|
455
|
+
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CondPTAImpl.html#a597e9c4e76f358c36d4b820c4d69ebc6">hasPtsMap</a>())</div>
|
|
456
|
+
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  {</div>
|
|
457
|
+
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keyword">const</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1MutablePTData.html#ad74cc6c81c4a95f6ba4e89352bccee3e">MutPTDataTy::PtsMap</a>& ptsMap = <a class="code" href="classSVF_1_1CondPTAImpl.html#a979486e35b529fbc62b2974899627113">getPtsMap</a>();</div>
|
|
458
|
+
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keywordflow">for</span>(<span class="keyword">typename</span> MutPTDataTy::PtsMap::const_iterator it = ptsMap.begin(), eit=ptsMap.end(); it!=eit; ++it)</div>
|
|
459
|
+
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  {</div>
|
|
460
|
+
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordflow">for</span>(<span class="keyword">typename</span> <a class="code" href="classSVF_1_1CondStdSet.html#a55152b7749868cc25f1c3c33ea57a650">CPtSet::const_iterator</a> cit = it->second.begin(), ecit=it->second.end(); cit!=ecit; ++cit)</div>
|
|
461
|
+
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  {</div>
|
|
462
|
+
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <a class="code" href="classSVF_1_1CondPTAImpl.html#a30b9ee7b1dcd04285f92cf7accd05b2e">ptrToBVPtsMap</a>[(it->first).get_id()].set(cit->get_id());</div>
|
|
463
|
+
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <a class="code" href="classSVF_1_1CondPTAImpl.html#a22c23f3ba1ee7e0aaccf0b8a1b58e33e">objToNSRevPtsMap</a>[cit->get_id()].insert((it->first).get_id());</div>
|
|
464
|
+
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <a class="code" href="classSVF_1_1CondPTAImpl.html#a61167fcdb2005090de1b38e53450431a">ptrToCPtsMap</a>[(it->first).get_id()].set(*cit);</div>
|
|
465
|
+
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  }</div>
|
|
466
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  }</div>
|
|
467
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  }</div>
|
|
468
|
+
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keywordflow">else</span></div>
|
|
469
|
+
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  {</div>
|
|
470
|
+
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"CondPTAImpl::NormalizePointsTo: could not normalize points-to sets"</span>);</div>
|
|
471
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  }</div>
|
|
472
|
+
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  }</div>
|
|
473
|
+
<div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce"> 457</a></span>  <a class="code" href="classSVF_1_1PTData.html">PTDataTy</a>* <a class="code" href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">ptD</a>;</div>
|
|
474
|
+
<div class="line"><a name="l00459"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#ab4115f25e2e477bfd73d01f069f47241"> 459</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#ab4115f25e2e477bfd73d01f069f47241">normalized</a>;</div>
|
|
475
|
+
<div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a30b9ee7b1dcd04285f92cf7accd05b2e"> 461</a></span>  <a class="code" href="classSVF_1_1CondPTAImpl.html#aba828ca8e2aa2bd71b78be8b45a48c9b">PtrToBVPtsMap</a> <a class="code" href="classSVF_1_1CondPTAImpl.html#a30b9ee7b1dcd04285f92cf7accd05b2e">ptrToBVPtsMap</a>;</div>
|
|
476
|
+
<div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a22c23f3ba1ee7e0aaccf0b8a1b58e33e"> 463</a></span>  <a class="code" href="classSVF_1_1CondPTAImpl.html#a838c3f2be39d278072f7a9df7c0bcb4d">PtrToNSMap</a> <a class="code" href="classSVF_1_1CondPTAImpl.html#a22c23f3ba1ee7e0aaccf0b8a1b58e33e">objToNSRevPtsMap</a>;</div>
|
|
477
|
+
<div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a61167fcdb2005090de1b38e53450431a"> 465</a></span>  <a class="code" href="classSVF_1_1CondPTAImpl.html#a5043e9d9255d31777d038c48c809bb09">PtrToCPtsMap</a> <a class="code" href="classSVF_1_1CondPTAImpl.html#a61167fcdb2005090de1b38e53450431a">ptrToCPtsMap</a>;</div>
|
|
478
|
+
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="keyword">public</span>:</div>
|
|
479
|
+
<div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#aa260a3275fbec7061295306a58763d24"> 468</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#aa260a3275fbec7061295306a58763d24">dumpCPts</a>()</div>
|
|
480
|
+
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  {</div>
|
|
481
|
+
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <a class="code" href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">ptD</a>-><a class="code" href="classSVF_1_1PTData.html#a91b898e3547eecfbf1ab155d183734bf">dumpPTData</a>();</div>
|
|
482
|
+
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  }</div>
|
|
483
|
+
<div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a94f3e4d073b8c5bab3c46058ddba3f43"> 473</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> <a class="code" href="classSVF_1_1CondPTAImpl.html#a94f3e4d073b8c5bab3c46058ddba3f43">getBVPointsTo</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a>& cpts)<span class="keyword"> const</span></div>
|
|
484
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="keyword"> </span>{</div>
|
|
485
|
+
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> pts;</div>
|
|
486
|
+
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="keywordflow">for</span>(<span class="keyword">typename</span> <a class="code" href="classSVF_1_1CondStdSet.html#a55152b7749868cc25f1c3c33ea57a650">CPtSet::const_iterator</a> cit = cpts.<a class="code" href="classSVF_1_1CondStdSet.html#adf095111734d81b6ad1908a7f795b038">begin</a>(), ecit=cpts.<a class="code" href="classSVF_1_1CondStdSet.html#a93c232ef7e5dea652622da7f994e1dc3">end</a>(); cit!=ecit; ++cit)</div>
|
|
487
|
+
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  pts.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(cit->get_id());</div>
|
|
488
|
+
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keywordflow">return</span> pts;</div>
|
|
489
|
+
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  }</div>
|
|
490
|
+
<div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a0b96ba98239186d6d676f9540da9e590"> 481</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& <a class="code" href="classSVF_1_1CondPTAImpl.html#a0b96ba98239186d6d676f9540da9e590">getPts</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptr)</div>
|
|
491
|
+
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  {</div>
|
|
492
|
+
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  assert(<a class="code" href="classSVF_1_1CondPTAImpl.html#ab4115f25e2e477bfd73d01f069f47241">normalized</a> && <span class="stringliteral">"Pts of all context-var have to be merged/normalized. Want to use getPts(CVar cvar)??"</span>);</div>
|
|
493
|
+
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a30b9ee7b1dcd04285f92cf7accd05b2e">ptrToBVPtsMap</a>[ptr];</div>
|
|
494
|
+
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  }</div>
|
|
495
|
+
<div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a454a998ef5a866f2a6f270e3283c6ebd"> 487</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a>& <a class="code" href="classSVF_1_1CondPTAImpl.html#a454a998ef5a866f2a6f270e3283c6ebd">getCondPointsTo</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptr)</div>
|
|
496
|
+
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  {</div>
|
|
497
|
+
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  assert(<a class="code" href="classSVF_1_1CondPTAImpl.html#ab4115f25e2e477bfd73d01f069f47241">normalized</a> && <span class="stringliteral">"Pts of all context-vars have to be merged/normalized. Want to use getPts(CVar cvar)??"</span>);</div>
|
|
498
|
+
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a61167fcdb2005090de1b38e53450431a">ptrToCPtsMap</a>[ptr];</div>
|
|
499
|
+
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  }</div>
|
|
500
|
+
<div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#aa266eef30817c557882de19aefe135a9"> 493</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>& <a class="code" href="classSVF_1_1CondPTAImpl.html#aa266eef30817c557882de19aefe135a9">getRevPts</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> obj)</div>
|
|
501
|
+
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  {</div>
|
|
502
|
+
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  assert(<a class="code" href="classSVF_1_1CondPTAImpl.html#ab4115f25e2e477bfd73d01f069f47241">normalized</a> && <span class="stringliteral">"Pts of all context-var have to be merged/normalized. Want to use getPts(CVar cvar)??"</span>);</div>
|
|
503
|
+
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a22c23f3ba1ee7e0aaccf0b8a1b58e33e">objToNSRevPtsMap</a>[obj];</div>
|
|
504
|
+
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  }</div>
|
|
505
|
+
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  </div>
|
|
506
|
+
<div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a167a232a697976602c2ad0eb6d35c2d6"> 500</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a> <a class="code" href="classSVF_1_1CondPTAImpl.html#a167a232a697976602c2ad0eb6d35c2d6">alias</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* V1, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* V2)</div>
|
|
506
507
|
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  {</div>
|
|
507
|
-
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keywordflow">return</span>
|
|
508
|
+
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a167a232a697976602c2ad0eb6d35c2d6">alias</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V1),<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V2));</div>
|
|
508
509
|
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  }</div>
|
|
509
|
-
<div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#
|
|
510
|
+
<div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#ac18e1dc9c6fc8cc952f67a93c2491876"> 505</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a> <a class="code" href="classSVF_1_1CondPTAImpl.html#ac18e1dc9c6fc8cc952f67a93c2491876">alias</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node1, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node2)</div>
|
|
510
511
|
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  {</div>
|
|
511
|
-
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a167a232a697976602c2ad0eb6d35c2d6">alias</a>(<a class="code" href="classSVF_1_1CondPTAImpl.html#
|
|
512
|
+
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a167a232a697976602c2ad0eb6d35c2d6">alias</a>(<a class="code" href="classSVF_1_1CondPTAImpl.html#a454a998ef5a866f2a6f270e3283c6ebd">getCondPointsTo</a>(node1),<a class="code" href="classSVF_1_1CondPTAImpl.html#a454a998ef5a866f2a6f270e3283c6ebd">getCondPointsTo</a>(node2));</div>
|
|
512
513
|
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  }</div>
|
|
513
|
-
<div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#
|
|
514
|
+
<div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#adb1ed3728d53a13c94402392155e9913"> 510</a></span>  <span class="keyword">virtual</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a> <a class="code" href="classSVF_1_1CondPTAImpl.html#adb1ed3728d53a13c94402392155e9913">alias</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondVar.html">CVar</a>& var1, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondVar.html">CVar</a>& var2)</div>
|
|
514
515
|
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  {</div>
|
|
515
|
-
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <a class="code" href="
|
|
516
|
-
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> 
|
|
517
|
-
<div class="line"><a name="
|
|
518
|
-
<div class="line"><a name="
|
|
519
|
-
<div class="line"><a name="
|
|
520
|
-
<div class="line"><a name="
|
|
521
|
-
<div class="line"><a name="
|
|
522
|
-
<div class="line"><a name="
|
|
523
|
-
<div class="line"><a name="
|
|
524
|
-
<div class="line"><a name="
|
|
525
|
-
<div class="line"><a name="
|
|
526
|
-
<div class="line"><a name="
|
|
527
|
-
<div class="line"><a name="
|
|
528
|
-
<div class="line"><a name="
|
|
529
|
-
<div class="line"><a name="
|
|
530
|
-
<div class="line"><a name="l00528"></a><span class="lineno"
|
|
531
|
-
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> 
|
|
532
|
-
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> 
|
|
533
|
-
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> 
|
|
534
|
-
<div class="line"><a name="
|
|
535
|
-
<div class="line"><a name="
|
|
536
|
-
<div class="line"><a name="
|
|
537
|
-
<div class="line"><a name="
|
|
538
|
-
<div class="line"><a name="
|
|
539
|
-
<div class="line"><a name="l00538"></a><span class="lineno"
|
|
540
|
-
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> 
|
|
541
|
-
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordflow">
|
|
542
|
-
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> 
|
|
543
|
-
<div class="line"><a name="
|
|
544
|
-
<div class="line"><a name="
|
|
545
|
-
<div class="line"><a name="
|
|
546
|
-
<div class="line"><a name="
|
|
547
|
-
<div class="line"><a name="
|
|
548
|
-
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> 
|
|
549
|
-
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> 
|
|
550
|
-
<div class="line"><a name="
|
|
551
|
-
<div class="line"><a name="
|
|
552
|
-
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> 
|
|
553
|
-
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> 
|
|
554
|
-
<div class="line"><a name="
|
|
555
|
-
<div class="line"><a name="
|
|
556
|
-
<div class="line"><a name="
|
|
557
|
-
<div class="line"><a name="
|
|
558
|
-
<div class="line"><a name="
|
|
559
|
-
<div class="line"><a name="
|
|
560
|
-
<div class="line"><a name="
|
|
561
|
-
<div class="line"><a name="
|
|
562
|
-
<div class="line"><a name="
|
|
563
|
-
<div class="line"><a name="
|
|
564
|
-
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="comment">//SVFUtil::outs() << "Source Loc: " << SVFUtil::getSourceLoc(node->getValue());</span></div>
|
|
516
|
+
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a167a232a697976602c2ad0eb6d35c2d6">alias</a>(<a class="code" href="classSVF_1_1CondPTAImpl.html#a63fa2b3a96696ffc67a119c1ba5ce748">getPts</a>(var1),<a class="code" href="classSVF_1_1CondPTAImpl.html#a63fa2b3a96696ffc67a119c1ba5ce748">getPts</a>(var2));</div>
|
|
517
|
+
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  }</div>
|
|
518
|
+
<div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a8e48e9fe6f7e21da49a155f8f6893944"> 515</a></span>  <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a> <a class="code" href="classSVF_1_1CondPTAImpl.html#a8e48e9fe6f7e21da49a155f8f6893944">alias</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a>& pts1, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a>& pts2)</div>
|
|
519
|
+
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  {</div>
|
|
520
|
+
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a> cpts1;</div>
|
|
521
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <a class="code" href="classSVF_1_1CondPTAImpl.html#a87b48287d7edb97fc120200fe0e5218d">expandFIObjs</a>(pts1,cpts1);</div>
|
|
522
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a> cpts2;</div>
|
|
523
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <a class="code" href="classSVF_1_1CondPTAImpl.html#a87b48287d7edb97fc120200fe0e5218d">expandFIObjs</a>(pts2,cpts2);</div>
|
|
524
|
+
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CondPTAImpl.html#a8cd7b08bd978513cb0faacc47bbaf578">containBlackHoleNode</a>(cpts1) || <a class="code" href="classSVF_1_1CondPTAImpl.html#a8cd7b08bd978513cb0faacc47bbaf578">containBlackHoleNode</a>(cpts2))</div>
|
|
525
|
+
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a>;</div>
|
|
526
|
+
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(this-><a class="code" href="classSVF_1_1PointerAnalysis.html#ac23f71c1307cda9cba44acc40059f0a3">getAnalysisTy</a>()==<a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85acaf0c0774025005647deaf59582b9d58">PathS_DDA</a> && <a class="code" href="classSVF_1_1CondPTAImpl.html#a5af00bb26800882ab96c470ee9fc4632">contains</a>(cpts1,cpts2) && <a class="code" href="classSVF_1_1CondPTAImpl.html#a5af00bb26800882ab96c470ee9fc4632">contains</a>(cpts2,cpts1))</div>
|
|
527
|
+
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  {</div>
|
|
528
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943ab58a0391f037031a51016ebfe2a752b2">AliasResult::MustAlias</a>;</div>
|
|
529
|
+
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  }</div>
|
|
530
|
+
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CondPTAImpl.html#adf0acbb0c605278e43d88787d651bbd8">overlap</a>(cpts1,cpts2))</div>
|
|
531
|
+
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a>;</div>
|
|
532
|
+
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="keywordflow">else</span></div>
|
|
533
|
+
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">AliasResult::NoAlias</a>;</div>
|
|
534
|
+
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  }</div>
|
|
535
|
+
<div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a8cd7b08bd978513cb0faacc47bbaf578"> 533</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a8cd7b08bd978513cb0faacc47bbaf578">containBlackHoleNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a>& cpts)</div>
|
|
536
|
+
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  {</div>
|
|
537
|
+
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="keywordflow">for</span>(<span class="keyword">typename</span> <a class="code" href="classSVF_1_1CondStdSet.html#a55152b7749868cc25f1c3c33ea57a650">CPtSet::const_iterator</a> cit = cpts.<a class="code" href="classSVF_1_1CondStdSet.html#adf095111734d81b6ad1908a7f795b038">begin</a>(), ecit=cpts.<a class="code" href="classSVF_1_1CondStdSet.html#a93c232ef7e5dea652622da7f994e1dc3">end</a>(); cit!=ecit; ++cit)</div>
|
|
538
|
+
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  {</div>
|
|
539
|
+
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">if</span>(cit->get_id() == <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">getBlackHoleNode</a>())</div>
|
|
540
|
+
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
541
|
+
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  }</div>
|
|
542
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
543
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  }</div>
|
|
544
|
+
<div class="line"><a name="l00543"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a3a10f3327d6473c348df5b62a5d6683f"> 543</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a3a10f3327d6473c348df5b62a5d6683f">containConstantNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CPtSet</a>& cpts)</div>
|
|
545
|
+
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  {</div>
|
|
546
|
+
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="keywordflow">for</span>(<span class="keyword">typename</span> <a class="code" href="classSVF_1_1CondStdSet.html#a55152b7749868cc25f1c3c33ea57a650">CPtSet::const_iterator</a> cit = cpts.<a class="code" href="classSVF_1_1CondStdSet.html#adf095111734d81b6ad1908a7f795b038">begin</a>(), ecit=cpts.<a class="code" href="classSVF_1_1CondStdSet.html#a93c232ef7e5dea652622da7f994e1dc3">end</a>(); cit!=ecit; ++cit)</div>
|
|
547
|
+
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  {</div>
|
|
548
|
+
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <span class="keywordflow">if</span>(cit->get_id() == <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#ac5da3a0cbe040a45d719b6f6a23aed91">getConstantNode</a>())</div>
|
|
549
|
+
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
550
|
+
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  }</div>
|
|
551
|
+
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
552
|
+
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  }</div>
|
|
553
|
+
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a6b746c30161c7dab86510895e0032935">isCondCompatible</a>(<span class="keyword">const</span> Cond& cxt1, <span class="keyword">const</span> Cond& cxt2, <span class="keywordtype">bool</span> singleton) <span class="keyword">const</span> = 0;</div>
|
|
554
|
+
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  </div>
|
|
555
|
+
<div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="classSVF_1_1CondPTAImpl.html#a80daa422e0dacf75aceb4fe5b4687c04"> 556</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CondPTAImpl.html#a80daa422e0dacf75aceb4fe5b4687c04">dumpTopLevelPtsTo</a>()</div>
|
|
556
|
+
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  {</div>
|
|
557
|
+
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keywordflow">for</span> (OrderedNodeSet::iterator nIter = this-><a class="code" href="classSVF_1_1PointerAnalysis.html#a60b111647e000cc983aa52513f90afbc">getAllValidPtrs</a>().begin(); nIter != this-><a class="code" href="classSVF_1_1PointerAnalysis.html#a60b111647e000cc983aa52513f90afbc">getAllValidPtrs</a>().end(); ++nIter)</div>
|
|
558
|
+
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  {</div>
|
|
559
|
+
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = this-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*nIter);</div>
|
|
560
|
+
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()->isValidTopLevelPtr(node))</div>
|
|
561
|
+
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  {</div>
|
|
562
|
+
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keywordflow">if</span> (SVFUtil::isa<DummyObjVar>(node))</div>
|
|
563
|
+
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  {</div>
|
|
564
|
+
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"##<Blackhole or constant> id:"</span> << node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
565
565
|
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  }</div>
|
|
566
|
-
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  </div>
|
|
567
|
-
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> 
|
|
568
|
-
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> 
|
|
569
|
-
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> 
|
|
570
|
-
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> 
|
|
571
|
-
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> 
|
|
572
|
-
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> 
|
|
573
|
-
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <span class="
|
|
574
|
-
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> 
|
|
575
|
-
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> 
|
|
576
|
-
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <
|
|
577
|
-
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> 
|
|
578
|
-
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> 
|
|
579
|
-
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> 
|
|
580
|
-
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> 
|
|
581
|
-
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> 
|
|
582
|
-
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  </div>
|
|
583
|
-
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> 
|
|
584
|
-
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> 
|
|
585
|
-
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> }
|
|
586
|
-
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> 
|
|
587
|
-
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> 
|
|
588
|
-
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  </div>
|
|
589
|
-
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> 
|
|
566
|
+
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!SVFUtil::isa<DummyValVar>(node))</div>
|
|
567
|
+
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  {</div>
|
|
568
|
+
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"##<"</span> << node-><a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>() << <span class="stringliteral">"> "</span>;</div>
|
|
569
|
+
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="comment">//SVFUtil::outs() << "Source Loc: " << SVFUtil::getSourceLoc(node->getValue());</span></div>
|
|
570
|
+
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  }</div>
|
|
571
|
+
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  </div>
|
|
572
|
+
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts = <a class="code" href="classSVF_1_1CondPTAImpl.html#a63fa2b3a96696ffc67a119c1ba5ce748">getPts</a>(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div>
|
|
573
|
+
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\nNodeID "</span> << node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() << <span class="stringliteral">" "</span>;</div>
|
|
574
|
+
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keywordflow">if</span> (pts.<a class="code" href="classSVF_1_1PointsTo.html#a13746982a11d0cab57e5919d53bfbec8">empty</a>())</div>
|
|
575
|
+
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  {</div>
|
|
576
|
+
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\t\tPointsTo: {empty}\n\n"</span>;</div>
|
|
577
|
+
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  }</div>
|
|
578
|
+
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordflow">else</span></div>
|
|
579
|
+
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  {</div>
|
|
580
|
+
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\t\tPointsTo: { "</span>;</div>
|
|
581
|
+
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> it = pts.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(), eit = pts.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>(); it != eit; ++it)</div>
|
|
582
|
+
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << *it << <span class="stringliteral">" "</span>;</div>
|
|
583
|
+
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"}\n\n"</span>;</div>
|
|
584
|
+
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  }</div>
|
|
585
|
+
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  }</div>
|
|
586
|
+
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  }</div>
|
|
587
|
+
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  </div>
|
|
588
|
+
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>().flush();</div>
|
|
589
|
+
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  }</div>
|
|
590
|
+
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> };</div>
|
|
591
|
+
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  </div>
|
|
592
|
+
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> } <span class="comment">// End namespace SVF</span></div>
|
|
593
|
+
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  </div>
|
|
594
|
+
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="preprocessor">#endif </span><span class="comment">/* INCLUDE_MEMORYMODEL_POINTERANALYSISIMPL_H_ */</span><span class="preprocessor"></span></div>
|
|
590
595
|
</div><!-- fragment --></div><!-- contents -->
|
|
591
596
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a8bc5e039958280b18e5a00a56e0bdc94"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a8bc5e039958280b18e5a00a56e0bdc94">SVF::BVDataPTAImpl::VersionedPTDataTy</a></div><div class="ttdeci">VersionedPTData< NodeID, NodeSet, NodeID, PointsTo, VersionedVar, Set< VersionedVar > > VersionedPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00049">PointerAnalysisImpl.h:49</a></div></div>
|
|
592
597
|
<div class="ttc" id="aclassSVF_1_1MutableDiffPTData_html"><div class="ttname"><a href="classSVF_1_1MutableDiffPTData.html">SVF::MutableDiffPTData</a></div><div class="ttdoc">DiffPTData implemented with points-to sets which are updated continuously.</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00227">MutablePointsToDS.h:227</a></div></div>
|
|
593
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a60678dda5071557483b27d09d26dc270"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a60678dda5071557483b27d09d26dc270">SVF::CondPTAImpl::CondPTAImpl</a></div><div class="ttdeci">CondPTAImpl(SVFIR *pag, PointerAnalysis::PTATY type)</div><div class="ttdoc">map a pointer to its conditional points-to set</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
598
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a60678dda5071557483b27d09d26dc270"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a60678dda5071557483b27d09d26dc270">SVF::CondPTAImpl::CondPTAImpl</a></div><div class="ttdeci">CondPTAImpl(SVFIR *pag, PointerAnalysis::PTATY type)</div><div class="ttdoc">map a pointer to its conditional points-to set</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00253">PointerAnalysisImpl.h:253</a></div></div>
|
|
594
599
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a2401b022638769f59f86ab424a189b6e"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">SVF::SVFValue::getName</a></div><div class="ttdeci">const std::string & getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00216">SVFValue.h:216</a></div></div>
|
|
595
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_af960c10e49932ea5e9dcdd299ff300ce"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">SVF::CondPTAImpl::ptD</a></div><div class="ttdeci">PTDataTy * ptD</div><div class="ttdoc">Points-to data.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
600
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_af960c10e49932ea5e9dcdd299ff300ce"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce">SVF::CondPTAImpl::ptD</a></div><div class="ttdeci">PTDataTy * ptD</div><div class="ttdoc">Points-to data.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00457">PointerAnalysisImpl.h:457</a></div></div>
|
|
601
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_afce21c2a8fca8a2eae4883d2fe148cc0"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#afce21c2a8fca8a2eae4883d2fe148cc0">SVF::BVDataPTAImpl::readGepObjVarMapFromFile</a></div><div class="ttdeci">virtual void readGepObjVarMapFromFile(std::ifstream &f)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00343">PointerAnalysisImpl.cpp:343</a></div></div>
|
|
596
602
|
<div class="ttc" id="aclassSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00181">PointsTo.h:181</a></div></div>
|
|
597
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_af3ae2748edfdefaa08a73930bd012d6c"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#af3ae2748edfdefaa08a73930bd012d6c">SVF::CondPTAImpl::MutPTDataTy</a></div><div class="ttdeci">MutablePTData< CVar, Set< CVar >, CVar, CPtSet > MutPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
603
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_af3ae2748edfdefaa08a73930bd012d6c"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#af3ae2748edfdefaa08a73930bd012d6c">SVF::CondPTAImpl::MutPTDataTy</a></div><div class="ttdeci">MutablePTData< CVar, Set< CVar >, CVar, CPtSet > MutPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00247">PointerAnalysisImpl.h:247</a></div></div>
|
|
598
604
|
<div class="ttc" id="aPointerAnalysis_8h_html"><div class="ttname"><a href="PointerAnalysis_8h.html">PointerAnalysis.h</a></div></div>
|
|
605
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a6ca3ab1e32012ef13613f52f27f3c502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a6ca3ab1e32012ef13613f52f27f3c502">SVF::BVDataPTAImpl::writePtsResultToFile</a></div><div class="ttdeci">virtual void writePtsResultToFile(std::fstream &f)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00198">PointerAnalysisImpl.cpp:198</a></div></div>
|
|
599
606
|
<div class="ttc" id="aclassSVF_1_1PTData_html_af7aa22f11558c12ff16612174e2221dd"><div class="ttname"><a href="classSVF_1_1PTData.html#af7aa22f11558c12ff16612174e2221dd">SVF::PTData::unionPts</a></div><div class="ttdeci">virtual bool unionPts(const Key &dstVar, const Key &srcVar)=0</div><div class="ttdoc">Performs pts(dstVar) = pts(dstVar) U pts(srcVar).</div></div>
|
|
600
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ab9c0bb439f98ae11dd178148109697ab"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ab9c0bb439f98ae11dd178148109697ab">SVF::BVDataPTAImpl::getDiffPTDataTy</a></div><div class="ttdeci">DiffPTDataTy * getDiffPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
601
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a5fa3d986e4ef710a2148b2854167c3ed"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a5fa3d986e4ef710a2148b2854167c3ed">SVF::CondPTAImpl::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Release memory.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
602
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a3f2f48fc122c07ff9eb1382aa7a3f966"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a3f2f48fc122c07ff9eb1382aa7a3f966">SVF::CondPTAImpl::CPtSet</a></div><div class="ttdeci">CondStdSet< CVar > CPtSet</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
607
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ab9c0bb439f98ae11dd178148109697ab"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ab9c0bb439f98ae11dd178148109697ab">SVF::BVDataPTAImpl::getDiffPTDataTy</a></div><div class="ttdeci">DiffPTDataTy * getDiffPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00171">PointerAnalysisImpl.h:171</a></div></div>
|
|
608
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a5fa3d986e4ef710a2148b2854167c3ed"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a5fa3d986e4ef710a2148b2854167c3ed">SVF::CondPTAImpl::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Release memory.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00275">PointerAnalysisImpl.h:275</a></div></div>
|
|
609
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a3f2f48fc122c07ff9eb1382aa7a3f966"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a3f2f48fc122c07ff9eb1382aa7a3f966">SVF::CondPTAImpl::CPtSet</a></div><div class="ttdeci">CondStdSet< CVar > CPtSet</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00245">PointerAnalysisImpl.h:245</a></div></div>
|
|
603
610
|
<div class="ttc" id="aclassSVF_1_1PTData_html_a91b898e3547eecfbf1ab155d183734bf"><div class="ttname"><a href="classSVF_1_1PTData.html#a91b898e3547eecfbf1ab155d183734bf">SVF::PTData::dumpPTData</a></div><div class="ttdeci">virtual void dumpPTData()=0</div><div class="ttdoc">Dump stored keys and points-to sets.</div></div>
|
|
604
611
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a638f58c3bf6efdb3787fafaa4e6f19ca"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a638f58c3bf6efdb3787fafaa4e6f19ca">SVF::BVDataPTAImpl::finalize</a></div><div class="ttdeci">void finalize() override</div><div class="ttdoc">Finalization of pointer analysis, and normalize points-to information to Bit Vector representation.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00093">PointerAnalysisImpl.cpp:93</a></div></div>
|
|
605
612
|
<div class="ttc" id="aclassSVF_1_1CondStdSet_html"><div class="ttname"><a href="classSVF_1_1CondStdSet.html">SVF::CondStdSet</a></div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00131">ConditionalPT.h:131</a></div></div>
|
|
606
613
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a7a87ca1a439e871896f92e4342befa2c"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a7a87ca1a439e871896f92e4342befa2c">SVF::BVDataPTAImpl::remapPointsToSets</a></div><div class="ttdeci">void remapPointsToSets(void)</div><div class="ttdoc">Remap all points-to sets to use the current mapping.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00157">PointerAnalysisImpl.cpp:157</a></div></div>
|
|
607
614
|
<div class="ttc" id="aclassSVF_1_1IRGraph_html_a43514023a4f4d0c32f536f51443b0efc"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const SVFValue *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00138">IRGraph.h:138</a></div></div>
|
|
608
615
|
<div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00097">SVFType.h:97</a></div></div>
|
|
609
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a94f3e4d073b8c5bab3c46058ddba3f43"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a94f3e4d073b8c5bab3c46058ddba3f43">SVF::CondPTAImpl::getBVPointsTo</a></div><div class="ttdeci">virtual PointsTo getBVPointsTo(const CPtSet &cpts) const</div><div class="ttdoc">Given a conditional pts return its bit vector points-to.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
616
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a94f3e4d073b8c5bab3c46058ddba3f43"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a94f3e4d073b8c5bab3c46058ddba3f43">SVF::CondPTAImpl::getBVPointsTo</a></div><div class="ttdeci">virtual PointsTo getBVPointsTo(const CPtSet &cpts) const</div><div class="ttdoc">Given a conditional pts return its bit vector points-to.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00473">PointerAnalysisImpl.h:473</a></div></div>
|
|
610
617
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a4426df37aeabeb94d301373b55a53c20"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a4426df37aeabeb94d301373b55a53c20">SVF::BVDataPTAImpl::clearAllPts</a></div><div class="ttdeci">virtual void clearAllPts()</div><div class="ttdoc">Clear all data.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00128">PointerAnalysisImpl.h:128</a></div></div>
|
|
611
618
|
<div class="ttc" id="anamespaceSVF_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="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
|
|
612
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a7a1be735c76ba4a6b235264fe8ec6c28"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a7a1be735c76ba4a6b235264fe8ec6c28">SVF::CondPTAImpl::isSameVar</a></div><div class="ttdeci">bool isSameVar(const CVar &var1, const CVar &var2) const</div><div class="ttdoc">Whether two pointers/objects are the same one by considering their conditions.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
613
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a0da0602c5b260afaba4bef1abcbcf7b3"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a0da0602c5b260afaba4bef1abcbcf7b3">SVF::CondPTAImpl::getRevPts</a></div><div class="ttdeci">virtual const Set< CVar > & getRevPts(CVar nodeId)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
619
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a7a1be735c76ba4a6b235264fe8ec6c28"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a7a1be735c76ba4a6b235264fe8ec6c28">SVF::CondPTAImpl::isSameVar</a></div><div class="ttdeci">bool isSameVar(const CVar &var1, const CVar &var2) const</div><div class="ttdoc">Whether two pointers/objects are the same one by considering their conditions.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00423">PointerAnalysisImpl.h:423</a></div></div>
|
|
620
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a0da0602c5b260afaba4bef1abcbcf7b3"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a0da0602c5b260afaba4bef1abcbcf7b3">SVF::CondPTAImpl::getRevPts</a></div><div class="ttdeci">virtual const Set< CVar > & getRevPts(CVar nodeId)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00312">PointerAnalysisImpl.h:312</a></div></div>
|
|
614
621
|
<div class="ttc" id="aclassSVF_1_1MutablePTData_html"><div class="ttname"><a href="classSVF_1_1MutablePTData.html">SVF::MutablePTData</a></div><div class="ttdoc">PTData implemented using points-to sets which are created once and updated continuously.</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00053">MutablePointsToDS.h:53</a></div></div>
|
|
615
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a2026cffd7043208333083ed1a6603e7b"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a2026cffd7043208333083ed1a6603e7b">SVF::BVDataPTAImpl::normalizePointsTo</a></div><div class="ttdeci">virtual void normalizePointsTo()</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#
|
|
622
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a2026cffd7043208333083ed1a6603e7b"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a2026cffd7043208333083ed1a6603e7b">SVF::BVDataPTAImpl::normalizePointsTo</a></div><div class="ttdeci">virtual void normalizePointsTo()</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00515">PointerAnalysisImpl.cpp:515</a></div></div>
|
|
616
623
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_acfdb43f20bbcababc928cc4df93a8483"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#acfdb43f20bbcababc928cc4df93a8483">SVF::BVDataPTAImpl::PTDataTy</a></div><div class="ttdeci">PTData< NodeID, NodeSet, NodeID, PointsTo > PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00046">PointerAnalysisImpl.h:46</a></div></div>
|
|
617
624
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a4a67cd071bc08d2150534e631a0a06ed"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a4a67cd071bc08d2150534e631a0a06ed">SVF::BVDataPTAImpl::~BVDataPTAImpl</a></div><div class="ttdeci">~BVDataPTAImpl() override=default</div><div class="ttdoc">Destructor.</div></div>
|
|
618
625
|
<div class="ttc" id="acJSON_8cpp_html_a65e9886d74aaee76545e83dd09011727"><div class="ttname"><a href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a></div><div class="ttdeci">#define false</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00070">cJSON.cpp:70</a></div></div>
|
|
619
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a167a232a697976602c2ad0eb6d35c2d6"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a167a232a697976602c2ad0eb6d35c2d6">SVF::CondPTAImpl::alias</a></div><div class="ttdeci">virtual AliasResult alias(const SVFValue *V1, const SVFValue *V2)</div><div class="ttdoc">Interface expose to users of our pointer analysis, given Value infos.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
626
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a167a232a697976602c2ad0eb6d35c2d6"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a167a232a697976602c2ad0eb6d35c2d6">SVF::CondPTAImpl::alias</a></div><div class="ttdeci">virtual AliasResult alias(const SVFValue *V1, const SVFValue *V2)</div><div class="ttdoc">Interface expose to users of our pointer analysis, given Value infos.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00500">PointerAnalysisImpl.h:500</a></div></div>
|
|
620
627
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ae028ae29bdc799f35777b82a39faf5e8"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ae028ae29bdc799f35777b82a39faf5e8">SVF::BVDataPTAImpl::PersVersionedPTDataTy</a></div><div class="ttdeci">PersistentVersionedPTData< NodeID, NodeSet, NodeID, PointsTo, VersionedVar, Set< VersionedVar > > PersVersionedPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00061">PointerAnalysisImpl.h:61</a></div></div>
|
|
621
628
|
<div class="ttc" id="aclassSVF_1_1PersistentDiffPTData_html"><div class="ttname"><a href="classSVF_1_1PersistentDiffPTData.html">SVF::PersistentDiffPTData</a></div><div class="ttdoc">DiffPTData implemented with a persistent points-to backing.</div><div class="ttdef"><b>Definition:</b> <a href="PersistentPointsToDS_8h_source.html#l00200">PersistentPointsToDS.h:200</a></div></div>
|
|
622
629
|
<div class="ttc" id="aclassSVF_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#l00058">PointerAnalysis.h:58</a></div></div>
|
|
@@ -626,149 +633,152 @@ $(function() {
|
|
|
626
633
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a639446e6bf9712afa439d089b94aefae"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a639446e6bf9712afa439d089b94aefae">SVF::BVDataPTAImpl::MutIncDFPTDataTy</a></div><div class="ttdeci">MutableIncDFPTData< NodeID, NodeSet, NodeID, PointsTo > MutIncDFPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00054">PointerAnalysisImpl.h:54</a></div></div>
|
|
627
634
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a7087f9d5a1a5b3576173bd6a7fd72163"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a7087f9d5a1a5b3576173bd6a7fd72163">SVF::BVDataPTAImpl::PersDFPTDataTy</a></div><div class="ttdeci">PersistentDFPTData< NodeID, NodeSet, NodeID, PointsTo > PersDFPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00059">PointerAnalysisImpl.h:59</a></div></div>
|
|
628
635
|
<div class="ttc" id="anamespaceSVF_html_a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">SVF::NoAlias</a></div><div class="ttdeci">@ NoAlias</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00587">SVFType.h:587</a></div></div>
|
|
629
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_acbb979edee9427efa2a7c0dbd881c483"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">SVF::BVDataPTAImpl::getMutDFPTDataTy</a></div><div class="ttdeci">MutDFPTDataTy * getMutDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
636
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_acbb979edee9427efa2a7c0dbd881c483"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">SVF::BVDataPTAImpl::getMutDFPTDataTy</a></div><div class="ttdeci">MutDFPTDataTy * getMutDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00185">PointerAnalysisImpl.h:185</a></div></div>
|
|
630
637
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html_ac2db6304ea5526fb446ae882983beeb0"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">SVF::SVFVar::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const</div><div class="ttdoc">Get/has methods of the components.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00094">SVFVariables.h:94</a></div></div>
|
|
631
638
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01115">SparseBitVector.h:1115</a></div></div>
|
|
632
639
|
<div class="ttc" id="aclassSVF_1_1MutableVersionedPTData_html"><div class="ttname"><a href="classSVF_1_1MutableVersionedPTData.html">SVF::MutableVersionedPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00892">MutablePointsToDS.h:892</a></div></div>
|
|
633
640
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ad76328a8543b02784992afc2d5501d8a"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ad76328a8543b02784992afc2d5501d8a">SVF::BVDataPTAImpl::PTBackingType</a></div><div class="ttdeci">PTBackingType</div><div class="ttdoc">How the PTData used is implemented.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00064">PointerAnalysisImpl.h:64</a></div></div>
|
|
634
641
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00459">SparseBitVector.h:459</a></div></div>
|
|
635
642
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a118dabc50024b5cd91095814ade47166"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a118dabc50024b5cd91095814ade47166">SVF::PointerAnalysis::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalization of a pointer analysis, including checking alias correctness.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00180">PointerAnalysis.cpp:180</a></div></div>
|
|
636
|
-
<div class="ttc" id="
|
|
643
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a4ad982a53fbf62c5513afe63b2435fa5"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a4ad982a53fbf62c5513afe63b2435fa5">SVF::BVDataPTAImpl::readAndSetObjFieldSensitivity</a></div><div class="ttdeci">virtual void readAndSetObjFieldSensitivity(std::ifstream &f, const std::string &delimiterStr)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00379">PointerAnalysisImpl.cpp:379</a></div></div>
|
|
644
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a30b9ee7b1dcd04285f92cf7accd05b2e"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a30b9ee7b1dcd04285f92cf7accd05b2e">SVF::CondPTAImpl::ptrToBVPtsMap</a></div><div class="ttdeci">PtrToBVPtsMap ptrToBVPtsMap</div><div class="ttdoc">Normal points-to representation (without conditions)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00461">PointerAnalysisImpl.h:461</a></div></div>
|
|
637
645
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ac0c0855918cb2cdc3d8ebc175acfbd4da88380bb05f60a1349e192364ba6c5292"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac0c0855918cb2cdc3d8ebc175acfbd4da88380bb05f60a1349e192364ba6c5292">SVF::PointerAnalysis::CondImpl</a></div><div class="ttdeci">@ CondImpl</div><div class="ttdoc">Represents CondPTAImpl.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00098">PointerAnalysis.h:98</a></div></div>
|
|
638
646
|
<div class="ttc" id="aclassSVF_1_1DFPTData_html"><div class="ttname"><a href="classSVF_1_1DFPTData.html">SVF::DFPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00194">AbstractPointsToDS.h:194</a></div></div>
|
|
639
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_aba828ca8e2aa2bd71b78be8b45a48c9b"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#aba828ca8e2aa2bd71b78be8b45a48c9b">SVF::CondPTAImpl::PtrToBVPtsMap</a></div><div class="ttdeci">Map< NodeID, PointsTo > PtrToBVPtsMap</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
647
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_aba828ca8e2aa2bd71b78be8b45a48c9b"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#aba828ca8e2aa2bd71b78be8b45a48c9b">SVF::CondPTAImpl::PtrToBVPtsMap</a></div><div class="ttdeci">Map< NodeID, PointsTo > PtrToBVPtsMap</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00248">PointerAnalysisImpl.h:248</a></div></div>
|
|
640
648
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00180">GenericGraph.h:180</a></div></div>
|
|
641
649
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a60b111647e000cc983aa52513f90afbc"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a60b111647e000cc983aa52513f90afbc">SVF::PointerAnalysis::getAllValidPtrs</a></div><div class="ttdeci">OrderedNodeSet & getAllValidPtrs()</div><div class="ttdoc">Get all Valid Pointers for resolution.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00218">PointerAnalysis.h:218</a></div></div>
|
|
642
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a94acf249e50ad56f966ddad6843c18f8"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a94acf249e50ad56f966ddad6843c18f8">SVF::BVDataPTAImpl::ptCache</a></div><div class="ttdeci">PersistentPointsToCache< PointsTo > ptCache</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
643
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_aa945d068c8935fc6926833fdf102e21c"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#aa945d068c8935fc6926833fdf102e21c">SVF::CondPTAImpl::normalizePointsTo</a></div><div class="ttdeci">virtual void normalizePointsTo()</div><div class="ttdoc">Normalize points-to information to BitVector/conditional representation.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
650
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a94acf249e50ad56f966ddad6843c18f8"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a94acf249e50ad56f966ddad6843c18f8">SVF::BVDataPTAImpl::ptCache</a></div><div class="ttdeci">PersistentPointsToCache< PointsTo > ptCache</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00210">PointerAnalysisImpl.h:210</a></div></div>
|
|
651
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_aa945d068c8935fc6926833fdf102e21c"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#aa945d068c8935fc6926833fdf102e21c">SVF::CondPTAImpl::normalizePointsTo</a></div><div class="ttdeci">virtual void normalizePointsTo()</div><div class="ttdoc">Normalize points-to information to BitVector/conditional representation.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00435">PointerAnalysisImpl.h:435</a></div></div>
|
|
644
652
|
<div class="ttc" id="anamespaceSVF_html_a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">SVF::MayAlias</a></div><div class="ttdeci">@ MayAlias</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00588">SVFType.h:588</a></div></div>
|
|
645
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a8e48e9fe6f7e21da49a155f8f6893944"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a8e48e9fe6f7e21da49a155f8f6893944">SVF::CondPTAImpl::alias</a></div><div class="ttdeci">virtual AliasResult alias(const CPtSet &pts1, const CPtSet &pts2)</div><div class="ttdoc">Interface expose to users of our pointer analysis, given two conditional points-to sets.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
653
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a8e48e9fe6f7e21da49a155f8f6893944"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a8e48e9fe6f7e21da49a155f8f6893944">SVF::CondPTAImpl::alias</a></div><div class="ttdeci">virtual AliasResult alias(const CPtSet &pts1, const CPtSet &pts2)</div><div class="ttdoc">Interface expose to users of our pointer analysis, given two conditional points-to sets.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00515">PointerAnalysisImpl.h:515</a></div></div>
|
|
646
654
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ab0e1242aadfe1e16a2bd1445658a5476"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ab0e1242aadfe1e16a2bd1445658a5476">SVF::BVDataPTAImpl::BVDataPTAImpl</a></div><div class="ttdeci">BVDataPTAImpl(SVFIR *pag, PointerAnalysis::PTATY type, bool alias_check=true)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00046">PointerAnalysisImpl.cpp:46</a></div></div>
|
|
647
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a979486e35b529fbc62b2974899627113"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a979486e35b529fbc62b2974899627113">SVF::CondPTAImpl::getPtsMap</a></div><div class="ttdeci">const MutPTDataTy::PtsMap & getPtsMap() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
648
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a80daa422e0dacf75aceb4fe5b4687c04"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a80daa422e0dacf75aceb4fe5b4687c04">SVF::CondPTAImpl::dumpTopLevelPtsTo</a></div><div class="ttdeci">void dumpTopLevelPtsTo()</div><div class="ttdoc">Dump points-to information of top-level pointers.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
655
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a979486e35b529fbc62b2974899627113"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a979486e35b529fbc62b2974899627113">SVF::CondPTAImpl::getPtsMap</a></div><div class="ttdeci">const MutPTDataTy::PtsMap & getPtsMap() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00299">PointerAnalysisImpl.h:299</a></div></div>
|
|
656
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a80daa422e0dacf75aceb4fe5b4687c04"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a80daa422e0dacf75aceb4fe5b4687c04">SVF::CondPTAImpl::dumpTopLevelPtsTo</a></div><div class="ttdeci">void dumpTopLevelPtsTo()</div><div class="ttdoc">Dump points-to information of top-level pointers.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00556">PointerAnalysisImpl.h:556</a></div></div>
|
|
649
657
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ac130bf326911b8e5396f57daa78566e7"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ac130bf326911b8e5396f57daa78566e7">SVF::BVDataPTAImpl::MutDFPTDataTy</a></div><div class="ttdeci">MutableDFPTData< NodeID, NodeSet, NodeID, PointsTo > MutDFPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00053">PointerAnalysisImpl.h:53</a></div></div>
|
|
650
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_adb1ed3728d53a13c94402392155e9913"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#adb1ed3728d53a13c94402392155e9913">SVF::CondPTAImpl::alias</a></div><div class="ttdeci">virtual AliasResult alias(const CVar &var1, const CVar &var2)</div><div class="ttdoc">Interface expose to users of our pointer analysis, given conditional variables.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
658
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_adb1ed3728d53a13c94402392155e9913"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#adb1ed3728d53a13c94402392155e9913">SVF::CondPTAImpl::alias</a></div><div class="ttdeci">virtual AliasResult alias(const CVar &var1, const CVar &var2)</div><div class="ttdoc">Interface expose to users of our pointer analysis, given conditional variables.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00510">PointerAnalysisImpl.h:510</a></div></div>
|
|
651
659
|
<div class="ttc" id="aclassSVF_1_1MutableIncDFPTData_html"><div class="ttname"><a href="classSVF_1_1MutableIncDFPTData.html">SVF::MutableIncDFPTData</a></div><div class="ttdoc">Incremental version of the mutable data-flow points-to data structure.</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00682">MutablePointsToDS.h:682</a></div></div>
|
|
652
660
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ac0c0855918cb2cdc3d8ebc175acfbd4da84705167ea3a7162ecb9470a8a77b5d8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac0c0855918cb2cdc3d8ebc175acfbd4da84705167ea3a7162ecb9470a8a77b5d8">SVF::PointerAnalysis::BVDataImpl</a></div><div class="ttdeci">@ BVDataImpl</div><div class="ttdoc">Represents BVDataPTAImpl.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00097">PointerAnalysis.h:97</a></div></div>
|
|
653
661
|
<div class="ttc" id="aclassSVF_1_1CondStdSet_html_adf095111734d81b6ad1908a7f795b038"><div class="ttname"><a href="classSVF_1_1CondStdSet.html#adf095111734d81b6ad1908a7f795b038">SVF::CondStdSet::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators.</div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00192">ConditionalPT.h:192</a></div></div>
|
|
654
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a4ad5da56c8b7bc75bf2dc30a1bcf1552"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a4ad5da56c8b7bc75bf2dc30a1bcf1552">SVF::CondPTAImpl::unionPts</a></div><div class="ttdeci">virtual bool unionPts(CVar id, CVar ptd)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
662
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a4ad5da56c8b7bc75bf2dc30a1bcf1552"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a4ad5da56c8b7bc75bf2dc30a1bcf1552">SVF::CondPTAImpl::unionPts</a></div><div class="ttdeci">virtual bool unionPts(CVar id, CVar ptd)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00372">PointerAnalysisImpl.h:372</a></div></div>
|
|
655
663
|
<div class="ttc" id="aclassSVF_1_1CondVar_html_a5d64fa2be89051cd03301e3b07bffd6a"><div class="ttname"><a href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">SVF::CondVar::get_id</a></div><div class="ttdeci">NodeID get_id() const</div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00104">ConditionalPT.h:104</a></div></div>
|
|
656
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_ab582d46731c06a7fa022bf301d6008c1"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#ab582d46731c06a7fa022bf301d6008c1">SVF::CondPTAImpl::getMutPTDataTy</a></div><div class="ttdeci">MutPTDataTy * getMutPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
657
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a77a6bb9335aa12d29825af1b5ea07e08"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">SVF::SVFIR::getBaseObjVar</a></div><div class="ttdeci">NodeID getBaseObjVar(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#
|
|
664
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_ab582d46731c06a7fa022bf301d6008c1"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#ab582d46731c06a7fa022bf301d6008c1">SVF::CondPTAImpl::getMutPTDataTy</a></div><div class="ttdeci">MutPTDataTy * getMutPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00287">PointerAnalysisImpl.h:287</a></div></div>
|
|
665
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a77a6bb9335aa12d29825af1b5ea07e08"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">SVF::SVFIR::getBaseObjVar</a></div><div class="ttdeci">NodeID getBaseObjVar(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00445">SVFIR.h:445</a></div></div>
|
|
658
666
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00150">SVFValue.h:150</a></div></div>
|
|
659
667
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ad76328a8543b02784992afc2d5501d8aaeda0ee502cc42a07c64c6f09296b6640"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ad76328a8543b02784992afc2d5501d8aaeda0ee502cc42a07c64c6f09296b6640">SVF::BVDataPTAImpl::Persistent</a></div><div class="ttdeci">@ Persistent</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00067">PointerAnalysisImpl.h:67</a></div></div>
|
|
660
668
|
<div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
661
669
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a533384bd2eb8a1589ba8b7695c759073"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a533384bd2eb8a1589ba8b7695c759073">SVF::BVDataPTAImpl::MutPTDataTy</a></div><div class="ttdeci">MutablePTData< NodeID, NodeSet, NodeID, PointsTo > MutPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00051">PointerAnalysisImpl.h:51</a></div></div>
|
|
662
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_ac18e1dc9c6fc8cc952f67a93c2491876"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#ac18e1dc9c6fc8cc952f67a93c2491876">SVF::CondPTAImpl::alias</a></div><div class="ttdeci">virtual AliasResult alias(NodeID node1, NodeID node2)</div><div class="ttdoc">Interface expose to users of our pointer analysis, given two pointers.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
670
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_ac18e1dc9c6fc8cc952f67a93c2491876"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#ac18e1dc9c6fc8cc952f67a93c2491876">SVF::CondPTAImpl::alias</a></div><div class="ttdeci">virtual AliasResult alias(NodeID node1, NodeID node2)</div><div class="ttdoc">Interface expose to users of our pointer analysis, given two pointers.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00505">PointerAnalysisImpl.h:505</a></div></div>
|
|
663
671
|
<div class="ttc" id="aclassSVF_1_1PTData_html_ab6146f5582946c08568f3a8d45e57b03"><div class="ttname"><a href="classSVF_1_1PTData.html#ab6146f5582946c08568f3a8d45e57b03">SVF::PTData::getRevPts</a></div><div class="ttdeci">virtual const KeySet & getRevPts(const Data &datum)=0</div><div class="ttdoc">Get reverse points-to set of a datum.</div></div>
|
|
664
672
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_afaeae813ff38e010bbe8fe61befb345c"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#afaeae813ff38e010bbe8fe61befb345c">SVF::BVDataPTAImpl::getPtCache</a></div><div class="ttdeci">PersistentPointsToCache< PointsTo > & getPtCache()</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00076">PointerAnalysisImpl.h:76</a></div></div>
|
|
665
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_af71b4ec9844701582d997466c2e4d94f"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#af71b4ec9844701582d997466c2e4d94f">SVF::CondPTAImpl::CVar</a></div><div class="ttdeci">CondVar< Cond > CVar</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
673
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_af71b4ec9844701582d997466c2e4d94f"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#af71b4ec9844701582d997466c2e4d94f">SVF::CondPTAImpl::CVar</a></div><div class="ttdeci">CondVar< Cond > CVar</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00244">PointerAnalysisImpl.h:244</a></div></div>
|
|
666
674
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_af68485a2208553579f9c2e4b2cb20cff"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#af68485a2208553579f9c2e4b2cb20cff">SVF::BVDataPTAImpl::addPts</a></div><div class="ttdeci">virtual bool addPts(NodeID id, NodeID ptd)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00121">PointerAnalysisImpl.h:121</a></div></div>
|
|
667
675
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a7fde3e9b189e988cd0a24d567b136e13"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a7fde3e9b189e988cd0a24d567b136e13">SVF::BVDataPTAImpl::MutVersionedPTDataTy</a></div><div class="ttdeci">MutableVersionedPTData< NodeID, NodeSet, NodeID, PointsTo, VersionedVar, Set< VersionedVar > > MutVersionedPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00055">PointerAnalysisImpl.h:55</a></div></div>
|
|
668
676
|
<div class="ttc" id="acJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
|
|
669
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a838c3f2be39d278072f7a9df7c0bcb4d"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a838c3f2be39d278072f7a9df7c0bcb4d">SVF::CondPTAImpl::PtrToNSMap</a></div><div class="ttdeci">Map< NodeID, NodeSet > PtrToNSMap</div><div class="ttdoc">map a pointer to its BitVector points-to representation</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
677
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a838c3f2be39d278072f7a9df7c0bcb4d"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a838c3f2be39d278072f7a9df7c0bcb4d">SVF::CondPTAImpl::PtrToNSMap</a></div><div class="ttdeci">Map< NodeID, NodeSet > PtrToNSMap</div><div class="ttdoc">map a pointer to its BitVector points-to representation</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00249">PointerAnalysisImpl.h:249</a></div></div>
|
|
670
678
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ac0f821cfe4fb9c9c8816e7a1b1bc0c5e"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac0f821cfe4fb9c9c8816e7a1b1bc0c5e">SVF::PointerAnalysis::getImplTy</a></div><div class="ttdeci">PTAImplTy getImplTy() const</div><div class="ttdoc">Return implementation type of the pointer analysis.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00194">PointerAnalysis.h:194</a></div></div>
|
|
671
679
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_abd8bb73e9beac5e39667091b1e211bd3"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#abd8bb73e9beac5e39667091b1e211bd3">SVF::BVDataPTAImpl::DiffPTDataTy</a></div><div class="ttdeci">DiffPTData< NodeID, NodeSet, NodeID, PointsTo > DiffPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00047">PointerAnalysisImpl.h:47</a></div></div>
|
|
672
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a8cd7b08bd978513cb0faacc47bbaf578"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a8cd7b08bd978513cb0faacc47bbaf578">SVF::CondPTAImpl::containBlackHoleNode</a></div><div class="ttdeci">bool containBlackHoleNode(const CPtSet &cpts)</div><div class="ttdoc">Test blk node for cpts.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
680
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a8cd7b08bd978513cb0faacc47bbaf578"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a8cd7b08bd978513cb0faacc47bbaf578">SVF::CondPTAImpl::containBlackHoleNode</a></div><div class="ttdeci">bool containBlackHoleNode(const CPtSet &cpts)</div><div class="ttdoc">Test blk node for cpts.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00533">PointerAnalysisImpl.h:533</a></div></div>
|
|
673
681
|
<div class="ttc" id="aclassSVF_1_1PTData_html"><div class="ttname"><a href="classSVF_1_1PTData.html">SVF::PTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00074">AbstractPointsToDS.h:74</a></div></div>
|
|
674
682
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html">SVF::BVDataPTAImpl</a></div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00042">PointerAnalysisImpl.h:42</a></div></div>
|
|
675
|
-
<div class="ttc" id="
|
|
683
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_af4e17ce3667d40d1a377508a275af384"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#af4e17ce3667d40d1a377508a275af384">SVF::BVDataPTAImpl::readPtsResultFromFile</a></div><div class="ttdeci">virtual void readPtsResultFromFile(std::ifstream &f)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00289">PointerAnalysisImpl.cpp:289</a></div></div>
|
|
684
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_ab4115f25e2e477bfd73d01f069f47241"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#ab4115f25e2e477bfd73d01f069f47241">SVF::CondPTAImpl::normalized</a></div><div class="ttdeci">bool normalized</div><div class="ttdoc">Normalized flag.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00459">PointerAnalysisImpl.h:459</a></div></div>
|
|
676
685
|
<div class="ttc" id="aclassSVF_1_1PTData_html_ac1b9dc035fb0bdf468c7d14b9f9d437a"><div class="ttname"><a href="classSVF_1_1PTData.html#ac1b9dc035fb0bdf468c7d14b9f9d437a">SVF::PTData::addPts</a></div><div class="ttdeci">virtual bool addPts(const Key &var, const Data &element)=0</div><div class="ttdoc">Adds element to the points-to set associated with var.</div></div>
|
|
677
686
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a35bd5f0fb2c146199e9f1aa6a19b4062"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">SVF::PointerAnalysis::CallEdgeMap</a></div><div class="ttdeci">OrderedMap< const CallICFGNode *, FunctionSet > CallEdgeMap</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00106">PointerAnalysis.h:106</a></div></div>
|
|
678
687
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a0ab6564c48897595c9d23382a026e0a8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a0ab6564c48897595c9d23382a026e0a8">SVF::PointerAnalysis::Cxt_DDA</a></div><div class="ttdeci">@ Cxt_DDA</div><div class="ttdoc">context sensitive DDA</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00087">PointerAnalysis.h:87</a></div></div>
|
|
679
688
|
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a6b746c30161c7dab86510895e0032935"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a6b746c30161c7dab86510895e0032935">SVF::CondPTAImpl::isCondCompatible</a></div><div class="ttdeci">virtual bool isCondCompatible(const Cond &cxt1, const Cond &cxt2, bool singleton) const =0</div><div class="ttdoc">Whether two conditions are compatible (to be implemented by child class)</div></div>
|
|
680
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a290501006cb700db0e07dc577429c928"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a290501006cb700db0e07dc577429c928">SVF::BVDataPTAImpl::readFromFile</a></div><div class="ttdeci">virtual bool readFromFile(const std::string &filename)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#
|
|
681
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a7996a2c07b015e8557398ec10db1acef"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a7996a2c07b015e8557398ec10db1acef">SVF::BVDataPTAImpl::dumpAllPts</a></div><div class="ttdeci">void dumpAllPts() override</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#
|
|
689
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a290501006cb700db0e07dc577429c928"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a290501006cb700db0e07dc577429c928">SVF::BVDataPTAImpl::readFromFile</a></div><div class="ttdeci">virtual bool readFromFile(const std::string &filename)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00405">PointerAnalysisImpl.cpp:405</a></div></div>
|
|
690
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a7996a2c07b015e8557398ec10db1acef"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a7996a2c07b015e8557398ec10db1acef">SVF::BVDataPTAImpl::dumpAllPts</a></div><div class="ttdeci">void dumpAllPts() override</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00471">PointerAnalysisImpl.cpp:471</a></div></div>
|
|
682
691
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ae3ba6392560e5c0978335151c3373fd1"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ae3ba6392560e5c0978335151c3373fd1">SVF::BVDataPTAImpl::PersPTDataTy</a></div><div class="ttdeci">PersistentPTData< NodeID, NodeSet, NodeID, PointsTo > PersPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00057">PointerAnalysisImpl.h:57</a></div></div>
|
|
683
692
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85acaf0c0774025005647deaf59582b9d58"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85acaf0c0774025005647deaf59582b9d58">SVF::PointerAnalysis::PathS_DDA</a></div><div class="ttdeci">@ PathS_DDA</div><div class="ttdoc">Guarded value-flow DDA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00086">PointerAnalysis.h:86</a></div></div>
|
|
684
693
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html_ab196d86cfb48d1c5d27a0c03c7497afa"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">SVF::PointsTo::set</a></div><div class="ttdeci">void set(u32_t n)</div><div class="ttdoc">Inserts n in the set.</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00157">PointsTo.cpp:157</a></div></div>
|
|
685
694
|
<div class="ttc" id="aclassSVF_1_1IRGraph_html_ac5da3a0cbe040a45d719b6f6a23aed91"><div class="ttname"><a href="classSVF_1_1IRGraph.html#ac5da3a0cbe040a45d719b6f6a23aed91">SVF::IRGraph::getConstantNode</a></div><div class="ttdeci">NodeID getConstantNode() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00166">IRGraph.h:166</a></div></div>
|
|
686
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a01f64600bf6581403836019e4e5ae741"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a01f64600bf6581403836019e4e5ae741">SVF::CondPTAImpl::~CondPTAImpl</a></div><div class="ttdeci">virtual ~CondPTAImpl()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
695
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a01f64600bf6581403836019e4e5ae741"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a01f64600bf6581403836019e4e5ae741">SVF::CondPTAImpl::~CondPTAImpl</a></div><div class="ttdeci">virtual ~CondPTAImpl()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00264">PointerAnalysisImpl.h:264</a></div></div>
|
|
687
696
|
<div class="ttc" id="aclassSVF_1_1CondStdSet_html_a0305cbf452b4e858e464023727417d76"><div class="ttname"><a href="classSVF_1_1CondStdSet.html#a0305cbf452b4e858e464023727417d76">SVF::CondStdSet::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdoc">Set size.</div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00170">ConditionalPT.h:170</a></div></div>
|
|
688
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a597e9c4e76f358c36d4b820c4d69ebc6"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a597e9c4e76f358c36d4b820c4d69ebc6">SVF::CondPTAImpl::hasPtsMap</a></div><div class="ttdeci">bool hasPtsMap(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
697
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a597e9c4e76f358c36d4b820c4d69ebc6"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a597e9c4e76f358c36d4b820c4d69ebc6">SVF::CondPTAImpl::hasPtsMap</a></div><div class="ttdeci">bool hasPtsMap(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00294">PointerAnalysisImpl.h:294</a></div></div>
|
|
689
698
|
<div class="ttc" id="aclassSVF_1_1IRGraph_html_a3ce34b9fcb651689bce44ab48fbcdff0"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">SVF::IRGraph::getBlackHoleNode</a></div><div class="ttdeci">NodeID getBlackHoleNode() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00162">IRGraph.h:162</a></div></div>
|
|
690
699
|
<div class="ttc" id="anamespaceSVF_html_a61c01e2e687ab3a001fb806737583943"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">SVF::AliasResult</a></div><div class="ttdeci">AliasResult</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00585">SVFType.h:585</a></div></div>
|
|
691
700
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a6ba68138c10d1fbe5be6346c8dfeca74"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a6ba68138c10d1fbe5be6346c8dfeca74">SVF::BVDataPTAImpl::classof</a></div><div class="ttdeci">static bool classof(const PointerAnalysis *pta)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00081">PointerAnalysisImpl.h:81</a></div></div>
|
|
692
701
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
|
|
693
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a1a95d1d6ac48157c896d9895cff697b4"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a1a95d1d6ac48157c896d9895cff697b4">SVF::CondPTAImpl::unionPts</a></div><div class="ttdeci">virtual bool unionPts(CVar id, const CPtSet &target)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
702
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a1a95d1d6ac48157c896d9895cff697b4"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a1a95d1d6ac48157c896d9895cff697b4">SVF::CondPTAImpl::unionPts</a></div><div class="ttdeci">virtual bool unionPts(CVar id, const CPtSet &target)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00367">PointerAnalysisImpl.h:367</a></div></div>
|
|
694
703
|
<div class="ttc" id="aclassSVF_1_1PersistentPointsToCache_html"><div class="ttname"><a href="classSVF_1_1PersistentPointsToCache.html">SVF::PersistentPointsToCache</a></div><div class="ttdef"><b>Definition:</b> <a href="PersistentPointsToCache_8h_source.html#l00032">PersistentPointsToCache.h:32</a></div></div>
|
|
695
704
|
<div class="ttc" id="aclassSVF_1_1PTData_html_a9ae6037637d8b9acb323333f491f4a7d"><div class="ttname"><a href="classSVF_1_1PTData.html#a9ae6037637d8b9acb323333f491f4a7d">SVF::PTData::getPts</a></div><div class="ttdeci">virtual const DataSet & getPts(const Key &var)=0</div><div class="ttdoc">Get points-to set of var.</div></div>
|
|
696
705
|
<div class="ttc" id="aclassSVF_1_1PersistentIncDFPTData_html"><div class="ttname"><a href="classSVF_1_1PersistentIncDFPTData.html">SVF::PersistentIncDFPTData</a></div><div class="ttdoc">Incremental version of the persistent data-flow points-to data structure.</div><div class="ttdef"><b>Definition:</b> <a href="PersistentPointsToDS_8h_source.html#l00028">PersistentPointsToDS.h:28</a></div></div>
|
|
697
706
|
<div class="ttc" id="aclassSVF_1_1CondVar_html_af84e7bfcff909009be5e109c600c63fe"><div class="ttname"><a href="classSVF_1_1CondVar.html#af84e7bfcff909009be5e109c600c63fe">SVF::CondVar::get_cond</a></div><div class="ttdeci">const Cond & get_cond() const</div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00100">ConditionalPT.h:100</a></div></div>
|
|
698
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a5af00bb26800882ab96c470ee9fc4632"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a5af00bb26800882ab96c470ee9fc4632">SVF::CondPTAImpl::contains</a></div><div class="ttdeci">bool contains(const CPtSet &cpts1, const CPtSet &cpts2)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
707
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a5af00bb26800882ab96c470ee9fc4632"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a5af00bb26800882ab96c470ee9fc4632">SVF::CondPTAImpl::contains</a></div><div class="ttdeci">bool contains(const CPtSet &cpts1, const CPtSet &cpts2)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00400">PointerAnalysisImpl.h:400</a></div></div>
|
|
699
708
|
<div class="ttc" id="aclassSVF_1_1DiffPTData_html"><div class="ttname"><a href="classSVF_1_1DiffPTData.html">SVF::DiffPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00149">AbstractPointsToDS.h:149</a></div></div>
|
|
700
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a236d3e9c894fd7c34c8d7a77ac11dd48"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a236d3e9c894fd7c34c8d7a77ac11dd48">SVF::BVDataPTAImpl::alias</a></div><div class="ttdeci">AliasResult alias(const SVFValue *V1, const SVFValue *V2) override</div><div class="ttdoc">Interface expose to users of our pointer analysis, given Value infos.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#
|
|
709
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a236d3e9c894fd7c34c8d7a77ac11dd48"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a236d3e9c894fd7c34c8d7a77ac11dd48">SVF::BVDataPTAImpl::alias</a></div><div class="ttdeci">AliasResult alias(const SVFValue *V1, const SVFValue *V2) override</div><div class="ttdoc">Interface expose to users of our pointer analysis, given Value infos.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00574">PointerAnalysisImpl.cpp:574</a></div></div>
|
|
701
710
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_afdb10c2cce4935156566ea1c2daf9ea9"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#afdb10c2cce4935156566ea1c2daf9ea9">SVF::BVDataPTAImpl::clearFullPts</a></div><div class="ttdeci">virtual void clearFullPts(NodeID id)</div><div class="ttdoc">Clear points-to set of id.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00105">PointerAnalysisImpl.h:105</a></div></div>
|
|
702
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a63fa2b3a96696ffc67a119c1ba5ce748"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a63fa2b3a96696ffc67a119c1ba5ce748">SVF::CondPTAImpl::getPts</a></div><div class="ttdeci">virtual const CPtSet & getPts(CVar id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
711
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a63fa2b3a96696ffc67a119c1ba5ce748"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a63fa2b3a96696ffc67a119c1ba5ce748">SVF::CondPTAImpl::getPts</a></div><div class="ttdeci">virtual const CPtSet & getPts(CVar id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00308">PointerAnalysisImpl.h:308</a></div></div>
|
|
703
712
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00406">GenericGraph.h:406</a></div></div>
|
|
704
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a61167fcdb2005090de1b38e53450431a"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a61167fcdb2005090de1b38e53450431a">SVF::CondPTAImpl::ptrToCPtsMap</a></div><div class="ttdeci">PtrToCPtsMap ptrToCPtsMap</div><div class="ttdoc">Conditional points-to representation (with conditions)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
705
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ae94cea78b71fb75837ee2a17b5ed0e81"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">SVF::BVDataPTAImpl::getPTDataTy</a></div><div class="ttdeci">PTDataTy * getPTDataTy() const</div><div class="ttdoc">Get points-to data structure.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
713
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a61167fcdb2005090de1b38e53450431a"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a61167fcdb2005090de1b38e53450431a">SVF::CondPTAImpl::ptrToCPtsMap</a></div><div class="ttdeci">PtrToCPtsMap ptrToCPtsMap</div><div class="ttdoc">Conditional points-to representation (with conditions)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00465">PointerAnalysisImpl.h:465</a></div></div>
|
|
714
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ae94cea78b71fb75837ee2a17b5ed0e81"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">SVF::BVDataPTAImpl::getPTDataTy</a></div><div class="ttdeci">PTDataTy * getPTDataTy() const</div><div class="ttdoc">Get points-to data structure.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00155">PointerAnalysisImpl.h:155</a></div></div>
|
|
706
715
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ad5e657b856681a534a8990df35ea08d0"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ad5e657b856681a534a8990df35ea08d0">SVF::BVDataPTAImpl::unionPts</a></div><div class="ttdeci">virtual bool unionPts(NodeID id, NodeID ptd)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00117">PointerAnalysisImpl.h:117</a></div></div>
|
|
707
716
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_adc7f5c71efb9cd1bec4f5ca9127654c3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">SVF::PointerAnalysis::pag</a></div><div class="ttdeci">static SVFIR * pag</div><div class="ttdoc">SVFIR.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00142">PointerAnalysis.h:142</a></div></div>
|
|
708
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a35cb1fd6e18cdc8e8466ee94846bc553"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a35cb1fd6e18cdc8e8466ee94846bc553">SVF::CondPTAImpl::getPTDataTy</a></div><div class="ttdeci">PTDataTy * getPTDataTy() const</div><div class="ttdoc">Get points-to data.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
717
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a35cb1fd6e18cdc8e8466ee94846bc553"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a35cb1fd6e18cdc8e8466ee94846bc553">SVF::CondPTAImpl::getPTDataTy</a></div><div class="ttdeci">PTDataTy * getPTDataTy() const</div><div class="ttdoc">Get points-to data.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00282">PointerAnalysisImpl.h:282</a></div></div>
|
|
709
718
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a108380f6f0b67654bb7c7676686096c8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a108380f6f0b67654bb7c7676686096c8">SVF::PointerAnalysis::isLocalVarInRecursiveFun</a></div><div class="ttdeci">bool isLocalVarInRecursiveFun(NodeID id) const</div><div class="ttdoc">Whether a local variable is in function recursions.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00137">PointerAnalysis.cpp:137</a></div></div>
|
|
710
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_adf0acbb0c605278e43d88787d651bbd8"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#adf0acbb0c605278e43d88787d651bbd8">SVF::CondPTAImpl::overlap</a></div><div class="ttdeci">bool overlap(const CPtSet &cpts1, const CPtSet &cpts2) const</div><div class="ttdoc">Whether cpts1 and cpts2 have overlap points-to targets.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
719
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_adf0acbb0c605278e43d88787d651bbd8"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#adf0acbb0c605278e43d88787d651bbd8">SVF::CondPTAImpl::overlap</a></div><div class="ttdeci">bool overlap(const CPtSet &cpts1, const CPtSet &cpts2) const</div><div class="ttdoc">Whether cpts1 and cpts2 have overlap points-to targets.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00325">PointerAnalysisImpl.h:325</a></div></div>
|
|
711
720
|
<div class="ttc" id="aclassSVF_1_1PTData_html_ad45879017d8fdeedc987ce35c4eba1a5"><div class="ttname"><a href="classSVF_1_1PTData.html#ad45879017d8fdeedc987ce35c4eba1a5">SVF::PTData::clear</a></div><div class="ttdeci">virtual void clear()=0</div><div class="ttdoc">Clears all points-to sets as if nothing is stored.</div></div>
|
|
712
721
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a29172b3e8b3891a5d946a493cfcde2e7"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a29172b3e8b3891a5d946a493cfcde2e7">SVF::BVDataPTAImpl::PersIncDFPTDataTy</a></div><div class="ttdeci">PersistentIncDFPTData< NodeID, NodeSet, NodeID, PointsTo > PersIncDFPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00060">PointerAnalysisImpl.h:60</a></div></div>
|
|
713
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_aa534e475fa34fa322c567bc376a3da70"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aa534e475fa34fa322c567bc376a3da70">SVF::BVDataPTAImpl::updateCallGraph</a></div><div class="ttdeci">virtual bool updateCallGraph(const CallSiteToFunPtrMap &)</div><div class="ttdoc">Update callgraph. This should be implemented by its subclass.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
714
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a9bdc3a50c695029a28371116ddc3ef8d"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a9bdc3a50c695029a28371116ddc3ef8d">SVF::CondPTAImpl::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalization of pointer analysis, and normalize points-to information to Bit Vector representation.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
715
|
-
<div class="ttc" id="
|
|
722
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_aa534e475fa34fa322c567bc376a3da70"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aa534e475fa34fa322c567bc376a3da70">SVF::BVDataPTAImpl::updateCallGraph</a></div><div class="ttdeci">virtual bool updateCallGraph(const CallSiteToFunPtrMap &)</div><div class="ttdoc">Update callgraph. This should be implemented by its subclass.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00165">PointerAnalysisImpl.h:165</a></div></div>
|
|
723
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a9bdc3a50c695029a28371116ddc3ef8d"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a9bdc3a50c695029a28371116ddc3ef8d">SVF::CondPTAImpl::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalization of pointer analysis, and normalize points-to information to Bit Vector representation.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00359">PointerAnalysisImpl.h:359</a></div></div>
|
|
724
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a5e782fb9a94a62403046c483ca4176c3"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a5e782fb9a94a62403046c483ca4176c3">SVF::BVDataPTAImpl::writeGepObjVarMapToFile</a></div><div class="ttdeci">virtual void writeGepObjVarMapToFile(std::fstream &f)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00224">PointerAnalysisImpl.cpp:224</a></div></div>
|
|
725
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a9830d4676fd424b633f8e4d918734296"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a9830d4676fd424b633f8e4d918734296">SVF::BVDataPTAImpl::onTheFlyCallGraphSolve</a></div><div class="ttdeci">virtual void onTheFlyCallGraphSolve(const CallSiteToFunPtrMap &callsites, CallEdgeMap &newEdges)</div><div class="ttdoc">On the fly call graph construction.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00494">PointerAnalysisImpl.cpp:494</a></div></div>
|
|
716
726
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ae7073c07bfd7912f888d54d4652c7cc2"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ae7073c07bfd7912f888d54d4652c7cc2">SVF::BVDataPTAImpl::unionPts</a></div><div class="ttdeci">virtual bool unionPts(NodeID id, const PointsTo &target)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00113">PointerAnalysisImpl.h:113</a></div></div>
|
|
717
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a25c68f9d2b88437778e854ff0d741d1b"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a25c68f9d2b88437778e854ff0d741d1b">SVF::BVDataPTAImpl::writeToFile</a></div><div class="ttdeci">virtual void writeToFile(const std::string &filename)</div><div class="ttdoc">Interface for analysis result storage on filesystem.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#
|
|
718
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_acd9a15c398be20db43ed9fd910bd1758"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#acd9a15c398be20db43ed9fd910bd1758">SVF::BVDataPTAImpl::dumpCPts</a></div><div class="ttdeci">void dumpCPts() override</div><div class="ttdoc">dump and debug, print out conditional pts</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
727
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a25c68f9d2b88437778e854ff0d741d1b"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a25c68f9d2b88437778e854ff0d741d1b">SVF::BVDataPTAImpl::writeToFile</a></div><div class="ttdeci">virtual void writeToFile(const std::string &filename)</div><div class="ttdoc">Interface for analysis result storage on filesystem.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00246">PointerAnalysisImpl.cpp:246</a></div></div>
|
|
728
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_acd9a15c398be20db43ed9fd910bd1758"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#acd9a15c398be20db43ed9fd910bd1758">SVF::BVDataPTAImpl::dumpCPts</a></div><div class="ttdeci">void dumpCPts() override</div><div class="ttdoc">dump and debug, print out conditional pts</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00225">PointerAnalysisImpl.h:225</a></div></div>
|
|
719
729
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00536">SparseBitVector.h:536</a></div></div>
|
|
720
730
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
|
|
721
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_aa266eef30817c557882de19aefe135a9"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#aa266eef30817c557882de19aefe135a9">SVF::CondPTAImpl::getRevPts</a></div><div class="ttdeci">virtual NodeSet & getRevPts(NodeID obj)</div><div class="ttdoc">Given an object return all pointers points to this object.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
722
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_ae76fb767c13ca39baa0fbec55a7780fe"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#ae76fb767c13ca39baa0fbec55a7780fe">SVF::CondPTAImpl::classof</a></div><div class="ttdeci">static bool classof(const PointerAnalysis *pta)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
731
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_aa266eef30817c557882de19aefe135a9"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#aa266eef30817c557882de19aefe135a9">SVF::CondPTAImpl::getRevPts</a></div><div class="ttdeci">virtual NodeSet & getRevPts(NodeID obj)</div><div class="ttdoc">Given an object return all pointers points to this object.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00493">PointerAnalysisImpl.h:493</a></div></div>
|
|
732
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_ae76fb767c13ca39baa0fbec55a7780fe"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#ae76fb767c13ca39baa0fbec55a7780fe">SVF::CondPTAImpl::classof</a></div><div class="ttdeci">static bool classof(const PointerAnalysis *pta)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00269">PointerAnalysisImpl.h:269</a></div></div>
|
|
723
733
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ae6ea391ac44dffeb6899bb44323c5361"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ae6ea391ac44dffeb6899bb44323c5361">SVF::PointerAnalysis::isHeapMemObj</a></div><div class="ttdeci">bool isHeapMemObj(NodeID id) const</div><div class="ttdoc">Whether this object is heap or array.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00312">PointerAnalysis.h:312</a></div></div>
|
|
724
734
|
<div class="ttc" id="aclassSVF_1_1MutablePTData_html_ad74cc6c81c4a95f6ba4e89352bccee3e"><div class="ttname"><a href="classSVF_1_1MutablePTData.html#ad74cc6c81c4a95f6ba4e89352bccee3e">SVF::MutablePTData::PtsMap</a></div><div class="ttdeci">Map< Key, DataSet > PtsMap</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00060">MutablePointsToDS.h:60</a></div></div>
|
|
725
735
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a5d3c3094e263bf16a4f312a118c1bd36"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5d3c3094e263bf16a4f312a118c1bd36">SVF::PointerAnalysis::ptaImplTy</a></div><div class="ttdeci">PTAImplTy ptaImplTy</div><div class="ttdoc">PTA implementation type.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00148">PointerAnalysis.h:148</a></div></div>
|
|
726
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a22c23f3ba1ee7e0aaccf0b8a1b58e33e"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a22c23f3ba1ee7e0aaccf0b8a1b58e33e">SVF::CondPTAImpl::objToNSRevPtsMap</a></div><div class="ttdeci">PtrToNSMap objToNSRevPtsMap</div><div class="ttdoc">Normal points-to representation (without conditions)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
736
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a22c23f3ba1ee7e0aaccf0b8a1b58e33e"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a22c23f3ba1ee7e0aaccf0b8a1b58e33e">SVF::CondPTAImpl::objToNSRevPtsMap</a></div><div class="ttdeci">PtrToNSMap objToNSRevPtsMap</div><div class="ttdoc">Normal points-to representation (without conditions)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00463">PointerAnalysisImpl.h:463</a></div></div>
|
|
727
737
|
<div class="ttc" id="aclassSVF_1_1MutableDFPTData_html"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html">SVF::MutableDFPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00049">MutablePointsToDS.h:49</a></div></div>
|
|
728
738
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html_a13746982a11d0cab57e5919d53bfbec8"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a13746982a11d0cab57e5919d53bfbec8">SVF::PointsTo::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdoc">Returns true if set is empty.</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00098">PointsTo.cpp:98</a></div></div>
|
|
729
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a87b48287d7edb97fc120200fe0e5218d"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a87b48287d7edb97fc120200fe0e5218d">SVF::CondPTAImpl::expandFIObjs</a></div><div class="ttdeci">void expandFIObjs(const CPtSet &cpts, CPtSet &expandedCpts)</div><div class="ttdoc">Expand all fields of an aggregate in all points-to sets.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
739
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a87b48287d7edb97fc120200fe0e5218d"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a87b48287d7edb97fc120200fe0e5218d">SVF::CondPTAImpl::expandFIObjs</a></div><div class="ttdeci">void expandFIObjs(const CPtSet &cpts, CPtSet &expandedCpts)</div><div class="ttdoc">Expand all fields of an aggregate in all points-to sets.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00339">PointerAnalysisImpl.h:339</a></div></div>
|
|
730
740
|
<div class="ttc" id="aclassSVF_1_1PersistentVersionedPTData_html"><div class="ttname"><a href="classSVF_1_1PersistentVersionedPTData.html">SVF::PersistentVersionedPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="PersistentPointsToDS_8h_source.html#l00030">PersistentPointsToDS.h:30</a></div></div>
|
|
731
741
|
<div class="ttc" id="aclassSVF_1_1PersistentPTData_html"><div class="ttname"><a href="classSVF_1_1PersistentPTData.html">SVF::PersistentPTData</a></div><div class="ttdoc">PTData backed by a PersistentPointsToCache.</div><div class="ttdef"><b>Definition:</b> <a href="PersistentPointsToDS_8h_source.html#l00034">PersistentPointsToDS.h:34</a></div></div>
|
|
732
742
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html_ad5b582d2672617806c61e6170d0b5a7e"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">SVF::PointsTo::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00128">PointsTo.h:128</a></div></div>
|
|
733
743
|
<div class="ttc" id="aclassSVF_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#l00063">PointerAnalysis.h:63</a></div></div>
|
|
734
744
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html_a6e2ff63437d07a30cc6db35de032728a"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">SVF::PointsTo::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00132">PointsTo.h:132</a></div></div>
|
|
735
745
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
736
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a454a998ef5a866f2a6f270e3283c6ebd"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a454a998ef5a866f2a6f270e3283c6ebd">SVF::CondPTAImpl::getCondPointsTo</a></div><div class="ttdeci">virtual const CPtSet & getCondPointsTo(NodeID ptr)</div><div class="ttdoc">Given a pointer return its conditional points-to.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
737
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_aa260a3275fbec7061295306a58763d24"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#aa260a3275fbec7061295306a58763d24">SVF::CondPTAImpl::dumpCPts</a></div><div class="ttdeci">virtual void dumpCPts()</div><div class="ttdoc">Print out conditional pts.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
738
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a7276e82b4648ed0e1b3d1b8b37b24089"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">SVF::SVFIR::getAllFieldsObjVars</a></div><div class="ttdeci">NodeBS & getAllFieldsObjVars(const MemObj *obj)</div><div class="ttdoc">Get all fields of an object.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#
|
|
746
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a454a998ef5a866f2a6f270e3283c6ebd"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a454a998ef5a866f2a6f270e3283c6ebd">SVF::CondPTAImpl::getCondPointsTo</a></div><div class="ttdeci">virtual const CPtSet & getCondPointsTo(NodeID ptr)</div><div class="ttdoc">Given a pointer return its conditional points-to.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00487">PointerAnalysisImpl.h:487</a></div></div>
|
|
747
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_aa260a3275fbec7061295306a58763d24"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#aa260a3275fbec7061295306a58763d24">SVF::CondPTAImpl::dumpCPts</a></div><div class="ttdeci">virtual void dumpCPts()</div><div class="ttdoc">Print out conditional pts.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00468">PointerAnalysisImpl.h:468</a></div></div>
|
|
748
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a7276e82b4648ed0e1b3d1b8b37b24089"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">SVF::SVFIR::getAllFieldsObjVars</a></div><div class="ttdeci">NodeBS & getAllFieldsObjVars(const MemObj *obj)</div><div class="ttdoc">Get all fields of an object.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00477">SVFIR.cpp:477</a></div></div>
|
|
739
749
|
<div class="ttc" id="aclassSVF_1_1VersionedPTData_html"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html">SVF::VersionedPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00269">AbstractPointsToDS.h:269</a></div></div>
|
|
740
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ad34eea2a5ec26e0b2b6a78914879f989"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ad34eea2a5ec26e0b2b6a78914879f989">SVF::BVDataPTAImpl::dumpTopLevelPtsTo</a></div><div class="ttdeci">void dumpTopLevelPtsTo() override</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#
|
|
750
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ad34eea2a5ec26e0b2b6a78914879f989"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ad34eea2a5ec26e0b2b6a78914879f989">SVF::BVDataPTAImpl::dumpTopLevelPtsTo</a></div><div class="ttdeci">void dumpTopLevelPtsTo() override</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00438">PointerAnalysisImpl.cpp:438</a></div></div>
|
|
741
751
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a798c84d5e861de2b61bcb1a86385f721"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">SVF::BVDataPTAImpl::expandFIObjs</a></div><div class="ttdeci">virtual void expandFIObjs(const PointsTo &pts, PointsTo &expandedPts)</div><div class="ttdoc">Expand FI objects.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00133">PointerAnalysisImpl.cpp:133</a></div></div>
|
|
742
752
|
<div class="ttc" id="anamespaceSVF_html_a212231734fa43d5c7414137deaac7df3"><div class="ttname"><a href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">SVF::NodeSet</a></div><div class="ttdeci">Set< NodeID > NodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00114">SVFType.h:114</a></div></div>
|
|
743
753
|
<div class="ttc" id="aclassSVF_1_1CondVar_html"><div class="ttname"><a href="classSVF_1_1CondVar.html">SVF::CondVar</a></div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00046">ConditionalPT.h:46</a></div></div>
|
|
744
754
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a3279969934d6778a6cffe926ed724bfc"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a3279969934d6778a6cffe926ed724bfc">SVF::BVDataPTAImpl::writeObjVarToFile</a></div><div class="ttdeci">virtual void writeObjVarToFile(const std::string &filename)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00162">PointerAnalysisImpl.cpp:162</a></div></div>
|
|
745
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a0b96ba98239186d6d676f9540da9e590"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a0b96ba98239186d6d676f9540da9e590">SVF::CondPTAImpl::getPts</a></div><div class="ttdeci">virtual PointsTo & getPts(NodeID ptr)</div><div class="ttdoc">Given a pointer return its bit vector points-to.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
746
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html">SVF::CondPTAImpl</a></div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
755
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a0b96ba98239186d6d676f9540da9e590"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a0b96ba98239186d6d676f9540da9e590">SVF::CondPTAImpl::getPts</a></div><div class="ttdeci">virtual PointsTo & getPts(NodeID ptr)</div><div class="ttdoc">Given a pointer return its bit vector points-to.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00481">PointerAnalysisImpl.h:481</a></div></div>
|
|
756
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html">SVF::CondPTAImpl</a></div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00240">PointerAnalysisImpl.h:240</a></div></div>
|
|
747
757
|
<div class="ttc" id="anamespaceSVF_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="svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
748
758
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ad95c842964e6ca46e51fb763fefec585"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ad95c842964e6ca46e51fb763fefec585">SVF::PointerAnalysis::CallSiteToFunPtrMap</a></div><div class="ttdeci">SVFIR::CallSiteToFunPtrMap CallSiteToFunPtrMap</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00104">PointerAnalysis.h:104</a></div></div>
|
|
749
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a4859864a4c72d5e04c10305e4579e8ee"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a4859864a4c72d5e04c10305e4579e8ee">SVF::BVDataPTAImpl::getVersionedPTDataTy</a></div><div class="ttdeci">VersionedPTDataTy * getVersionedPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
750
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
759
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a4859864a4c72d5e04c10305e4579e8ee"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a4859864a4c72d5e04c10305e4579e8ee">SVF::BVDataPTAImpl::getVersionedPTDataTy</a></div><div class="ttdeci">VersionedPTDataTy * getVersionedPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00192">PointerAnalysisImpl.h:192</a></div></div>
|
|
760
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a642613e98982259183d3f34a97f05502"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">SVF::BVDataPTAImpl::getDFPTDataTy</a></div><div class="ttdeci">DFPTDataTy * getDFPTDataTy() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00178">PointerAnalysisImpl.h:178</a></div></div>
|
|
751
761
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a5c2288519153467142e74c8dd4e77180"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a5c2288519153467142e74c8dd4e77180">SVF::BVDataPTAImpl::DFPTDataTy</a></div><div class="ttdeci">DFPTData< NodeID, NodeSet, NodeID, PointsTo > DFPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00048">PointerAnalysisImpl.h:48</a></div></div>
|
|
752
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_adfae199dfbe05c9c20052e0fc204e6de"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#adfae199dfbe05c9c20052e0fc204e6de">SVF::CondPTAImpl::clearPts</a></div><div class="ttdeci">virtual void clearPts()</div><div class="ttdoc">Clear all data.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
762
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_adfae199dfbe05c9c20052e0fc204e6de"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#adfae199dfbe05c9c20052e0fc204e6de">SVF::CondPTAImpl::clearPts</a></div><div class="ttdeci">virtual void clearPts()</div><div class="ttdoc">Clear all data.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00319">PointerAnalysisImpl.h:319</a></div></div>
|
|
753
763
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_aa30608bc36dcfde45c896d4a15a08ca1"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aa30608bc36dcfde45c896d4a15a08ca1">SVF::BVDataPTAImpl::getRevPts</a></div><div class="ttdeci">const NodeSet & getRevPts(NodeID nodeId) override</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00092">PointerAnalysisImpl.h:92</a></div></div>
|
|
754
764
|
<div class="ttc" id="anamespaceSVF_html_a61c01e2e687ab3a001fb806737583943ab58a0391f037031a51016ebfe2a752b2"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943ab58a0391f037031a51016ebfe2a752b2">SVF::MustAlias</a></div><div class="ttdeci">@ MustAlias</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00589">SVFType.h:589</a></div></div>
|
|
755
765
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ac9897a09cad8a99169f2da2116807b1b"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">const PointsTo & getPts(NodeID id) override</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00088">PointerAnalysisImpl.h:88</a></div></div>
|
|
756
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a3b5877fec52bbfa7c83bab6c9bc95684"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a3b5877fec52bbfa7c83bab6c9bc95684">SVF::CondPTAImpl::mustAlias</a></div><div class="ttdeci">bool mustAlias(const CVar &var1, const CVar &var2)</div><div class="ttdoc">Internal interface to be used for conditional points-to set queries.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
757
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a3a10f3327d6473c348df5b62a5d6683f"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a3a10f3327d6473c348df5b62a5d6683f">SVF::CondPTAImpl::containConstantNode</a></div><div class="ttdeci">bool containConstantNode(const CPtSet &cpts)</div><div class="ttdoc">Test constant node for cpts.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
766
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a3b5877fec52bbfa7c83bab6c9bc95684"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a3b5877fec52bbfa7c83bab6c9bc95684">SVF::CondPTAImpl::mustAlias</a></div><div class="ttdeci">bool mustAlias(const CVar &var1, const CVar &var2)</div><div class="ttdoc">Internal interface to be used for conditional points-to set queries.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00385">PointerAnalysisImpl.h:385</a></div></div>
|
|
767
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a3a10f3327d6473c348df5b62a5d6683f"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a3a10f3327d6473c348df5b62a5d6683f">SVF::CondPTAImpl::containConstantNode</a></div><div class="ttdeci">bool containConstantNode(const CPtSet &cpts)</div><div class="ttdoc">Test constant node for cpts.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00543">PointerAnalysisImpl.h:543</a></div></div>
|
|
758
768
|
<div class="ttc" id="aclassSVF_1_1PersistentDFPTData_html"><div class="ttname"><a href="classSVF_1_1PersistentDFPTData.html">SVF::PersistentDFPTData</a></div><div class="ttdoc">DFPTData backed by a PersistentPointsToCache.</div><div class="ttdef"><b>Definition:</b> <a href="PersistentPointsToDS_8h_source.html#l00026">PersistentPointsToDS.h:26</a></div></div>
|
|
759
769
|
<div class="ttc" id="anamespaceSVF_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="SVFType_8h_source.html#l00102">SVFType.h:102</a></div></div>
|
|
760
|
-
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ab283427a420ab349da4920ec10b7e1cd"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">SVF::BVDataPTAImpl::ptD</a></div><div class="ttdeci">std::unique_ptr< PTDataTy > ptD</div><div class="ttdoc">Points-to data.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
770
|
+
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ab283427a420ab349da4920ec10b7e1cd"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ab283427a420ab349da4920ec10b7e1cd">SVF::BVDataPTAImpl::ptD</a></div><div class="ttdeci">std::unique_ptr< PTDataTy > ptD</div><div class="ttdoc">Points-to data.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00208">PointerAnalysisImpl.h:208</a></div></div>
|
|
761
771
|
<div class="ttc" id="aclassSVF_1_1CondStdSet_html_a55152b7749868cc25f1c3c33ea57a650"><div class="ttname"><a href="classSVF_1_1CondStdSet.html#a55152b7749868cc25f1c3c33ea57a650">SVF::CondStdSet::const_iterator</a></div><div class="ttdeci">OrderedSet< Element >::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00137">ConditionalPT.h:137</a></div></div>
|
|
762
772
|
<div class="ttc" id="aConsG_8h_html"><div class="ttname"><a href="ConsG_8h.html">ConsG.h</a></div></div>
|
|
763
773
|
<div class="ttc" id="aclassSVF_1_1CondStdSet_html_ae11deddad534be115d29daad08c90599"><div class="ttname"><a href="classSVF_1_1CondStdSet.html#ae11deddad534be115d29daad08c90599">SVF::CondStdSet::set</a></div><div class="ttdeci">void set(const Element &var)</div><div class="ttdoc">Add the element into set.</div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00158">ConditionalPT.h:158</a></div></div>
|
|
764
774
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
|
|
765
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a5043e9d9255d31777d038c48c809bb09"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a5043e9d9255d31777d038c48c809bb09">SVF::CondPTAImpl::PtrToCPtsMap</a></div><div class="ttdeci">Map< NodeID, CPtSet > PtrToCPtsMap</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
775
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a5043e9d9255d31777d038c48c809bb09"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a5043e9d9255d31777d038c48c809bb09">SVF::CondPTAImpl::PtrToCPtsMap</a></div><div class="ttdeci">Map< NodeID, CPtSet > PtrToCPtsMap</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00250">PointerAnalysisImpl.h:250</a></div></div>
|
|
766
776
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
|
|
767
777
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ac4e74e6dfee9d08198e0f7e3d76a0646"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ac4e74e6dfee9d08198e0f7e3d76a0646">SVF::BVDataPTAImpl::MutDiffPTDataTy</a></div><div class="ttdeci">MutableDiffPTData< NodeID, NodeSet, NodeID, PointsTo > MutDiffPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00052">PointerAnalysisImpl.h:52</a></div></div>
|
|
768
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a761f8a7c6ab4a160e279e9a831f037b1"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a761f8a7c6ab4a160e279e9a831f037b1">SVF::CondPTAImpl::PTDataTy</a></div><div class="ttdeci">PTData< CVar, Set< CVar >, CVar, CPtSet > PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
778
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a761f8a7c6ab4a160e279e9a831f037b1"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a761f8a7c6ab4a160e279e9a831f037b1">SVF::CondPTAImpl::PTDataTy</a></div><div class="ttdeci">PTData< CVar, Set< CVar >, CVar, CPtSet > PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00246">PointerAnalysisImpl.h:246</a></div></div>
|
|
769
779
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a4909696c946cf6aba12542ec51766b64"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a4909696c946cf6aba12542ec51766b64">SVF::BVDataPTAImpl::clearPts</a></div><div class="ttdeci">virtual void clearPts(NodeID id, NodeID element)</div><div class="ttdoc">Remove element from the points-to set of id.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00099">PointerAnalysisImpl.h:99</a></div></div>
|
|
770
780
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_a1342c0953d7bb9bf0f6f676bd564350e"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a1342c0953d7bb9bf0f6f676bd564350e">SVF::BVDataPTAImpl::PersDiffPTDataTy</a></div><div class="ttdeci">PersistentDiffPTData< NodeID, NodeSet, NodeID, PointsTo > PersDiffPTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00058">PointerAnalysisImpl.h:58</a></div></div>
|
|
771
|
-
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a08037f32b927fe2e6be47a61a060463c"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a08037f32b927fe2e6be47a61a060463c">SVF::CondPTAImpl::addPts</a></div><div class="ttdeci">virtual bool addPts(CVar id, CVar ptd)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#
|
|
781
|
+
<div class="ttc" id="aclassSVF_1_1CondPTAImpl_html_a08037f32b927fe2e6be47a61a060463c"><div class="ttname"><a href="classSVF_1_1CondPTAImpl.html#a08037f32b927fe2e6be47a61a060463c">SVF::CondPTAImpl::addPts</a></div><div class="ttdeci">virtual bool addPts(CVar id, CVar ptd)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00377">PointerAnalysisImpl.h:377</a></div></div>
|
|
772
782
|
<div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html_ad76328a8543b02784992afc2d5501d8aa1cfb236b5127b660373c36b77a79ab5e"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ad76328a8543b02784992afc2d5501d8aa1cfb236b5127b660373c36b77a79ab5e">SVF::BVDataPTAImpl::Mutable</a></div><div class="ttdeci">@ Mutable</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00066">PointerAnalysisImpl.h:66</a></div></div>
|
|
773
783
|
<!-- start footer part -->
|
|
774
784
|
<hr class="footer"/><address class="footer"><small>
|