svf-tools 1.0.613 → 1.0.615
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CMakeLists.txt +13 -0
- package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +7 -6
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +22 -22
- package/SVF-doxygen/html/html/Andersen_8h_source.html +16 -16
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +7 -7
- package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/CFLGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CSC_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +14 -14
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ConsG_8h_source.html +9 -9
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +9 -9
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +4 -6
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +22 -22
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +21 -21
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +27 -28
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +65 -65
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +24 -29
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +8 -8
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/MHP_8h_source.html +5 -5
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +12 -17
- package/SVF-doxygen/html/html/MTA_8h_source.html +3 -4
- package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +34 -34
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +7 -7
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +16 -15
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +53 -52
- package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +7 -8
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/Options_8cpp_source.html +52 -53
- package/SVF-doxygen/html/html/Options_8h_source.html +53 -54
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +33 -33
- package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +91 -95
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +31 -39
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +85 -92
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +16 -16
- package/SVF-doxygen/html/html/PointsTo_8cpp.html +1 -0
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +51 -51
- package/SVF-doxygen/html/html/PointsTo_8h_source.html +38 -38
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SCC_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +11 -22
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +14 -17
- package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +21 -19
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +49 -62
- package/SVF-doxygen/html/html/SVFG_8h_source.html +45 -45
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +10 -16
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +83 -83
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/SVFType_8h.html +22 -22
- package/SVF-doxygen/html/html/SVFType_8h_source.html +76 -77
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +11 -11
- package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFValue_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -3
- package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +69 -71
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +39 -39
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +49 -51
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +13 -13
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/VFG_8h_source.html +5 -5
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +33 -33
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
- package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +11 -11
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +2 -2
- package/SVF-doxygen/html/html/WPASolver_8h_source.html +25 -25
- package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/cfl_8cpp.html +1 -5
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -5
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +187 -188
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +104 -107
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +163 -164
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +47 -50
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +194 -195
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +45 -48
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +204 -205
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +35 -38
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +191 -192
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +29 -32
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +122 -123
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +158 -219
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +137 -138
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +57 -49
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +138 -139
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +34 -34
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +140 -141
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1CSC.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallSite-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +114 -114
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +17 -31
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +40 -40
- package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +228 -229
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +62 -65
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +194 -195
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +55 -55
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +219 -220
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +335 -342
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +57 -57
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +20 -14
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +108 -94
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +36 -36
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +87 -87
- package/SVF-doxygen/html/html/classSVF_1_1MTA-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +27 -33
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder-members.html +41 -43
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +57 -80
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +54 -54
- package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +4 -3
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +170 -143
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +13 -15
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +17 -18
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +53 -79
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1PTData.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData-members.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +174 -177
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData-members.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +99 -102
- package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData-members.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +125 -127
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData-members.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +83 -86
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +122 -122
- package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData-members.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +137 -140
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +56 -56
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo-members.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +183 -178
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator-members.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +87 -65
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFArgument-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFArgument.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFArrayType.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +13 -16
- package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstant-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstant.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +5 -7
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunctionType.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +211 -236
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder-members.html +7 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +50 -138
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +82 -82
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +203 -215
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +79 -79
- package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFIntergerType.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +0 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFPointerType.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +38 -38
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +4 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +12 -14
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +42 -68
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +108 -109
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +50 -50
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +146 -146
- package/SVF-doxygen/html/html/classSVF_1_1StInfo-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +48 -61
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +178 -179
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +35 -38
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +42 -46
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +169 -170
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +31 -34
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +263 -264
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +112 -115
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +41 -41
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1WPASolver-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +76 -81
- package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +2 -2
- package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
- package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/functions.html +1 -1
- package/SVF-doxygen/html/html/functions_0x7e.html +16 -16
- package/SVF-doxygen/html/html/functions_a.html +7 -7
- package/SVF-doxygen/html/html/functions_b.html +6 -6
- package/SVF-doxygen/html/html/functions_c.html +27 -27
- package/SVF-doxygen/html/html/functions_d.html +10 -11
- package/SVF-doxygen/html/html/functions_e.html +2 -2
- package/SVF-doxygen/html/html/functions_f.html +6 -6
- package/SVF-doxygen/html/html/functions_func.html +6 -6
- package/SVF-doxygen/html/html/functions_func_0x7e.html +16 -16
- package/SVF-doxygen/html/html/functions_func_b.html +6 -6
- package/SVF-doxygen/html/html/functions_func_c.html +27 -27
- package/SVF-doxygen/html/html/functions_func_d.html +10 -11
- package/SVF-doxygen/html/html/functions_func_e.html +2 -2
- package/SVF-doxygen/html/html/functions_func_f.html +5 -5
- package/SVF-doxygen/html/html/functions_func_g.html +22 -22
- package/SVF-doxygen/html/html/functions_func_h.html +3 -3
- package/SVF-doxygen/html/html/functions_func_i.html +3 -3
- package/SVF-doxygen/html/html/functions_func_o.html +3 -3
- package/SVF-doxygen/html/html/functions_func_p.html +5 -5
- package/SVF-doxygen/html/html/functions_func_r.html +5 -8
- package/SVF-doxygen/html/html/functions_func_s.html +6 -6
- package/SVF-doxygen/html/html/functions_func_t.html +1 -1
- package/SVF-doxygen/html/html/functions_func_u.html +23 -23
- package/SVF-doxygen/html/html/functions_g.html +25 -28
- package/SVF-doxygen/html/html/functions_h.html +3 -3
- package/SVF-doxygen/html/html/functions_i.html +6 -6
- package/SVF-doxygen/html/html/functions_m.html +1 -1
- package/SVF-doxygen/html/html/functions_o.html +13 -13
- package/SVF-doxygen/html/html/functions_p.html +19 -19
- package/SVF-doxygen/html/html/functions_r.html +11 -12
- package/SVF-doxygen/html/html/functions_s.html +33 -36
- package/SVF-doxygen/html/html/functions_t.html +12 -12
- package/SVF-doxygen/html/html/functions_type_t.html +1 -1
- package/SVF-doxygen/html/html/functions_u.html +26 -23
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/functions_vars.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_g.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_i.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_p.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_s.html +5 -8
- package/SVF-doxygen/html/html/functions_vars_t.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_u.html +3 -0
- package/SVF-doxygen/html/html/functions_w.html +3 -7
- package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
- package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/namespaceSVF.html +35 -35
- package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +2 -2
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +4 -4
- package/SVF-doxygen/html/html/saber_8cpp.html +1 -5
- package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -5
- package/SVF-doxygen/html/html/search/all_0.js +1 -1
- package/SVF-doxygen/html/html/search/all_1.js +4 -4
- package/SVF-doxygen/html/html/search/all_10.js +15 -15
- package/SVF-doxygen/html/html/search/all_11.js +1 -2
- package/SVF-doxygen/html/html/search/all_12.js +20 -21
- package/SVF-doxygen/html/html/search/all_13.js +8 -8
- package/SVF-doxygen/html/html/search/all_14.js +13 -12
- package/SVF-doxygen/html/html/search/all_15.js +4 -4
- package/SVF-doxygen/html/html/search/all_16.js +2 -2
- package/SVF-doxygen/html/html/search/all_19.js +16 -16
- package/SVF-doxygen/html/html/search/all_2.js +6 -6
- package/SVF-doxygen/html/html/search/all_3.js +14 -14
- package/SVF-doxygen/html/html/search/all_4.js +5 -5
- package/SVF-doxygen/html/html/search/all_5.js +2 -2
- package/SVF-doxygen/html/html/search/all_6.js +5 -5
- package/SVF-doxygen/html/html/search/all_7.js +11 -12
- package/SVF-doxygen/html/html/search/all_8.js +3 -3
- package/SVF-doxygen/html/html/search/all_9.js +4 -4
- package/SVF-doxygen/html/html/search/all_b.js +1 -1
- package/SVF-doxygen/html/html/search/all_c.js +3 -3
- package/SVF-doxygen/html/html/search/all_d.js +3 -3
- package/SVF-doxygen/html/html/search/all_e.js +2 -2
- package/SVF-doxygen/html/html/search/all_f.js +5 -5
- package/SVF-doxygen/html/html/search/functions_0.js +4 -4
- package/SVF-doxygen/html/html/search/functions_1.js +6 -6
- package/SVF-doxygen/html/html/search/functions_10.js +1 -2
- package/SVF-doxygen/html/html/search/functions_11.js +11 -11
- package/SVF-doxygen/html/html/search/functions_12.js +1 -1
- package/SVF-doxygen/html/html/search/functions_13.js +12 -12
- package/SVF-doxygen/html/html/search/functions_17.js +16 -16
- package/SVF-doxygen/html/html/search/functions_2.js +14 -14
- package/SVF-doxygen/html/html/search/functions_3.js +5 -5
- package/SVF-doxygen/html/html/search/functions_4.js +2 -2
- package/SVF-doxygen/html/html/search/functions_5.js +4 -4
- package/SVF-doxygen/html/html/search/functions_6.js +11 -11
- package/SVF-doxygen/html/html/search/functions_7.js +3 -3
- package/SVF-doxygen/html/html/search/functions_8.js +3 -3
- package/SVF-doxygen/html/html/search/functions_d.js +1 -1
- package/SVF-doxygen/html/html/search/functions_e.js +3 -3
- package/SVF-doxygen/html/html/search/functions_f.js +5 -5
- package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
- package/SVF-doxygen/html/html/search/variables_0.js +1 -1
- package/SVF-doxygen/html/html/search/variables_10.js +2 -2
- package/SVF-doxygen/html/html/search/variables_12.js +5 -6
- package/SVF-doxygen/html/html/search/variables_13.js +3 -3
- package/SVF-doxygen/html/html/search/variables_14.js +1 -0
- package/SVF-doxygen/html/html/search/variables_6.js +1 -1
- package/SVF-doxygen/html/html/search/variables_7.js +0 -1
- package/SVF-doxygen/html/html/search/variables_9.js +1 -1
- package/SVF-doxygen/html/html/search/variables_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +14 -14
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement-members.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +47 -57
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1PointsTo_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +5 -5
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +6 -7
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
- package/build.sh +2 -2
- package/include/DDA/DDAPass.h +1 -1
- package/include/DDA/FlowDDA.h +1 -1
- package/include/Graphs/ICFG.h +1 -1
- package/include/Graphs/SVFG.h +3 -4
- package/include/Graphs/SVFGOPT.h +7 -7
- package/include/MSSA/MemSSA.h +2 -0
- package/include/MSSA/SVFGBuilder.h +5 -14
- package/include/MTA/MTA.h +2 -2
- package/include/MemoryModel/MutablePointsToDS.h +3 -3
- package/include/MemoryModel/PersistentPointsToCache.h +7 -8
- package/include/MemoryModel/PersistentPointsToDS.h +93 -93
- package/include/MemoryModel/PointerAnalysisImpl.h +17 -28
- package/include/MemoryModel/PointsTo.h +24 -24
- package/include/SABER/SrcSnkDDA.h +10 -13
- package/include/SVF-LLVM/LLVMLoopAnalysis.h +2 -1
- package/include/SVF-LLVM/LLVMModule.h +6 -6
- package/include/SVFIR/SVFIR.h +3 -5
- package/include/SVFIR/SVFType.h +6 -8
- package/include/SVFIR/SVFValue.h +5 -5
- package/include/Util/Options.h +0 -1
- package/include/Util/SparseBitVector.h +6 -14
- package/include/WPA/FlowSensitive.h +13 -20
- package/include/WPA/WPASolver.h +5 -9
- package/lib/DDA/DDAPass.cpp +4 -4
- package/lib/Graphs/CFLGraph.cpp +3 -0
- package/lib/Graphs/SVFG.cpp +1 -1
- package/lib/MSSA/MemSSA.cpp +5 -3
- package/lib/MSSA/SVFGBuilder.cpp +9 -27
- package/lib/MTA/MTA.cpp +4 -4
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +10 -10
- package/lib/MemoryModel/PointsTo.cpp +23 -19
- package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +3 -4
- package/lib/SVF-LLVM/LLVMModule.cpp +32 -21
- package/lib/SVFIR/SVFIR.cpp +1 -1
- package/lib/SVFIR/SymbolTableInfo.cpp +4 -15
- package/lib/Util/Options.cpp +0 -6
- package/lib/WPA/AndersenSFR.cpp +1 -1
- package/lib/WPA/FlowSensitive.cpp +1 -1
- package/package.json +1 -1
- package/tools/CFL/cfl.cpp +5 -4
- package/tools/DDA/dda.cpp +3 -2
- package/tools/Example/svf-ex.cpp +3 -2
- package/tools/MTA/mta.cpp +6 -4
- package/tools/SABER/saber.cpp +7 -5
- package/tools/WPA/wpa.cpp +3 -2
|
@@ -208,24 +208,24 @@ Public Member Functions</h2></td></tr>
|
|
|
208
208
|
<tr class="memitem:aac88b67b49cbd72912ff586d30197ffb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#aac88b67b49cbd72912ff586d30197ffb">FlowSensitive</a> (<a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> *_pag, <a class="el" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">PTATY</a> <a class="el" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>=<a class="el" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ad6ccf1ce66083278349c5c3111172d78">FSSPARSE_WPA</a>)</td></tr>
|
|
209
209
|
<tr class="memdesc:aac88b67b49cbd72912ff586d30197ffb"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#aac88b67b49cbd72912ff586d30197ffb">More...</a><br /></td></tr>
|
|
210
210
|
<tr class="separator:aac88b67b49cbd72912ff586d30197ffb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
211
|
-
<tr class="memitem:
|
|
212
|
-
<tr class="memdesc:
|
|
213
|
-
<tr class="separator:
|
|
211
|
+
<tr class="memitem:a08395aa9627c451555361eade6b2a50b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#a08395aa9627c451555361eade6b2a50b">~FlowSensitive</a> () override=default</td></tr>
|
|
212
|
+
<tr class="memdesc:a08395aa9627c451555361eade6b2a50b"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#a08395aa9627c451555361eade6b2a50b">More...</a><br /></td></tr>
|
|
213
|
+
<tr class="separator:a08395aa9627c451555361eade6b2a50b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
214
214
|
<tr class="memitem:a611608ccc9659bd320670f1ec31ad18e"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#a611608ccc9659bd320670f1ec31ad18e">runOnModule</a> (<a class="el" href="classSVF_1_1SVFModule.html">SVFModule</a> *)</td></tr>
|
|
215
215
|
<tr class="memdesc:a611608ccc9659bd320670f1ec31ad18e"><td class="mdescLeft"> </td><td class="mdescRight">We start from here. <a href="#a611608ccc9659bd320670f1ec31ad18e">More...</a><br /></td></tr>
|
|
216
216
|
<tr class="separator:a611608ccc9659bd320670f1ec31ad18e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
217
|
-
<tr class="memitem:
|
|
218
|
-
<tr class="memdesc:
|
|
219
|
-
<tr class="separator:
|
|
220
|
-
<tr class="memitem:
|
|
221
|
-
<tr class="memdesc:
|
|
222
|
-
<tr class="separator:
|
|
223
|
-
<tr class="memitem:
|
|
224
|
-
<tr class="memdesc:
|
|
225
|
-
<tr class="separator:
|
|
226
|
-
<tr class="memitem:
|
|
227
|
-
<tr class="memdesc:
|
|
228
|
-
<tr class="separator:
|
|
217
|
+
<tr class="memitem:a7b3f1ca7f8996edc3ed80fdff536d519"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#a7b3f1ca7f8996edc3ed80fdff536d519">analyze</a> () override</td></tr>
|
|
218
|
+
<tr class="memdesc:a7b3f1ca7f8996edc3ed80fdff536d519"><td class="mdescLeft"> </td><td class="mdescRight">Flow sensitive analysis. <a href="#a7b3f1ca7f8996edc3ed80fdff536d519">More...</a><br /></td></tr>
|
|
219
|
+
<tr class="separator:a7b3f1ca7f8996edc3ed80fdff536d519"><td class="memSeparator" colspan="2"> </td></tr>
|
|
220
|
+
<tr class="memitem:ad3566c57f8456e98542f5a0b765e3cc6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#ad3566c57f8456e98542f5a0b765e3cc6">initialize</a> () override</td></tr>
|
|
221
|
+
<tr class="memdesc:ad3566c57f8456e98542f5a0b765e3cc6"><td class="mdescLeft"> </td><td class="mdescRight">Initialize analysis. <a href="#ad3566c57f8456e98542f5a0b765e3cc6">More...</a><br /></td></tr>
|
|
222
|
+
<tr class="separator:ad3566c57f8456e98542f5a0b765e3cc6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
223
|
+
<tr class="memitem:a911aa7dd8d696b96a85d85af852e1e58"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#a911aa7dd8d696b96a85d85af852e1e58">finalize</a> () override</td></tr>
|
|
224
|
+
<tr class="memdesc:a911aa7dd8d696b96a85d85af852e1e58"><td class="mdescLeft"> </td><td class="mdescRight">Finalize analysis. <a href="#a911aa7dd8d696b96a85d85af852e1e58">More...</a><br /></td></tr>
|
|
225
|
+
<tr class="separator:a911aa7dd8d696b96a85d85af852e1e58"><td class="memSeparator" colspan="2"> </td></tr>
|
|
226
|
+
<tr class="memitem:ac71ae72012a8d2a2d3a4183f6681ad61"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#ac71ae72012a8d2a2d3a4183f6681ad61">PTAName</a> () const override</td></tr>
|
|
227
|
+
<tr class="memdesc:ac71ae72012a8d2a2d3a4183f6681ad61"><td class="mdescLeft"> </td><td class="mdescRight">Get PTA name. <a href="#ac71ae72012a8d2a2d3a4183f6681ad61">More...</a><br /></td></tr>
|
|
228
|
+
<tr class="separator:ac71ae72012a8d2a2d3a4183f6681ad61"><td class="memSeparator" colspan="2"> </td></tr>
|
|
229
229
|
<tr class="memitem:a74f35ec76e2c7cf39355e0c148d973be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFG.html">SVFG</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#a74f35ec76e2c7cf39355e0c148d973be">getSVFG</a> () const</td></tr>
|
|
230
230
|
<tr class="memdesc:a74f35ec76e2c7cf39355e0c148d973be"><td class="mdescLeft"> </td><td class="mdescRight">Return <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. <a href="#a74f35ec76e2c7cf39355e0c148d973be">More...</a><br /></td></tr>
|
|
231
231
|
<tr class="separator:a74f35ec76e2c7cf39355e0c148d973be"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -243,14 +243,11 @@ Public Member Functions</h2></td></tr>
|
|
|
243
243
|
<tr class="memitem:ab0e1242aadfe1e16a2bd1445658a5476 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ab0e1242aadfe1e16a2bd1445658a5476">BVDataPTAImpl</a> (<a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> *<a class="el" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>, <a class="el" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">PointerAnalysis::PTATY</a> <a class="el" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, bool alias_check=<a class="el" href="cJSON_8cpp.html#a930920b2bc42824a5c03be681830f4b2">true</a>)</td></tr>
|
|
244
244
|
<tr class="memdesc:ab0e1242aadfe1e16a2bd1445658a5476 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="classSVF_1_1BVDataPTAImpl.html#ab0e1242aadfe1e16a2bd1445658a5476">More...</a><br /></td></tr>
|
|
245
245
|
<tr class="separator:ab0e1242aadfe1e16a2bd1445658a5476 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2"> </td></tr>
|
|
246
|
-
<tr class="memitem:
|
|
247
|
-
<tr class="memdesc:
|
|
248
|
-
<tr class="separator:
|
|
249
|
-
<tr class="memitem:
|
|
250
|
-
<tr class="separator:
|
|
251
|
-
<tr class="memitem:af783769050ab663ad4bb93f901f01a6d inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#af783769050ab663ad4bb93f901f01a6d">destroy</a> ()</td></tr>
|
|
252
|
-
<tr class="memdesc:af783769050ab663ad4bb93f901f01a6d inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft"> </td><td class="mdescRight">Release memory. <a href="classSVF_1_1BVDataPTAImpl.html#af783769050ab663ad4bb93f901f01a6d">More...</a><br /></td></tr>
|
|
253
|
-
<tr class="separator:af783769050ab663ad4bb93f901f01a6d inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2"> </td></tr>
|
|
246
|
+
<tr class="memitem:a4a67cd071bc08d2150534e631a0a06ed inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a4a67cd071bc08d2150534e631a0a06ed">~BVDataPTAImpl</a> () override=default</td></tr>
|
|
247
|
+
<tr class="memdesc:a4a67cd071bc08d2150534e631a0a06ed inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="classSVF_1_1BVDataPTAImpl.html#a4a67cd071bc08d2150534e631a0a06ed">More...</a><br /></td></tr>
|
|
248
|
+
<tr class="separator:a4a67cd071bc08d2150534e631a0a06ed inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2"> </td></tr>
|
|
249
|
+
<tr class="memitem:afaeae813ff38e010bbe8fe61befb345c inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PersistentPointsToCache.html">PersistentPointsToCache</a>< <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#afaeae813ff38e010bbe8fe61befb345c">getPtCache</a> ()</td></tr>
|
|
250
|
+
<tr class="separator:afaeae813ff38e010bbe8fe61befb345c inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2"> </td></tr>
|
|
254
251
|
<tr class="memitem:a4909696c946cf6aba12542ec51766b64 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a4909696c946cf6aba12542ec51766b64">clearPts</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> id, <a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> element)</td></tr>
|
|
255
252
|
<tr class="memdesc:a4909696c946cf6aba12542ec51766b64 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft"> </td><td class="mdescRight">Remove element from the points-to set of id. <a href="classSVF_1_1BVDataPTAImpl.html#a4909696c946cf6aba12542ec51766b64">More...</a><br /></td></tr>
|
|
256
253
|
<tr class="separator:a4909696c946cf6aba12542ec51766b64 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -269,19 +266,19 @@ Public Member Functions</h2></td></tr>
|
|
|
269
266
|
<tr class="memitem:a7a87ca1a439e871896f92e4342befa2c inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a7a87ca1a439e871896f92e4342befa2c">remapPointsToSets</a> (void)</td></tr>
|
|
270
267
|
<tr class="memdesc:a7a87ca1a439e871896f92e4342befa2c inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft"> </td><td class="mdescRight">Remap all points-to sets to use the current mapping. <a href="classSVF_1_1BVDataPTAImpl.html#a7a87ca1a439e871896f92e4342befa2c">More...</a><br /></td></tr>
|
|
271
268
|
<tr class="separator:a7a87ca1a439e871896f92e4342befa2c inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2"> </td></tr>
|
|
272
|
-
<tr class="memitem:
|
|
273
|
-
<tr class="memdesc:
|
|
274
|
-
<tr class="separator:
|
|
275
|
-
<tr class="memitem:
|
|
276
|
-
<tr class="memdesc:
|
|
277
|
-
<tr class="separator:
|
|
269
|
+
<tr class="memitem:a236d3e9c894fd7c34c8d7a77ac11dd48 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a236d3e9c894fd7c34c8d7a77ac11dd48">alias</a> (const <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *V1, const <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *V2) override</td></tr>
|
|
270
|
+
<tr class="memdesc:a236d3e9c894fd7c34c8d7a77ac11dd48 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft"> </td><td class="mdescRight">Interface expose to users of our pointer analysis, given Value infos. <a href="classSVF_1_1BVDataPTAImpl.html#a236d3e9c894fd7c34c8d7a77ac11dd48">More...</a><br /></td></tr>
|
|
271
|
+
<tr class="separator:a236d3e9c894fd7c34c8d7a77ac11dd48 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2"> </td></tr>
|
|
272
|
+
<tr class="memitem:a63c474d3a2d4d196e167d6969c6ad21f inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a63c474d3a2d4d196e167d6969c6ad21f">alias</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> node1, <a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> node2) override</td></tr>
|
|
273
|
+
<tr class="memdesc:a63c474d3a2d4d196e167d6969c6ad21f inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft"> </td><td class="mdescRight">Interface expose to users of our pointer analysis, given PAGNodeID. <a href="classSVF_1_1BVDataPTAImpl.html#a63c474d3a2d4d196e167d6969c6ad21f">More...</a><br /></td></tr>
|
|
274
|
+
<tr class="separator:a63c474d3a2d4d196e167d6969c6ad21f inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2"> </td></tr>
|
|
278
275
|
<tr class="memitem:a25720f154731a8c745da10aa76ab8517 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a25720f154731a8c745da10aa76ab8517">alias</a> (const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &pts1, const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &pts2)</td></tr>
|
|
279
276
|
<tr class="memdesc:a25720f154731a8c745da10aa76ab8517 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft"> </td><td class="mdescRight">Interface expose to users of our pointer analysis, given two pts. <a href="classSVF_1_1BVDataPTAImpl.html#a25720f154731a8c745da10aa76ab8517">More...</a><br /></td></tr>
|
|
280
277
|
<tr class="separator:a25720f154731a8c745da10aa76ab8517 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2"> </td></tr>
|
|
281
|
-
<tr class="memitem:
|
|
282
|
-
<tr class="separator:
|
|
283
|
-
<tr class="memitem:
|
|
284
|
-
<tr class="separator:
|
|
278
|
+
<tr class="memitem:ac9897a09cad8a99169f2da2116807b1b inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> id) override</td></tr>
|
|
279
|
+
<tr class="separator:ac9897a09cad8a99169f2da2116807b1b inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2"> </td></tr>
|
|
280
|
+
<tr class="memitem:aa30608bc36dcfde45c896d4a15a08ca1 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#aa30608bc36dcfde45c896d4a15a08ca1">getRevPts</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> nodeId) override</td></tr>
|
|
281
|
+
<tr class="separator:aa30608bc36dcfde45c896d4a15a08ca1 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2"> </td></tr>
|
|
285
282
|
<tr class="memitem:ae7073c07bfd7912f888d54d4652c7cc2 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ae7073c07bfd7912f888d54d4652c7cc2">unionPts</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> id, const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &target)</td></tr>
|
|
286
283
|
<tr class="separator:ae7073c07bfd7912f888d54d4652c7cc2 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2"> </td></tr>
|
|
287
284
|
<tr class="memitem:ad5e657b856681a534a8990df35ea08d0 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ad5e657b856681a534a8990df35ea08d0">unionPts</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> id, <a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> ptd)</td></tr>
|
|
@@ -297,13 +294,13 @@ Public Member Functions</h2></td></tr>
|
|
|
297
294
|
<tr class="separator:aa0ca07204a31004fb876c6e18d1ac1ca inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2"> </td></tr>
|
|
298
295
|
<tr class="memitem:a857cdacfc8cafdeb1431bdfa077ef9b5 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a857cdacfc8cafdeb1431bdfa077ef9b5">readFromModule</a> ()</td></tr>
|
|
299
296
|
<tr class="separator:a857cdacfc8cafdeb1431bdfa077ef9b5 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2"> </td></tr>
|
|
300
|
-
<tr class="memitem:
|
|
301
|
-
<tr class="memdesc:
|
|
302
|
-
<tr class="separator:
|
|
303
|
-
<tr class="memitem:
|
|
304
|
-
<tr class="separator:
|
|
305
|
-
<tr class="memitem:
|
|
306
|
-
<tr class="separator:
|
|
297
|
+
<tr class="memitem:acd9a15c398be20db43ed9fd910bd1758 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#acd9a15c398be20db43ed9fd910bd1758">dumpCPts</a> () override</td></tr>
|
|
298
|
+
<tr class="memdesc:acd9a15c398be20db43ed9fd910bd1758 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft"> </td><td class="mdescRight">dump and debug, print out conditional pts <a href="classSVF_1_1BVDataPTAImpl.html#acd9a15c398be20db43ed9fd910bd1758">More...</a><br /></td></tr>
|
|
299
|
+
<tr class="separator:acd9a15c398be20db43ed9fd910bd1758 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2"> </td></tr>
|
|
300
|
+
<tr class="memitem:ad34eea2a5ec26e0b2b6a78914879f989 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ad34eea2a5ec26e0b2b6a78914879f989">dumpTopLevelPtsTo</a> () override</td></tr>
|
|
301
|
+
<tr class="separator:ad34eea2a5ec26e0b2b6a78914879f989 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2"> </td></tr>
|
|
302
|
+
<tr class="memitem:a7996a2c07b015e8557398ec10db1acef inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a7996a2c07b015e8557398ec10db1acef">dumpAllPts</a> () override</td></tr>
|
|
303
|
+
<tr class="separator:a7996a2c07b015e8557398ec10db1acef inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2"> </td></tr>
|
|
307
304
|
<tr class="inherit_header pub_methods_classSVF_1_1PointerAnalysis"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1PointerAnalysis')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classSVF_1_1PointerAnalysis.html">SVF::PointerAnalysis</a></td></tr>
|
|
308
305
|
<tr class="memitem:ade879ee99cae01632d567d3736dcad9e inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ICFG.html">ICFG</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PointerAnalysis.html#ade879ee99cae01632d567d3736dcad9e">getICFG</a> () const</td></tr>
|
|
309
306
|
<tr class="memdesc:ade879ee99cae01632d567d3736dcad9e inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="mdescLeft"> </td><td class="mdescRight">Get <a class="el" href="classSVF_1_1ICFG.html">ICFG</a>. <a href="classSVF_1_1PointerAnalysis.html#ade879ee99cae01632d567d3736dcad9e">More...</a><br /></td></tr>
|
|
@@ -457,9 +454,9 @@ Protected Types</h2></td></tr>
|
|
|
457
454
|
</table><table class="memberdecls">
|
|
458
455
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
|
|
459
456
|
Protected Member Functions</h2></td></tr>
|
|
460
|
-
<tr class="memitem:
|
|
461
|
-
<tr class="memdesc:
|
|
462
|
-
<tr class="separator:
|
|
457
|
+
<tr class="memitem:a3fcdbd3e6718cd5b3a339d34198dd0e6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">NodeStack</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#a3fcdbd3e6718cd5b3a339d34198dd0e6">SCCDetect</a> () override</td></tr>
|
|
458
|
+
<tr class="memdesc:a3fcdbd3e6718cd5b3a339d34198dd0e6"><td class="mdescLeft"> </td><td class="mdescRight">SCC detection. <a href="#a3fcdbd3e6718cd5b3a339d34198dd0e6">More...</a><br /></td></tr>
|
|
459
|
+
<tr class="separator:a3fcdbd3e6718cd5b3a339d34198dd0e6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
463
460
|
<tr class="memitem:a42a7e39e0e15576742f8ba7c32579ea2"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#a42a7e39e0e15576742f8ba7c32579ea2">isStrongUpdate</a> (const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *node, <a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> &singleton)</td></tr>
|
|
464
461
|
<tr class="memdesc:a42a7e39e0e15576742f8ba7c32579ea2"><td class="mdescLeft"> </td><td class="mdescRight">Return TRUE if this is a strong update STORE statement. <a href="#a42a7e39e0e15576742f8ba7c32579ea2">More...</a><br /></td></tr>
|
|
465
462
|
<tr class="separator:a42a7e39e0e15576742f8ba7c32579ea2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -474,9 +471,9 @@ Protected Member Functions</h2></td></tr>
|
|
|
474
471
|
<tr class="memitem:a5f015d8f2b0956306822172d02b415c3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#a5f015d8f2b0956306822172d02b415c3">svfgStat</a> ()</td></tr>
|
|
475
472
|
<tr class="separator:a5f015d8f2b0956306822172d02b415c3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
476
473
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
477
|
-
<tr class="memitem:
|
|
478
|
-
<tr class="memdesc:
|
|
479
|
-
<tr class="separator:
|
|
474
|
+
<tr class="memitem:a8892e6f56f32675f9bf6884bd0d29843"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#a8892e6f56f32675f9bf6884bd0d29843">propFromSrcToDst</a> (<a class="el" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a> *edge) override</td></tr>
|
|
475
|
+
<tr class="memdesc:a8892e6f56f32675f9bf6884bd0d29843"><td class="mdescLeft"> </td><td class="mdescRight">Propagation. <a href="#a8892e6f56f32675f9bf6884bd0d29843">More...</a><br /></td></tr>
|
|
476
|
+
<tr class="separator:a8892e6f56f32675f9bf6884bd0d29843"><td class="memSeparator" colspan="2"> </td></tr>
|
|
480
477
|
<tr class="memitem:ad3518931d3b8a0671cbeb975f853b956"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#ad3518931d3b8a0671cbeb975f853b956">propAlongDirectEdge</a> (const <a class="el" href="classSVF_1_1DirectSVFGEdge.html">DirectSVFGEdge</a> *edge)</td></tr>
|
|
481
478
|
<tr class="memdesc:ad3518931d3b8a0671cbeb975f853b956"><td class="mdescLeft"> </td><td class="mdescRight">Propagate points-to information along a DIRECT <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> edge. <a href="#ad3518931d3b8a0671cbeb975f853b956">More...</a><br /></td></tr>
|
|
482
479
|
<tr class="separator:ad3518931d3b8a0671cbeb975f853b956"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -518,9 +515,9 @@ Protected Member Functions</h2></td></tr>
|
|
|
518
515
|
<tr class="memitem:a9622f0b7b16694b0c74b07834f598e67"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#a9622f0b7b16694b0c74b07834f598e67">clearAllDFOutVarFlag</a> (const <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *stmt)</td></tr>
|
|
519
516
|
<tr class="separator:a9622f0b7b16694b0c74b07834f598e67"><td class="memSeparator" colspan="2"> </td></tr>
|
|
520
517
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
521
|
-
<tr class="memitem:
|
|
522
|
-
<tr class="memdesc:
|
|
523
|
-
<tr class="separator:
|
|
518
|
+
<tr class="memitem:a0b9eedcac68088f924100406d006bc56"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#a0b9eedcac68088f924100406d006bc56">processNode</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> nodeId) override</td></tr>
|
|
519
|
+
<tr class="memdesc:a0b9eedcac68088f924100406d006bc56"><td class="mdescLeft"> </td><td class="mdescRight">Handle various constraints. <a href="#a0b9eedcac68088f924100406d006bc56">More...</a><br /></td></tr>
|
|
520
|
+
<tr class="separator:a0b9eedcac68088f924100406d006bc56"><td class="memSeparator" colspan="2"> </td></tr>
|
|
524
521
|
<tr class="memitem:a979f89495966d71f9b470d832384ebd6"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#a979f89495966d71f9b470d832384ebd6">processSVFGNode</a> (<a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> *node)</td></tr>
|
|
525
522
|
<tr class="separator:a979f89495966d71f9b470d832384ebd6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
526
523
|
<tr class="memitem:abb37c5e4e6fa4742e8dbcf397aea086e"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#abb37c5e4e6fa4742e8dbcf397aea086e">processAddr</a> (const <a class="el" href="namespaceSVF.html#a959453cbb8ff2d852b526fd1ff74ce49">AddrSVFGNode</a> *addr)</td></tr>
|
|
@@ -536,9 +533,9 @@ Protected Member Functions</h2></td></tr>
|
|
|
536
533
|
<tr class="memitem:aa37d591d2d4f65957e840bef4d142a6a"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#aa37d591d2d4f65957e840bef4d142a6a">processStore</a> (const <a class="el" href="namespaceSVF.html#a54c5725186e66ead6faf53c10a288714">StoreSVFGNode</a> *store)</td></tr>
|
|
537
534
|
<tr class="separator:aa37d591d2d4f65957e840bef4d142a6a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
538
535
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
539
|
-
<tr class="memitem:
|
|
540
|
-
<tr class="memdesc:
|
|
541
|
-
<tr class="separator:
|
|
536
|
+
<tr class="memitem:aad0bf334d3c749240ca27b4bcfd6eeab"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#aad0bf334d3c749240ca27b4bcfd6eeab">updateCallGraph</a> (const <a class="el" href="classSVF_1_1PointerAnalysis.html#ad95c842964e6ca46e51fb763fefec585">CallSiteToFunPtrMap</a> &callsites) override</td></tr>
|
|
537
|
+
<tr class="memdesc:aad0bf334d3c749240ca27b4bcfd6eeab"><td class="mdescLeft"> </td><td class="mdescRight">Update call graph. <a href="#aad0bf334d3c749240ca27b4bcfd6eeab">More...</a><br /></td></tr>
|
|
538
|
+
<tr class="separator:aad0bf334d3c749240ca27b4bcfd6eeab"><td class="memSeparator" colspan="2"> </td></tr>
|
|
542
539
|
<tr class="memitem:ad7640ada31b5cb542e492e27ab4fe1af"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#ad7640ada31b5cb542e492e27ab4fe1af">connectCallerAndCallee</a> (const <a class="el" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a> &newEdges, <a class="el" href="classSVF_1_1FlowSensitive.html#a69289c48fa91f850da90de080b9d26e5">SVFGEdgeSetTy</a> &edges)</td></tr>
|
|
543
540
|
<tr class="memdesc:ad7640ada31b5cb542e492e27ab4fe1af"><td class="mdescLeft"> </td><td class="mdescRight">Connect nodes in <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. <a href="#ad7640ada31b5cb542e492e27ab4fe1af">More...</a><br /></td></tr>
|
|
544
541
|
<tr class="separator:ad7640ada31b5cb542e492e27ab4fe1af"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -560,9 +557,9 @@ Protected Member Functions</h2></td></tr>
|
|
|
560
557
|
<tr class="memitem:a0c5616b0e340955dafc2ab2f21740abd inherit pro_methods_classSVF_1_1WPASolver"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1WPASolver.html#a0c5616b0e340955dafc2ab2f21740abd">WPASolver</a> ()</td></tr>
|
|
561
558
|
<tr class="memdesc:a0c5616b0e340955dafc2ab2f21740abd inherit pro_methods_classSVF_1_1WPASolver"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="classSVF_1_1WPASolver.html#a0c5616b0e340955dafc2ab2f21740abd">More...</a><br /></td></tr>
|
|
562
559
|
<tr class="separator:a0c5616b0e340955dafc2ab2f21740abd inherit pro_methods_classSVF_1_1WPASolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
563
|
-
<tr class="memitem:
|
|
564
|
-
<tr class="memdesc:
|
|
565
|
-
<tr class="separator:
|
|
560
|
+
<tr class="memitem:a99571af72e62bcf535a05095835bddfb inherit pro_methods_classSVF_1_1WPASolver"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1WPASolver.html#a99571af72e62bcf535a05095835bddfb">~WPASolver</a> ()=default</td></tr>
|
|
561
|
+
<tr class="memdesc:a99571af72e62bcf535a05095835bddfb inherit pro_methods_classSVF_1_1WPASolver"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="classSVF_1_1WPASolver.html#a99571af72e62bcf535a05095835bddfb">More...</a><br /></td></tr>
|
|
562
|
+
<tr class="separator:a99571af72e62bcf535a05095835bddfb inherit pro_methods_classSVF_1_1WPASolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
566
563
|
<tr class="memitem:a37ca8a99b8f83fba796293e6e13b0953 inherit pro_methods_classSVF_1_1WPASolver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1WPASolver.html#a1352953966be14b2a1d6244f35e74a33">SCC</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1WPASolver.html#a37ca8a99b8f83fba796293e6e13b0953">getSCCDetector</a> () const</td></tr>
|
|
567
564
|
<tr class="memdesc:a37ca8a99b8f83fba796293e6e13b0953 inherit pro_methods_classSVF_1_1WPASolver"><td class="mdescLeft"> </td><td class="mdescRight">Get SCC detector. <a href="classSVF_1_1WPASolver.html#a37ca8a99b8f83fba796293e6e13b0953">More...</a><br /></td></tr>
|
|
568
565
|
<tr class="separator:a37ca8a99b8f83fba796293e6e13b0953 inherit pro_methods_classSVF_1_1WPASolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -739,9 +736,9 @@ Protected Attributes</h2></td></tr>
|
|
|
739
736
|
<tr class="memitem:a87e9adb7fb0e0a42abaf90adac27a9c0 inherit pro_attribs_classSVF_1_1WPASolver"><td class="memItemLeft" align="right" valign="top">GraphType </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1WPASolver.html#a87e9adb7fb0e0a42abaf90adac27a9c0">_graph</a></td></tr>
|
|
740
737
|
<tr class="memdesc:a87e9adb7fb0e0a42abaf90adac27a9c0 inherit pro_attribs_classSVF_1_1WPASolver"><td class="mdescLeft"> </td><td class="mdescRight">Graph. <a href="classSVF_1_1WPASolver.html#a87e9adb7fb0e0a42abaf90adac27a9c0">More...</a><br /></td></tr>
|
|
741
738
|
<tr class="separator:a87e9adb7fb0e0a42abaf90adac27a9c0 inherit pro_attribs_classSVF_1_1WPASolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
742
|
-
<tr class="memitem:
|
|
743
|
-
<tr class="memdesc:
|
|
744
|
-
<tr class="separator:
|
|
739
|
+
<tr class="memitem:a1d3b2a21385c775f355e188e2abe345e inherit pro_attribs_classSVF_1_1WPASolver"><td class="memItemLeft" align="right" valign="top">std::unique_ptr< <a class="el" href="classSVF_1_1WPASolver.html#a1352953966be14b2a1d6244f35e74a33">SCC</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1WPASolver.html#a1d3b2a21385c775f355e188e2abe345e">scc</a></td></tr>
|
|
740
|
+
<tr class="memdesc:a1d3b2a21385c775f355e188e2abe345e inherit pro_attribs_classSVF_1_1WPASolver"><td class="mdescLeft"> </td><td class="mdescRight">SCC. <a href="classSVF_1_1WPASolver.html#a1d3b2a21385c775f355e188e2abe345e">More...</a><br /></td></tr>
|
|
741
|
+
<tr class="separator:a1d3b2a21385c775f355e188e2abe345e inherit pro_attribs_classSVF_1_1WPASolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
745
742
|
<tr class="memitem:a1775717a8c8d5d125b7561bc1ae6abf5 inherit pro_attribs_classSVF_1_1WPASolver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1WPASolver.html#a624e9156b2d3a4f284548cbaaf650334">WorkList</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1WPASolver.html#a1775717a8c8d5d125b7561bc1ae6abf5">worklist</a></td></tr>
|
|
746
743
|
<tr class="memdesc:a1775717a8c8d5d125b7561bc1ae6abf5 inherit pro_attribs_classSVF_1_1WPASolver"><td class="mdescLeft"> </td><td class="mdescRight">Worklist for resolution. <a href="classSVF_1_1WPASolver.html#a1775717a8c8d5d125b7561bc1ae6abf5">More...</a><br /></td></tr>
|
|
747
744
|
<tr class="separator:a1775717a8c8d5d125b7561bc1ae6abf5 inherit pro_attribs_classSVF_1_1WPASolver"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -785,8 +782,8 @@ Protected Attributes</h2></td></tr>
|
|
|
785
782
|
</table><table class="memberdecls">
|
|
786
783
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
|
|
787
784
|
Static Protected Attributes</h2></td></tr>
|
|
788
|
-
<tr class="memitem:
|
|
789
|
-
<tr class="separator:
|
|
785
|
+
<tr class="memitem:a2fac4f6a9d2cc19b2d998f0197e6883b"><td class="memItemLeft" align="right" valign="top">static std::unique_ptr< <a class="el" href="classSVF_1_1FlowSensitive.html">FlowSensitive</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FlowSensitive.html#a2fac4f6a9d2cc19b2d998f0197e6883b">fspta</a></td></tr>
|
|
786
|
+
<tr class="separator:a2fac4f6a9d2cc19b2d998f0197e6883b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
790
787
|
<tr class="inherit_header pro_static_attribs_classSVF_1_1PointerAnalysis"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_classSVF_1_1PointerAnalysis')"><img src="closed.png" alt="-"/> Static Protected Attributes inherited from <a class="el" href="classSVF_1_1PointerAnalysis.html">SVF::PointerAnalysis</a></td></tr>
|
|
791
788
|
<tr class="memitem:adc7f5c71efb9cd1bec4f5ca9127654c3 inherit pro_static_attribs_classSVF_1_1PointerAnalysis"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a> = nullptr</td></tr>
|
|
792
789
|
<tr class="memdesc:adc7f5c71efb9cd1bec4f5ca9127654c3 inherit pro_static_attribs_classSVF_1_1PointerAnalysis"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a>. <a href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">More...</a><br /></td></tr>
|
|
@@ -935,7 +932,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
935
932
|
</table>
|
|
936
933
|
</td>
|
|
937
934
|
<td class="mlabels-right">
|
|
938
|
-
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
935
|
+
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
|
|
939
936
|
</tr>
|
|
940
937
|
</table>
|
|
941
938
|
</div><div class="memdoc">
|
|
@@ -943,43 +940,43 @@ Additional Inherited Members</h2></td></tr>
|
|
|
943
940
|
<p>Constructor. </p>
|
|
944
941
|
|
|
945
942
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00061">61</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
946
|
-
<div class="fragment"><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> 
|
|
947
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a2feaa4b7a72989b311e9084a81320254"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a2feaa4b7a72989b311e9084a81320254">SVF::FlowSensitive::indirectPropaTime</a></div><div class="ttdeci">double indirectPropaTime</div><div class="ttdoc">time of points-to propagation of top-level pointers </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
948
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aae032e5f5d53b131d0112dc8faa464a9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
949
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aa3d4703756a6297ab5c0756172024fe4"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">SVF::FlowSensitive::maxSCCSize</a></div><div class="ttdeci">u32_t maxSCCSize</div><div class="ttdoc">Number of processed mssa node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
950
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aab4f70210eb1e6447a24697d3b459067"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aab4f70210eb1e6447a24697d3b459067">SVF::FlowSensitive::loadTime</a></div><div class="ttdeci">double loadTime</div><div class="ttdoc">time of load edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
951
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ae4253bc632ffffe2498263c90f456ca7"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae4253bc632ffffe2498263c90f456ca7">SVF::FlowSensitive::numOfProcessedAddr</a></div><div class="ttdeci">u32_t numOfProcessedAddr</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
952
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a38f3ed35185addf701d4401bfdd5f29b"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a38f3ed35185addf701d4401bfdd5f29b">SVF::FlowSensitive::addrTime</a></div><div class="ttdeci">double addrTime</div><div class="ttdoc">time of handling address edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
953
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_abdc30e45347579986c42795a436a1251"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#abdc30e45347579986c42795a436a1251">SVF::FlowSensitive::numOfProcessedActualParam</a></div><div class="ttdeci">u32_t numOfProcessedActualParam</div><div class="ttdoc">Number of processed Store node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
954
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ae048cc5350cf2b075c05f5d84777a3c5"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae048cc5350cf2b075c05f5d84777a3c5">SVF::FlowSensitive::numOfProcessedFormalRet</a></div><div class="ttdeci">u32_t numOfProcessedFormalRet</div><div class="ttdoc">Number of processed actual param node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
955
|
-
<div class="ttc" id="classSVF_1_1WPASolver_html_aa7c0636780a86f376e9222bce771e859"><div class="ttname"><a href="classSVF_1_1WPASolver.html#aa7c0636780a86f376e9222bce771e859">SVF::WPASolver::iterationForPrintStat</a></div><div class="ttdeci">u32_t iterationForPrintStat</div><div class="ttdoc">print out statistics for i-th iteration </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#
|
|
956
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a9f3fe97202db8170fa9f47c5684bce75"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">SVF::FlowSensitive::numOfNodesInSCC</a></div><div class="ttdeci">u32_t numOfNodesInSCC</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
957
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_afc140b6c8e78dc2d962f64fdf53b1e07"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07">SVF::FlowSensitive::updateCallGraphTime</a></div><div class="ttdeci">double updateCallGraphTime</div><div class="ttdoc">time of updating call graph </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
958
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a669e8f1dd8572b7dcff373c9787a923d"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a669e8f1dd8572b7dcff373c9787a923d">SVF::FlowSensitive::numOfProcessedStore</a></div><div class="ttdeci">u32_t numOfProcessedStore</div><div class="ttdoc">Number of processed Load node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
943
|
+
<div class="fragment"><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  : <a class="code" href="namespaceSVF.html#a221270d70aa99a37738c0f919519a73d">WPASVFGFSSolver</a>(), <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab0e1242aadfe1e16a2bd1445658a5476">BVDataPTAImpl</a>(_pag, <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a4202f837e863a48712765cc346d8b514">solveTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#af496fa9aa2f4d59594950b2ad121deff">sccTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#ae2e58d18abcdddc7a5a87f4edc5f3b72">processTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#ac4d4b42bb96006801597f81ed3c4b337">propagationTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#af5a94d14096ae2bbc47b3b3b9f723226">updateTime</a> = 0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a38f3ed35185addf701d4401bfdd5f29b">addrTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a888d6334e5e226c634680e4c0674dcfb">copyTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a282126e5b67ed4e19aa40c81180b8290">gepTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#aab4f70210eb1e6447a24697d3b459067">loadTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7">storeTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#aee7d59b7ad00cf1cf6e3fba19513aa42">phiTime</a> = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07">updateCallGraphTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#ae086de68233375be42185f0af706687a">directPropaTime</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a2feaa4b7a72989b311e9084a81320254">indirectPropaTime</a> = 0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#ae4253bc632ffffe2498263c90f456ca7">numOfProcessedAddr</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a19e017f3ed6429fa30687018e64dae54">numOfProcessedCopy</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a88a111b6bc347d6562db7af8bd8f2f0e">numOfProcessedGep</a> = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a0e1a0bdbf4f81a3600ac26ac011ac268">numOfProcessedLoad</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a669e8f1dd8572b7dcff373c9787a923d">numOfProcessedStore</a> = 0;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#ac39abcb40e4b568ab59b7cf48ed10f70">numOfProcessedPhi</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#abdc30e45347579986c42795a436a1251">numOfProcessedActualParam</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#ae048cc5350cf2b075c05f5d84777a3c5">numOfProcessedFormalRet</a> = 0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#af71a5ae3aef022c569e89f40515072cf">numOfProcessedMSSANode</a> = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">maxSCCSize</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">numOfSCC</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">numOfNodesInSCC</a> = 0;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="classSVF_1_1WPASolver.html#aa7c0636780a86f376e9222bce771e859">iterationForPrintStat</a> = <a class="code" href="classSVF_1_1PointerAnalysis.html#afc320fbf269404fe128e69c98e6f9cac">OnTheFlyIterBudgetForStat</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_ae2e58d18abcdddc7a5a87f4edc5f3b72"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae2e58d18abcdddc7a5a87f4edc5f3b72">SVF::FlowSensitive::processTime</a></div><div class="ttdeci">double processTime</div><div class="ttdoc">time of processNode. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00296">FlowSensitive.h:296</a></div></div>
|
|
944
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a2feaa4b7a72989b311e9084a81320254"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a2feaa4b7a72989b311e9084a81320254">SVF::FlowSensitive::indirectPropaTime</a></div><div class="ttdeci">double indirectPropaTime</div><div class="ttdoc">time of points-to propagation of top-level pointers </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00299">FlowSensitive.h:299</a></div></div>
|
|
945
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aae032e5f5d53b131d0112dc8faa464a9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00239">FlowSensitive.h:239</a></div></div>
|
|
946
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aa3d4703756a6297ab5c0756172024fe4"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">SVF::FlowSensitive::maxSCCSize</a></div><div class="ttdeci">u32_t maxSCCSize</div><div class="ttdoc">Number of processed mssa node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00290">FlowSensitive.h:290</a></div></div>
|
|
947
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aab4f70210eb1e6447a24697d3b459067"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aab4f70210eb1e6447a24697d3b459067">SVF::FlowSensitive::loadTime</a></div><div class="ttdeci">double loadTime</div><div class="ttdoc">time of load edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00304">FlowSensitive.h:304</a></div></div>
|
|
948
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ae4253bc632ffffe2498263c90f456ca7"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae4253bc632ffffe2498263c90f456ca7">SVF::FlowSensitive::numOfProcessedAddr</a></div><div class="ttdeci">u32_t numOfProcessedAddr</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00280">FlowSensitive.h:280</a></div></div>
|
|
949
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a38f3ed35185addf701d4401bfdd5f29b"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a38f3ed35185addf701d4401bfdd5f29b">SVF::FlowSensitive::addrTime</a></div><div class="ttdeci">double addrTime</div><div class="ttdoc">time of handling address edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00301">FlowSensitive.h:301</a></div></div>
|
|
950
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_abdc30e45347579986c42795a436a1251"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#abdc30e45347579986c42795a436a1251">SVF::FlowSensitive::numOfProcessedActualParam</a></div><div class="ttdeci">u32_t numOfProcessedActualParam</div><div class="ttdoc">Number of processed Store node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00286">FlowSensitive.h:286</a></div></div>
|
|
951
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ae048cc5350cf2b075c05f5d84777a3c5"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae048cc5350cf2b075c05f5d84777a3c5">SVF::FlowSensitive::numOfProcessedFormalRet</a></div><div class="ttdeci">u32_t numOfProcessedFormalRet</div><div class="ttdoc">Number of processed actual param node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00287">FlowSensitive.h:287</a></div></div>
|
|
952
|
+
<div class="ttc" id="classSVF_1_1WPASolver_html_aa7c0636780a86f376e9222bce771e859"><div class="ttname"><a href="classSVF_1_1WPASolver.html#aa7c0636780a86f376e9222bce771e859">SVF::WPASolver::iterationForPrintStat</a></div><div class="ttdeci">u32_t iterationForPrintStat</div><div class="ttdoc">print out statistics for i-th iteration </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00173">WPASolver.h:173</a></div></div>
|
|
953
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a9f3fe97202db8170fa9f47c5684bce75"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">SVF::FlowSensitive::numOfNodesInSCC</a></div><div class="ttdeci">u32_t numOfNodesInSCC</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00292">FlowSensitive.h:292</a></div></div>
|
|
954
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_afc140b6c8e78dc2d962f64fdf53b1e07"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07">SVF::FlowSensitive::updateCallGraphTime</a></div><div class="ttdeci">double updateCallGraphTime</div><div class="ttdoc">time of updating call graph </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00307">FlowSensitive.h:307</a></div></div>
|
|
955
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a669e8f1dd8572b7dcff373c9787a923d"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a669e8f1dd8572b7dcff373c9787a923d">SVF::FlowSensitive::numOfProcessedStore</a></div><div class="ttdeci">u32_t numOfProcessedStore</div><div class="ttdoc">Number of processed Load node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00285">FlowSensitive.h:285</a></div></div>
|
|
959
956
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_afc320fbf269404fe128e69c98e6f9cac"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#afc320fbf269404fe128e69c98e6f9cac">SVF::PointerAnalysis::OnTheFlyIterBudgetForStat</a></div><div class="ttdeci">u32_t OnTheFlyIterBudgetForStat</div><div class="ttdoc">Flag for iteration budget for on-the-fly statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00138">PointerAnalysis.h:138</a></div></div>
|
|
960
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ac39abcb40e4b568ab59b7cf48ed10f70"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ac39abcb40e4b568ab59b7cf48ed10f70">SVF::FlowSensitive::numOfProcessedPhi</a></div><div class="ttdeci">u32_t numOfProcessedPhi</div><div class="ttdoc">Number of processed Gep node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
961
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a0e1a0bdbf4f81a3600ac26ac011ac268"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a0e1a0bdbf4f81a3600ac26ac011ac268">SVF::FlowSensitive::numOfProcessedLoad</a></div><div class="ttdeci">u32_t numOfProcessedLoad</div><div class="ttdoc">Number of processed Phi node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
962
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aee7d59b7ad00cf1cf6e3fba19513aa42"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aee7d59b7ad00cf1cf6e3fba19513aa42">SVF::FlowSensitive::phiTime</a></div><div class="ttdeci">double phiTime</div><div class="ttdoc">time of phi nodes. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
963
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a0ac955bf06261eec1c6bb78ec99652e3"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">SVF::FlowSensitive::numOfSCC</a></div><div class="ttdeci">u32_t numOfSCC</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
957
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ac39abcb40e4b568ab59b7cf48ed10f70"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ac39abcb40e4b568ab59b7cf48ed10f70">SVF::FlowSensitive::numOfProcessedPhi</a></div><div class="ttdeci">u32_t numOfProcessedPhi</div><div class="ttdoc">Number of processed Gep node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00283">FlowSensitive.h:283</a></div></div>
|
|
958
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a0e1a0bdbf4f81a3600ac26ac011ac268"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a0e1a0bdbf4f81a3600ac26ac011ac268">SVF::FlowSensitive::numOfProcessedLoad</a></div><div class="ttdeci">u32_t numOfProcessedLoad</div><div class="ttdoc">Number of processed Phi node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00284">FlowSensitive.h:284</a></div></div>
|
|
959
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aee7d59b7ad00cf1cf6e3fba19513aa42"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aee7d59b7ad00cf1cf6e3fba19513aa42">SVF::FlowSensitive::phiTime</a></div><div class="ttdeci">double phiTime</div><div class="ttdoc">time of phi nodes. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00306">FlowSensitive.h:306</a></div></div>
|
|
960
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a0ac955bf06261eec1c6bb78ec99652e3"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">SVF::FlowSensitive::numOfSCC</a></div><div class="ttdeci">u32_t numOfSCC</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00291">FlowSensitive.h:291</a></div></div>
|
|
964
961
|
<div class="ttc" id="cJSON_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>
|
|
965
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_af496fa9aa2f4d59594950b2ad121deff"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af496fa9aa2f4d59594950b2ad121deff">SVF::FlowSensitive::sccTime</a></div><div class="ttdeci">double sccTime</div><div class="ttdoc">time of SCC detection. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
966
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a4202f837e863a48712765cc346d8b514"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a4202f837e863a48712765cc346d8b514">SVF::FlowSensitive::solveTime</a></div><div class="ttdeci">double solveTime</div><div class="ttdoc">time of solve. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
967
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ae086de68233375be42185f0af706687a"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae086de68233375be42185f0af706687a">SVF::FlowSensitive::directPropaTime</a></div><div class="ttdeci">double directPropaTime</div><div class="ttdoc">time of points-to propagation of address-taken objects </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
968
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a88a111b6bc347d6562db7af8bd8f2f0e"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a88a111b6bc347d6562db7af8bd8f2f0e">SVF::FlowSensitive::numOfProcessedGep</a></div><div class="ttdeci">u32_t numOfProcessedGep</div><div class="ttdoc">Number of processed Copy node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
969
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_af71a5ae3aef022c569e89f40515072cf"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af71a5ae3aef022c569e89f40515072cf">SVF::FlowSensitive::numOfProcessedMSSANode</a></div><div class="ttdeci">u32_t numOfProcessedMSSANode</div><div class="ttdoc">Number of processed formal ret node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
970
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a888d6334e5e226c634680e4c0674dcfb"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a888d6334e5e226c634680e4c0674dcfb">SVF::FlowSensitive::copyTime</a></div><div class="ttdeci">double copyTime</div><div class="ttdoc">time of handling copy edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
962
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_af496fa9aa2f4d59594950b2ad121deff"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af496fa9aa2f4d59594950b2ad121deff">SVF::FlowSensitive::sccTime</a></div><div class="ttdeci">double sccTime</div><div class="ttdoc">time of SCC detection. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00295">FlowSensitive.h:295</a></div></div>
|
|
963
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a4202f837e863a48712765cc346d8b514"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a4202f837e863a48712765cc346d8b514">SVF::FlowSensitive::solveTime</a></div><div class="ttdeci">double solveTime</div><div class="ttdoc">time of solve. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00294">FlowSensitive.h:294</a></div></div>
|
|
964
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ae086de68233375be42185f0af706687a"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae086de68233375be42185f0af706687a">SVF::FlowSensitive::directPropaTime</a></div><div class="ttdeci">double directPropaTime</div><div class="ttdoc">time of points-to propagation of address-taken objects </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00298">FlowSensitive.h:298</a></div></div>
|
|
965
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a88a111b6bc347d6562db7af8bd8f2f0e"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a88a111b6bc347d6562db7af8bd8f2f0e">SVF::FlowSensitive::numOfProcessedGep</a></div><div class="ttdeci">u32_t numOfProcessedGep</div><div class="ttdoc">Number of processed Copy node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00282">FlowSensitive.h:282</a></div></div>
|
|
966
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_af71a5ae3aef022c569e89f40515072cf"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af71a5ae3aef022c569e89f40515072cf">SVF::FlowSensitive::numOfProcessedMSSANode</a></div><div class="ttdeci">u32_t numOfProcessedMSSANode</div><div class="ttdoc">Number of processed formal ret node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00288">FlowSensitive.h:288</a></div></div>
|
|
967
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a888d6334e5e226c634680e4c0674dcfb"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a888d6334e5e226c634680e4c0674dcfb">SVF::FlowSensitive::copyTime</a></div><div class="ttdeci">double copyTime</div><div class="ttdoc">time of handling copy edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00302">FlowSensitive.h:302</a></div></div>
|
|
971
968
|
<div class="ttc" id="classSVF_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>
|
|
972
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ac4d4b42bb96006801597f81ed3c4b337"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ac4d4b42bb96006801597f81ed3c4b337">SVF::FlowSensitive::propagationTime</a></div><div class="ttdeci">double propagationTime</div><div class="ttdoc">time of points-to propagation. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
973
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a19e017f3ed6429fa30687018e64dae54"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a19e017f3ed6429fa30687018e64dae54">SVF::FlowSensitive::numOfProcessedCopy</a></div><div class="ttdeci">u32_t numOfProcessedCopy</div><div class="ttdoc">Number of processed Addr node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
974
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a82b76087363b26fbe749653935569de7"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7">SVF::FlowSensitive::storeTime</a></div><div class="ttdeci">double storeTime</div><div class="ttdoc">time of store edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
975
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a282126e5b67ed4e19aa40c81180b8290"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a282126e5b67ed4e19aa40c81180b8290">SVF::FlowSensitive::gepTime</a></div><div class="ttdeci">double gepTime</div><div class="ttdoc">time of handling gep edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
969
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ac4d4b42bb96006801597f81ed3c4b337"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ac4d4b42bb96006801597f81ed3c4b337">SVF::FlowSensitive::propagationTime</a></div><div class="ttdeci">double propagationTime</div><div class="ttdoc">time of points-to propagation. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00297">FlowSensitive.h:297</a></div></div>
|
|
970
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a19e017f3ed6429fa30687018e64dae54"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a19e017f3ed6429fa30687018e64dae54">SVF::FlowSensitive::numOfProcessedCopy</a></div><div class="ttdeci">u32_t numOfProcessedCopy</div><div class="ttdoc">Number of processed Addr node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00281">FlowSensitive.h:281</a></div></div>
|
|
971
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a82b76087363b26fbe749653935569de7"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7">SVF::FlowSensitive::storeTime</a></div><div class="ttdeci">double storeTime</div><div class="ttdoc">time of store edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00305">FlowSensitive.h:305</a></div></div>
|
|
972
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a282126e5b67ed4e19aa40c81180b8290"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a282126e5b67ed4e19aa40c81180b8290">SVF::FlowSensitive::gepTime</a></div><div class="ttdeci">double gepTime</div><div class="ttdoc">time of handling gep edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00303">FlowSensitive.h:303</a></div></div>
|
|
976
973
|
<div class="ttc" id="namespaceSVF_html_a221270d70aa99a37738c0f919519a73d"><div class="ttname"><a href="namespaceSVF.html#a221270d70aa99a37738c0f919519a73d">SVF::WPASVFGFSSolver</a></div><div class="ttdeci">WPAFSSolver< SVFG * > WPASVFGFSSolver</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00043">FlowSensitive.h:43</a></div></div>
|
|
977
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_af5a94d14096ae2bbc47b3b3b9f723226"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af5a94d14096ae2bbc47b3b3b9f723226">SVF::FlowSensitive::updateTime</a></div><div class="ttdeci">double updateTime</div><div class="ttdoc">time of strong/weak updates. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
974
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_af5a94d14096ae2bbc47b3b3b9f723226"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af5a94d14096ae2bbc47b3b3b9f723226">SVF::FlowSensitive::updateTime</a></div><div class="ttdeci">double updateTime</div><div class="ttdoc">time of strong/weak updates. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00300">FlowSensitive.h:300</a></div></div>
|
|
978
975
|
</div><!-- fragment -->
|
|
979
976
|
</div>
|
|
980
977
|
</div>
|
|
981
|
-
<a id="
|
|
982
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
978
|
+
<a id="a08395aa9627c451555361eade6b2a50b"></a>
|
|
979
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a08395aa9627c451555361eade6b2a50b">◆ </a></span>~FlowSensitive()</h2>
|
|
983
980
|
|
|
984
981
|
<div class="memitem">
|
|
985
982
|
<div class="memproto">
|
|
@@ -988,7 +985,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
988
985
|
<td class="mlabels-left">
|
|
989
986
|
<table class="memname">
|
|
990
987
|
<tr>
|
|
991
|
-
<td class="memname">
|
|
988
|
+
<td class="memname">SVF::FlowSensitive::~FlowSensitive </td>
|
|
992
989
|
<td>(</td>
|
|
993
990
|
<td class="paramname"></td><td>)</td>
|
|
994
991
|
<td></td>
|
|
@@ -996,21 +993,18 @@ Additional Inherited Members</h2></td></tr>
|
|
|
996
993
|
</table>
|
|
997
994
|
</td>
|
|
998
995
|
<td class="mlabels-right">
|
|
999
|
-
<span class="mlabels"><span class="mlabel">
|
|
996
|
+
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">default</span></span> </td>
|
|
1000
997
|
</tr>
|
|
1001
998
|
</table>
|
|
1002
999
|
</div><div class="memdoc">
|
|
1003
1000
|
|
|
1004
1001
|
<p>Destructor. </p>
|
|
1005
1002
|
|
|
1006
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00076">76</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
1007
|
-
<div class="fragment"><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_aae032e5f5d53b131d0112dc8faa464a9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00246">FlowSensitive.h:246</a></div></div>
|
|
1008
|
-
</div><!-- fragment -->
|
|
1009
1003
|
</div>
|
|
1010
1004
|
</div>
|
|
1011
1005
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
1012
|
-
<a id="
|
|
1013
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1006
|
+
<a id="a7b3f1ca7f8996edc3ed80fdff536d519"></a>
|
|
1007
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a7b3f1ca7f8996edc3ed80fdff536d519">◆ </a></span>analyze()</h2>
|
|
1014
1008
|
|
|
1015
1009
|
<div class="memitem">
|
|
1016
1010
|
<div class="memproto">
|
|
@@ -1027,7 +1021,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1027
1021
|
</table>
|
|
1028
1022
|
</td>
|
|
1029
1023
|
<td class="mlabels-right">
|
|
1030
|
-
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
1024
|
+
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
|
|
1031
1025
|
</tr>
|
|
1032
1026
|
</table>
|
|
1033
1027
|
</div><div class="memdoc">
|
|
@@ -1041,28 +1035,28 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1041
1035
|
<p>Implements <a class="el" href="classSVF_1_1PointerAnalysis.html#ae1e217dc18be0ce70bee5ad930cb54c6">SVF::PointerAnalysis</a>.</p>
|
|
1042
1036
|
|
|
1043
1037
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00081">81</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
1044
|
-
<div class="fragment"><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordtype">bool</span> limitTimerSet = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a757815a2c758695176120509ceb0ce70">SVFUtil::startAnalysisLimitTimer</a>(<a class="code" href="classSVF_1_1Options.html#ad03c4697dd4da2b6adde112e3ee1884b">Options::FsTimeLimit</a>);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#
|
|
1038
|
+
<div class="fragment"><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordtype">bool</span> limitTimerSet = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a757815a2c758695176120509ceb0ce70">SVFUtil::startAnalysisLimitTimer</a>(<a class="code" href="classSVF_1_1Options.html#ad03c4697dd4da2b6adde112e3ee1884b">Options::FsTimeLimit</a>);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#ad3566c57f8456e98542f5a0b765e3cc6">initialize</a>();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVFUtil::pasMsg</a>(<span class="stringliteral">"Start Solving Constraints\n"</span>));</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">do</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="classSVF_1_1WPASolver.html#ab3369caa278da03e6e6697a839985cd6">numOfIteration</a>++;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">if</span>(0 == <a class="code" href="classSVF_1_1WPASolver.html#ab3369caa278da03e6e6697a839985cd6">numOfIteration</a> % <a class="code" href="classSVF_1_1PointerAnalysis.html#afc320fbf269404fe128e69c98e6f9cac">OnTheFlyIterBudgetForStat</a>)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#ab83b827ea42d3a61aad20b1a1485d866">dumpStat</a>();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#ae3b651799345d9d92b6d736dafb03f63">callGraphSCC</a>-><a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="classSVF_1_1WPASolver.html#a7195381c3aab04890139b4fe2c561909">initWorklist</a>();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="classSVF_1_1WPASolver.html#af1bb670efde7006e3e99b3735e4fc4cc">solveWorklist</a>();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">while</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#aad0bf334d3c749240ca27b4bcfd6eeab">updateCallGraph</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a9d3e7753643166465b0d647a75bc145a">getIndirectCallsites</a>()));</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVFUtil::pasMsg</a>(<span class="stringliteral">"Finish Solving Constraints\n"</span>));</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// Reset the time-up alarm; analysis is done.</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a168f7f7a3a8c70dbf2b5b4269cd4c7c5">SVFUtil::stopAnalysisLimitTimer</a>(limitTimerSet);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a4202f837e863a48712765cc346d8b514">solveTime</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a911aa7dd8d696b96a85d85af852e1e58">finalize</a>();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> }</div><div class="ttc" id="classSVF_1_1PointerAnalysis_html_a9d3e7753643166465b0d647a75bc145a"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a9d3e7753643166465b0d647a75bc145a">SVF::PointerAnalysis::getIndirectCallsites</a></div><div class="ttdeci">const CallSiteToFunPtrMap & getIndirectCallsites() const</div><div class="ttdoc">Return all indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00267">PointerAnalysis.h:267</a></div></div>
|
|
1045
1039
|
<div class="ttc" id="classSVF_1_1Options_html_ad03c4697dd4da2b6adde112e3ee1884b"><div class="ttname"><a href="classSVF_1_1Options.html#ad03c4697dd4da2b6adde112e3ee1884b">SVF::Options::FsTimeLimit</a></div><div class="ttdeci">static const llvm::cl::opt< unsigned > FsTimeLimit</div><div class="ttdoc">Time limit for the main phase (i.e., the actual solving) of FS analyses. </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00072">Options.h:72</a></div></div>
|
|
1046
|
-
<div class="ttc" id="classSVF_1_1WPASolver_html_ab3369caa278da03e6e6697a839985cd6"><div class="ttname"><a href="classSVF_1_1WPASolver.html#ab3369caa278da03e6e6697a839985cd6">SVF::WPASolver::numOfIteration</a></div><div class="ttdeci">u32_t numOfIteration</div><div class="ttdoc">num of iterations during constaint solving </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#
|
|
1047
|
-
<div class="ttc" id="classSVF_1_1WPASolver_html_af1bb670efde7006e3e99b3735e4fc4cc"><div class="ttname"><a href="classSVF_1_1WPASolver.html#af1bb670efde7006e3e99b3735e4fc4cc">SVF::WPASolver::solveWorklist</a></div><div class="ttdeci">virtual void solveWorklist()</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#
|
|
1040
|
+
<div class="ttc" id="classSVF_1_1WPASolver_html_ab3369caa278da03e6e6697a839985cd6"><div class="ttname"><a href="classSVF_1_1WPASolver.html#ab3369caa278da03e6e6697a839985cd6">SVF::WPASolver::numOfIteration</a></div><div class="ttdeci">u32_t numOfIteration</div><div class="ttdoc">num of iterations during constaint solving </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00200">WPASolver.h:200</a></div></div>
|
|
1041
|
+
<div class="ttc" id="classSVF_1_1WPASolver_html_af1bb670efde7006e3e99b3735e4fc4cc"><div class="ttname"><a href="classSVF_1_1WPASolver.html#af1bb670efde7006e3e99b3735e4fc4cc">SVF::WPASolver::solveWorklist</a></div><div class="ttdeci">virtual void solveWorklist()</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00108">WPASolver.h:108</a></div></div>
|
|
1048
1042
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_ab83b827ea42d3a61aad20b1a1485d866"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ab83b827ea42d3a61aad20b1a1485d866">SVF::PointerAnalysis::dumpStat</a></div><div class="ttdeci">void dumpStat()</div><div class="ttdoc">Dump the statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00166">PointerAnalysis.cpp:166</a></div></div>
|
|
1049
1043
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a609eea630a8f88fe9eaba15ce7e48738"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(std::string msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00098">SVFUtil.cpp:98</a></div></div>
|
|
1050
1044
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a123b5006a6da7053e5e357140da3c5a3"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">SVF::SCCDetection::find</a></div><div class="ttdeci">void find(void)</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00308">SCC.h:308</a></div></div>
|
|
1051
|
-
<div class="ttc" id="SVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdoc">General debug flag is for each phase of a pass, it is often in a colorful output format. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
1052
|
-
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
1053
|
-
<div class="ttc" id="
|
|
1045
|
+
<div class="ttc" id="SVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdoc">General debug flag is for each phase of a pass, it is often in a colorful output format. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00422">SVFType.h:422</a></div></div>
|
|
1046
|
+
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
|
|
1047
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ad3566c57f8456e98542f5a0b765e3cc6"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ad3566c57f8456e98542f5a0b765e3cc6">SVF::FlowSensitive::initialize</a></div><div class="ttdeci">void initialize() override</div><div class="ttdoc">Initialize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00045">FlowSensitive.cpp:45</a></div></div>
|
|
1054
1048
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_afc320fbf269404fe128e69c98e6f9cac"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#afc320fbf269404fe128e69c98e6f9cac">SVF::PointerAnalysis::OnTheFlyIterBudgetForStat</a></div><div class="ttdeci">u32_t OnTheFlyIterBudgetForStat</div><div class="ttdoc">Flag for iteration budget for on-the-fly statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00138">PointerAnalysis.h:138</a></div></div>
|
|
1055
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a9d81537ec20196315a9a2541477ec5bf"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a9d81537ec20196315a9a2541477ec5bf">SVF::FlowSensitive::updateCallGraph</a></div><div class="ttdeci">bool updateCallGraph(const CallSiteToFunPtrMap &callsites)</div><div class="ttdoc">Update call graph. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00640">FlowSensitive.cpp:640</a></div></div>
|
|
1056
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ad6243c1317503bed39411dab47c83da7"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ad6243c1317503bed39411dab47c83da7">SVF::FlowSensitive::initialize</a></div><div class="ttdeci">virtual void initialize()</div><div class="ttdoc">Initialize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00045">FlowSensitive.cpp:45</a></div></div>
|
|
1057
1049
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a757815a2c758695176120509ceb0ce70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a757815a2c758695176120509ceb0ce70">SVF::SVFUtil::startAnalysisLimitTimer</a></div><div class="ttdeci">bool startAnalysisLimitTimer(unsigned timeLimit)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00288">SVFUtil.cpp:288</a></div></div>
|
|
1058
1050
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_ae3b651799345d9d92b6d736dafb03f63"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ae3b651799345d9d92b6d736dafb03f63">SVF::PointerAnalysis::callGraphSCC</a></div><div class="ttdeci">CallGraphSCC * callGraphSCC</div><div class="ttdoc">SCC for CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00154">PointerAnalysis.h:154</a></div></div>
|
|
1059
1051
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
1060
1052
|
<div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
|
|
1061
1053
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
|
|
1062
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a4202f837e863a48712765cc346d8b514"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a4202f837e863a48712765cc346d8b514">SVF::FlowSensitive::solveTime</a></div><div class="ttdeci">double solveTime</div><div class="ttdoc">time of solve. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1063
|
-
<div class="ttc" id="
|
|
1054
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a4202f837e863a48712765cc346d8b514"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a4202f837e863a48712765cc346d8b514">SVF::FlowSensitive::solveTime</a></div><div class="ttdeci">double solveTime</div><div class="ttdoc">time of solve. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00294">FlowSensitive.h:294</a></div></div>
|
|
1055
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a911aa7dd8d696b96a85d85af852e1e58"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a911aa7dd8d696b96a85d85af852e1e58">SVF::FlowSensitive::finalize</a></div><div class="ttdeci">void finalize() override</div><div class="ttdoc">Finalize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00121">FlowSensitive.cpp:121</a></div></div>
|
|
1056
|
+
<div class="ttc" id="classSVF_1_1WPASolver_html_a7195381c3aab04890139b4fe2c561909"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a7195381c3aab04890139b4fe2c561909">SVF::WPASolver::initWorklist</a></div><div class="ttdeci">virtual void initWorklist()</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00097">WPASolver.h:97</a></div></div>
|
|
1064
1057
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a168f7f7a3a8c70dbf2b5b4269cd4c7c5"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a168f7f7a3a8c70dbf2b5b4269cd4c7c5">SVF::SVFUtil::stopAnalysisLimitTimer</a></div><div class="ttdeci">void stopAnalysisLimitTimer(bool limitTimerSet)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00309">SVFUtil.cpp:309</a></div></div>
|
|
1065
|
-
<div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
1058
|
+
<div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00417">SVFType.h:417</a></div></div>
|
|
1059
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aad0bf334d3c749240ca27b4bcfd6eeab"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aad0bf334d3c749240ca27b4bcfd6eeab">SVF::FlowSensitive::updateCallGraph</a></div><div class="ttdeci">bool updateCallGraph(const CallSiteToFunPtrMap &callsites) override</div><div class="ttdoc">Update call graph. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00640">FlowSensitive.cpp:640</a></div></div>
|
|
1066
1060
|
</div><!-- fragment -->
|
|
1067
1061
|
</div>
|
|
1068
1062
|
</div>
|
|
@@ -1092,8 +1086,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1092
1086
|
|
|
1093
1087
|
<p>Methods for support type inquiry through isa, cast, and dyn_cast. </p>
|
|
1094
1088
|
|
|
1095
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
1096
|
-
<div class="fragment"><div class="line"><a name="
|
|
1089
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00118">118</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
1090
|
+
<div class="fragment"><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div></div><!-- fragment -->
|
|
1097
1091
|
</div>
|
|
1098
1092
|
</div>
|
|
1099
1093
|
<a id="a12dea7b6057daddcc5c0d975aebf3f11"></a>
|
|
@@ -1120,8 +1114,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1120
1114
|
</table>
|
|
1121
1115
|
</div><div class="memdoc">
|
|
1122
1116
|
|
|
1123
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
1124
|
-
<div class="fragment"><div class="line"><a name="
|
|
1117
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00122">122</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
1118
|
+
<div class="fragment"><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">return</span> pta->getAnalysisTy() == <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ad6ccf1ce66083278349c5c3111172d78">FSSPARSE_WPA</a>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  }</div><div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85ad6ccf1ce66083278349c5c3111172d78"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ad6ccf1ce66083278349c5c3111172d78">SVF::PointerAnalysis::FSSPARSE_WPA</a></div><div class="ttdoc">Sparse flow sensitive WPA. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00075">PointerAnalysis.h:75</a></div></div>
|
|
1125
1119
|
</div><!-- fragment -->
|
|
1126
1120
|
</div>
|
|
1127
1121
|
</div>
|
|
@@ -1149,9 +1143,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1149
1143
|
</table>
|
|
1150
1144
|
</div><div class="memdoc">
|
|
1151
1145
|
|
|
1152
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
1153
|
-
<div class="fragment"><div class="line"><a name="
|
|
1154
|
-
<div class="ttc" id="classSVF_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#
|
|
1146
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00205">205</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
1147
|
+
<div class="fragment"><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-><a class="code" href="classSVF_1_1DFPTData.html#ac20579e277a284158e2924fb5946cd86">clearAllDFOutUpdatedVar</a>(stmt->getId());</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  }</div><div class="ttc" id="classSVF_1_1DFPTData_html_ac20579e277a284158e2924fb5946cd86"><div class="ttname"><a href="classSVF_1_1DFPTData.html#ac20579e277a284158e2924fb5946cd86">SVF::DFPTData::clearAllDFOutUpdatedVar</a></div><div class="ttdeci">virtual void clearAllDFOutUpdatedVar(LocID)=0</div></div>
|
|
1148
|
+
<div class="ttc" id="classSVF_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#l00174">PointerAnalysisImpl.h:174</a></div></div>
|
|
1155
1149
|
</div><!-- fragment -->
|
|
1156
1150
|
</div>
|
|
1157
1151
|
</div>
|
|
@@ -1185,10 +1179,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1185
1179
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00778">778</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
1186
1180
|
<div class="fragment"><div class="line"><a name="l00779"></a><span class="lineno"> 779</span> {</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  std::vector<std::pair<unsigned, unsigned>> keys;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& pair : *<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>)</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  keys.emplace_back(pair.first, 1);</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span> </div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  <a class="code" href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">PointsTo::MappingPtr</a> nodeMapping =</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  std::make_shared<std::vector<NodeID>>(<a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#a33d502a0bd49307cd824e34b73157b9b">NodeIDAllocator::Clusterer::cluster</a>(<a class="code" href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">ander</a>, keys, <a class="code" href="classSVF_1_1FlowSensitive.html#adba7ffe68ae7edce9b3aa896f978da6b">candidateMappings</a>, <span class="stringliteral">"aux-ander"</span>));</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  <a class="code" href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">PointsTo::MappingPtr</a> reverseNodeMapping =</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  std::make_shared<std::vector<NodeID>>(<a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#a36b25188130f4c21d145c950a70d616f">NodeIDAllocator::Clusterer::getReverseNodeMapping</a>(*nodeMapping));</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span> </div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <a class="code" href="classSVF_1_1PointsTo.html#a84eca4c7fc833f8ca4d119cd4da08ca8">PointsTo::setCurrentBestNodeMapping</a>(nodeMapping, reverseNodeMapping);</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span> }</div><div class="ttc" id="classSVF_1_1PointsTo_html_a849f670b38cb6f65fc23707a212591c7"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">SVF::PointsTo::MappingPtr</a></div><div class="ttdeci">std::shared_ptr< std::vector< NodeID > > MappingPtr</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00042">PointsTo.h:42</a></div></div>
|
|
1187
1181
|
<div class="ttc" id="classSVF_1_1NodeIDAllocator_1_1Clusterer_html_a33d502a0bd49307cd824e34b73157b9b"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#a33d502a0bd49307cd824e34b73157b9b">SVF::NodeIDAllocator::Clusterer::cluster</a></div><div class="ttdeci">static std::vector< NodeID > cluster(BVDataPTAImpl *pta, const std::vector< std::pair< NodeID, unsigned >> keys, std::vector< std::pair< hclust_fast_methods, std::vector< NodeID >>> &candidates, std::string evalSubtitle="")</div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00188">NodeIDAllocator.cpp:188</a></div></div>
|
|
1188
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_adba7ffe68ae7edce9b3aa896f978da6b"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#adba7ffe68ae7edce9b3aa896f978da6b">SVF::FlowSensitive::candidateMappings</a></div><div class="ttdeci">std::vector< std::pair< hclust_fast_methods, std::vector< NodeID > > > candidateMappings</div><div class="ttdoc">Save candidate mappings for evaluation&#39;s sake. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1182
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_adba7ffe68ae7edce9b3aa896f978da6b"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#adba7ffe68ae7edce9b3aa896f978da6b">SVF::FlowSensitive::candidateMappings</a></div><div class="ttdeci">std::vector< std::pair< hclust_fast_methods, std::vector< NodeID > > > candidateMappings</div><div class="ttdoc">Save candidate mappings for evaluation&#39;s sake. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00276">FlowSensitive.h:276</a></div></div>
|
|
1189
1183
|
<div class="ttc" id="classSVF_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>
|
|
1190
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a5cfee013a1a5821ef0c449842dd8690d"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">SVF::FlowSensitive::ander</a></div><div class="ttdeci">AndersenWaveDiff * ander</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1191
|
-
<div class="ttc" id="classSVF_1_1PointsTo_html_a84eca4c7fc833f8ca4d119cd4da08ca8"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a84eca4c7fc833f8ca4d119cd4da08ca8">SVF::PointsTo::setCurrentBestNodeMapping</a></div><div class="ttdeci">static void setCurrentBestNodeMapping(MappingPtr newCurrentBestNodeMapping, MappingPtr newCurrentBestReverseNodeMapping)</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#
|
|
1184
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a5cfee013a1a5821ef0c449842dd8690d"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">SVF::FlowSensitive::ander</a></div><div class="ttdeci">AndersenWaveDiff * ander</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00273">FlowSensitive.h:273</a></div></div>
|
|
1185
|
+
<div class="ttc" id="classSVF_1_1PointsTo_html_a84eca4c7fc833f8ca4d119cd4da08ca8"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a84eca4c7fc833f8ca4d119cd4da08ca8">SVF::PointsTo::setCurrentBestNodeMapping</a></div><div class="ttdeci">static void setCurrentBestNodeMapping(MappingPtr newCurrentBestNodeMapping, MappingPtr newCurrentBestReverseNodeMapping)</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00371">PointsTo.cpp:371</a></div></div>
|
|
1192
1186
|
<div class="ttc" id="classSVF_1_1NodeIDAllocator_1_1Clusterer_html_a36b25188130f4c21d145c950a70d616f"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#a36b25188130f4c21d145c950a70d616f">SVF::NodeIDAllocator::Clusterer::getReverseNodeMapping</a></div><div class="ttdeci">static std::vector< NodeID > getReverseNodeMapping(const std::vector< NodeID > &nodeMapping)</div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00398">NodeIDAllocator.cpp:398</a></div></div>
|
|
1193
1187
|
</div><!-- fragment -->
|
|
1194
1188
|
</div>
|
|
@@ -1231,7 +1225,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1231
1225
|
<p>Handle parameter passing in <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> </p>
|
|
1232
1226
|
|
|
1233
1227
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00693">693</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
1234
|
-
<div class="fragment"><div class="line"><a name="l00694"></a><span class="lineno"> 694</span> {</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  CallEdgeMap::const_iterator iter = newEdges.begin();</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  CallEdgeMap::const_iterator eiter = newEdges.end();</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="keywordflow">for</span> (; iter != eiter; iter++)</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  {</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = iter->first;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">FunctionSet</a> & functions = iter->second;</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <span class="keywordflow">for</span> (FunctionSet::const_iterator func_iter = functions.begin(); func_iter != functions.end(); func_iter++)</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  {</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func = *func_iter;</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-><a class="code" href="classSVF_1_1SVFG.html#aefca97f043b3e220ef6012a049b83fdf">connectCallerAndCallee</a>(cs, func, edges);</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  }</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  }</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span> }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_aae032e5f5d53b131d0112dc8faa464a9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1228
|
+
<div class="fragment"><div class="line"><a name="l00694"></a><span class="lineno"> 694</span> {</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  CallEdgeMap::const_iterator iter = newEdges.begin();</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  CallEdgeMap::const_iterator eiter = newEdges.end();</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="keywordflow">for</span> (; iter != eiter; iter++)</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  {</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = iter->first;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">FunctionSet</a> & functions = iter->second;</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <span class="keywordflow">for</span> (FunctionSet::const_iterator func_iter = functions.begin(); func_iter != functions.end(); func_iter++)</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  {</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func = *func_iter;</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-><a class="code" href="classSVF_1_1SVFG.html#aefca97f043b3e220ef6012a049b83fdf">connectCallerAndCallee</a>(cs, func, edges);</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  }</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  }</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span> }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_aae032e5f5d53b131d0112dc8faa464a9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00239">FlowSensitive.h:239</a></div></div>
|
|
1235
1229
|
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00257">SVFValue.h:257</a></div></div>
|
|
1236
1230
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_ac1422cd8b449fdb4a1f7c539364e4c41"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">SVF::PointerAnalysis::FunctionSet</a></div><div class="ttdeci">Set< const SVFFunction * > FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00105">PointerAnalysis.h:105</a></div></div>
|
|
1237
1231
|
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
|
|
@@ -1282,11 +1276,11 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1282
1276
|
<p>Fills may/noAliases for the location/pointer pairs in cmp. </p>
|
|
1283
1277
|
|
|
1284
1278
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00809">809</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
1285
|
-
<div class="fragment"><div class="line"><a name="l00810"></a><span class="lineno"> 810</span> {</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  <span class="keywordflow">for</span> (std::pair<NodeID, NodeID> locPA : cmp)</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  {</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  <span class="comment">// loc doesn't make a difference for FSPTA.</span></div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a> = locPA.second;</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  <span class="keywordflow">for</span> (std::pair<NodeID, NodeID> locPB : cmp)</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  {</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <span class="keywordflow">if</span> (locPB == locPA) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span> </div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> q = locPB.second;</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span> </div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="keywordflow">switch</span> (<a class="code" href="classSVF_1_1BVDataPTAImpl.html#
|
|
1279
|
+
<div class="fragment"><div class="line"><a name="l00810"></a><span class="lineno"> 810</span> {</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  <span class="keywordflow">for</span> (std::pair<NodeID, NodeID> locPA : cmp)</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  {</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  <span class="comment">// loc doesn't make a difference for FSPTA.</span></div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a> = locPA.second;</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  <span class="keywordflow">for</span> (std::pair<NodeID, NodeID> locPB : cmp)</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  {</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <span class="keywordflow">if</span> (locPB == locPA) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span> </div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> q = locPB.second;</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span> </div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="keywordflow">switch</span> (<a class="code" href="classSVF_1_1BVDataPTAImpl.html#a236d3e9c894fd7c34c8d7a77ac11dd48">alias</a>(p, q))</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  {</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  <span class="keywordflow">case</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">AliasResult::NoAlias</a>:</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  ++(*noAliases);</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <span class="keywordflow">case</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a>:</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  ++(*mayAliases);</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  assert(<span class="stringliteral">"Not May/NoAlias?"</span>);</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  }</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  }</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  }</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span> </div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span> }</div><div class="ttc" id="cJSON_8cpp_html_a009ef1d888ab6dbe77e6b42b0b39f1ae"><div class="ttname"><a href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a></div><div class="ttdeci">cJSON * p</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02559">cJSON.cpp:2559</a></div></div>
|
|
1286
1280
|
<div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
1287
|
-
<div class="ttc" id="
|
|
1288
|
-
<div class="ttc" id="
|
|
1289
|
-
<div class="ttc" id="
|
|
1281
|
+
<div class="ttc" id="namespaceSVF_html_a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">SVF::MayAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00461">SVFType.h:461</a></div></div>
|
|
1282
|
+
<div class="ttc" id="namespaceSVF_html_a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">SVF::NoAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00460">SVFType.h:460</a></div></div>
|
|
1283
|
+
<div class="ttc" id="classSVF_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#l00514">PointerAnalysisImpl.cpp:514</a></div></div>
|
|
1290
1284
|
</div><!-- fragment -->
|
|
1291
1285
|
</div>
|
|
1292
1286
|
</div>
|
|
@@ -1316,15 +1310,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1316
1310
|
|
|
1317
1311
|
<p>Create signle instance of flow-sensitive pointer analysis. </p>
|
|
1318
1312
|
|
|
1319
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
1320
|
-
<div class="fragment"><div class="line"><a name="
|
|
1313
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00079">79</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
1314
|
+
<div class="fragment"><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a2fac4f6a9d2cc19b2d998f0197e6883b">fspta</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a2fac4f6a9d2cc19b2d998f0197e6883b">fspta</a> = std::unique_ptr<FlowSensitive>(<span class="keyword">new</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aac88b67b49cbd72912ff586d30197ffb">FlowSensitive</a>(_pag));</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a2fac4f6a9d2cc19b2d998f0197e6883b">fspta</a>->analyze();</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a2fac4f6a9d2cc19b2d998f0197e6883b">fspta</a>.get();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_a2fac4f6a9d2cc19b2d998f0197e6883b"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a2fac4f6a9d2cc19b2d998f0197e6883b">SVF::FlowSensitive::fspta</a></div><div class="ttdeci">static std::unique_ptr< FlowSensitive > fspta</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00271">FlowSensitive.h:271</a></div></div>
|
|
1321
1315
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aac88b67b49cbd72912ff586d30197ffb"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aac88b67b49cbd72912ff586d30197ffb">SVF::FlowSensitive::FlowSensitive</a></div><div class="ttdeci">FlowSensitive(SVFIR *_pag, PTATY type=FSSPARSE_WPA)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00061">FlowSensitive.h:61</a></div></div>
|
|
1322
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a4ad2095dc708df07602de25e4a004776"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a4ad2095dc708df07602de25e4a004776">SVF::FlowSensitive::fspta</a></div><div class="ttdeci">static FlowSensitive * fspta</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00278">FlowSensitive.h:278</a></div></div>
|
|
1323
1316
|
</div><!-- fragment -->
|
|
1324
1317
|
</div>
|
|
1325
1318
|
</div>
|
|
1326
|
-
<a id="
|
|
1327
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1319
|
+
<a id="a911aa7dd8d696b96a85d85af852e1e58"></a>
|
|
1320
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a911aa7dd8d696b96a85d85af852e1e58">◆ </a></span>finalize()</h2>
|
|
1328
1321
|
|
|
1329
1322
|
<div class="memitem">
|
|
1330
1323
|
<div class="memproto">
|
|
@@ -1341,7 +1334,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1341
1334
|
</table>
|
|
1342
1335
|
</td>
|
|
1343
1336
|
<td class="mlabels-right">
|
|
1344
|
-
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
1337
|
+
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
|
|
1345
1338
|
</tr>
|
|
1346
1339
|
</table>
|
|
1347
1340
|
</div><div class="memdoc">
|
|
@@ -1349,34 +1342,34 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1349
1342
|
<p>Finalize analysis. </p>
|
|
1350
1343
|
<p>Finalize analysis </p>
|
|
1351
1344
|
|
|
1352
|
-
<p>Reimplemented from <a class="el" href="classSVF_1_1BVDataPTAImpl.html#
|
|
1345
|
+
<p>Reimplemented from <a class="el" href="classSVF_1_1BVDataPTAImpl.html#a638f58c3bf6efdb3787fafaa4e6f19ca">SVF::BVDataPTAImpl</a>.</p>
|
|
1353
1346
|
|
|
1354
1347
|
<p>Reimplemented in <a class="el" href="classSVF_1_1VersionedFlowSensitive.html#ad955fda89f4f749151a1bd14562b03f6">SVF::VersionedFlowSensitive</a>.</p>
|
|
1355
1348
|
|
|
1356
1349
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00121">121</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
1357
|
-
<div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a3061c75f7491dd737222b1b877721070">Options::DumpVFG</a>)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-><a class="code" href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">dump</a>(<span class="stringliteral">"fs_solved"</span>, <span class="keyword">true</span>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">NodeStack</a>& <a class="code" href="classSVF_1_1WPAFSSolver.html#a2cb80102611c663c4daddd68b4f4b75f">nodeStack</a> = <a class="code" href="classSVF_1_1WPASolver.html#aaa932894d00b69cfa741f9987a9cc6b8">WPASolver<SVFG*>::SCCDetect</a>();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">while</span> (nodeStack.empty() == <span class="keyword">false</span>)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> rep = nodeStack.top();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  nodeStack.pop();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& subNodes = <a class="code" href="classSVF_1_1WPASolver.html#a37ca8a99b8f83fba796293e6e13b0953">getSCCDetector</a>()-><a class="code" href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">subNodes</a>(rep);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">if</span> (subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>() > <a class="code" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">maxSCCSize</a>)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">maxSCCSize</a> = subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">if</span> (subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>() > 1)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">numOfNodesInSCC</a> += subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">numOfSCC</a>++;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">// TODO: check -stat too.</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a9dc372635fc6f5ea2d902fc5c49fca8a">Options::ClusterFs</a>)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<std::string, std::string></a> stats;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#acfdb43f20bbcababc928cc4df93a8483">PTDataTy</a> *ptd = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">getPTDataTy</a>();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="comment">// TODO: should we use liveOnly?</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<PointsTo, unsigned></a> allPts = ptd->getAllPts(<span class="keyword">true</span>);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="comment">// TODO: parameterise final arg.</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#acbbc5c04c79846fe1cc46a3bd5a65aba">NodeIDAllocator::Clusterer::evaluate</a>(*<a class="code" href="classSVF_1_1PointsTo.html#
|
|
1358
|
-
<div class="ttc" id="
|
|
1359
|
-
<div class="ttc" id="
|
|
1360
|
-
<div class="ttc" id="
|
|
1350
|
+
<div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a3061c75f7491dd737222b1b877721070">Options::DumpVFG</a>)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-><a class="code" href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">dump</a>(<span class="stringliteral">"fs_solved"</span>, <span class="keyword">true</span>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">NodeStack</a>& <a class="code" href="classSVF_1_1WPAFSSolver.html#a2cb80102611c663c4daddd68b4f4b75f">nodeStack</a> = <a class="code" href="classSVF_1_1WPASolver.html#aaa932894d00b69cfa741f9987a9cc6b8">WPASolver<SVFG*>::SCCDetect</a>();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">while</span> (nodeStack.empty() == <span class="keyword">false</span>)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> rep = nodeStack.top();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  nodeStack.pop();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& subNodes = <a class="code" href="classSVF_1_1WPASolver.html#a37ca8a99b8f83fba796293e6e13b0953">getSCCDetector</a>()-><a class="code" href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">subNodes</a>(rep);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">if</span> (subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>() > <a class="code" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">maxSCCSize</a>)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">maxSCCSize</a> = subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">if</span> (subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>() > 1)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">numOfNodesInSCC</a> += subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">numOfSCC</a>++;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">// TODO: check -stat too.</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a9dc372635fc6f5ea2d902fc5c49fca8a">Options::ClusterFs</a>)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<std::string, std::string></a> stats;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#acfdb43f20bbcababc928cc4df93a8483">PTDataTy</a> *ptd = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">getPTDataTy</a>();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="comment">// TODO: should we use liveOnly?</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<PointsTo, unsigned></a> allPts = ptd->getAllPts(<span class="keyword">true</span>);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="comment">// TODO: parameterise final arg.</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#acbbc5c04c79846fe1cc46a3bd5a65aba">NodeIDAllocator::Clusterer::evaluate</a>(*<a class="code" href="classSVF_1_1PointsTo.html#ae349a9ce6a8739925baffd83d1878b0e">PointsTo::getCurrentBestNodeMapping</a>(), allPts, stats, <span class="keyword">true</span>);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#ac10cbda6a84ce890c9946a5ff35800b7">NodeIDAllocator::Clusterer::printStats</a>(<span class="stringliteral">"post-main: best"</span>, stats);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="comment">// Do the same for the candidates. TODO: probably temporary for eval. purposes.</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">for</span> (std::pair<<a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dd">hclust_fast_methods</a>, std::vector<NodeID>> &candidate : <a class="code" href="classSVF_1_1FlowSensitive.html#adba7ffe68ae7edce9b3aa896f978da6b">candidateMappings</a>)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="comment">// Can reuse stats, since we're always filling it with `evaluate`, it will always be overwritten.</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#acbbc5c04c79846fe1cc46a3bd5a65aba">NodeIDAllocator::Clusterer::evaluate</a>(candidate.second, allPts, stats, <span class="keyword">true</span>);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#ac10cbda6a84ce890c9946a5ff35800b7">NodeIDAllocator::Clusterer::printStats</a>(<span class="stringliteral">"post-main: candidate "</span> + <a class="code" href="namespaceSVF_1_1SVFUtil.html#a14a4c5124f2fd03ca3d898e2acd54160">SVFUtil::hclustMethodToString</a>(candidate.first), stats);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a638f58c3bf6efdb3787fafaa4e6f19ca">BVDataPTAImpl::finalize</a>();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> }</div><div class="ttc" id="classSVF_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>
|
|
1351
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_a5fdaddc52e7342b834d76d64c1a1e498"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">SVF::SVFG::dump</a></div><div class="ttdeci">void dump(const std::string &file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00574">SVFG.cpp:574</a></div></div>
|
|
1352
|
+
<div class="ttc" id="classSVF_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#l00151">PointerAnalysisImpl.h:151</a></div></div>
|
|
1353
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aae032e5f5d53b131d0112dc8faa464a9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00239">FlowSensitive.h:239</a></div></div>
|
|
1361
1354
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a6ab5eff6a576e6d8703c1ea29b7f425d"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">SVF::SCCDetection::subNodes</a></div><div class="ttdeci">const NodeBS & subNodes(NodeID n) const</div><div class="ttdoc">get all subnodes in one scc, if size is empty insert itself into the set </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00173">SCC.h:173</a></div></div>
|
|
1362
1355
|
<div class="ttc" id="classSVF_1_1Options_html_a9dc372635fc6f5ea2d902fc5c49fca8a"><div class="ttname"><a href="classSVF_1_1Options.html#a9dc372635fc6f5ea2d902fc5c49fca8a">SVF::Options::ClusterFs</a></div><div class="ttdeci">static const llvm::cl::opt< bool > ClusterFs</div><div class="ttdoc">Whether to cluster FS or VFS with the auxiliary Andersen&#39;s. </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00044">Options.h:44</a></div></div>
|
|
1363
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aa3d4703756a6297ab5c0756172024fe4"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">SVF::FlowSensitive::maxSCCSize</a></div><div class="ttdeci">u32_t maxSCCSize</div><div class="ttdoc">Number of processed mssa node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1356
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aa3d4703756a6297ab5c0756172024fe4"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">SVF::FlowSensitive::maxSCCSize</a></div><div class="ttdeci">u32_t maxSCCSize</div><div class="ttdoc">Number of processed mssa node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00290">FlowSensitive.h:290</a></div></div>
|
|
1364
1357
|
<div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
1365
1358
|
<div class="ttc" id="namespaceSVF_html_a1811127aebdb9c926e39d155e20b3dc0"><div class="ttname"><a href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">SVF::NodeStack</a></div><div class="ttdeci">std::stack< NodeID > NodeStack</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00115">SVFType.h:115</a></div></div>
|
|
1366
1359
|
<div class="ttc" id="classSVF_1_1NodeIDAllocator_1_1Clusterer_html_acbbc5c04c79846fe1cc46a3bd5a65aba"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#acbbc5c04c79846fe1cc46a3bd5a65aba">SVF::NodeIDAllocator::Clusterer::evaluate</a></div><div class="ttdeci">static void evaluate(const std::vector< NodeID > &nodeMap, const Map< PointsTo, unsigned > pointsToSets, Map< std::string, std::string > &stats, bool accountForOcc)</div><div class="ttdoc">Fills in *NumWords statistics in stats.. </div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00573">NodeIDAllocator.cpp:573</a></div></div>
|
|
1367
|
-
<div class="ttc" id="classSVF_1_1WPASolver_html_aaa932894d00b69cfa741f9987a9cc6b8"><div class="ttname"><a href="classSVF_1_1WPASolver.html#aaa932894d00b69cfa741f9987a9cc6b8">SVF::WPASolver::SCCDetect</a></div><div class="ttdeci">virtual NodeStack & SCCDetect()</div><div class="ttdoc">SCC detection. </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#
|
|
1368
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a9f3fe97202db8170fa9f47c5684bce75"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">SVF::FlowSensitive::numOfNodesInSCC</a></div><div class="ttdeci">u32_t numOfNodesInSCC</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1369
|
-
<div class="ttc" id="classSVF_1_1SparseBitVector_html_a9f96e6a886fa69e07cda5dbfaed8b7c9"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">SVF::SparseBitVector::count</a></div><div class="ttdeci">unsigned count() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#
|
|
1360
|
+
<div class="ttc" id="classSVF_1_1WPASolver_html_aaa932894d00b69cfa741f9987a9cc6b8"><div class="ttname"><a href="classSVF_1_1WPASolver.html#aaa932894d00b69cfa741f9987a9cc6b8">SVF::WPASolver::SCCDetect</a></div><div class="ttdeci">virtual NodeStack & SCCDetect()</div><div class="ttdoc">SCC detection. </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00086">WPASolver.h:86</a></div></div>
|
|
1361
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a9f3fe97202db8170fa9f47c5684bce75"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">SVF::FlowSensitive::numOfNodesInSCC</a></div><div class="ttdeci">u32_t numOfNodesInSCC</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00292">FlowSensitive.h:292</a></div></div>
|
|
1362
|
+
<div class="ttc" id="classSVF_1_1SparseBitVector_html_a9f96e6a886fa69e07cda5dbfaed8b7c9"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">SVF::SparseBitVector::count</a></div><div class="ttdeci">unsigned count() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01096">SparseBitVector.h:1096</a></div></div>
|
|
1363
|
+
<div class="ttc" id="classSVF_1_1PointsTo_html_ae349a9ce6a8739925baffd83d1878b0e"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ae349a9ce6a8739925baffd83d1878b0e">SVF::PointsTo::getCurrentBestNodeMapping</a></div><div class="ttdeci">static MappingPtr getCurrentBestNodeMapping()</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00361">PointsTo.cpp:361</a></div></div>
|
|
1370
1364
|
<div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00099">SVFType.h:99</a></div></div>
|
|
1371
1365
|
<div class="ttc" id="classSVF_1_1NodeIDAllocator_1_1Clusterer_html_ac10cbda6a84ce890c9946a5ff35800b7"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#ac10cbda6a84ce890c9946a5ff35800b7">SVF::NodeIDAllocator::Clusterer::printStats</a></div><div class="ttdeci">static void printStats(std::string title, Map< std::string, std::string > &stats)</div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00691">NodeIDAllocator.cpp:691</a></div></div>
|
|
1372
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a0ac955bf06261eec1c6bb78ec99652e3"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">SVF::FlowSensitive::numOfSCC</a></div><div class="ttdeci">u32_t numOfSCC</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1366
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a0ac955bf06261eec1c6bb78ec99652e3"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">SVF::FlowSensitive::numOfSCC</a></div><div class="ttdeci">u32_t numOfSCC</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00291">FlowSensitive.h:291</a></div></div>
|
|
1373
1367
|
<div class="ttc" id="fastcluster_8h_html_a4205a14ad66b3320d2e94c61d74913dd"><div class="ttname"><a href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dd">hclust_fast_methods</a></div><div class="ttdeci">hclust_fast_methods</div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8h_source.html#l00065">fastcluster.h:65</a></div></div>
|
|
1374
1368
|
<div class="ttc" id="classSVF_1_1Options_html_a3061c75f7491dd737222b1b877721070"><div class="ttname"><a href="classSVF_1_1Options.html#a3061c75f7491dd737222b1b877721070">SVF::Options::DumpVFG</a></div><div class="ttdeci">static const llvm::cl::opt< bool > DumpVFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00122">Options.h:122</a></div></div>
|
|
1375
1369
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a14a4c5124f2fd03ca3d898e2acd54160"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a14a4c5124f2fd03ca3d898e2acd54160">SVF::SVFUtil::hclustMethodToString</a></div><div class="ttdeci">std::string hclustMethodToString(hclust_fast_methods method)</div><div class="ttdoc">Returns a string representation of a hclust method. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00259">SVFUtil.cpp:259</a></div></div>
|
|
1376
|
-
<div class="ttc" id="
|
|
1377
|
-
<div class="ttc" id="
|
|
1378
|
-
<div class="ttc" id="
|
|
1379
|
-
<div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
|
|
1370
|
+
<div class="ttc" id="classSVF_1_1WPASolver_html_a37ca8a99b8f83fba796293e6e13b0953"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a37ca8a99b8f83fba796293e6e13b0953">SVF::WPASolver::getSCCDetector</a></div><div class="ttdeci">SCC * getSCCDetector() const</div><div class="ttdoc">Get SCC detector. </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00067">WPASolver.h:67</a></div></div>
|
|
1371
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_adba7ffe68ae7edce9b3aa896f978da6b"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#adba7ffe68ae7edce9b3aa896f978da6b">SVF::FlowSensitive::candidateMappings</a></div><div class="ttdeci">std::vector< std::pair< hclust_fast_methods, std::vector< NodeID > > > candidateMappings</div><div class="ttdoc">Save candidate mappings for evaluation&#39;s sake. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00276">FlowSensitive.h:276</a></div></div>
|
|
1372
|
+
<div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
|
|
1380
1373
|
<div class="ttc" id="classSVF_1_1WPAFSSolver_html_a2cb80102611c663c4daddd68b4f4b75f"><div class="ttname"><a href="classSVF_1_1WPAFSSolver.html#a2cb80102611c663c4daddd68b4f4b75f">SVF::WPAFSSolver::nodeStack</a></div><div class="ttdeci">NodeStack nodeStack</div><div class="ttdoc">stack used for processing nodes. </div><div class="ttdef"><b>Definition:</b> <a href="WPAFSSolver_8h_source.html#l00064">WPAFSSolver.h:64</a></div></div>
|
|
1381
1374
|
<div class="ttc" id="classSVF_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>
|
|
1382
1375
|
</div><!-- fragment -->
|
|
@@ -1418,9 +1411,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1418
1411
|
|
|
1419
1412
|
<p>Get points-to set for a node from data flow IN/OUT set at a statement. </p>
|
|
1420
1413
|
|
|
1421
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
1422
|
-
<div class="fragment"><div class="line"><a name="
|
|
1423
|
-
<div class="ttc" id="classSVF_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#
|
|
1414
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00242">242</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
1415
|
+
<div class="fragment"><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-><a class="code" href="classSVF_1_1DFPTData.html#a259a92ea46f1d3a1dbd4a74ff07718d2">getDFInPtsSet</a>(stmt->getId(),node);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  }</div><div class="ttc" id="classSVF_1_1DFPTData_html_a259a92ea46f1d3a1dbd4a74ff07718d2"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a259a92ea46f1d3a1dbd4a74ff07718d2">SVF::DFPTData::getDFInPtsSet</a></div><div class="ttdeci">virtual const DataSet & getDFInPtsSet(LocID loc, const Key &var)=0</div></div>
|
|
1416
|
+
<div class="ttc" id="classSVF_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#l00174">PointerAnalysisImpl.h:174</a></div></div>
|
|
1424
1417
|
</div><!-- fragment -->
|
|
1425
1418
|
</div>
|
|
1426
1419
|
</div>
|
|
@@ -1448,8 +1441,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1448
1441
|
</div><div class="memdoc">
|
|
1449
1442
|
<p>Get IN/OUT data flow map. May only be called when the backing is MUTABLE. </p>
|
|
1450
1443
|
|
|
1451
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
1452
|
-
<div class="fragment"><div class="line"><a name="
|
|
1444
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00255">255</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
1445
|
+
<div class="fragment"><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">getMutDFPTDataTy</a>()-><a class="code" href="classSVF_1_1MutableDFPTData.html#ae999df6f94a097f1fcb36979327790de">getDFIn</a>();</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  }</div><div class="ttc" id="classSVF_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#l00181">PointerAnalysisImpl.h:181</a></div></div>
|
|
1453
1446
|
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_ae999df6f94a097f1fcb36979327790de"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#ae999df6f94a097f1fcb36979327790de">SVF::MutableDFPTData::getDFIn</a></div><div class="ttdeci">const DFPtsMap & getDFIn()</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00454">MutablePointsToDS.h:454</a></div></div>
|
|
1454
1447
|
</div><!-- fragment -->
|
|
1455
1448
|
</div>
|
|
@@ -1488,9 +1481,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1488
1481
|
</table>
|
|
1489
1482
|
</div><div class="memdoc">
|
|
1490
1483
|
|
|
1491
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
1492
|
-
<div class="fragment"><div class="line"><a name="
|
|
1493
|
-
<div class="ttc" id="classSVF_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#
|
|
1484
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00246">246</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
1485
|
+
<div class="fragment"><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-><a class="code" href="classSVF_1_1DFPTData.html#ad9b3bb99cfefb87424c408eae3ecfcec">getDFOutPtsSet</a>(stmt->getId(),node);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  }</div><div class="ttc" id="classSVF_1_1DFPTData_html_ad9b3bb99cfefb87424c408eae3ecfcec"><div class="ttname"><a href="classSVF_1_1DFPTData.html#ad9b3bb99cfefb87424c408eae3ecfcec">SVF::DFPTData::getDFOutPtsSet</a></div><div class="ttdeci">virtual const DataSet & getDFOutPtsSet(LocID loc, const Key &var)=0</div></div>
|
|
1486
|
+
<div class="ttc" id="classSVF_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#l00174">PointerAnalysisImpl.h:174</a></div></div>
|
|
1494
1487
|
</div><!-- fragment -->
|
|
1495
1488
|
</div>
|
|
1496
1489
|
</div>
|
|
@@ -1517,8 +1510,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1517
1510
|
</table>
|
|
1518
1511
|
</div><div class="memdoc">
|
|
1519
1512
|
|
|
1520
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
1521
|
-
<div class="fragment"><div class="line"><a name="
|
|
1513
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00259">259</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
1514
|
+
<div class="fragment"><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">getMutDFPTDataTy</a>()-><a class="code" href="classSVF_1_1MutableDFPTData.html#a6d02392602cf7956ff41e345518d683c">getDFOut</a>();</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  }</div><div class="ttc" id="classSVF_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#l00181">PointerAnalysisImpl.h:181</a></div></div>
|
|
1522
1515
|
<div class="ttc" id="classSVF_1_1MutableDFPTData_html_a6d02392602cf7956ff41e345518d683c"><div class="ttname"><a href="classSVF_1_1MutableDFPTData.html#a6d02392602cf7956ff41e345518d683c">SVF::MutableDFPTData::getDFOut</a></div><div class="ttdeci">const DFPtsMap & getDFOut()</div><div class="ttdef"><b>Definition:</b> <a href="MutablePointsToDS_8h_source.html#l00458">MutablePointsToDS.h:458</a></div></div>
|
|
1523
1516
|
</div><!-- fragment -->
|
|
1524
1517
|
</div>
|
|
@@ -1548,13 +1541,13 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1548
1541
|
|
|
1549
1542
|
<p>Return <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
|
|
1550
1543
|
|
|
1551
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
1552
|
-
<div class="fragment"><div class="line"><a name="
|
|
1544
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00129">129</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
1545
|
+
<div class="fragment"><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_aae032e5f5d53b131d0112dc8faa464a9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00239">FlowSensitive.h:239</a></div></div>
|
|
1553
1546
|
</div><!-- fragment -->
|
|
1554
1547
|
</div>
|
|
1555
1548
|
</div>
|
|
1556
|
-
<a id="
|
|
1557
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1549
|
+
<a id="ad3566c57f8456e98542f5a0b765e3cc6"></a>
|
|
1550
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ad3566c57f8456e98542f5a0b765e3cc6">◆ </a></span>initialize()</h2>
|
|
1558
1551
|
|
|
1559
1552
|
<div class="memitem">
|
|
1560
1553
|
<div class="memproto">
|
|
@@ -1571,7 +1564,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1571
1564
|
</table>
|
|
1572
1565
|
</td>
|
|
1573
1566
|
<td class="mlabels-right">
|
|
1574
|
-
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
1567
|
+
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
|
|
1575
1568
|
</tr>
|
|
1576
1569
|
</table>
|
|
1577
1570
|
</div><div class="memdoc">
|
|
@@ -1584,21 +1577,21 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1584
1577
|
<p>Reimplemented in <a class="el" href="classSVF_1_1VersionedFlowSensitive.html#a81d3528fd082018e4345f0b026bf3584">SVF::VersionedFlowSensitive</a>.</p>
|
|
1585
1578
|
|
|
1586
1579
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00045">45</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
1587
|
-
<div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">PointerAnalysis::initialize</a>();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a88f9752372eabb71f47f13a89e4d6d9c">FlowSensitiveStat</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="comment">// TODO: support clustered aux. Andersen's.</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  assert(!<a class="code" href="classSVF_1_1Options.html#a8459d43a21bcf8a50fc55d14fcf5a81e">Options::ClusterAnder</a> && <span class="stringliteral">"FlowSensitive::initialize: clustering auxiliary Andersen's unsupported."</span>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">ander</a> = <a class="code" href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">AndersenWaveDiff::createAndersenWaveDiff</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>());</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="comment">// If cluster option is not set, it will give us a no-mapping points-to set.</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  assert(!(<a class="code" href="classSVF_1_1Options.html#a9dc372635fc6f5ea2d902fc5c49fca8a">Options::ClusterFs</a> && <a class="code" href="classSVF_1_1Options.html#a75a38fff97f7f18f3945c953cabc168b">Options::PlainMappingFs</a>)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  && <span class="stringliteral">"FS::init: plain-mapping and cluster-fs are mutually exclusive."</span>);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a9dc372635fc6f5ea2d902fc5c49fca8a">Options::ClusterFs</a>)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a89d3b97b8077027514135c9201c4d02c">cluster</a>();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// Reset the points-to cache although empty so the new mapping could</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// be applied to the inserted empty set.</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#
|
|
1580
|
+
<div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">PointerAnalysis::initialize</a>();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a88f9752372eabb71f47f13a89e4d6d9c">FlowSensitiveStat</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="comment">// TODO: support clustered aux. Andersen's.</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  assert(!<a class="code" href="classSVF_1_1Options.html#a8459d43a21bcf8a50fc55d14fcf5a81e">Options::ClusterAnder</a> && <span class="stringliteral">"FlowSensitive::initialize: clustering auxiliary Andersen's unsupported."</span>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">ander</a> = <a class="code" href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">AndersenWaveDiff::createAndersenWaveDiff</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>());</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="comment">// If cluster option is not set, it will give us a no-mapping points-to set.</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  assert(!(<a class="code" href="classSVF_1_1Options.html#a9dc372635fc6f5ea2d902fc5c49fca8a">Options::ClusterFs</a> && <a class="code" href="classSVF_1_1Options.html#a75a38fff97f7f18f3945c953cabc168b">Options::PlainMappingFs</a>)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  && <span class="stringliteral">"FS::init: plain-mapping and cluster-fs are mutually exclusive."</span>);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a9dc372635fc6f5ea2d902fc5c49fca8a">Options::ClusterFs</a>)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a89d3b97b8077027514135c9201c4d02c">cluster</a>();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// Reset the points-to cache although empty so the new mapping could</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// be applied to the inserted empty set.</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#afaeae813ff38e010bbe8fe61befb345c">getPtCache</a>().reset();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a75a38fff97f7f18f3945c953cabc168b">Options::PlainMappingFs</a>)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a5a8688102f3675cf414b01dc2ae51c6b">plainMap</a>();</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="comment">// As above.</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#afaeae813ff38e010bbe8fe61befb345c">getPtCache</a>().reset();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a76f6f19ac2b58ab4a10a2d7e6e24e42a">memSSA</a>.<a class="code" href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">buildPTROnlySVFG</a>(<a class="code" href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">ander</a>);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="classSVF_1_1WPASolver.html#aa04deb39cd024c051f30ac43d1d62b34">setGraph</a>(<a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="comment">//AndersenWaveDiff::releaseAndersenWaveDiff();</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_aae032e5f5d53b131d0112dc8faa464a9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00239">FlowSensitive.h:239</a></div></div>
|
|
1588
1581
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a89d3b97b8077027514135c9201c4d02c"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a89d3b97b8077027514135c9201c4d02c">SVF::FlowSensitive::cluster</a></div><div class="ttdeci">virtual void cluster(void)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00778">FlowSensitive.cpp:778</a></div></div>
|
|
1589
1582
|
<div class="ttc" id="classSVF_1_1Options_html_a9dc372635fc6f5ea2d902fc5c49fca8a"><div class="ttname"><a href="classSVF_1_1Options.html#a9dc372635fc6f5ea2d902fc5c49fca8a">SVF::Options::ClusterFs</a></div><div class="ttdeci">static const llvm::cl::opt< bool > ClusterFs</div><div class="ttdoc">Whether to cluster FS or VFS with the auxiliary Andersen&#39;s. </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00044">Options.h:44</a></div></div>
|
|
1590
|
-
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a34d87fa1988b78f032735b5fc2803792"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a34d87fa1988b78f032735b5fc2803792">SVF::BVDataPTAImpl::getPtCache</a></div><div class="ttdeci">PersistentPointsToCache< PointsTo > & getPtCache(void)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00079">PointerAnalysisImpl.h:79</a></div></div>
|
|
1591
1583
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a88f9752372eabb71f47f13a89e4d6d9c"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a88f9752372eabb71f47f13a89e4d6d9c">SVF::FlowSensitive::FlowSensitiveStat</a></div><div class="ttdeci">friend class FlowSensitiveStat</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00051">FlowSensitive.h:51</a></div></div>
|
|
1592
|
-
<div class="ttc" id="classSVF_1_1SVFGBuilder_html_ab7353191edd06568e2598177d253c1d9"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">SVF::SVFGBuilder::buildPTROnlySVFG</a></div><div class="ttdeci">SVFG * buildPTROnlySVFG(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#
|
|
1593
|
-
<div class="ttc" id="classSVF_1_1WPASolver_html_aa04deb39cd024c051f30ac43d1d62b34"><div class="ttname"><a href="classSVF_1_1WPASolver.html#aa04deb39cd024c051f30ac43d1d62b34">SVF::WPASolver::setGraph</a></div><div class="ttdeci">void setGraph(GraphType g)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#
|
|
1584
|
+
<div class="ttc" id="classSVF_1_1SVFGBuilder_html_ab7353191edd06568e2598177d253c1d9"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">SVF::SVFGBuilder::buildPTROnlySVFG</a></div><div class="ttdeci">SVFG * buildPTROnlySVFG(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00041">SVFGBuilder.cpp:41</a></div></div>
|
|
1585
|
+
<div class="ttc" id="classSVF_1_1WPASolver_html_aa04deb39cd024c051f30ac43d1d62b34"><div class="ttname"><a href="classSVF_1_1WPASolver.html#aa04deb39cd024c051f30ac43d1d62b34">SVF::WPASolver::setGraph</a></div><div class="ttdeci">void setGraph(GraphType g)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00078">WPASolver.h:78</a></div></div>
|
|
1594
1586
|
<div class="ttc" id="classSVF_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>
|
|
1595
1587
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a5a8688102f3675cf414b01dc2ae51c6b"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a5a8688102f3675cf414b01dc2ae51c6b">SVF::FlowSensitive::plainMap</a></div><div class="ttdeci">virtual void plainMap(void) const</div><div class="ttdoc">Sets the global best mapping as a plain mapping, i.e. n -> n. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00792">FlowSensitive.cpp:792</a></div></div>
|
|
1596
1588
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
|
|
1597
1589
|
<div class="ttc" id="classSVF_1_1Options_html_a75a38fff97f7f18f3945c953cabc168b"><div class="ttname"><a href="classSVF_1_1Options.html#a75a38fff97f7f18f3945c953cabc168b">SVF::Options::PlainMappingFs</a></div><div class="ttdeci">static const llvm::cl::opt< bool > PlainMappingFs</div><div class="ttdoc">Use an explicitly plain mapping with flow-sensitive (not null). </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00047">Options.h:47</a></div></div>
|
|
1590
|
+
<div class="ttc" id="classSVF_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>
|
|
1598
1591
|
<div class="ttc" id="classSVF_1_1AndersenWaveDiff_html_a48ff6fc4badc79ad3204ae9bd95cc540"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">SVF::AndersenWaveDiff::createAndersenWaveDiff</a></div><div class="ttdeci">static AndersenWaveDiff * createAndersenWaveDiff(SVFIR *_pag)</div><div class="ttdoc">Create an singleton instance directly instead of invoking llvm pass manager. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00389">Andersen.h:389</a></div></div>
|
|
1599
1592
|
<div class="ttc" id="classSVF_1_1Options_html_a8459d43a21bcf8a50fc55d14fcf5a81e"><div class="ttname"><a href="classSVF_1_1Options.html#a8459d43a21bcf8a50fc55d14fcf5a81e">SVF::Options::ClusterAnder</a></div><div class="ttdeci">static const llvm::cl::opt< bool > ClusterAnder</div><div class="ttdoc">Whether to stage Andersen&#39;s with Steensgaard and cluster based on that data. </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00041">Options.h:41</a></div></div>
|
|
1600
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a5cfee013a1a5821ef0c449842dd8690d"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">SVF::FlowSensitive::ander</a></div><div class="ttdeci">AndersenWaveDiff * ander</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1601
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a76f6f19ac2b58ab4a10a2d7e6e24e42a"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a76f6f19ac2b58ab4a10a2d7e6e24e42a">SVF::FlowSensitive::memSSA</a></div><div class="ttdeci">SVFGBuilder memSSA</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1593
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a5cfee013a1a5821ef0c449842dd8690d"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">SVF::FlowSensitive::ander</a></div><div class="ttdeci">AndersenWaveDiff * ander</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00273">FlowSensitive.h:273</a></div></div>
|
|
1594
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a76f6f19ac2b58ab4a10a2d7e6e24e42a"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a76f6f19ac2b58ab4a10a2d7e6e24e42a">SVF::FlowSensitive::memSSA</a></div><div class="ttdeci">SVFGBuilder memSSA</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00272">FlowSensitive.h:272</a></div></div>
|
|
1602
1595
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a431ec4f85eb0f029e5740b92fd9ceb32"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">SVF::PointerAnalysis::initialize</a></div><div class="ttdeci">virtual void initialize()</div><div class="ttdoc">Initialization of a pointer analysis, including building symbol table and SVFIR etc. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00105">PointerAnalysis.cpp:105</a></div></div>
|
|
1603
1596
|
</div><!-- fragment -->
|
|
1604
1597
|
</div>
|
|
@@ -1642,17 +1635,17 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1642
1635
|
<p>Find the unique element in cpts </p>
|
|
1643
1636
|
|
|
1644
1637
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00613">613</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
1645
|
-
<div class="fragment"><div class="line"><a name="l00614"></a><span class="lineno"> 614</span> {</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="keywordtype">bool</span> isSU = <span class="keyword">false</span>;</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store = SVFUtil::dyn_cast<StoreSVFGNode>(node))</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  {</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& dstCPSet = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#
|
|
1646
|
-
<div class="ttc" id="classSVF_1_1SVFIR_html_af76a55c3b8255a81a566bdce35ffc749"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">SVF::SVFIR::getBaseObj</a></div><div class="ttdeci">const MemObj * getBaseObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#
|
|
1638
|
+
<div class="fragment"><div class="line"><a name="l00614"></a><span class="lineno"> 614</span> {</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="keywordtype">bool</span> isSU = <span class="keyword">false</span>;</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store = SVFUtil::dyn_cast<StoreSVFGNode>(node))</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  {</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& dstCPSet = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(store->getPAGDstNodeID());</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="keywordflow">if</span> (dstCPSet.<a class="code" href="classSVF_1_1PointsTo.html#aa0d4ee196b91fce626f3f15bcc5599e4">count</a>() == 1)</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  {</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> it = dstCPSet.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>();</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  singleton = *it;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="comment">// Strong update can be made if this points-to target is not heap, array or field-insensitive.</span></div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1PointerAnalysis.html#ae6ea391ac44dffeb6899bb44323c5361">isHeapMemObj</a>(singleton) && !<a class="code" href="classSVF_1_1PointerAnalysis.html#a89dfeedf8e3e91603a1e9c73e3608a73">isArrayMemObj</a>(singleton)</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  && <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(singleton)-><a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>() == <span class="keyword">false</span></div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  && !<a class="code" href="classSVF_1_1PointerAnalysis.html#a108380f6f0b67654bb7c7676686096c8">isLocalVarInRecursiveFun</a>(singleton))</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  {</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  isSU = <span class="keyword">true</span>;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  }</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  }</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  }</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <span class="keywordflow">return</span> isSU;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span> }</div><div class="ttc" id="classSVF_1_1StoreVFGNode_html"><div class="ttname"><a href="classSVF_1_1StoreVFGNode.html">SVF::StoreVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00240">VFGNode.h:240</a></div></div>
|
|
1639
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html_af76a55c3b8255a81a566bdce35ffc749"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">SVF::SVFIR::getBaseObj</a></div><div class="ttdeci">const MemObj * getBaseObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00429">SVFIR.h:429</a></div></div>
|
|
1647
1640
|
<div class="ttc" id="classSVF_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>
|
|
1648
|
-
<div class="ttc" id="classSVF_1_1PointsTo_html_aa53962e561399bf493d1f2b9137356f6"><div class="ttname"><a href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">SVF::PointsTo::begin</a></div><div class="ttdeci">const_iterator begin(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00128">PointsTo.h:128</a></div></div>
|
|
1649
1641
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a89dfeedf8e3e91603a1e9c73e3608a73"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a89dfeedf8e3e91603a1e9c73e3608a73">SVF::PointerAnalysis::isArrayMemObj</a></div><div class="ttdeci">bool isArrayMemObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00319">PointerAnalysis.h:319</a></div></div>
|
|
1650
|
-
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00099">PointerAnalysisImpl.h:99</a></div></div>
|
|
1651
|
-
<div class="ttc" id="classSVF_1_1PointsTo_html_a879783ba6629e500af9aa7dfcda2563d"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">SVF::PointsTo::count</a></div><div class="ttdeci">u32_t count(void) const</div><div class="ttdoc">Returns number of elements. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00107">PointsTo.cpp:107</a></div></div>
|
|
1652
1642
|
<div class="ttc" id="classSVF_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>
|
|
1653
|
-
<div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#
|
|
1643
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00446">SymbolTableInfo.cpp:446</a></div></div>
|
|
1654
1644
|
<div class="ttc" id="classSVF_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#l00136">PointerAnalysis.cpp:136</a></div></div>
|
|
1645
|
+
<div class="ttc" id="classSVF_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>
|
|
1655
1646
|
<div class="ttc" id="classSVF_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>
|
|
1647
|
+
<div class="ttc" id="classSVF_1_1PointsTo_html_aa0d4ee196b91fce626f3f15bcc5599e4"><div class="ttname"><a href="classSVF_1_1PointsTo.html#aa0d4ee196b91fce626f3f15bcc5599e4">SVF::PointsTo::count</a></div><div class="ttdeci">u32_t count() const</div><div class="ttdoc">Returns number of elements. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00111">PointsTo.cpp:111</a></div></div>
|
|
1648
|
+
<div class="ttc" id="classSVF_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>
|
|
1656
1649
|
<div class="ttc" id="classSVF_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>
|
|
1657
1650
|
</div><!-- fragment -->
|
|
1658
1651
|
</div>
|
|
@@ -1689,7 +1682,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1689
1682
|
<div class="ttc" id="classSVF_1_1PointsTo_html_a849f670b38cb6f65fc23707a212591c7"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">SVF::PointsTo::MappingPtr</a></div><div class="ttdeci">std::shared_ptr< std::vector< NodeID > > MappingPtr</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00042">PointsTo.h:42</a></div></div>
|
|
1690
1683
|
<div class="ttc" id="classSVF_1_1NodeIDAllocator_html_ad63e43c65cb7d7cac7824f5cede5ec89"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#ad63e43c65cb7d7cac7824f5cede5ec89">SVF::NodeIDAllocator::getNumObjects</a></div><div class="ttdeci">NodeID getNumObjects(void) const</div><div class="ttdoc">Returns the total number of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8h_source.html#l00077">NodeIDAllocator.h:77</a></div></div>
|
|
1691
1684
|
<div class="ttc" id="classSVF_1_1NodeIDAllocator_html_a2bd3ca30fc9669d9a0327544bdb4557b"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">SVF::NodeIDAllocator::get</a></div><div class="ttdeci">static NodeIDAllocator * get(void)</div><div class="ttdoc">Return (singleton) allocator. </div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00025">NodeIDAllocator.cpp:25</a></div></div>
|
|
1692
|
-
<div class="ttc" id="classSVF_1_1PointsTo_html_a84eca4c7fc833f8ca4d119cd4da08ca8"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a84eca4c7fc833f8ca4d119cd4da08ca8">SVF::PointsTo::setCurrentBestNodeMapping</a></div><div class="ttdeci">static void setCurrentBestNodeMapping(MappingPtr newCurrentBestNodeMapping, MappingPtr newCurrentBestReverseNodeMapping)</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#
|
|
1685
|
+
<div class="ttc" id="classSVF_1_1PointsTo_html_a84eca4c7fc833f8ca4d119cd4da08ca8"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a84eca4c7fc833f8ca4d119cd4da08ca8">SVF::PointsTo::setCurrentBestNodeMapping</a></div><div class="ttdeci">static void setCurrentBestNodeMapping(MappingPtr newCurrentBestNodeMapping, MappingPtr newCurrentBestReverseNodeMapping)</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00371">PointsTo.cpp:371</a></div></div>
|
|
1693
1686
|
</div><!-- fragment -->
|
|
1694
1687
|
</div>
|
|
1695
1688
|
</div>
|
|
@@ -1722,9 +1715,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1722
1715
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00408">408</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
1723
1716
|
<div class="fragment"><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> {</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> srcID = addr-><a class="code" href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">getPAGSrcNodeID</a>();</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">isFieldInsensitive</a>(srcID))</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  srcID = <a class="code" href="classSVF_1_1PointerAnalysis.html#a68b05bc02c5473c1e0d39ac4f4454bac">getFIObjVar</a>(srcID);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keywordtype">bool</span> changed = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#af68485a2208553579f9c2e4b2cb20cff">addPts</a>(addr-><a class="code" href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">getPAGDstNodeID</a>(), srcID);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a38f3ed35185addf701d4401bfdd5f29b">addrTime</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span> }</div><div class="ttc" id="classSVF_1_1StmtVFGNode_html_a04986961ad507be9fcf141ab51787da8"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">SVF::StmtVFGNode::getPAGDstNodeID</a></div><div class="ttdeci">NodeID getPAGDstNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00146">VFGNode.h:146</a></div></div>
|
|
1724
1717
|
<div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
1725
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a38f3ed35185addf701d4401bfdd5f29b"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a38f3ed35185addf701d4401bfdd5f29b">SVF::FlowSensitive::addrTime</a></div><div class="ttdeci">double addrTime</div><div class="ttdoc">time of handling address edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1726
|
-
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
1727
|
-
<div class="ttc" id="classSVF_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#
|
|
1718
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a38f3ed35185addf701d4401bfdd5f29b"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a38f3ed35185addf701d4401bfdd5f29b">SVF::FlowSensitive::addrTime</a></div><div class="ttdeci">double addrTime</div><div class="ttdoc">time of handling address edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00301">FlowSensitive.h:301</a></div></div>
|
|
1719
|
+
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
|
|
1720
|
+
<div class="ttc" id="classSVF_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>
|
|
1728
1721
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html_a791a01f5d3528f8a8bf19369b5c61c37"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">SVF::StmtVFGNode::getPAGSrcNodeID</a></div><div class="ttdeci">NodeID getPAGSrcNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00141">VFGNode.h:141</a></div></div>
|
|
1729
1722
|
<div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
|
|
1730
1723
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
|
|
@@ -1760,12 +1753,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1760
1753
|
|
|
1761
1754
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00425">425</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
1762
1755
|
<div class="fragment"><div class="line"><a name="l00426"></a><span class="lineno"> 426</span> {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordtype">bool</span> changed = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae7073c07bfd7912f888d54d4652c7cc2">unionPts</a>(copy-><a class="code" href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">getPAGDstNodeID</a>(), copy-><a class="code" href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">getPAGSrcNodeID</a>());</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a888d6334e5e226c634680e4c0674dcfb">copyTime</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span> }</div><div class="ttc" id="classSVF_1_1StmtVFGNode_html_a04986961ad507be9fcf141ab51787da8"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">SVF::StmtVFGNode::getPAGDstNodeID</a></div><div class="ttdeci">NodeID getPAGDstNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00146">VFGNode.h:146</a></div></div>
|
|
1763
|
-
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
1764
|
-
<div class="ttc" id="classSVF_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#
|
|
1756
|
+
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
|
|
1757
|
+
<div class="ttc" id="classSVF_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>
|
|
1765
1758
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html_a791a01f5d3528f8a8bf19369b5c61c37"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">SVF::StmtVFGNode::getPAGSrcNodeID</a></div><div class="ttdeci">NodeID getPAGSrcNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00141">VFGNode.h:141</a></div></div>
|
|
1766
1759
|
<div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
|
|
1767
1760
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
|
|
1768
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a888d6334e5e226c634680e4c0674dcfb"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a888d6334e5e226c634680e4c0674dcfb">SVF::FlowSensitive::copyTime</a></div><div class="ttdeci">double copyTime</div><div class="ttdoc">time of handling copy edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1761
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a888d6334e5e226c634680e4c0674dcfb"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a888d6334e5e226c634680e4c0674dcfb">SVF::FlowSensitive::copyTime</a></div><div class="ttdeci">double copyTime</div><div class="ttdoc">time of handling copy edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00302">FlowSensitive.h:302</a></div></div>
|
|
1769
1762
|
</div><!-- fragment -->
|
|
1770
1763
|
</div>
|
|
1771
1764
|
</div>
|
|
@@ -1795,14 +1788,13 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1795
1788
|
<p>Process gep node </p>
|
|
1796
1789
|
|
|
1797
1790
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00458">458</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
1798
|
-
<div class="fragment"><div class="line"><a name="l00459"></a><span class="lineno"> 459</span> {</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& srcPts = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#
|
|
1791
|
+
<div class="fragment"><div class="line"><a name="l00459"></a><span class="lineno"> 459</span> {</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& srcPts = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(edge-><a class="code" href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">getPAGSrcNodeID</a>());</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> tmpDstPts;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>* gepStmt = SVFUtil::cast<GepStmt>(edge-><a class="code" href="classSVF_1_1StmtVFGNode.html#a4dd7615f42971da9b6ec1dc04f0ec4e6">getPAGEdge</a>());</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordflow">if</span> (gepStmt-><a class="code" href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788">isVariantFieldGep</a>())</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  {</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o : srcPts)</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  {</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a45462312a746339fff8b990a093d9a1b">isBlkObjOrConstantObj</a>(o))</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  {</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  tmpDstPts.set(o);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  }</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#ac5683fe2e24b393ccc5cb6d8bc92cf2b">setObjFieldInsensitive</a>(o);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  tmpDstPts.set(<a class="code" href="classSVF_1_1PointerAnalysis.html#a68b05bc02c5473c1e0d39ac4f4454bac">getFIObjVar</a>(o));</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  }</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  }</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  {</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o : srcPts)</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  {</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a45462312a746339fff8b990a093d9a1b">isBlkObjOrConstantObj</a>(o) || <a class="code" href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">isFieldInsensitive</a>(o))</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  {</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  tmpDstPts.set(o);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  }</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> fieldSrcPtdNode = <a class="code" href="classSVF_1_1PointerAnalysis.html#acbbc0934af9bc0145389dc41430c6d8b">getGepObjVar</a>(o, gepStmt-><a class="code" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">getLocationSet</a>());</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  tmpDstPts.set(fieldSrcPtdNode);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  }</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  }</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae7073c07bfd7912f888d54d4652c7cc2">unionPts</a>(edge-><a class="code" href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">getPAGDstNodeID</a>(), tmpDstPts))</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span> </div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a282126e5b67ed4e19aa40c81180b8290">gepTime</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span> }</div><div class="ttc" id="classSVF_1_1StmtVFGNode_html_a04986961ad507be9fcf141ab51787da8"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">SVF::StmtVFGNode::getPAGDstNodeID</a></div><div class="ttdeci">NodeID getPAGDstNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00146">VFGNode.h:146</a></div></div>
|
|
1799
1792
|
<div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
1800
1793
|
<div class="ttc" id="classSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00419">SVFStatements.h:419</a></div></div>
|
|
1801
|
-
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
1802
|
-
<div class="ttc" id="classSVF_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#
|
|
1794
|
+
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
|
|
1795
|
+
<div class="ttc" id="classSVF_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>
|
|
1803
1796
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html_a4dd7615f42971da9b6ec1dc04f0ec4e6"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a4dd7615f42971da9b6ec1dc04f0ec4e6">SVF::StmtVFGNode::getPAGEdge</a></div><div class="ttdeci">const PAGEdge * getPAGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00136">VFGNode.h:136</a></div></div>
|
|
1804
1797
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_acbbc0934af9bc0145389dc41430c6d8b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#acbbc0934af9bc0145389dc41430c6d8b">SVF::PointerAnalysis::getGepObjVar</a></div><div class="ttdeci">NodeID getGepObjVar(NodeID id, const LocationSet &ls)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00341">PointerAnalysis.h:341</a></div></div>
|
|
1805
|
-
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00099">PointerAnalysisImpl.h:99</a></div></div>
|
|
1806
1798
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_ac5683fe2e24b393ccc5cb6d8bc92cf2b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac5683fe2e24b393ccc5cb6d8bc92cf2b">SVF::PointerAnalysis::setObjFieldInsensitive</a></div><div class="ttdeci">void setObjFieldInsensitive(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00349">PointerAnalysis.h:349</a></div></div>
|
|
1807
1799
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html_a791a01f5d3528f8a8bf19369b5c61c37"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">SVF::StmtVFGNode::getPAGSrcNodeID</a></div><div class="ttdeci">NodeID getPAGSrcNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00141">VFGNode.h:141</a></div></div>
|
|
1808
1800
|
<div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
|
|
@@ -1810,8 +1802,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1810
1802
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a45462312a746339fff8b990a093d9a1b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a45462312a746339fff8b990a093d9a1b">SVF::PointerAnalysis::isBlkObjOrConstantObj</a></div><div class="ttdeci">virtual bool isBlkObjOrConstantObj(NodeID ptd) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00300">PointerAnalysis.h:300</a></div></div>
|
|
1811
1803
|
<div class="ttc" id="classSVF_1_1GepStmt_html_abec33091e0dac0cdd5b95b6d7b0db3d8"><div class="ttname"><a href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">SVF::GepStmt::getLocationSet</a></div><div class="ttdeci">const LocationSet & getLocationSet() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00445">SVFStatements.h:445</a></div></div>
|
|
1812
1804
|
<div class="ttc" id="classSVF_1_1GepStmt_html_a0ddf180a0f7ba64fc8655687910e3788"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788">SVF::GepStmt::isVariantFieldGep</a></div><div class="ttdeci">bool isVariantFieldGep() const</div><div class="ttdoc">Gep statement with a variant field index (pointer arithmetic) for struct field access. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00470">SVFStatements.h:470</a></div></div>
|
|
1805
|
+
<div class="ttc" id="classSVF_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>
|
|
1813
1806
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0f71e4cd0948b294c7d33a690bde7dbe"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">SVF::PointerAnalysis::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00354">PointerAnalysis.h:354</a></div></div>
|
|
1814
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a282126e5b67ed4e19aa40c81180b8290"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a282126e5b67ed4e19aa40c81180b8290">SVF::FlowSensitive::gepTime</a></div><div class="ttdeci">double gepTime</div><div class="ttdoc">time of handling gep edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1807
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a282126e5b67ed4e19aa40c81180b8290"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a282126e5b67ed4e19aa40c81180b8290">SVF::FlowSensitive::gepTime</a></div><div class="ttdeci">double gepTime</div><div class="ttdoc">time of handling gep edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00303">FlowSensitive.h:303</a></div></div>
|
|
1815
1808
|
<div class="ttc" id="classSVF_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>
|
|
1816
1809
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a68b05bc02c5473c1e0d39ac4f4454bac"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a68b05bc02c5473c1e0d39ac4f4454bac">SVF::PointerAnalysis::getFIObjVar</a></div><div class="ttdeci">NodeID getFIObjVar(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00337">PointerAnalysis.h:337</a></div></div>
|
|
1817
1810
|
</div><!-- fragment -->
|
|
@@ -1847,33 +1840,33 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1847
1840
|
<p>Reimplemented in <a class="el" href="classSVF_1_1VersionedFlowSensitive.html#a1d1f71c41cc3e81e636b58f4436e6d9b">SVF::VersionedFlowSensitive</a>.</p>
|
|
1848
1841
|
|
|
1849
1842
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00510">510</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
1850
|
-
<div class="fragment"><div class="line"><a name="l00511"></a><span class="lineno"> 511</span> {</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span> </div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dstVar = load-><a class="code" href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">getPAGDstNodeID</a>();</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span> </div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& srcPts = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#
|
|
1843
|
+
<div class="fragment"><div class="line"><a name="l00511"></a><span class="lineno"> 511</span> {</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span> </div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dstVar = load-><a class="code" href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">getPAGDstNodeID</a>();</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span> </div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& srcPts = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(load-><a class="code" href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">getPAGSrcNodeID</a>());</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ptdIt = srcPts.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(); ptdIt != srcPts.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>(); ++ptdIt)</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  {</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> ptd = *ptdIt;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span> </div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">isConstantObj</a>(ptd) || <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a980e54129ece0757d7f0373f37428507">isNonPointerObj</a>(ptd))</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span> </div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a16d757abf69ad77951b808dc18ca2999">unionPtsFromIn</a>(load, ptd, dstVar))</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span> </div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">isFieldInsensitive</a>(ptd))</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  {</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& allFields = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5dddd53b4ca9d7cc23d88ed9f3de9fde">getAllFieldsObjVars</a>(ptd);</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> fieldIt = allFields.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), fieldEit = allFields.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>();</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  fieldIt != fieldEit; ++fieldIt)</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  {</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a16d757abf69ad77951b808dc18ca2999">unionPtsFromIn</a>(load, *fieldIt, dstVar))</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  }</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  }</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  }</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span> </div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#aab4f70210eb1e6447a24697d3b459067">loadTime</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span> }</div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00528">SparseBitVector.h:528</a></div></div>
|
|
1851
1844
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html_a04986961ad507be9fcf141ab51787da8"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">SVF::StmtVFGNode::getPAGDstNodeID</a></div><div class="ttdeci">NodeID getPAGDstNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00146">VFGNode.h:146</a></div></div>
|
|
1852
1845
|
<div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
1853
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aab4f70210eb1e6447a24697d3b459067"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aab4f70210eb1e6447a24697d3b459067">SVF::FlowSensitive::loadTime</a></div><div class="ttdeci">double loadTime</div><div class="ttdoc">time of load edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1846
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aab4f70210eb1e6447a24697d3b459067"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aab4f70210eb1e6447a24697d3b459067">SVF::FlowSensitive::loadTime</a></div><div class="ttdeci">double loadTime</div><div class="ttdoc">time of load edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00304">FlowSensitive.h:304</a></div></div>
|
|
1847
|
+
<div class="ttc" id="classSVF_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>
|
|
1854
1848
|
<div class="ttc" id="classSVF_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>
|
|
1855
|
-
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
1856
|
-
<div class="ttc" id="classSVF_1_1SVFIR_html_a5d15e4b09784f438568ebe61f8aa5156"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">SVF::SVFIR::isConstantObj</a></div><div class="ttdeci">bool isConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#
|
|
1849
|
+
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
|
|
1850
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html_a5d15e4b09784f438568ebe61f8aa5156"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">SVF::SVFIR::isConstantObj</a></div><div class="ttdeci">bool isConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00411">SVFIR.h:411</a></div></div>
|
|
1857
1851
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5dddd53b4ca9d7cc23d88ed9f3de9fde"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5dddd53b4ca9d7cc23d88ed9f3de9fde">SVF::PointerAnalysis::getAllFieldsObjVars</a></div><div class="ttdeci">virtual const NodeBS & getAllFieldsObjVars(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00345">PointerAnalysis.h:345</a></div></div>
|
|
1858
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a16d757abf69ad77951b808dc18ca2999"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a16d757abf69ad77951b808dc18ca2999">SVF::FlowSensitive::unionPtsFromIn</a></div><div class="ttdeci">virtual bool unionPtsFromIn(const SVFGNode *stmt, NodeID srcVar, NodeID dstVar)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1859
|
-
<div class="ttc" id="classSVF_1_1PointsTo_html_aa53962e561399bf493d1f2b9137356f6"><div class="ttname"><a href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">SVF::PointsTo::begin</a></div><div class="ttdeci">const_iterator begin(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00128">PointsTo.h:128</a></div></div>
|
|
1860
|
-
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00099">PointerAnalysisImpl.h:99</a></div></div>
|
|
1852
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a16d757abf69ad77951b808dc18ca2999"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a16d757abf69ad77951b808dc18ca2999">SVF::FlowSensitive::unionPtsFromIn</a></div><div class="ttdeci">virtual bool unionPtsFromIn(const SVFGNode *stmt, NodeID srcVar, NodeID dstVar)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00196">FlowSensitive.h:196</a></div></div>
|
|
1861
1853
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html_a791a01f5d3528f8a8bf19369b5c61c37"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">SVF::StmtVFGNode::getPAGSrcNodeID</a></div><div class="ttdeci">NodeID getPAGSrcNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00141">VFGNode.h:141</a></div></div>
|
|
1862
|
-
<div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#
|
|
1854
|
+
<div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01112">SparseBitVector.h:1112</a></div></div>
|
|
1863
1855
|
<div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
|
|
1864
1856
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
|
|
1865
|
-
<div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#
|
|
1866
|
-
<div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#
|
|
1857
|
+
<div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01107">SparseBitVector.h:1107</a></div></div>
|
|
1858
|
+
<div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
|
|
1859
|
+
<div class="ttc" id="classSVF_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>
|
|
1867
1860
|
<div class="ttc" id="classSVF_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>
|
|
1868
1861
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0f71e4cd0948b294c7d33a690bde7dbe"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">SVF::PointerAnalysis::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00354">PointerAnalysis.h:354</a></div></div>
|
|
1862
|
+
<div class="ttc" id="classSVF_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>
|
|
1869
1863
|
<div class="ttc" id="classSVF_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>
|
|
1870
1864
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a980e54129ece0757d7f0373f37428507"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a980e54129ece0757d7f0373f37428507">SVF::SVFIR::isNonPointerObj</a></div><div class="ttdeci">bool isNonPointerObj(NodeID id) const</div><div class="ttdoc">Whether an object can point to any other object or any of its fields is a pointer type...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00671">SVFIR.cpp:671</a></div></div>
|
|
1871
|
-
<div class="ttc" id="classSVF_1_1PointsTo_html_a8f741cdffbf3c5fe0f602cdca677dee6"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">SVF::PointsTo::end</a></div><div class="ttdeci">const_iterator end(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00132">PointsTo.h:132</a></div></div>
|
|
1872
1865
|
</div><!-- fragment -->
|
|
1873
1866
|
</div>
|
|
1874
1867
|
</div>
|
|
1875
|
-
<a id="
|
|
1876
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1868
|
+
<a id="a0b9eedcac68088f924100406d006bc56"></a>
|
|
1869
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a0b9eedcac68088f924100406d006bc56">◆ </a></span>processNode()</h2>
|
|
1877
1870
|
|
|
1878
1871
|
<div class="memitem">
|
|
1879
1872
|
<div class="memproto">
|
|
@@ -1891,7 +1884,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1891
1884
|
</table>
|
|
1892
1885
|
</td>
|
|
1893
1886
|
<td class="mlabels-right">
|
|
1894
|
-
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
|
|
1887
|
+
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
|
|
1895
1888
|
</tr>
|
|
1896
1889
|
</table>
|
|
1897
1890
|
</div><div class="memdoc">
|
|
@@ -1904,10 +1897,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1904
1897
|
<p>Reimplemented in <a class="el" href="classSVF_1_1VersionedFlowSensitive.html#a8cad0df2ae7df81dc2a966e694a0f7a2">SVF::VersionedFlowSensitive</a>.</p>
|
|
1905
1898
|
|
|
1906
1899
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00179">179</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
1907
|
-
<div class="fragment"><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-><a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(nodeId);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a979f89495966d71f9b470d832384ebd6">processSVFGNode</a>(node))</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="classSVF_1_1WPASolver.html#a541ef7fda44ce79086c30b07a5f6126c">propagate</a>(&node);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a9622f0b7b16694b0c74b07834f598e67">clearAllDFOutVarFlag</a>(node);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> }</div><div class="ttc" id="classSVF_1_1WPASolver_html_a541ef7fda44ce79086c30b07a5f6126c"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a541ef7fda44ce79086c30b07a5f6126c">SVF::WPASolver::propagate</a></div><div class="ttdeci">virtual void propagate(GNODE *v)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#
|
|
1908
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aae032e5f5d53b131d0112dc8faa464a9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1909
|
-
<div class="ttc" id="classSVF_1_1SVFG_html_a7ace06b6c893b31f7dec2abe54e33e11"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">SVF::SVFG::getSVFGNode</a></div><div class="ttdeci">SVFGNode * getSVFGNode(NodeID id) const</div><div class="ttdoc">Get a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#
|
|
1910
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a9622f0b7b16694b0c74b07834f598e67"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a9622f0b7b16694b0c74b07834f598e67">SVF::FlowSensitive::clearAllDFOutVarFlag</a></div><div class="ttdeci">void clearAllDFOutVarFlag(const SVFGNode *stmt)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1900
|
+
<div class="fragment"><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-><a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(nodeId);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a979f89495966d71f9b470d832384ebd6">processSVFGNode</a>(node))</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="classSVF_1_1WPASolver.html#a541ef7fda44ce79086c30b07a5f6126c">propagate</a>(&node);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a9622f0b7b16694b0c74b07834f598e67">clearAllDFOutVarFlag</a>(node);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> }</div><div class="ttc" id="classSVF_1_1WPASolver_html_a541ef7fda44ce79086c30b07a5f6126c"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a541ef7fda44ce79086c30b07a5f6126c">SVF::WPASolver::propagate</a></div><div class="ttdeci">virtual void propagate(GNODE *v)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00127">WPASolver.h:127</a></div></div>
|
|
1901
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aae032e5f5d53b131d0112dc8faa464a9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00239">FlowSensitive.h:239</a></div></div>
|
|
1902
|
+
<div class="ttc" id="classSVF_1_1SVFG_html_a7ace06b6c893b31f7dec2abe54e33e11"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">SVF::SVFG::getSVFGNode</a></div><div class="ttdeci">SVFGNode * getSVFGNode(NodeID id) const</div><div class="ttdoc">Get a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00149">SVFG.h:149</a></div></div>
|
|
1903
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a9622f0b7b16694b0c74b07834f598e67"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a9622f0b7b16694b0c74b07834f598e67">SVF::FlowSensitive::clearAllDFOutVarFlag</a></div><div class="ttdeci">void clearAllDFOutVarFlag(const SVFGNode *stmt)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00205">FlowSensitive.h:205</a></div></div>
|
|
1911
1904
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a979f89495966d71f9b470d832384ebd6"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a979f89495966d71f9b470d832384ebd6">SVF::FlowSensitive::processSVFGNode</a></div><div class="ttdeci">bool processSVFGNode(SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00191">FlowSensitive.cpp:191</a></div></div>
|
|
1912
1905
|
<div class="ttc" id="classSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
|
|
1913
1906
|
</div><!-- fragment -->
|
|
@@ -1939,17 +1932,17 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1939
1932
|
<p>Process mssa phi node </p>
|
|
1940
1933
|
|
|
1941
1934
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00437">437</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
1942
|
-
<div class="fragment"><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> {</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> pagDst = phi-><a class="code" href="classSVF_1_1PHIVFGNode.html#abd54e567a0826bbec277302e0c4f78a2">getRes</a>()-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericNode.html#ab6dc1ae41ae23b383f8add474caa7429">PHISVFGNode::OPVers::const_iterator</a> it = phi-><a class="code" href="classSVF_1_1PHIVFGNode.html#a2e00f6d582aa4ac9aa116cc6d5c79369">opVerBegin</a>(), eit = phi-><a class="code" href="classSVF_1_1PHIVFGNode.html#add18c60773871744123d12a037e78e20">opVerEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  {</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> src = it->second->getId();</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& srcPts = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#
|
|
1943
|
-
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
1944
|
-
<div class="ttc" id="classSVF_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#
|
|
1945
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aee7d59b7ad00cf1cf6e3fba19513aa42"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aee7d59b7ad00cf1cf6e3fba19513aa42">SVF::FlowSensitive::phiTime</a></div><div class="ttdeci">double phiTime</div><div class="ttdoc">time of phi nodes. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1935
|
+
<div class="fragment"><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> {</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> pagDst = phi-><a class="code" href="classSVF_1_1PHIVFGNode.html#abd54e567a0826bbec277302e0c4f78a2">getRes</a>()-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericNode.html#ab6dc1ae41ae23b383f8add474caa7429">PHISVFGNode::OPVers::const_iterator</a> it = phi-><a class="code" href="classSVF_1_1PHIVFGNode.html#a2e00f6d582aa4ac9aa116cc6d5c79369">opVerBegin</a>(), eit = phi-><a class="code" href="classSVF_1_1PHIVFGNode.html#add18c60773871744123d12a037e78e20">opVerEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  {</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> src = it->second->getId();</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& srcPts = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(src);</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae7073c07bfd7912f888d54d4652c7cc2">unionPts</a>(pagDst, srcPts))</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  }</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span> </div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#aee7d59b7ad00cf1cf6e3fba19513aa42">phiTime</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span> }</div><div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
1936
|
+
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
|
|
1937
|
+
<div class="ttc" id="classSVF_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>
|
|
1938
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aee7d59b7ad00cf1cf6e3fba19513aa42"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aee7d59b7ad00cf1cf6e3fba19513aa42">SVF::FlowSensitive::phiTime</a></div><div class="ttdeci">double phiTime</div><div class="ttdoc">time of phi nodes. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00306">FlowSensitive.h:306</a></div></div>
|
|
1946
1939
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ab6dc1ae41ae23b383f8add474caa7429"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ab6dc1ae41ae23b383f8add474caa7429">SVF::GenericNode::const_iterator</a></div><div class="ttdeci">GEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00146">GenericGraph.h:146</a></div></div>
|
|
1947
1940
|
<div class="ttc" id="classSVF_1_1PHIVFGNode_html_a2e00f6d582aa4ac9aa116cc6d5c79369"><div class="ttname"><a href="classSVF_1_1PHIVFGNode.html#a2e00f6d582aa4ac9aa116cc6d5c79369">SVF::PHIVFGNode::opVerBegin</a></div><div class="ttdeci">OPVers::const_iterator opVerBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00674">VFGNode.h:674</a></div></div>
|
|
1948
|
-
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00099">PointerAnalysisImpl.h:99</a></div></div>
|
|
1949
1941
|
<div class="ttc" id="classSVF_1_1PHIVFGNode_html_abd54e567a0826bbec277302e0c4f78a2"><div class="ttname"><a href="classSVF_1_1PHIVFGNode.html#abd54e567a0826bbec277302e0c4f78a2">SVF::PHIVFGNode::getRes</a></div><div class="ttdeci">const PAGNode * getRes() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00666">VFGNode.h:666</a></div></div>
|
|
1950
1942
|
<div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
|
|
1951
1943
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
|
|
1952
1944
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00171">GenericGraph.h:171</a></div></div>
|
|
1945
|
+
<div class="ttc" id="classSVF_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>
|
|
1953
1946
|
<div class="ttc" id="classSVF_1_1PHIVFGNode_html_add18c60773871744123d12a037e78e20"><div class="ttname"><a href="classSVF_1_1PHIVFGNode.html#add18c60773871744123d12a037e78e20">SVF::PHIVFGNode::opVerEnd</a></div><div class="ttdeci">OPVers::const_iterator opVerEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00678">VFGNode.h:678</a></div></div>
|
|
1954
1947
|
<div class="ttc" id="classSVF_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>
|
|
1955
1948
|
</div><!-- fragment -->
|
|
@@ -1986,31 +1979,31 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1986
1979
|
<p>Reimplemented in <a class="el" href="classSVF_1_1VersionedFlowSensitive.html#aa96f517740420665168e9b0c7d2347f1">SVF::VersionedFlowSensitive</a>.</p>
|
|
1987
1980
|
|
|
1988
1981
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00553">553</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
1989
|
-
<div class="fragment"><div class="line"><a name="l00554"></a><span class="lineno"> 554</span> {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span> </div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> & dstPts = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#
|
|
1982
|
+
<div class="fragment"><div class="line"><a name="l00554"></a><span class="lineno"> 554</span> {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span> </div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> & dstPts = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(store-><a class="code" href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">getPAGDstNodeID</a>());</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span> </div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keywordflow">if</span> (dstPts.<a class="code" href="classSVF_1_1PointsTo.html#a13746982a11d0cab57e5919d53bfbec8">empty</a>())</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span> </div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span> </div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(store-><a class="code" href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">getPAGSrcNodeID</a>()).empty() == <span class="keyword">false</span>)</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  {</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> it = dstPts.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(), eit = dstPts.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>(); it != eit; ++it)</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  {</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> ptd = *it;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span> </div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">isConstantObj</a>(ptd) || <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a980e54129ece0757d7f0373f37428507">isNonPointerObj</a>(ptd))</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span> </div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a49104435f8d20015907a1c8f58a76577">unionPtsFromTop</a>(store, store-><a class="code" href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">getPAGSrcNodeID</a>(), ptd))</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  }</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  }</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span> </div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7">storeTime</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span> </div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keywordtype">double</span> updateStart = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <span class="comment">// also merge the DFInSet to DFOutSet.</span></div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="comment"></span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> singleton;</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keywordtype">bool</span> isSU = <a class="code" href="classSVF_1_1FlowSensitive.html#a42a7e39e0e15576742f8ba7c32579ea2">isStrongUpdate</a>(store, singleton);</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="keywordflow">if</span> (isSU)</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  {</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a43e8ca2e69e6e8643c9abd1fa231d305">svfgHasSU</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(store-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a8ebe4342c1496b906ee1b6450558c3e8">strongUpdateOutFromIn</a>(store, singleton))</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  }</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  {</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a43e8ca2e69e6e8643c9abd1fa231d305">svfgHasSU</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#ad5337b5aeed50f8b7ffd56b14ee25c9f">reset</a>(store-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#ab492c283e2264b4cbd4c192e805b7750">weakUpdateOutFromIn</a>(store))</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  }</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keywordtype">double</span> updateEnd = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#af5a94d14096ae2bbc47b3b3b9f723226">updateTime</a> += (updateEnd - updateStart) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span> </div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span> }</div><div class="ttc" id="classSVF_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>
|
|
1983
|
+
<div class="ttc" id="classSVF_1_1StmtVFGNode_html_a04986961ad507be9fcf141ab51787da8"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">SVF::StmtVFGNode::getPAGDstNodeID</a></div><div class="ttdeci">NodeID getPAGDstNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00146">VFGNode.h:146</a></div></div>
|
|
1990
1984
|
<div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
1991
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a49104435f8d20015907a1c8f58a76577"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a49104435f8d20015907a1c8f58a76577">SVF::FlowSensitive::unionPtsFromTop</a></div><div class="ttdeci">virtual bool unionPtsFromTop(const SVFGNode *stmt, NodeID srcVar, NodeID dstVar)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1985
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a49104435f8d20015907a1c8f58a76577"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a49104435f8d20015907a1c8f58a76577">SVF::FlowSensitive::unionPtsFromTop</a></div><div class="ttdeci">virtual bool unionPtsFromTop(const SVFGNode *stmt, NodeID srcVar, NodeID dstVar)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00200">FlowSensitive.h:200</a></div></div>
|
|
1986
|
+
<div class="ttc" id="classSVF_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>
|
|
1992
1987
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a42a7e39e0e15576742f8ba7c32579ea2"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a42a7e39e0e15576742f8ba7c32579ea2">SVF::FlowSensitive::isStrongUpdate</a></div><div class="ttdeci">bool isStrongUpdate(const SVFGNode *node, NodeID &singleton)</div><div class="ttdoc">Return TRUE if this is a strong update STORE statement. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00613">FlowSensitive.cpp:613</a></div></div>
|
|
1993
1988
|
<div class="ttc" id="classSVF_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>
|
|
1994
|
-
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
1995
|
-
<div class="ttc" id="classSVF_1_1SparseBitVector_html_ad5337b5aeed50f8b7ffd56b14ee25c9f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ad5337b5aeed50f8b7ffd56b14ee25c9f">SVF::SparseBitVector::reset</a></div><div class="ttdeci">void reset(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#
|
|
1996
|
-
<div class="ttc" id="classSVF_1_1SVFIR_html_a5d15e4b09784f438568ebe61f8aa5156"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">SVF::SVFIR::isConstantObj</a></div><div class="ttdeci">bool isConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#
|
|
1997
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ab492c283e2264b4cbd4c192e805b7750"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ab492c283e2264b4cbd4c192e805b7750">SVF::FlowSensitive::weakUpdateOutFromIn</a></div><div class="ttdeci">virtual bool weakUpdateOutFromIn(const SVFGNode *node)</div><div class="ttdoc">Handle weak updates. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1998
|
-
<div class="ttc" id="classSVF_1_1PointsTo_html_aa53962e561399bf493d1f2b9137356f6"><div class="ttname"><a href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">SVF::PointsTo::begin</a></div><div class="ttdeci">const_iterator begin(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00128">PointsTo.h:128</a></div></div>
|
|
1999
|
-
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00099">PointerAnalysisImpl.h:99</a></div></div>
|
|
2000
|
-
<div class="ttc" id="classSVF_1_1PointsTo_html_ac4688413177b49b37dbbfd3ed188d59b"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">SVF::PointsTo::empty</a></div><div class="ttdeci">bool empty(void) const</div><div class="ttdoc">Returns true if set is empty. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00094">PointsTo.cpp:94</a></div></div>
|
|
1989
|
+
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
|
|
1990
|
+
<div class="ttc" id="classSVF_1_1SparseBitVector_html_ad5337b5aeed50f8b7ffd56b14ee25c9f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ad5337b5aeed50f8b7ffd56b14ee25c9f">SVF::SparseBitVector::reset</a></div><div class="ttdeci">void reset(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00716">SparseBitVector.h:716</a></div></div>
|
|
1991
|
+
<div class="ttc" id="classSVF_1_1SVFIR_html_a5d15e4b09784f438568ebe61f8aa5156"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">SVF::SVFIR::isConstantObj</a></div><div class="ttdeci">bool isConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00411">SVFIR.h:411</a></div></div>
|
|
1992
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ab492c283e2264b4cbd4c192e805b7750"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ab492c283e2264b4cbd4c192e805b7750">SVF::FlowSensitive::weakUpdateOutFromIn</a></div><div class="ttdeci">virtual bool weakUpdateOutFromIn(const SVFGNode *node)</div><div class="ttdoc">Handle weak updates. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00155">FlowSensitive.h:155</a></div></div>
|
|
2001
1993
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html_a791a01f5d3528f8a8bf19369b5c61c37"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">SVF::StmtVFGNode::getPAGSrcNodeID</a></div><div class="ttdeci">NodeID getPAGSrcNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00141">VFGNode.h:141</a></div></div>
|
|
2002
1994
|
<div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
|
|
2003
1995
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
|
|
2004
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a43e8ca2e69e6e8643c9abd1fa231d305"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a43e8ca2e69e6e8643c9abd1fa231d305">SVF::FlowSensitive::svfgHasSU</a></div><div class="ttdeci">NodeBS svfgHasSU</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
1996
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a43e8ca2e69e6e8643c9abd1fa231d305"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a43e8ca2e69e6e8643c9abd1fa231d305">SVF::FlowSensitive::svfgHasSU</a></div><div class="ttdeci">NodeBS svfgHasSU</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00309">FlowSensitive.h:309</a></div></div>
|
|
2005
1997
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00171">GenericGraph.h:171</a></div></div>
|
|
2006
|
-
<div class="ttc" id="
|
|
1998
|
+
<div class="ttc" id="classSVF_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>
|
|
1999
|
+
<div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00739">SparseBitVector.h:739</a></div></div>
|
|
2007
2000
|
<div class="ttc" id="classSVF_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>
|
|
2008
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a82b76087363b26fbe749653935569de7"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7">SVF::FlowSensitive::storeTime</a></div><div class="ttdeci">double storeTime</div><div class="ttdoc">time of store edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
2009
|
-
<div class="ttc" id="
|
|
2001
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a82b76087363b26fbe749653935569de7"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7">SVF::FlowSensitive::storeTime</a></div><div class="ttdeci">double storeTime</div><div class="ttdoc">time of store edges </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00305">FlowSensitive.h:305</a></div></div>
|
|
2002
|
+
<div class="ttc" id="classSVF_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>
|
|
2003
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a8ebe4342c1496b906ee1b6450558c3e8"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a8ebe4342c1496b906ee1b6450558c3e8">SVF::FlowSensitive::strongUpdateOutFromIn</a></div><div class="ttdeci">virtual bool strongUpdateOutFromIn(const SVFGNode *node, NodeID singleton)</div><div class="ttdoc">Handle strong updates. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00160">FlowSensitive.h:160</a></div></div>
|
|
2010
2004
|
<div class="ttc" id="classSVF_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>
|
|
2011
2005
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a980e54129ece0757d7f0373f37428507"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a980e54129ece0757d7f0373f37428507">SVF::SVFIR::isNonPointerObj</a></div><div class="ttdeci">bool isNonPointerObj(NodeID id) const</div><div class="ttdoc">Whether an object can point to any other object or any of its fields is a pointer type...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00671">SVFIR.cpp:671</a></div></div>
|
|
2012
|
-
<div class="ttc" id="
|
|
2013
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_af5a94d14096ae2bbc47b3b3b9f723226"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af5a94d14096ae2bbc47b3b3b9f723226">SVF::FlowSensitive::updateTime</a></div><div class="ttdeci">double updateTime</div><div class="ttdoc">time of strong/weak updates. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00307">FlowSensitive.h:307</a></div></div>
|
|
2006
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_af5a94d14096ae2bbc47b3b3b9f723226"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af5a94d14096ae2bbc47b3b3b9f723226">SVF::FlowSensitive::updateTime</a></div><div class="ttdeci">double updateTime</div><div class="ttdoc">time of strong/weak updates. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00300">FlowSensitive.h:300</a></div></div>
|
|
2014
2007
|
</div><!-- fragment -->
|
|
2015
2008
|
</div>
|
|
2016
2009
|
</div>
|
|
@@ -2040,24 +2033,24 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2040
2033
|
<p>Process each <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> node </p>
|
|
2041
2034
|
|
|
2042
2035
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00191">191</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
2043
|
-
<div class="fragment"><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AddrVFGNode.html">AddrSVFGNode</a>* addr = SVFUtil::dyn_cast<AddrSVFGNode>(node))</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#ae4253bc632ffffe2498263c90f456ca7">numOfProcessedAddr</a>++;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#abb37c5e4e6fa4742e8dbcf397aea086e">processAddr</a>(addr))</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CopyVFGNode.html">CopySVFGNode</a>* <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a> = SVFUtil::dyn_cast<CopySVFGNode>(node))</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a19e017f3ed6429fa30687018e64dae54">numOfProcessedCopy</a>++;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#aa401cc90de4e1c6842f08a43a28c5aa1">processCopy</a>(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>))</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GepVFGNode.html">GepSVFGNode</a>* gep = SVFUtil::dyn_cast<GepSVFGNode>(node))</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a88a111b6bc347d6562db7af8bd8f2f0e">numOfProcessedGep</a>++;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FlowSensitive.html#ae017c39ac471727d06868e0eacafd791">processGep</a>(gep))</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LoadVFGNode.html">LoadSVFGNode</a>* load = SVFUtil::dyn_cast<LoadSVFGNode>(node))</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a0e1a0bdbf4f81a3600ac26ac011ac268">numOfProcessedLoad</a>++;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FlowSensitive.html#a9968530b3dee876f55e6659530decf27">processLoad</a>(load))</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store = SVFUtil::dyn_cast<StoreSVFGNode>(node))</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a669e8f1dd8572b7dcff373c9787a923d">numOfProcessedStore</a>++;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#aa37d591d2d4f65957e840bef4d142a6a">processStore</a>(store))</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PHIVFGNode.html">PHISVFGNode</a>* phi = SVFUtil::dyn_cast<PHISVFGNode>(node))</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#ac39abcb40e4b568ab59b7cf48ed10f70">numOfProcessedPhi</a>++;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#aa36fd1387e948e83107431179d819067">processPhi</a>(phi))</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737">SVFUtil::isa</a><<a class="code" href="classSVF_1_1MSSAPHISVFGNode.html">MSSAPHISVFGNode</a>, <a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>,</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>, <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>,</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>>(node))</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#af71a5ae3aef022c569e89f40515072cf">numOfProcessedMSSANode</a>++;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737">SVFUtil::isa</a><<a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmSVFGNode</a>, <a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmSVFGNode</a>,</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetSVFGNode</a>, <a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetSVFGNode</a>,</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="classSVF_1_1NullPtrVFGNode.html">NullPtrSVFGNode</a>>(node))</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  }</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<CmpVFGNode, BinaryOPVFGNode>(node) ||</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  SVFUtil::dyn_cast<UnaryOPVFGNode>(node))</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  }</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"unexpected kind of SVFG nodes"</span>);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  }</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#ae2e58d18abcdddc7a5a87f4edc5f3b72">processTime</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_ae2e58d18abcdddc7a5a87f4edc5f3b72"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae2e58d18abcdddc7a5a87f4edc5f3b72">SVF::FlowSensitive::processTime</a></div><div class="ttdeci">double processTime</div><div class="ttdoc">time of processNode. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00303">FlowSensitive.h:303</a></div></div>
|
|
2036
|
+
<div class="fragment"><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AddrVFGNode.html">AddrSVFGNode</a>* addr = SVFUtil::dyn_cast<AddrSVFGNode>(node))</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#ae4253bc632ffffe2498263c90f456ca7">numOfProcessedAddr</a>++;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#abb37c5e4e6fa4742e8dbcf397aea086e">processAddr</a>(addr))</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CopyVFGNode.html">CopySVFGNode</a>* <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a> = SVFUtil::dyn_cast<CopySVFGNode>(node))</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a19e017f3ed6429fa30687018e64dae54">numOfProcessedCopy</a>++;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#aa401cc90de4e1c6842f08a43a28c5aa1">processCopy</a>(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>))</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GepVFGNode.html">GepSVFGNode</a>* gep = SVFUtil::dyn_cast<GepSVFGNode>(node))</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a88a111b6bc347d6562db7af8bd8f2f0e">numOfProcessedGep</a>++;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FlowSensitive.html#ae017c39ac471727d06868e0eacafd791">processGep</a>(gep))</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LoadVFGNode.html">LoadSVFGNode</a>* load = SVFUtil::dyn_cast<LoadSVFGNode>(node))</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a0e1a0bdbf4f81a3600ac26ac011ac268">numOfProcessedLoad</a>++;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FlowSensitive.html#a9968530b3dee876f55e6659530decf27">processLoad</a>(load))</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store = SVFUtil::dyn_cast<StoreSVFGNode>(node))</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a669e8f1dd8572b7dcff373c9787a923d">numOfProcessedStore</a>++;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#aa37d591d2d4f65957e840bef4d142a6a">processStore</a>(store))</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PHIVFGNode.html">PHISVFGNode</a>* phi = SVFUtil::dyn_cast<PHISVFGNode>(node))</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#ac39abcb40e4b568ab59b7cf48ed10f70">numOfProcessedPhi</a>++;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#aa36fd1387e948e83107431179d819067">processPhi</a>(phi))</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737">SVFUtil::isa</a><<a class="code" href="classSVF_1_1MSSAPHISVFGNode.html">MSSAPHISVFGNode</a>, <a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>,</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>, <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>,</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>>(node))</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#af71a5ae3aef022c569e89f40515072cf">numOfProcessedMSSANode</a>++;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737">SVFUtil::isa</a><<a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmSVFGNode</a>, <a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmSVFGNode</a>,</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetSVFGNode</a>, <a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetSVFGNode</a>,</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="classSVF_1_1NullPtrVFGNode.html">NullPtrSVFGNode</a>>(node))</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  }</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<CmpVFGNode, BinaryOPVFGNode>(node) ||</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  SVFUtil::dyn_cast<UnaryOPVFGNode>(node))</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  }</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"unexpected kind of SVFG nodes"</span>);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  }</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#ae2e58d18abcdddc7a5a87f4edc5f3b72">processTime</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_ae2e58d18abcdddc7a5a87f4edc5f3b72"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae2e58d18abcdddc7a5a87f4edc5f3b72">SVF::FlowSensitive::processTime</a></div><div class="ttdeci">double processTime</div><div class="ttdoc">time of processNode. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00296">FlowSensitive.h:296</a></div></div>
|
|
2044
2037
|
<div class="ttc" id="classSVF_1_1StoreVFGNode_html"><div class="ttname"><a href="classSVF_1_1StoreVFGNode.html">SVF::StoreVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00240">VFGNode.h:240</a></div></div>
|
|
2045
2038
|
<div class="ttc" id="classSVF_1_1ActualParmVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualParmVFGNode.html">SVF::ActualParmVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00846">VFGNode.h:846</a></div></div>
|
|
2046
2039
|
<div class="ttc" id="classSVF_1_1AddrVFGNode_html"><div class="ttname"><a href="classSVF_1_1AddrVFGNode.html">SVF::AddrVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00760">VFGNode.h:760</a></div></div>
|
|
2047
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ae4253bc632ffffe2498263c90f456ca7"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae4253bc632ffffe2498263c90f456ca7">SVF::FlowSensitive::numOfProcessedAddr</a></div><div class="ttdeci">u32_t numOfProcessedAddr</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
2040
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ae4253bc632ffffe2498263c90f456ca7"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae4253bc632ffffe2498263c90f456ca7">SVF::FlowSensitive::numOfProcessedAddr</a></div><div class="ttdeci">u32_t numOfProcessedAddr</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00280">FlowSensitive.h:280</a></div></div>
|
|
2048
2041
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aa401cc90de4e1c6842f08a43a28c5aa1"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aa401cc90de4e1c6842f08a43a28c5aa1">SVF::FlowSensitive::processCopy</a></div><div class="ttdeci">virtual bool processCopy(const CopySVFGNode *copy)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00425">FlowSensitive.cpp:425</a></div></div>
|
|
2049
2042
|
<div class="ttc" id="classSVF_1_1FormalOUTSVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalOUTSVFGNode.html">SVF::FormalOUTSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00138">SVFGNode.h:138</a></div></div>
|
|
2050
2043
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aa37d591d2d4f65957e840bef4d142a6a"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aa37d591d2d4f65957e840bef4d142a6a">SVF::FlowSensitive::processStore</a></div><div class="ttdeci">virtual bool processStore(const StoreSVFGNode *store)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00553">FlowSensitive.cpp:553</a></div></div>
|
|
2051
2044
|
<div class="ttc" id="classSVF_1_1CopyVFGNode_html"><div class="ttname"><a href="classSVF_1_1CopyVFGNode.html">SVF::CopyVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00281">VFGNode.h:281</a></div></div>
|
|
2052
2045
|
<div class="ttc" id="classSVF_1_1PHIVFGNode_html"><div class="ttname"><a href="classSVF_1_1PHIVFGNode.html">SVF::PHIVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00635">VFGNode.h:635</a></div></div>
|
|
2053
|
-
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
2046
|
+
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
|
|
2054
2047
|
<div class="ttc" id="classSVF_1_1GepVFGNode_html"><div class="ttname"><a href="classSVF_1_1GepVFGNode.html">SVF::GepVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00594">VFGNode.h:594</a></div></div>
|
|
2055
2048
|
<div class="ttc" id="classSVF_1_1ActualOUTSVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualOUTSVFGNode.html">SVF::ActualOUTSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00229">SVFGNode.h:229</a></div></div>
|
|
2056
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a669e8f1dd8572b7dcff373c9787a923d"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a669e8f1dd8572b7dcff373c9787a923d">SVF::FlowSensitive::numOfProcessedStore</a></div><div class="ttdeci">u32_t numOfProcessedStore</div><div class="ttdoc">Number of processed Load node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
2049
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a669e8f1dd8572b7dcff373c9787a923d"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a669e8f1dd8572b7dcff373c9787a923d">SVF::FlowSensitive::numOfProcessedStore</a></div><div class="ttdeci">u32_t numOfProcessedStore</div><div class="ttdoc">Number of processed Load node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00285">FlowSensitive.h:285</a></div></div>
|
|
2057
2050
|
<div class="ttc" id="classSVF_1_1MSSAPHISVFGNode_html"><div class="ttname"><a href="classSVF_1_1MSSAPHISVFGNode.html">SVF::MSSAPHISVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00276">SVFGNode.h:276</a></div></div>
|
|
2058
2051
|
<div class="ttc" id="classSVF_1_1ActualINSVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualINSVFGNode.html">SVF::ActualINSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00180">SVFGNode.h:180</a></div></div>
|
|
2059
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ac39abcb40e4b568ab59b7cf48ed10f70"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ac39abcb40e4b568ab59b7cf48ed10f70">SVF::FlowSensitive::numOfProcessedPhi</a></div><div class="ttdeci">u32_t numOfProcessedPhi</div><div class="ttdoc">Number of processed Gep node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
2060
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a0e1a0bdbf4f81a3600ac26ac011ac268"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a0e1a0bdbf4f81a3600ac26ac011ac268">SVF::FlowSensitive::numOfProcessedLoad</a></div><div class="ttdeci">u32_t numOfProcessedLoad</div><div class="ttdoc">Number of processed Phi node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
2052
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ac39abcb40e4b568ab59b7cf48ed10f70"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ac39abcb40e4b568ab59b7cf48ed10f70">SVF::FlowSensitive::numOfProcessedPhi</a></div><div class="ttdeci">u32_t numOfProcessedPhi</div><div class="ttdoc">Number of processed Gep node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00283">FlowSensitive.h:283</a></div></div>
|
|
2053
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a0e1a0bdbf4f81a3600ac26ac011ac268"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a0e1a0bdbf4f81a3600ac26ac011ac268">SVF::FlowSensitive::numOfProcessedLoad</a></div><div class="ttdeci">u32_t numOfProcessedLoad</div><div class="ttdoc">Number of processed Phi node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00284">FlowSensitive.h:284</a></div></div>
|
|
2061
2054
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_abb37c5e4e6fa4742e8dbcf397aea086e"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#abb37c5e4e6fa4742e8dbcf397aea086e">SVF::FlowSensitive::processAddr</a></div><div class="ttdeci">virtual bool processAddr(const AddrSVFGNode *addr)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00408">FlowSensitive.cpp:408</a></div></div>
|
|
2062
2055
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ae017c39ac471727d06868e0eacafd791"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae017c39ac471727d06868e0eacafd791">SVF::FlowSensitive::processGep</a></div><div class="ttdeci">virtual bool processGep(const GepSVFGNode *edge)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00458">FlowSensitive.cpp:458</a></div></div>
|
|
2063
2056
|
<div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
|
|
@@ -2066,12 +2059,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2066
2059
|
<div class="ttc" id="classSVF_1_1ActualRetVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualRetVFGNode.html">SVF::ActualRetVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00967">VFGNode.h:967</a></div></div>
|
|
2067
2060
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a9968530b3dee876f55e6659530decf27"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a9968530b3dee876f55e6659530decf27">SVF::FlowSensitive::processLoad</a></div><div class="ttdeci">virtual bool processLoad(const LoadSVFGNode *load)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00510">FlowSensitive.cpp:510</a></div></div>
|
|
2068
2061
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aa36fd1387e948e83107431179d819067"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aa36fd1387e948e83107431179d819067">SVF::FlowSensitive::processPhi</a></div><div class="ttdeci">virtual bool processPhi(const PHISVFGNode *phi)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00437">FlowSensitive.cpp:437</a></div></div>
|
|
2069
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a88a111b6bc347d6562db7af8bd8f2f0e"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a88a111b6bc347d6562db7af8bd8f2f0e">SVF::FlowSensitive::numOfProcessedGep</a></div><div class="ttdeci">u32_t numOfProcessedGep</div><div class="ttdoc">Number of processed Copy node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
2070
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_af71a5ae3aef022c569e89f40515072cf"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af71a5ae3aef022c569e89f40515072cf">SVF::FlowSensitive::numOfProcessedMSSANode</a></div><div class="ttdeci">u32_t numOfProcessedMSSANode</div><div class="ttdoc">Number of processed formal ret node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
2062
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a88a111b6bc347d6562db7af8bd8f2f0e"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a88a111b6bc347d6562db7af8bd8f2f0e">SVF::FlowSensitive::numOfProcessedGep</a></div><div class="ttdeci">u32_t numOfProcessedGep</div><div class="ttdoc">Number of processed Copy node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00282">FlowSensitive.h:282</a></div></div>
|
|
2063
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_af71a5ae3aef022c569e89f40515072cf"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af71a5ae3aef022c569e89f40515072cf">SVF::FlowSensitive::numOfProcessedMSSANode</a></div><div class="ttdeci">u32_t numOfProcessedMSSANode</div><div class="ttdoc">Number of processed formal ret node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00288">FlowSensitive.h:288</a></div></div>
|
|
2071
2064
|
<div class="ttc" id="cJSON_8cpp_html_a7669ee67a0563250c1efaa24d130e1ac"><div class="ttname"><a href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a></div><div class="ttdeci">copy</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00414">cJSON.cpp:414</a></div></div>
|
|
2072
2065
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a5c8cbc986cccb9d84f87aae162df3737"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737">SVF::SVFUtil::isa</a></div><div class="ttdeci">LLVM_NODISCARD bool isa(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00241">Casting.h:241</a></div></div>
|
|
2073
2066
|
<div class="ttc" id="classSVF_1_1FormalParmVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalParmVFGNode.html">SVF::FormalParmVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00898">VFGNode.h:898</a></div></div>
|
|
2074
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a19e017f3ed6429fa30687018e64dae54"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a19e017f3ed6429fa30687018e64dae54">SVF::FlowSensitive::numOfProcessedCopy</a></div><div class="ttdeci">u32_t numOfProcessedCopy</div><div class="ttdoc">Number of processed Addr node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
2067
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a19e017f3ed6429fa30687018e64dae54"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a19e017f3ed6429fa30687018e64dae54">SVF::FlowSensitive::numOfProcessedCopy</a></div><div class="ttdeci">u32_t numOfProcessedCopy</div><div class="ttdoc">Number of processed Addr node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00281">FlowSensitive.h:281</a></div></div>
|
|
2075
2068
|
<div class="ttc" id="classSVF_1_1FormalRetVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalRetVFGNode.html">SVF::FormalRetVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l01025">VFGNode.h:1025</a></div></div>
|
|
2076
2069
|
<div class="ttc" id="classSVF_1_1NullPtrVFGNode_html"><div class="ttname"><a href="classSVF_1_1NullPtrVFGNode.html">SVF::NullPtrVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l01154">VFGNode.h:1154</a></div></div>
|
|
2077
2070
|
<div class="ttc" id="classSVF_1_1FormalINSVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalINSVFGNode.html">SVF::FormalINSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00093">SVFGNode.h:93</a></div></div>
|
|
@@ -2115,13 +2108,13 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2115
2108
|
<p>Propagate points-to information from actual-param to formal-param. Not necessary if <a class="el" href="classSVF_1_1SVFGOPT.html">SVFGOPT</a> is used instead of original <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
|
|
2116
2109
|
|
|
2117
2110
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00318">318</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
2118
|
-
<div class="fragment"><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> {</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmSVFGNode</a>* fp = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a><<a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmSVFGNode</a>>(dst);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  assert(fp && <span class="stringliteral">"expecting a formal param node"</span>);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> pagDst = fp-><a class="code" href="classSVF_1_1FormalParmVFGNode.html#ab1a9031c1fc5102e072b5035151c131c">getParam</a>()-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &srcCPts = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#
|
|
2111
|
+
<div class="fragment"><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> {</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmSVFGNode</a>* fp = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a><<a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmSVFGNode</a>>(dst);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  assert(fp && <span class="stringliteral">"expecting a formal param node"</span>);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> pagDst = fp-><a class="code" href="classSVF_1_1FormalParmVFGNode.html#ab1a9031c1fc5102e072b5035151c131c">getParam</a>()-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &srcCPts = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(ap-><a class="code" href="classSVF_1_1ActualParmVFGNode.html#a8932b197a076ab3069a9fe8b73e7fc32">getParam</a>()-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keywordtype">bool</span> changed = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae7073c07bfd7912f888d54d4652c7cc2">unionPts</a>(pagDst, srcCPts);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> }</div><div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
2119
2112
|
<div class="ttc" id="classSVF_1_1FormalParmVFGNode_html_ab1a9031c1fc5102e072b5035151c131c"><div class="ttname"><a href="classSVF_1_1FormalParmVFGNode.html#ab1a9031c1fc5102e072b5035151c131c">SVF::FormalParmVFGNode::getParam</a></div><div class="ttdeci">const PAGNode * getParam() const</div><div class="ttdoc">Return parameter. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00912">VFGNode.h:912</a></div></div>
|
|
2120
2113
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type > dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00405">Casting.h:405</a></div></div>
|
|
2121
|
-
<div class="ttc" id="classSVF_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#
|
|
2114
|
+
<div class="ttc" id="classSVF_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>
|
|
2122
2115
|
<div class="ttc" id="classSVF_1_1ActualParmVFGNode_html_a8932b197a076ab3069a9fe8b73e7fc32"><div class="ttname"><a href="classSVF_1_1ActualParmVFGNode.html#a8932b197a076ab3069a9fe8b73e7fc32">SVF::ActualParmVFGNode::getParam</a></div><div class="ttdeci">const PAGNode * getParam() const</div><div class="ttdoc">Return parameter. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00864">VFGNode.h:864</a></div></div>
|
|
2123
|
-
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00099">PointerAnalysisImpl.h:99</a></div></div>
|
|
2124
2116
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00171">GenericGraph.h:171</a></div></div>
|
|
2117
|
+
<div class="ttc" id="classSVF_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>
|
|
2125
2118
|
<div class="ttc" id="classSVF_1_1FormalParmVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalParmVFGNode.html">SVF::FormalParmVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00898">VFGNode.h:898</a></div></div>
|
|
2126
2119
|
<div class="ttc" id="classSVF_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>
|
|
2127
2120
|
</div><!-- fragment -->
|
|
@@ -2164,14 +2157,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2164
2157
|
<p>Propagate points-to information from formal-ret to actual-ret. Not necessary if <a class="el" href="classSVF_1_1SVFGOPT.html">SVFGOPT</a> is used instead of original <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
|
|
2165
2158
|
|
|
2166
2159
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00334">334</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
2167
|
-
<div class="fragment"><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetSVFGNode</a>* ar = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a><<a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetSVFGNode</a>>(dst);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  assert(ar && <span class="stringliteral">"expecting an actual return node"</span>);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> pagDst = ar-><a class="code" href="classSVF_1_1ActualRetVFGNode.html#a4bcfddf05da46729c670b4f450f9d606">getRev</a>()-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> & srcCPts = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#
|
|
2160
|
+
<div class="fragment"><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetSVFGNode</a>* ar = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a><<a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetSVFGNode</a>>(dst);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  assert(ar && <span class="stringliteral">"expecting an actual return node"</span>);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> pagDst = ar-><a class="code" href="classSVF_1_1ActualRetVFGNode.html#a4bcfddf05da46729c670b4f450f9d606">getRev</a>()-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> & srcCPts = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(fr-><a class="code" href="classSVF_1_1FormalRetVFGNode.html#a62a894e71fcf7a3db19c0488d96a7262">getRet</a>()-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordtype">bool</span> changed = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae7073c07bfd7912f888d54d4652c7cc2">unionPts</a>(pagDst, srcCPts);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> }</div><div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
2168
2161
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type > dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00405">Casting.h:405</a></div></div>
|
|
2169
|
-
<div class="ttc" id="classSVF_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#
|
|
2170
|
-
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00099">PointerAnalysisImpl.h:99</a></div></div>
|
|
2162
|
+
<div class="ttc" id="classSVF_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>
|
|
2171
2163
|
<div class="ttc" id="classSVF_1_1FormalRetVFGNode_html_a62a894e71fcf7a3db19c0488d96a7262"><div class="ttname"><a href="classSVF_1_1FormalRetVFGNode.html#a62a894e71fcf7a3db19c0488d96a7262">SVF::FormalRetVFGNode::getRet</a></div><div class="ttdeci">const PAGNode * getRet() const</div><div class="ttdoc">Return value at callee. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l01040">VFGNode.h:1040</a></div></div>
|
|
2172
2164
|
<div class="ttc" id="classSVF_1_1ActualRetVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualRetVFGNode.html">SVF::ActualRetVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00967">VFGNode.h:967</a></div></div>
|
|
2173
2165
|
<div class="ttc" id="classSVF_1_1ActualRetVFGNode_html_a4bcfddf05da46729c670b4f450f9d606"><div class="ttname"><a href="classSVF_1_1ActualRetVFGNode.html#a4bcfddf05da46729c670b4f450f9d606">SVF::ActualRetVFGNode::getRev</a></div><div class="ttdeci">const PAGNode * getRev() const</div><div class="ttdoc">Receive parameter at callsite. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00993">VFGNode.h:993</a></div></div>
|
|
2174
2166
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00171">GenericGraph.h:171</a></div></div>
|
|
2167
|
+
<div class="ttc" id="classSVF_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>
|
|
2175
2168
|
<div class="ttc" id="classSVF_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>
|
|
2176
2169
|
</div><!-- fragment -->
|
|
2177
2170
|
</div>
|
|
@@ -2206,12 +2199,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2206
2199
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00287">287</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
2207
2200
|
<div class="fragment"><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* src = edge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>();</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dst = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="comment">// If this is an actual-param or formal-ret, top-level pointer's pts must be</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="comment">// propagated from src to dst.</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmSVFGNode</a>* ap = SVFUtil::dyn_cast<ActualParmSVFGNode>(src))</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  changed = <a class="code" href="classSVF_1_1FlowSensitive.html#a3574977acd161925cadcb05de6d3247d">propagateFromAPToFP</a>(ap, dst);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetSVFGNode</a>* fp = SVFUtil::dyn_cast<FormalRetSVFGNode>(src))</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  changed = <a class="code" href="classSVF_1_1FlowSensitive.html#a3abffe1434386b1ce349fbed0cfe0967">propagateFromFRToAR</a>(fp, dst);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="comment">// Direct SVFG edge links between def and use of a top-level pointer.</span></div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="comment">// There's no points-to information propagated along direct edge.</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="comment">// Since the top-level pointer's value has been changed at src node,</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="comment">// return TRUE to put dst node into the work list.</span></div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  }</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> </div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#ae086de68233375be42185f0af706687a">directPropaTime</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_a3574977acd161925cadcb05de6d3247d"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a3574977acd161925cadcb05de6d3247d">SVF::FlowSensitive::propagateFromAPToFP</a></div><div class="ttdeci">virtual bool propagateFromAPToFP(const ActualParmSVFGNode *ap, const SVFGNode *dst)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00318">FlowSensitive.cpp:318</a></div></div>
|
|
2208
2201
|
<div class="ttc" id="classSVF_1_1ActualParmVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualParmVFGNode.html">SVF::ActualParmVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00846">VFGNode.h:846</a></div></div>
|
|
2209
|
-
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
2202
|
+
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
|
|
2210
2203
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00095">GenericGraph.h:95</a></div></div>
|
|
2211
2204
|
<div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
|
|
2212
2205
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
|
|
2213
2206
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ab47ca533c415841ef75456cbad439589"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVF::GenericEdge::getSrcNode</a></div><div class="ttdeci">NodeType * getSrcNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00091">GenericGraph.h:91</a></div></div>
|
|
2214
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ae086de68233375be42185f0af706687a"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae086de68233375be42185f0af706687a">SVF::FlowSensitive::directPropaTime</a></div><div class="ttdeci">double directPropaTime</div><div class="ttdoc">time of points-to propagation of address-taken objects </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
2207
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ae086de68233375be42185f0af706687a"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae086de68233375be42185f0af706687a">SVF::FlowSensitive::directPropaTime</a></div><div class="ttdeci">double directPropaTime</div><div class="ttdoc">time of points-to propagation of address-taken objects </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00298">FlowSensitive.h:298</a></div></div>
|
|
2215
2208
|
<div class="ttc" id="classSVF_1_1FormalRetVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalRetVFGNode.html">SVF::FormalRetVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l01025">VFGNode.h:1025</a></div></div>
|
|
2216
2209
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a3abffe1434386b1ce349fbed0cfe0967"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a3abffe1434386b1ce349fbed0cfe0967">SVF::FlowSensitive::propagateFromFRToAR</a></div><div class="ttdeci">virtual bool propagateFromFRToAR(const FormalRetSVFGNode *fr, const SVFGNode *dst)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00334">FlowSensitive.cpp:334</a></div></div>
|
|
2217
2210
|
<div class="ttc" id="classSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
|
|
@@ -2249,18 +2242,18 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2249
2242
|
<p>Reimplemented in <a class="el" href="classSVF_1_1VersionedFlowSensitive.html#ad44c735b25158d2c934bdd44eb404686">SVF::VersionedFlowSensitive</a>.</p>
|
|
2250
2243
|
|
|
2251
2244
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00349">349</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
2252
|
-
<div class="fragment"><div class="line"><a name="l00350"></a><span class="lineno"> 350</span> {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* src = edge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>();</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dst = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="comment">// Get points-to targets may be used by next SVFG node.</span></div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="comment">// Propagate points-to set for node used in dst.</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& pts = edge-><a class="code" href="classSVF_1_1IndirectSVFGEdge.html#a30aca718d25924f1babdf348bb0ace71">getPointsTo</a>();</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> ptdIt = pts.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), ptdEit = pts.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); ptdIt != ptdEit; ++ptdIt)</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> ptd = *ptdIt;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#ae571767cc5936cf631a44976d8277e91">propVarPtsFromSrcToDst</a>(ptd, src, dst))</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">isFieldInsensitive</a>(ptd))</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& allFields = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5dddd53b4ca9d7cc23d88ed9f3de9fde">getAllFieldsObjVars</a>(ptd);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> fieldIt = allFields.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), fieldEit = allFields.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>();</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  fieldIt != fieldEit; ++fieldIt)</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#ae571767cc5936cf631a44976d8277e91">propVarPtsFromSrcToDst</a>(*fieldIt, src, dst))</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  }</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  }</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> </div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a2feaa4b7a72989b311e9084a81320254">indirectPropaTime</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> }</div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#
|
|
2253
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a2feaa4b7a72989b311e9084a81320254"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a2feaa4b7a72989b311e9084a81320254">SVF::FlowSensitive::indirectPropaTime</a></div><div class="ttdeci">double indirectPropaTime</div><div class="ttdoc">time of points-to propagation of top-level pointers </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
2245
|
+
<div class="fragment"><div class="line"><a name="l00350"></a><span class="lineno"> 350</span> {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* src = edge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>();</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dst = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="comment">// Get points-to targets may be used by next SVFG node.</span></div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="comment">// Propagate points-to set for node used in dst.</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& pts = edge-><a class="code" href="classSVF_1_1IndirectSVFGEdge.html#a30aca718d25924f1babdf348bb0ace71">getPointsTo</a>();</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> ptdIt = pts.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), ptdEit = pts.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); ptdIt != ptdEit; ++ptdIt)</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> ptd = *ptdIt;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#ae571767cc5936cf631a44976d8277e91">propVarPtsFromSrcToDst</a>(ptd, src, dst))</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">isFieldInsensitive</a>(ptd))</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& allFields = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5dddd53b4ca9d7cc23d88ed9f3de9fde">getAllFieldsObjVars</a>(ptd);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> fieldIt = allFields.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), fieldEit = allFields.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>();</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  fieldIt != fieldEit; ++fieldIt)</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#ae571767cc5936cf631a44976d8277e91">propVarPtsFromSrcToDst</a>(*fieldIt, src, dst))</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  }</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  }</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> </div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a2feaa4b7a72989b311e9084a81320254">indirectPropaTime</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> }</div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00528">SparseBitVector.h:528</a></div></div>
|
|
2246
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a2feaa4b7a72989b311e9084a81320254"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a2feaa4b7a72989b311e9084a81320254">SVF::FlowSensitive::indirectPropaTime</a></div><div class="ttdeci">double indirectPropaTime</div><div class="ttdoc">time of points-to propagation of top-level pointers </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00299">FlowSensitive.h:299</a></div></div>
|
|
2254
2247
|
<div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
2255
|
-
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
2248
|
+
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
|
|
2256
2249
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5dddd53b4ca9d7cc23d88ed9f3de9fde"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5dddd53b4ca9d7cc23d88ed9f3de9fde">SVF::PointerAnalysis::getAllFieldsObjVars</a></div><div class="ttdeci">virtual const NodeBS & getAllFieldsObjVars(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00345">PointerAnalysis.h:345</a></div></div>
|
|
2257
2250
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00095">GenericGraph.h:95</a></div></div>
|
|
2258
|
-
<div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#
|
|
2251
|
+
<div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01112">SparseBitVector.h:1112</a></div></div>
|
|
2259
2252
|
<div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
|
|
2260
2253
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
|
|
2261
2254
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ab47ca533c415841ef75456cbad439589"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVF::GenericEdge::getSrcNode</a></div><div class="ttdeci">NodeType * getSrcNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00091">GenericGraph.h:91</a></div></div>
|
|
2262
|
-
<div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#
|
|
2263
|
-
<div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#
|
|
2255
|
+
<div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01107">SparseBitVector.h:1107</a></div></div>
|
|
2256
|
+
<div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
|
|
2264
2257
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ae571767cc5936cf631a44976d8277e91"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae571767cc5936cf631a44976d8277e91">SVF::FlowSensitive::propVarPtsFromSrcToDst</a></div><div class="ttdeci">virtual bool propVarPtsFromSrcToDst(NodeID var, const SVFGNode *src, const SVFGNode *dst)</div><div class="ttdoc">Propagate points-to information of a certain variable from src to dst. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00389">FlowSensitive.cpp:389</a></div></div>
|
|
2265
2258
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0f71e4cd0948b294c7d33a690bde7dbe"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">SVF::PointerAnalysis::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00354">PointerAnalysis.h:354</a></div></div>
|
|
2266
2259
|
<div class="ttc" id="classSVF_1_1IndirectSVFGEdge_html_a30aca718d25924f1babdf348bb0ace71"><div class="ttname"><a href="classSVF_1_1IndirectSVFGEdge.html#a30aca718d25924f1babdf348bb0ace71">SVF::IndirectSVFGEdge::getPointsTo</a></div><div class="ttdeci">const NodeBS & getPointsTo() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00060">SVFGEdge.h:60</a></div></div>
|
|
@@ -2314,9 +2307,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2314
2307
|
</table>
|
|
2315
2308
|
</div><div class="memdoc">
|
|
2316
2309
|
|
|
2317
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
2318
|
-
<div class="fragment"><div class="line"><a name="
|
|
2319
|
-
<div class="ttc" id="classSVF_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#
|
|
2310
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00175">175</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
2311
|
+
<div class="fragment"><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-><a class="code" href="classSVF_1_1DFPTData.html#a506a2be8f909663d59245254bddea00b">updateAllDFInFromIn</a>(srcStmt->getId(), srcVar, dstStmt->getId(),dstVar);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  }</div><div class="ttc" id="classSVF_1_1DFPTData_html_a506a2be8f909663d59245254bddea00b"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a506a2be8f909663d59245254bddea00b">SVF::DFPTData::updateAllDFInFromIn</a></div><div class="ttdeci">virtual bool updateAllDFInFromIn(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar)=0</div><div class="ttdoc">Union (IN[dstLoc::dstVar], IN[srcLoc:srcVar]. There is no flag check, unlike the above. </div></div>
|
|
2312
|
+
<div class="ttc" id="classSVF_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#l00174">PointerAnalysisImpl.h:174</a></div></div>
|
|
2320
2313
|
</div><!-- fragment -->
|
|
2321
2314
|
</div>
|
|
2322
2315
|
</div>
|
|
@@ -2366,14 +2359,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2366
2359
|
</table>
|
|
2367
2360
|
</div><div class="memdoc">
|
|
2368
2361
|
|
|
2369
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
2370
|
-
<div class="fragment"><div class="line"><a name="
|
|
2371
|
-
<div class="ttc" id="classSVF_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#
|
|
2362
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00171">171</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
2363
|
+
<div class="fragment"><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-><a class="code" href="classSVF_1_1DFPTData.html#a96a5d7e867095b3c215c73599fd31c19">updateAllDFInFromOut</a>(srcStmt->getId(), srcVar, dstStmt->getId(),dstVar);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div><div class="ttc" id="classSVF_1_1DFPTData_html_a96a5d7e867095b3c215c73599fd31c19"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a96a5d7e867095b3c215c73599fd31c19">SVF::DFPTData::updateAllDFInFromOut</a></div><div class="ttdeci">virtual bool updateAllDFInFromOut(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar)=0</div><div class="ttdoc">Union (IN[dstLoc::dstVar], OUT[srcLoc:srcVar]. There is no flag check, unlike the above...</div></div>
|
|
2364
|
+
<div class="ttc" id="classSVF_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#l00174">PointerAnalysisImpl.h:174</a></div></div>
|
|
2372
2365
|
</div><!-- fragment -->
|
|
2373
2366
|
</div>
|
|
2374
2367
|
</div>
|
|
2375
|
-
<a id="
|
|
2376
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
2368
|
+
<a id="a8892e6f56f32675f9bf6884bd0d29843"></a>
|
|
2369
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a8892e6f56f32675f9bf6884bd0d29843">◆ </a></span>propFromSrcToDst()</h2>
|
|
2377
2370
|
|
|
2378
2371
|
<div class="memitem">
|
|
2379
2372
|
<div class="memproto">
|
|
@@ -2391,7 +2384,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2391
2384
|
</table>
|
|
2392
2385
|
</td>
|
|
2393
2386
|
<td class="mlabels-right">
|
|
2394
|
-
<span class="mlabels"><span class="mlabel">
|
|
2387
|
+
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span></span> </td>
|
|
2395
2388
|
</tr>
|
|
2396
2389
|
</table>
|
|
2397
2390
|
</div><div class="memdoc">
|
|
@@ -2405,12 +2398,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2405
2398
|
|
|
2406
2399
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00267">267</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
2407
2400
|
<div class="fragment"><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DirectSVFGEdge.html">DirectSVFGEdge</a>* dirEdge = SVFUtil::dyn_cast<DirectSVFGEdge>(edge))</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  changed = <a class="code" href="classSVF_1_1FlowSensitive.html#ad3518931d3b8a0671cbeb975f853b956">propAlongDirectEdge</a>(dirEdge);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a>* indEdge = SVFUtil::dyn_cast<IndirectSVFGEdge>(edge))</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  changed = <a class="code" href="classSVF_1_1FlowSensitive.html#aeb1e002519123a67f8d18f78cda04bac">propAlongIndirectEdge</a>(indEdge);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"new kind of svfg edge?"</span>);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#ac4d4b42bb96006801597f81ed3c4b337">propagationTime</a> += (end - start) /<a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_aeb1e002519123a67f8d18f78cda04bac"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aeb1e002519123a67f8d18f78cda04bac">SVF::FlowSensitive::propAlongIndirectEdge</a></div><div class="ttdeci">virtual bool propAlongIndirectEdge(const IndirectSVFGEdge *edge)</div><div class="ttdoc">Propagate points-to information along an INDIRECT SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00349">FlowSensitive.cpp:349</a></div></div>
|
|
2408
|
-
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
2401
|
+
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
|
|
2409
2402
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ad3518931d3b8a0671cbeb975f853b956"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ad3518931d3b8a0671cbeb975f853b956">SVF::FlowSensitive::propAlongDirectEdge</a></div><div class="ttdeci">virtual bool propAlongDirectEdge(const DirectSVFGEdge *edge)</div><div class="ttdoc">Propagate points-to information along a DIRECT SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00287">FlowSensitive.cpp:287</a></div></div>
|
|
2410
2403
|
<div class="ttc" id="classSVF_1_1DirectSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1DirectSVFGEdge.html">SVF::DirectSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00141">VFGEdge.h:141</a></div></div>
|
|
2411
2404
|
<div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
|
|
2412
2405
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
|
|
2413
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ac4d4b42bb96006801597f81ed3c4b337"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ac4d4b42bb96006801597f81ed3c4b337">SVF::FlowSensitive::propagationTime</a></div><div class="ttdeci">double propagationTime</div><div class="ttdoc">time of points-to propagation. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
2406
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ac4d4b42bb96006801597f81ed3c4b337"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ac4d4b42bb96006801597f81ed3c4b337">SVF::FlowSensitive::propagationTime</a></div><div class="ttdeci">double propagationTime</div><div class="ttdoc">time of points-to propagation. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00297">FlowSensitive.h:297</a></div></div>
|
|
2414
2407
|
<div class="ttc" id="classSVF_1_1IndirectSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1IndirectSVFGEdge.html">SVF::IndirectSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00042">SVFGEdge.h:42</a></div></div>
|
|
2415
2408
|
</div><!-- fragment -->
|
|
2416
2409
|
</div>
|
|
@@ -2458,8 +2451,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2458
2451
|
<p>Propagate points-to information of a certain variable from src to dst. </p>
|
|
2459
2452
|
|
|
2460
2453
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00763">763</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
2461
|
-
<div class="fragment"><div class="line"><a name="l00764"></a><span class="lineno"> 764</span> {</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <span class="keywordflow">if</span> (SVFUtil::isa<StoreSVFGNode>(src))</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  {</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a5e97c3fe32f60b0e8e96323ceb9a10cf">propDFOutToIn</a>(src, var, dst, var))</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  }</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  {</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a3be364754863bbbee6dfd0b5490dec47">propDFInToIn</a>(src, var, dst, var))</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  }</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span> }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_a5e97c3fe32f60b0e8e96323ceb9a10cf"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a5e97c3fe32f60b0e8e96323ceb9a10cf">SVF::FlowSensitive::propDFOutToIn</a></div><div class="ttdeci">virtual bool propDFOutToIn(const SVFGNode *srcStmt, NodeID srcVar, const SVFGNode *dstStmt, NodeID dstVar)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
2462
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a3be364754863bbbee6dfd0b5490dec47"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a3be364754863bbbee6dfd0b5490dec47">SVF::FlowSensitive::propDFInToIn</a></div><div class="ttdeci">virtual bool propDFInToIn(const SVFGNode *srcStmt, NodeID srcVar, const SVFGNode *dstStmt, NodeID dstVar)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
2454
|
+
<div class="fragment"><div class="line"><a name="l00764"></a><span class="lineno"> 764</span> {</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <span class="keywordflow">if</span> (SVFUtil::isa<StoreSVFGNode>(src))</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  {</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a5e97c3fe32f60b0e8e96323ceb9a10cf">propDFOutToIn</a>(src, var, dst, var))</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  }</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  {</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a3be364754863bbbee6dfd0b5490dec47">propDFInToIn</a>(src, var, dst, var))</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  }</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span> }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_a5e97c3fe32f60b0e8e96323ceb9a10cf"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a5e97c3fe32f60b0e8e96323ceb9a10cf">SVF::FlowSensitive::propDFOutToIn</a></div><div class="ttdeci">virtual bool propDFOutToIn(const SVFGNode *srcStmt, NodeID srcVar, const SVFGNode *dstStmt, NodeID dstVar)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00171">FlowSensitive.h:171</a></div></div>
|
|
2455
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a3be364754863bbbee6dfd0b5490dec47"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a3be364754863bbbee6dfd0b5490dec47">SVF::FlowSensitive::propDFInToIn</a></div><div class="ttdeci">virtual bool propDFInToIn(const SVFGNode *srcStmt, NodeID srcVar, const SVFGNode *dstStmt, NodeID dstVar)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00175">FlowSensitive.h:175</a></div></div>
|
|
2463
2456
|
</div><!-- fragment -->
|
|
2464
2457
|
</div>
|
|
2465
2458
|
</div>
|
|
@@ -2507,13 +2500,13 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2507
2500
|
<p>Propagate points-to information of a certain variable from src to dst. </p>
|
|
2508
2501
|
|
|
2509
2502
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00389">389</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
2510
|
-
<div class="fragment"><div class="line"><a name="l00390"></a><span class="lineno"> 390</span> {</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordflow">if</span> (SVFUtil::isa<StoreSVFGNode>(src))</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#af5d90b4bd5c16dd64cd10afea6b3be93">updateInFromOut</a>(src, var, dst, var))</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a88120b9cec26620d4982798ea530353a">updateInFromIn</a>(src, var, dst, var))</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_a88120b9cec26620d4982798ea530353a"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a88120b9cec26620d4982798ea530353a">SVF::FlowSensitive::updateInFromIn</a></div><div class="ttdeci">virtual bool updateInFromIn(const SVFGNode *srcStmt, NodeID srcVar, const SVFGNode *dstStmt, NodeID dstVar)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
2511
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_af5d90b4bd5c16dd64cd10afea6b3be93"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af5d90b4bd5c16dd64cd10afea6b3be93">SVF::FlowSensitive::updateInFromOut</a></div><div class="ttdeci">virtual bool updateInFromOut(const SVFGNode *srcStmt, NodeID srcVar, const SVFGNode *dstStmt, NodeID dstVar)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
2503
|
+
<div class="fragment"><div class="line"><a name="l00390"></a><span class="lineno"> 390</span> {</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordflow">if</span> (SVFUtil::isa<StoreSVFGNode>(src))</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#af5d90b4bd5c16dd64cd10afea6b3be93">updateInFromOut</a>(src, var, dst, var))</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a88120b9cec26620d4982798ea530353a">updateInFromIn</a>(src, var, dst, var))</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_a88120b9cec26620d4982798ea530353a"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a88120b9cec26620d4982798ea530353a">SVF::FlowSensitive::updateInFromIn</a></div><div class="ttdeci">virtual bool updateInFromIn(const SVFGNode *srcStmt, NodeID srcVar, const SVFGNode *dstStmt, NodeID dstVar)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00187">FlowSensitive.h:187</a></div></div>
|
|
2504
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_af5d90b4bd5c16dd64cd10afea6b3be93"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af5d90b4bd5c16dd64cd10afea6b3be93">SVF::FlowSensitive::updateInFromOut</a></div><div class="ttdeci">virtual bool updateInFromOut(const SVFGNode *srcStmt, NodeID srcVar, const SVFGNode *dstStmt, NodeID dstVar)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00191">FlowSensitive.h:191</a></div></div>
|
|
2512
2505
|
</div><!-- fragment -->
|
|
2513
2506
|
</div>
|
|
2514
2507
|
</div>
|
|
2515
|
-
<a id="
|
|
2516
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
2508
|
+
<a id="ac71ae72012a8d2a2d3a4183f6681ad61"></a>
|
|
2509
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ac71ae72012a8d2a2d3a4183f6681ad61">◆ </a></span>PTAName()</h2>
|
|
2517
2510
|
|
|
2518
2511
|
<div class="memitem">
|
|
2519
2512
|
<div class="memproto">
|
|
@@ -2522,7 +2515,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2522
2515
|
<td class="mlabels-left">
|
|
2523
2516
|
<table class="memname">
|
|
2524
2517
|
<tr>
|
|
2525
|
-
<td class="memname">
|
|
2518
|
+
<td class="memname">const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> SVF::FlowSensitive::PTAName </td>
|
|
2526
2519
|
<td>(</td>
|
|
2527
2520
|
<td class="paramname"></td><td>)</td>
|
|
2528
2521
|
<td> const</td>
|
|
@@ -2530,7 +2523,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2530
2523
|
</table>
|
|
2531
2524
|
</td>
|
|
2532
2525
|
<td class="mlabels-right">
|
|
2533
|
-
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
|
|
2526
|
+
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
|
|
2534
2527
|
</tr>
|
|
2535
2528
|
</table>
|
|
2536
2529
|
</div><div class="memdoc">
|
|
@@ -2541,8 +2534,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2541
2534
|
|
|
2542
2535
|
<p>Reimplemented in <a class="el" href="classSVF_1_1VersionedFlowSensitive.html#a6e4964389f96667bd69354fd4a742720">SVF::VersionedFlowSensitive</a>.</p>
|
|
2543
2536
|
|
|
2544
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
2545
|
-
<div class="fragment"><div class="line"><a name="
|
|
2537
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00111">111</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
2538
|
+
<div class="fragment"><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">return</span> <span class="stringliteral">"FlowSensitive"</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div></div><!-- fragment -->
|
|
2546
2539
|
</div>
|
|
2547
2540
|
</div>
|
|
2548
2541
|
<a id="ae6aed22a79ac6567446dfcba82cb17b8"></a>
|
|
@@ -2570,8 +2563,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2570
2563
|
|
|
2571
2564
|
<p>Release flow-sensitive pointer analysis. </p>
|
|
2572
2565
|
|
|
2573
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
2574
|
-
<div class="fragment"><div class="line"><a name="
|
|
2566
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00090">90</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
2567
|
+
<div class="fragment"><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a2fac4f6a9d2cc19b2d998f0197e6883b">fspta</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_a2fac4f6a9d2cc19b2d998f0197e6883b"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a2fac4f6a9d2cc19b2d998f0197e6883b">SVF::FlowSensitive::fspta</a></div><div class="ttdeci">static std::unique_ptr< FlowSensitive > fspta</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00271">FlowSensitive.h:271</a></div></div>
|
|
2575
2568
|
</div><!-- fragment -->
|
|
2576
2569
|
</div>
|
|
2577
2570
|
</div>
|
|
@@ -2601,12 +2594,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2601
2594
|
|
|
2602
2595
|
<p>We start from here. </p>
|
|
2603
2596
|
|
|
2604
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
2605
|
-
<div class="fragment"><div class="line"><a name="
|
|
2597
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00096">96</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
2598
|
+
<div class="fragment"><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div></div><!-- fragment -->
|
|
2606
2599
|
</div>
|
|
2607
2600
|
</div>
|
|
2608
|
-
<a id="
|
|
2609
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
2601
|
+
<a id="a3fcdbd3e6718cd5b3a339d34198dd0e6"></a>
|
|
2602
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a3fcdbd3e6718cd5b3a339d34198dd0e6">◆ </a></span>SCCDetect()</h2>
|
|
2610
2603
|
|
|
2611
2604
|
<div class="memitem">
|
|
2612
2605
|
<div class="memproto">
|
|
@@ -2623,7 +2616,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2623
2616
|
</table>
|
|
2624
2617
|
</td>
|
|
2625
2618
|
<td class="mlabels-right">
|
|
2626
|
-
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
|
|
2619
|
+
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
|
|
2627
2620
|
</tr>
|
|
2628
2621
|
</table>
|
|
2629
2622
|
</div><div class="memdoc">
|
|
@@ -2635,8 +2628,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2635
2628
|
|
|
2636
2629
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00167">167</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
2637
2630
|
<div class="fragment"><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">NodeStack</a>& <a class="code" href="classSVF_1_1WPAFSSolver.html#a2cb80102611c663c4daddd68b4f4b75f">nodeStack</a> = <a class="code" href="classSVF_1_1WPAFSSolver.html#a2d4cfae34bd4a55f1fe03881c87f8708">WPASVFGFSSolver::SCCDetect</a>();</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#af496fa9aa2f4d59594950b2ad121deff">sccTime</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WPAFSSolver.html#a2cb80102611c663c4daddd68b4f4b75f">nodeStack</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> }</div><div class="ttc" id="namespaceSVF_html_a1811127aebdb9c926e39d155e20b3dc0"><div class="ttname"><a href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">SVF::NodeStack</a></div><div class="ttdeci">std::stack< NodeID > NodeStack</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00115">SVFType.h:115</a></div></div>
|
|
2638
|
-
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
2639
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_af496fa9aa2f4d59594950b2ad121deff"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af496fa9aa2f4d59594950b2ad121deff">SVF::FlowSensitive::sccTime</a></div><div class="ttdeci">double sccTime</div><div class="ttdoc">time of SCC detection. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
2631
|
+
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
|
|
2632
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_af496fa9aa2f4d59594950b2ad121deff"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af496fa9aa2f4d59594950b2ad121deff">SVF::FlowSensitive::sccTime</a></div><div class="ttdeci">double sccTime</div><div class="ttdoc">time of SCC detection. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00295">FlowSensitive.h:295</a></div></div>
|
|
2640
2633
|
<div class="ttc" id="classSVF_1_1WPAFSSolver_html_a2d4cfae34bd4a55f1fe03881c87f8708"><div class="ttname"><a href="classSVF_1_1WPAFSSolver.html#a2d4cfae34bd4a55f1fe03881c87f8708">SVF::WPAFSSolver::SCCDetect</a></div><div class="ttdeci">virtual NodeStack & SCCDetect()</div><div class="ttdoc">SCC detection. </div><div class="ttdef"><b>Definition:</b> <a href="WPAFSSolver_8h_source.html#l00067">WPAFSSolver.h:67</a></div></div>
|
|
2641
2634
|
<div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
|
|
2642
2635
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
|
|
@@ -2680,9 +2673,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2680
2673
|
|
|
2681
2674
|
<p>Handle strong updates. </p>
|
|
2682
2675
|
|
|
2683
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
2684
|
-
<div class="fragment"><div class="line"><a name="
|
|
2685
|
-
<div class="ttc" id="classSVF_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#
|
|
2676
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00160">160</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
2677
|
+
<div class="fragment"><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-><a class="code" href="classSVF_1_1DFPTData.html#a7e4ae809b40d55448de0103746254158">updateAllDFOutFromIn</a>(node->getId(),singleton,<span class="keyword">true</span>);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div><div class="ttc" id="classSVF_1_1DFPTData_html_a7e4ae809b40d55448de0103746254158"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a7e4ae809b40d55448de0103746254158">SVF::DFPTData::updateAllDFOutFromIn</a></div><div class="ttdeci">virtual bool updateAllDFOutFromIn(LocID loc, const Key &singleton, bool strongUpdates)=0</div><div class="ttdoc">For each variable var in IN at loc, do updateDFOutFromIn(loc, var, loc, var). </div></div>
|
|
2678
|
+
<div class="ttc" id="classSVF_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#l00174">PointerAnalysisImpl.h:174</a></div></div>
|
|
2686
2679
|
</div><!-- fragment -->
|
|
2687
2680
|
</div>
|
|
2688
2681
|
</div>
|
|
@@ -2751,9 +2744,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2751
2744
|
</table>
|
|
2752
2745
|
</div><div class="memdoc">
|
|
2753
2746
|
|
|
2754
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
2755
|
-
<div class="fragment"><div class="line"><a name="
|
|
2756
|
-
<div class="ttc" id="classSVF_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#
|
|
2747
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00196">196</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
2748
|
+
<div class="fragment"><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-><a class="code" href="classSVF_1_1DFPTData.html#aaa6f67ff5daf7d71a3ad62316a7dd872">updateTLVPts</a>(stmt->getId(),srcVar,dstVar);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  }</div><div class="ttc" id="classSVF_1_1DFPTData_html_aaa6f67ff5daf7d71a3ad62316a7dd872"><div class="ttname"><a href="classSVF_1_1DFPTData.html#aaa6f67ff5daf7d71a3ad62316a7dd872">SVF::DFPTData::updateTLVPts</a></div><div class="ttdeci">virtual bool updateTLVPts(LocID srcLoc, const Key &srcVar, const Key &dstVar)=0</div><div class="ttdoc">Update points-to set of top-level pointers with IN[srcLoc:srcVar]. </div></div>
|
|
2749
|
+
<div class="ttc" id="classSVF_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#l00174">PointerAnalysisImpl.h:174</a></div></div>
|
|
2757
2750
|
</div><!-- fragment -->
|
|
2758
2751
|
</div>
|
|
2759
2752
|
</div>
|
|
@@ -2797,14 +2790,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2797
2790
|
</table>
|
|
2798
2791
|
</div><div class="memdoc">
|
|
2799
2792
|
|
|
2800
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
2801
|
-
<div class="fragment"><div class="line"><a name="
|
|
2802
|
-
<div class="ttc" id="classSVF_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#
|
|
2793
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00200">200</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
2794
|
+
<div class="fragment"><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-><a class="code" href="classSVF_1_1DFPTData.html#a09bc4b7eef592af2c2c84b60029b5b52">updateATVPts</a>(srcVar,stmt->getId(),dstVar);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  }</div><div class="ttc" id="classSVF_1_1DFPTData_html_a09bc4b7eef592af2c2c84b60029b5b52"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a09bc4b7eef592af2c2c84b60029b5b52">SVF::DFPTData::updateATVPts</a></div><div class="ttdeci">virtual bool updateATVPts(const Key &srcVar, LocID dstLoc, const Key &dstVar)=0</div><div class="ttdoc">Update address-taken variables OUT[dstLoc:dstVar] with points-to of top-level pointers. </div></div>
|
|
2795
|
+
<div class="ttc" id="classSVF_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#l00174">PointerAnalysisImpl.h:174</a></div></div>
|
|
2803
2796
|
</div><!-- fragment -->
|
|
2804
2797
|
</div>
|
|
2805
2798
|
</div>
|
|
2806
|
-
<a id="
|
|
2807
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
2799
|
+
<a id="aad0bf334d3c749240ca27b4bcfd6eeab"></a>
|
|
2800
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aad0bf334d3c749240ca27b4bcfd6eeab">◆ </a></span>updateCallGraph()</h2>
|
|
2808
2801
|
|
|
2809
2802
|
<div class="memitem">
|
|
2810
2803
|
<div class="memproto">
|
|
@@ -2822,7 +2815,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2822
2815
|
</table>
|
|
2823
2816
|
</td>
|
|
2824
2817
|
<td class="mlabels-right">
|
|
2825
|
-
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
|
|
2818
|
+
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
|
|
2826
2819
|
</tr>
|
|
2827
2820
|
</table>
|
|
2828
2821
|
</div><div class="memdoc">
|
|
@@ -2837,8 +2830,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2837
2830
|
<div class="fragment"><div class="line"><a name="l00641"></a><span class="lineno"> 641</span> {</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a> newEdges;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a9830d4676fd424b633f8e4d918734296">onTheFlyCallGraphSolve</a>(callsites, newEdges);</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span> </div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <span class="comment">// Bound the new edges by the Andersen's call graph.</span></div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="comment">// TODO: we want this to be an assertion eventually.</span></div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a> &andersCallEdgeMap = <a class="code" href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">ander</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>();</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <span class="keywordflow">for</span> (<span class="keyword">typename</span> CallEdgeMap::value_type &csfs : newEdges)</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  {</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *potentialCallSite = csfs.first;</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">FunctionSet</a> &potentialFunctionSet = csfs.second;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span> </div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  <span class="comment">// Check this callsite even calls anything per Andersen's.</span></div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <span class="keyword">typename</span> CallEdgeMap::const_iterator andersFunctionSetIt</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  = andersCallEdgeMap.find(potentialCallSite);</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <span class="keywordflow">if</span> (andersFunctionSetIt == andersCallEdgeMap.end())</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  {</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  potentialFunctionSet.clear();</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  }</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span> </div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">FunctionSet</a> &andersFunctionSet = andersFunctionSetIt->second;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <span class="keywordflow">for</span> (FunctionSet::iterator potentialFunctionIt = potentialFunctionSet.begin();</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  potentialFunctionIt != potentialFunctionSet.end(); )</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  {</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *potentialFunction = *potentialFunctionIt;</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="keywordflow">if</span> (andersFunctionSet.find(potentialFunction) == andersFunctionSet.end())</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  {</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <span class="comment">// potentialFunction is not in the Andersen's call graph -- remove it.</span></div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  potentialFunctionIt = potentialFunctionSet.erase(potentialFunctionIt);</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  }</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  {</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <span class="comment">// potentialFunction is in the Andersen's call graph -- keep it..</span></div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  ++potentialFunctionIt;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  }</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  }</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  }</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span> </div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a69289c48fa91f850da90de080b9d26e5">SVFGEdgeSetTy</a> svfgEdges;</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#ad7640ada31b5cb542e492e27ab4fe1af">connectCallerAndCallee</a>(newEdges, svfgEdges);</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span> </div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a1886b4964efa92cfff761493d12768b8">updateConnectedNodes</a>(svfgEdges);</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span> </div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>();</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07">updateCallGraphTime</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="keywordflow">return</span> (!newEdges.empty());</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span> }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_a1886b4964efa92cfff761493d12768b8"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a1886b4964efa92cfff761493d12768b8">SVF::FlowSensitive::updateConnectedNodes</a></div><div class="ttdeci">virtual void updateConnectedNodes(const SVFGEdgeSetTy &edges)</div><div class="ttdoc">Update nodes connected during updating call graph. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00713">FlowSensitive.cpp:713</a></div></div>
|
|
2838
2831
|
<div class="ttc" id="classSVF_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#l00434">PointerAnalysisImpl.cpp:434</a></div></div>
|
|
2839
2832
|
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00257">SVFValue.h:257</a></div></div>
|
|
2840
|
-
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
2841
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_afc140b6c8e78dc2d962f64fdf53b1e07"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07">SVF::FlowSensitive::updateCallGraphTime</a></div><div class="ttdeci">double updateCallGraphTime</div><div class="ttdoc">time of updating call graph </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
2833
|
+
<div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
|
|
2834
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_afc140b6c8e78dc2d962f64fdf53b1e07"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07">SVF::FlowSensitive::updateCallGraphTime</a></div><div class="ttdeci">double updateCallGraphTime</div><div class="ttdoc">time of updating call graph </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00307">FlowSensitive.h:307</a></div></div>
|
|
2842
2835
|
<div class="ttc" id="classSVF_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>
|
|
2843
2836
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_ac1422cd8b449fdb4a1f7c539364e4c41"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">SVF::PointerAnalysis::FunctionSet</a></div><div class="ttdeci">Set< const SVFFunction * > FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00105">PointerAnalysis.h:105</a></div></div>
|
|
2844
2837
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a1ca30dfa42702071b65d363c76d25cbe"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">SVF::PointerAnalysis::getIndCallMap</a></div><div class="ttdeci">CallEdgeMap & getIndCallMap()</div><div class="ttdoc">Get callees from an indirect callsite. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00375">PointerAnalysis.h:375</a></div></div>
|
|
@@ -2847,7 +2840,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2847
2840
|
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
|
|
2848
2841
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a69289c48fa91f850da90de080b9d26e5"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a69289c48fa91f850da90de080b9d26e5">SVF::FlowSensitive::SVFGEdgeSetTy</a></div><div class="ttdeci">SVFG::SVFGEdgeSetTy SVFGEdgeSetTy</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00053">FlowSensitive.h:53</a></div></div>
|
|
2849
2842
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_ad7640ada31b5cb542e492e27ab4fe1af"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ad7640ada31b5cb542e492e27ab4fe1af">SVF::FlowSensitive::connectCallerAndCallee</a></div><div class="ttdeci">void connectCallerAndCallee(const CallEdgeMap &newEdges, SVFGEdgeSetTy &edges)</div><div class="ttdoc">Connect nodes in SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00693">FlowSensitive.cpp:693</a></div></div>
|
|
2850
|
-
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a5cfee013a1a5821ef0c449842dd8690d"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">SVF::FlowSensitive::ander</a></div><div class="ttdeci">AndersenWaveDiff * ander</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#
|
|
2843
|
+
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a5cfee013a1a5821ef0c449842dd8690d"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">SVF::FlowSensitive::ander</a></div><div class="ttdeci">AndersenWaveDiff * ander</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00273">FlowSensitive.h:273</a></div></div>
|
|
2851
2844
|
</div><!-- fragment -->
|
|
2852
2845
|
</div>
|
|
2853
2846
|
</div>
|
|
@@ -2884,14 +2877,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2884
2877
|
<p>Reimplemented in <a class="el" href="classSVF_1_1VersionedFlowSensitive.html#a18f24fe34af677e2a8c78ee89b89be1c">SVF::VersionedFlowSensitive</a>.</p>
|
|
2885
2878
|
|
|
2886
2879
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00713">713</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
2887
|
-
<div class="fragment"><div class="line"><a name="l00714"></a><span class="lineno"> 714</span> {</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge : edges)</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  {</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstNode = edge->getDstNode();</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordflow">if</span> (SVFUtil::isa<PHISVFGNode>(dstNode))</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  {</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <a class="code" href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">pushIntoWorklist</a>(dstNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  }</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<FormalINSVFGNode, ActualOUTSVFGNode>(dstNode))</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  {</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span> </div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcNode = edge->getSrcNode();</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span> </div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& pts = SVFUtil::cast<IndirectSVFGEdge>(edge)->getPointsTo();</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> ptdIt = pts.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), ptdEit = pts.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); ptdIt != ptdEit; ++ptdIt)</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  {</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> ptd = *ptdIt;</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span> </div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a9e7fbc4c1d056fbef07498de8cbb1cd9">propVarPtsAfterCGUpdated</a>(ptd, srcNode, dstNode))</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span> </div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">isFieldInsensitive</a>(ptd))</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  {</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& allFields = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5dddd53b4ca9d7cc23d88ed9f3de9fde">getAllFieldsObjVars</a>(ptd);</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> fieldIt = allFields.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), fieldEit = allFields.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>();</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  fieldIt != fieldEit; ++fieldIt)</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  {</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a9e7fbc4c1d056fbef07498de8cbb1cd9">propVarPtsAfterCGUpdated</a>(*fieldIt, srcNode, dstNode))</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  }</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  }</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  }</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span> </div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <span class="keywordflow">if</span> (changed)</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <a class="code" href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">pushIntoWorklist</a>(dstNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  }</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  }</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span> }</div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#
|
|
2888
|
-
<div class="ttc" id="classSVF_1_1WPASolver_html_a4af1c3e72f5af96c4facff672108da58"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">SVF::WPASolver::pushIntoWorklist</a></div><div class="ttdeci">virtual void pushIntoWorklist(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#
|
|
2880
|
+
<div class="fragment"><div class="line"><a name="l00714"></a><span class="lineno"> 714</span> {</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge : edges)</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  {</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstNode = edge->getDstNode();</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordflow">if</span> (SVFUtil::isa<PHISVFGNode>(dstNode))</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  {</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <a class="code" href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">pushIntoWorklist</a>(dstNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  }</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<FormalINSVFGNode, ActualOUTSVFGNode>(dstNode))</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  {</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span> </div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcNode = edge->getSrcNode();</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span> </div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& pts = SVFUtil::cast<IndirectSVFGEdge>(edge)->getPointsTo();</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> ptdIt = pts.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), ptdEit = pts.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); ptdIt != ptdEit; ++ptdIt)</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  {</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> ptd = *ptdIt;</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span> </div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a9e7fbc4c1d056fbef07498de8cbb1cd9">propVarPtsAfterCGUpdated</a>(ptd, srcNode, dstNode))</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span> </div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">isFieldInsensitive</a>(ptd))</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  {</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& allFields = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5dddd53b4ca9d7cc23d88ed9f3de9fde">getAllFieldsObjVars</a>(ptd);</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> fieldIt = allFields.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), fieldEit = allFields.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>();</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  fieldIt != fieldEit; ++fieldIt)</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  {</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#a9e7fbc4c1d056fbef07498de8cbb1cd9">propVarPtsAfterCGUpdated</a>(*fieldIt, srcNode, dstNode))</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  }</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  }</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  }</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span> </div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <span class="keywordflow">if</span> (changed)</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <a class="code" href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">pushIntoWorklist</a>(dstNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  }</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  }</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span> }</div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00528">SparseBitVector.h:528</a></div></div>
|
|
2881
|
+
<div class="ttc" id="classSVF_1_1WPASolver_html_a4af1c3e72f5af96c4facff672108da58"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">SVF::WPASolver::pushIntoWorklist</a></div><div class="ttdeci">virtual void pushIntoWorklist(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00156">WPASolver.h:156</a></div></div>
|
|
2889
2882
|
<div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
2890
2883
|
<div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
|
|
2891
2884
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5dddd53b4ca9d7cc23d88ed9f3de9fde"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5dddd53b4ca9d7cc23d88ed9f3de9fde">SVF::PointerAnalysis::getAllFieldsObjVars</a></div><div class="ttdeci">virtual const NodeBS & getAllFieldsObjVars(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00345">PointerAnalysis.h:345</a></div></div>
|
|
2892
|
-
<div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#
|
|
2893
|
-
<div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#
|
|
2894
|
-
<div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#
|
|
2885
|
+
<div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01112">SparseBitVector.h:1112</a></div></div>
|
|
2886
|
+
<div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01107">SparseBitVector.h:1107</a></div></div>
|
|
2887
|
+
<div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
|
|
2895
2888
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00171">GenericGraph.h:171</a></div></div>
|
|
2896
2889
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a9e7fbc4c1d056fbef07498de8cbb1cd9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a9e7fbc4c1d056fbef07498de8cbb1cd9">SVF::FlowSensitive::propVarPtsAfterCGUpdated</a></div><div class="ttdeci">bool propVarPtsAfterCGUpdated(NodeID var, const SVFGNode *src, const SVFGNode *dst)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00763">FlowSensitive.cpp:763</a></div></div>
|
|
2897
2890
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0f71e4cd0948b294c7d33a690bde7dbe"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">SVF::PointerAnalysis::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00354">PointerAnalysis.h:354</a></div></div>
|
|
@@ -2945,9 +2938,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2945
2938
|
</table>
|
|
2946
2939
|
</div><div class="memdoc">
|
|
2947
2940
|
|
|
2948
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
2949
|
-
<div class="fragment"><div class="line"><a name="
|
|
2950
|
-
<div class="ttc" id="classSVF_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#
|
|
2941
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00187">187</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
2942
|
+
<div class="fragment"><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-><a class="code" href="classSVF_1_1DFPTData.html#a88cf9cd48ee5c1b8b3c71b379f23ab6b">updateDFInFromIn</a>(srcStmt->getId(),srcVar, dstStmt->getId(),dstVar);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div><div class="ttc" id="classSVF_1_1DFPTData_html_a88cf9cd48ee5c1b8b3c71b379f23ab6b"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a88cf9cd48ee5c1b8b3c71b379f23ab6b">SVF::DFPTData::updateDFInFromIn</a></div><div class="ttdeci">virtual bool updateDFInFromIn(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar)=0</div></div>
|
|
2943
|
+
<div class="ttc" id="classSVF_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#l00174">PointerAnalysisImpl.h:174</a></div></div>
|
|
2951
2944
|
</div><!-- fragment -->
|
|
2952
2945
|
</div>
|
|
2953
2946
|
</div>
|
|
@@ -2997,9 +2990,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2997
2990
|
</table>
|
|
2998
2991
|
</div><div class="memdoc">
|
|
2999
2992
|
|
|
3000
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3001
|
-
<div class="fragment"><div class="line"><a name="
|
|
3002
|
-
<div class="ttc" id="classSVF_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#
|
|
2993
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00191">191</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
2994
|
+
<div class="fragment"><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-><a class="code" href="classSVF_1_1DFPTData.html#a2ec4fb73d87f10c86fac34b3500532b3">updateDFInFromOut</a>(srcStmt->getId(),srcVar, dstStmt->getId(),dstVar);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  }</div><div class="ttc" id="classSVF_1_1DFPTData_html_a2ec4fb73d87f10c86fac34b3500532b3"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a2ec4fb73d87f10c86fac34b3500532b3">SVF::DFPTData::updateDFInFromOut</a></div><div class="ttdeci">virtual bool updateDFInFromOut(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar)=0</div><div class="ttdoc">Union (IN[dstLoc:dstVar], OUT[srcLoc:srcVar]). </div></div>
|
|
2995
|
+
<div class="ttc" id="classSVF_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#l00174">PointerAnalysisImpl.h:174</a></div></div>
|
|
3003
2996
|
</div><!-- fragment -->
|
|
3004
2997
|
</div>
|
|
3005
2998
|
</div>
|
|
@@ -3051,9 +3044,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3051
3044
|
|
|
3052
3045
|
<p>Update data-flow points-to data. </p>
|
|
3053
3046
|
|
|
3054
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3055
|
-
<div class="fragment"><div class="line"><a name="
|
|
3056
|
-
<div class="ttc" id="classSVF_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#
|
|
3047
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00183">183</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3048
|
+
<div class="fragment"><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-><a class="code" href="classSVF_1_1DFPTData.html#acee5fb134d3153ae6eb91c15cd2cff66">updateDFOutFromIn</a>(srcStmt->getId(),srcVar, dstStmt->getId(),dstVar);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  }</div><div class="ttc" id="classSVF_1_1DFPTData_html_acee5fb134d3153ae6eb91c15cd2cff66"><div class="ttname"><a href="classSVF_1_1DFPTData.html#acee5fb134d3153ae6eb91c15cd2cff66">SVF::DFPTData::updateDFOutFromIn</a></div><div class="ttdeci">virtual bool updateDFOutFromIn(LocID srcLoc, const Key &srcVar, LocID dstLoc, const Key &dstVar)=0</div><div class="ttdoc">Union (OUT[dstLoc:dstVar], IN[srcLoc:srcVar]). </div></div>
|
|
3049
|
+
<div class="ttc" id="classSVF_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#l00174">PointerAnalysisImpl.h:174</a></div></div>
|
|
3057
3050
|
</div><!-- fragment -->
|
|
3058
3051
|
</div>
|
|
3059
3052
|
</div>
|
|
@@ -3083,9 +3076,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3083
3076
|
|
|
3084
3077
|
<p>Handle weak updates. </p>
|
|
3085
3078
|
|
|
3086
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3087
|
-
<div class="fragment"><div class="line"><a name="
|
|
3088
|
-
<div class="ttc" id="classSVF_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#
|
|
3079
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00155">155</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3080
|
+
<div class="fragment"><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  {</div><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#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a>()-><a class="code" href="classSVF_1_1DFPTData.html#a7e4ae809b40d55448de0103746254158">updateAllDFOutFromIn</a>(node->getId(),0,<span class="keyword">false</span>);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div><div class="ttc" id="classSVF_1_1DFPTData_html_a7e4ae809b40d55448de0103746254158"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a7e4ae809b40d55448de0103746254158">SVF::DFPTData::updateAllDFOutFromIn</a></div><div class="ttdeci">virtual bool updateAllDFOutFromIn(LocID loc, const Key &singleton, bool strongUpdates)=0</div><div class="ttdoc">For each variable var in IN at loc, do updateDFOutFromIn(loc, var, loc, var). </div></div>
|
|
3081
|
+
<div class="ttc" id="classSVF_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#l00174">PointerAnalysisImpl.h:174</a></div></div>
|
|
3089
3082
|
</div><!-- fragment -->
|
|
3090
3083
|
</div>
|
|
3091
3084
|
</div>
|
|
@@ -3137,7 +3130,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3137
3130
|
|
|
3138
3131
|
<p>time of handling address edges </p>
|
|
3139
3132
|
|
|
3140
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3133
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00301">301</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3141
3134
|
|
|
3142
3135
|
</div>
|
|
3143
3136
|
</div>
|
|
@@ -3161,7 +3154,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3161
3154
|
</table>
|
|
3162
3155
|
</div><div class="memdoc">
|
|
3163
3156
|
|
|
3164
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3157
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00273">273</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3165
3158
|
|
|
3166
3159
|
</div>
|
|
3167
3160
|
</div>
|
|
@@ -3187,7 +3180,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3187
3180
|
|
|
3188
3181
|
<p>Save candidate mappings for evaluation's sake. </p>
|
|
3189
3182
|
|
|
3190
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3183
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00276">276</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3191
3184
|
|
|
3192
3185
|
</div>
|
|
3193
3186
|
</div>
|
|
@@ -3213,7 +3206,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3213
3206
|
|
|
3214
3207
|
<p>time of handling copy edges </p>
|
|
3215
3208
|
|
|
3216
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3209
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00302">302</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3217
3210
|
|
|
3218
3211
|
</div>
|
|
3219
3212
|
</div>
|
|
@@ -3239,12 +3232,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3239
3232
|
|
|
3240
3233
|
<p>time of points-to propagation of address-taken objects </p>
|
|
3241
3234
|
|
|
3242
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3235
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00298">298</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3243
3236
|
|
|
3244
3237
|
</div>
|
|
3245
3238
|
</div>
|
|
3246
|
-
<a id="
|
|
3247
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
3239
|
+
<a id="a2fac4f6a9d2cc19b2d998f0197e6883b"></a>
|
|
3240
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a2fac4f6a9d2cc19b2d998f0197e6883b">◆ </a></span>fspta</h2>
|
|
3248
3241
|
|
|
3249
3242
|
<div class="memitem">
|
|
3250
3243
|
<div class="memproto">
|
|
@@ -3253,7 +3246,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3253
3246
|
<td class="mlabels-left">
|
|
3254
3247
|
<table class="memname">
|
|
3255
3248
|
<tr>
|
|
3256
|
-
<td class="memname"
|
|
3249
|
+
<td class="memname">std::unique_ptr< <a class="el" href="classSVF_1_1FlowSensitive.html">FlowSensitive</a> > FlowSensitive::fspta</td>
|
|
3257
3250
|
</tr>
|
|
3258
3251
|
</table>
|
|
3259
3252
|
</td>
|
|
@@ -3263,7 +3256,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3263
3256
|
</table>
|
|
3264
3257
|
</div><div class="memdoc">
|
|
3265
3258
|
|
|
3266
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3259
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00271">271</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3267
3260
|
|
|
3268
3261
|
</div>
|
|
3269
3262
|
</div>
|
|
@@ -3289,7 +3282,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3289
3282
|
|
|
3290
3283
|
<p>time of handling gep edges </p>
|
|
3291
3284
|
|
|
3292
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3285
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00303">303</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3293
3286
|
|
|
3294
3287
|
</div>
|
|
3295
3288
|
</div>
|
|
@@ -3315,7 +3308,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3315
3308
|
|
|
3316
3309
|
<p>time of points-to propagation of top-level pointers </p>
|
|
3317
3310
|
|
|
3318
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3311
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00299">299</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3319
3312
|
|
|
3320
3313
|
</div>
|
|
3321
3314
|
</div>
|
|
@@ -3341,7 +3334,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3341
3334
|
|
|
3342
3335
|
<p>time of load edges </p>
|
|
3343
3336
|
|
|
3344
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3337
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00304">304</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3345
3338
|
|
|
3346
3339
|
</div>
|
|
3347
3340
|
</div>
|
|
@@ -3367,7 +3360,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3367
3360
|
|
|
3368
3361
|
<p>Number of processed mssa node. </p>
|
|
3369
3362
|
|
|
3370
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3363
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00290">290</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3371
3364
|
|
|
3372
3365
|
</div>
|
|
3373
3366
|
</div>
|
|
@@ -3391,7 +3384,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3391
3384
|
</table>
|
|
3392
3385
|
</div><div class="memdoc">
|
|
3393
3386
|
|
|
3394
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3387
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00272">272</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3395
3388
|
|
|
3396
3389
|
</div>
|
|
3397
3390
|
</div>
|
|
@@ -3415,7 +3408,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3415
3408
|
</table>
|
|
3416
3409
|
</div><div class="memdoc">
|
|
3417
3410
|
|
|
3418
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3411
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00292">292</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3419
3412
|
|
|
3420
3413
|
</div>
|
|
3421
3414
|
</div>
|
|
@@ -3441,7 +3434,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3441
3434
|
|
|
3442
3435
|
<p>Number of processed Store node. </p>
|
|
3443
3436
|
|
|
3444
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3437
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00286">286</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3445
3438
|
|
|
3446
3439
|
</div>
|
|
3447
3440
|
</div>
|
|
@@ -3467,7 +3460,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3467
3460
|
|
|
3468
3461
|
<p>Statistics. </p>
|
|
3469
3462
|
|
|
3470
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3463
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00280">280</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3471
3464
|
|
|
3472
3465
|
</div>
|
|
3473
3466
|
</div>
|
|
@@ -3493,7 +3486,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3493
3486
|
|
|
3494
3487
|
<p>Number of processed Addr node. </p>
|
|
3495
3488
|
|
|
3496
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3489
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00281">281</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3497
3490
|
|
|
3498
3491
|
</div>
|
|
3499
3492
|
</div>
|
|
@@ -3519,7 +3512,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3519
3512
|
|
|
3520
3513
|
<p>Number of processed actual param node. </p>
|
|
3521
3514
|
|
|
3522
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3515
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00287">287</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3523
3516
|
|
|
3524
3517
|
</div>
|
|
3525
3518
|
</div>
|
|
@@ -3545,7 +3538,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3545
3538
|
|
|
3546
3539
|
<p>Number of processed Copy node. </p>
|
|
3547
3540
|
|
|
3548
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3541
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00282">282</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3549
3542
|
|
|
3550
3543
|
</div>
|
|
3551
3544
|
</div>
|
|
@@ -3571,7 +3564,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3571
3564
|
|
|
3572
3565
|
<p>Number of processed Phi node. </p>
|
|
3573
3566
|
|
|
3574
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3567
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00284">284</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3575
3568
|
|
|
3576
3569
|
</div>
|
|
3577
3570
|
</div>
|
|
@@ -3597,7 +3590,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3597
3590
|
|
|
3598
3591
|
<p>Number of processed formal ret node. </p>
|
|
3599
3592
|
|
|
3600
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3593
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00288">288</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3601
3594
|
|
|
3602
3595
|
</div>
|
|
3603
3596
|
</div>
|
|
@@ -3623,7 +3616,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3623
3616
|
|
|
3624
3617
|
<p>Number of processed Gep node. </p>
|
|
3625
3618
|
|
|
3626
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3619
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00283">283</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3627
3620
|
|
|
3628
3621
|
</div>
|
|
3629
3622
|
</div>
|
|
@@ -3649,7 +3642,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3649
3642
|
|
|
3650
3643
|
<p>Number of processed Load node. </p>
|
|
3651
3644
|
|
|
3652
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3645
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00285">285</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3653
3646
|
|
|
3654
3647
|
</div>
|
|
3655
3648
|
</div>
|
|
@@ -3673,7 +3666,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3673
3666
|
</table>
|
|
3674
3667
|
</div><div class="memdoc">
|
|
3675
3668
|
|
|
3676
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3669
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00291">291</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3677
3670
|
|
|
3678
3671
|
</div>
|
|
3679
3672
|
</div>
|
|
@@ -3699,7 +3692,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3699
3692
|
|
|
3700
3693
|
<p>time of phi nodes. </p>
|
|
3701
3694
|
|
|
3702
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3695
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00306">306</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3703
3696
|
|
|
3704
3697
|
</div>
|
|
3705
3698
|
</div>
|
|
@@ -3725,7 +3718,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3725
3718
|
|
|
3726
3719
|
<p>time of processNode. </p>
|
|
3727
3720
|
|
|
3728
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3721
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00296">296</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3729
3722
|
|
|
3730
3723
|
</div>
|
|
3731
3724
|
</div>
|
|
@@ -3751,7 +3744,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3751
3744
|
|
|
3752
3745
|
<p>time of points-to propagation. </p>
|
|
3753
3746
|
|
|
3754
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3747
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00297">297</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3755
3748
|
|
|
3756
3749
|
</div>
|
|
3757
3750
|
</div>
|
|
@@ -3777,7 +3770,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3777
3770
|
|
|
3778
3771
|
<p>time of SCC detection. </p>
|
|
3779
3772
|
|
|
3780
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3773
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00295">295</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3781
3774
|
|
|
3782
3775
|
</div>
|
|
3783
3776
|
</div>
|
|
@@ -3803,7 +3796,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3803
3796
|
|
|
3804
3797
|
<p>time of solve. </p>
|
|
3805
3798
|
|
|
3806
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3799
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00294">294</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3807
3800
|
|
|
3808
3801
|
</div>
|
|
3809
3802
|
</div>
|
|
@@ -3829,7 +3822,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3829
3822
|
|
|
3830
3823
|
<p>time of store edges </p>
|
|
3831
3824
|
|
|
3832
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3825
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00305">305</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3833
3826
|
|
|
3834
3827
|
</div>
|
|
3835
3828
|
</div>
|
|
@@ -3853,7 +3846,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3853
3846
|
</table>
|
|
3854
3847
|
</div><div class="memdoc">
|
|
3855
3848
|
|
|
3856
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3849
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00239">239</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3857
3850
|
|
|
3858
3851
|
</div>
|
|
3859
3852
|
</div>
|
|
@@ -3877,7 +3870,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3877
3870
|
</table>
|
|
3878
3871
|
</div><div class="memdoc">
|
|
3879
3872
|
|
|
3880
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3873
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00309">309</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3881
3874
|
|
|
3882
3875
|
</div>
|
|
3883
3876
|
</div>
|
|
@@ -3903,7 +3896,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3903
3896
|
|
|
3904
3897
|
<p>time of updating call graph </p>
|
|
3905
3898
|
|
|
3906
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3899
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00307">307</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3907
3900
|
|
|
3908
3901
|
</div>
|
|
3909
3902
|
</div>
|
|
@@ -3929,7 +3922,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3929
3922
|
|
|
3930
3923
|
<p>time of strong/weak updates. </p>
|
|
3931
3924
|
|
|
3932
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#
|
|
3925
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8h_source.html#l00300">300</a> of file <a class="el" href="FlowSensitive_8h_source.html">FlowSensitive.h</a>.</p>
|
|
3933
3926
|
|
|
3934
3927
|
</div>
|
|
3935
3928
|
</div>
|