svf-tools 1.0.302 → 1.0.306
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +4 -4
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/AndersenWaveDiffWithType_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/Andersen_8h_source.html +15 -15
- package/SVF-doxygen/html/html/BasicTypes_8h_source.html +6 -6
- package/SVF-doxygen/html/html/CHG_8cpp.html +7 -6
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +42 -41
- package/SVF-doxygen/html/html/CHG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CSC_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CSC_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CommonCHG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Conditions_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Conditions_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CoreBitVector_8h.html +2 -0
- package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +3 -1
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/DCHG_8h_source.html +4 -4
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/DDAStat_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +8 -8
- package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ExternalPAG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ExternalPAG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +16 -16
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +4 -4
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +6 -6
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/MHP_8h_source.html +4 -4
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/MTA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MemModel_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemPartition_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +4 -4
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +2 -2
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Options_8cpp_source.html +112 -110
- package/SVF-doxygen/html/html/Options_8h.html +1 -0
- package/SVF-doxygen/html/html/Options_8h_source.html +114 -111
- package/SVF-doxygen/html/html/PAGBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PAGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PAG_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PAG_8h_source.html +5 -5
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +20 -18
- package/SVF-doxygen/html/html/PTAStat_8h_source.html +19 -17
- package/SVF-doxygen/html/html/PTAType_8h_source.html +4 -4
- package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +4 -4
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +5 -5
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +4 -5
- package/SVF-doxygen/html/html/PointsTo_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SCC_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +32 -26
- package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +52 -49
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/SVFGStat_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +2 -2
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VFG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +10 -8
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp.html +3 -0
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +80 -67
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h.html +3 -2
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +78 -69
- package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +8 -8
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/WPASolver_8h_source.html +24 -24
- package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WorkList_8h_source.html +1 -1
- package/SVF-doxygen/html/html/annotated.html +189 -186
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat-members.html +10 -7
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +19 -15
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiffWithType.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchCondManager.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +91 -91
- package/SVF-doxygen/html/html/classSVF_1_1CHNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CSC.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1CopyPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat-members.html +5 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +14 -10
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +27 -27
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ExternalPAG.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FIObjPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +53 -53
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat-members.html +5 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +17 -13
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat-members.html +5 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +7 -3
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LoadPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +36 -36
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat-members.html +6 -3
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +17 -13
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat-members.html +5 -2
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +12 -8
- package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +102 -100
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +166 -111
- package/SVF-doxygen/html/html/classSVF_1_1PAG.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilder.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat-members.html +6 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +87 -56
- package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat-members.html +11 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +40 -36
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1StorePE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1TypeSystem.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ValPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +161 -162
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +578 -539
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat-members.html +7 -4
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +32 -29
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC-members.html +83 -0
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +297 -0
- package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +60 -60
- package/SVF-doxygen/html/html/classes.html +96 -95
- package/SVF-doxygen/html/html/functions_b.html +11 -5
- package/SVF-doxygen/html/html/functions_c.html +24 -18
- package/SVF-doxygen/html/html/functions_d.html +13 -4
- package/SVF-doxygen/html/html/functions_e.html +3 -0
- package/SVF-doxygen/html/html/functions_enum.html +3 -0
- package/SVF-doxygen/html/html/functions_eval_c.html +3 -0
- package/SVF-doxygen/html/html/functions_eval_w.html +76 -0
- package/SVF-doxygen/html/html/functions_f.html +14 -14
- package/SVF-doxygen/html/html/functions_func_b.html +6 -0
- package/SVF-doxygen/html/html/functions_func_d.html +7 -4
- package/SVF-doxygen/html/html/functions_func_g.html +15 -9
- package/SVF-doxygen/html/html/functions_func_i.html +11 -11
- package/SVF-doxygen/html/html/functions_func_m.html +0 -3
- package/SVF-doxygen/html/html/functions_func_n.html +1 -4
- package/SVF-doxygen/html/html/functions_func_o.html +6 -4
- package/SVF-doxygen/html/html/functions_func_r.html +4 -1
- package/SVF-doxygen/html/html/functions_func_s.html +1 -1
- package/SVF-doxygen/html/html/functions_func_v.html +2 -1
- package/SVF-doxygen/html/html/functions_g.html +15 -9
- package/SVF-doxygen/html/html/functions_i.html +23 -16
- package/SVF-doxygen/html/html/functions_l.html +12 -15
- package/SVF-doxygen/html/html/functions_m.html +1 -16
- package/SVF-doxygen/html/html/functions_n.html +3 -3
- package/SVF-doxygen/html/html/functions_o.html +17 -16
- package/SVF-doxygen/html/html/functions_p.html +16 -13
- package/SVF-doxygen/html/html/functions_r.html +6 -8
- package/SVF-doxygen/html/html/functions_s.html +14 -16
- package/SVF-doxygen/html/html/functions_t.html +9 -9
- package/SVF-doxygen/html/html/functions_type_l.html +1 -4
- package/SVF-doxygen/html/html/functions_type_m.html +1 -1
- package/SVF-doxygen/html/html/functions_type_n.html +3 -0
- package/SVF-doxygen/html/html/functions_type_o.html +0 -3
- package/SVF-doxygen/html/html/functions_type_v.html +0 -3
- package/SVF-doxygen/html/html/functions_u.html +3 -3
- package/SVF-doxygen/html/html/functions_v.html +8 -10
- package/SVF-doxygen/html/html/functions_vars_c.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_d.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_e.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_i.html +7 -0
- package/SVF-doxygen/html/html/functions_vars_l.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_m.html +0 -12
- package/SVF-doxygen/html/html/functions_vars_o.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_p.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_r.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_y.html +0 -3
- package/SVF-doxygen/html/html/functions_w.html +5 -6
- package/SVF-doxygen/html/html/functions_y.html +0 -3
- package/SVF-doxygen/html/html/globals_f.html +3 -3
- package/SVF-doxygen/html/html/globals_r.html +3 -3
- package/SVF-doxygen/html/html/globals_s.html +6 -6
- package/SVF-doxygen/html/html/hierarchy.html +176 -173
- package/SVF-doxygen/html/html/menudata.js +2 -1
- package/SVF-doxygen/html/html/namespaceSVF.html +68 -30
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +3 -3
- package/SVF-doxygen/html/html/namespacemembers_type_v.html +6 -0
- package/SVF-doxygen/html/html/namespacemembers_v.html +6 -0
- package/SVF-doxygen/html/html/search/all_10.js +4 -3
- package/SVF-doxygen/html/html/search/all_12.js +4 -4
- package/SVF-doxygen/html/html/search/all_13.js +12 -12
- package/SVF-doxygen/html/html/search/all_14.js +6 -6
- package/SVF-doxygen/html/html/search/all_15.js +2 -2
- package/SVF-doxygen/html/html/search/all_16.js +5 -4
- package/SVF-doxygen/html/html/search/all_17.js +2 -1
- package/SVF-doxygen/html/html/search/all_19.js +0 -1
- package/SVF-doxygen/html/html/search/all_2.js +2 -0
- package/SVF-doxygen/html/html/search/all_3.js +2 -1
- package/SVF-doxygen/html/html/search/all_4.js +5 -2
- package/SVF-doxygen/html/html/search/all_5.js +1 -0
- package/SVF-doxygen/html/html/search/all_6.js +6 -6
- package/SVF-doxygen/html/html/search/all_7.js +5 -3
- package/SVF-doxygen/html/html/search/all_8.js +2 -0
- package/SVF-doxygen/html/html/search/all_9.js +5 -3
- package/SVF-doxygen/html/html/search/all_c.js +4 -5
- package/SVF-doxygen/html/html/search/all_d.js +1 -6
- package/SVF-doxygen/html/html/search/all_e.js +5 -5
- package/SVF-doxygen/html/html/search/all_f.js +2 -3
- package/SVF-doxygen/html/html/search/classes_12.js +0 -1
- package/SVF-doxygen/html/html/search/classes_7.js +2 -0
- package/SVF-doxygen/html/html/search/classes_b.js +1 -0
- package/SVF-doxygen/html/html/search/classes_f.js +1 -0
- package/SVF-doxygen/html/html/search/enums_1.js +1 -0
- package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_2.js +1 -0
- package/SVF-doxygen/html/html/search/functions_1.js +2 -0
- package/SVF-doxygen/html/html/search/functions_10.js +2 -2
- package/SVF-doxygen/html/html/search/functions_13.js +1 -1
- package/SVF-doxygen/html/html/search/functions_3.js +3 -2
- package/SVF-doxygen/html/html/search/functions_6.js +5 -3
- package/SVF-doxygen/html/html/search/functions_8.js +2 -2
- package/SVF-doxygen/html/html/search/functions_b.js +0 -1
- package/SVF-doxygen/html/html/search/functions_c.js +0 -1
- package/SVF-doxygen/html/html/search/functions_d.js +1 -1
- package/SVF-doxygen/html/html/search/functions_f.js +1 -0
- package/SVF-doxygen/html/html/search/searchdata.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_14.js +2 -1
- package/SVF-doxygen/html/html/search/typedefs_b.js +1 -2
- package/SVF-doxygen/html/html/search/typedefs_c.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_d.js +1 -0
- package/SVF-doxygen/html/html/search/typedefs_e.js +0 -1
- package/SVF-doxygen/html/html/search/variables_10.js +1 -0
- package/SVF-doxygen/html/html/search/variables_12.js +0 -1
- package/SVF-doxygen/html/html/search/variables_14.js +2 -2
- package/SVF-doxygen/html/html/search/variables_15.js +1 -1
- package/SVF-doxygen/html/html/search/variables_16.js +1 -1
- package/SVF-doxygen/html/html/search/variables_19.js +0 -1
- package/SVF-doxygen/html/html/search/variables_3.js +1 -1
- package/SVF-doxygen/html/html/search/variables_4.js +2 -0
- package/SVF-doxygen/html/html/search/variables_5.js +1 -0
- package/SVF-doxygen/html/html/search/variables_6.js +1 -1
- package/SVF-doxygen/html/html/search/variables_9.js +3 -1
- package/SVF-doxygen/html/html/search/variables_c.js +1 -1
- package/SVF-doxygen/html/html/search/variables_d.js +0 -4
- package/SVF-doxygen/html/html/search/variables_e.js +2 -2
- package/SVF-doxygen/html/html/search/variables_f.js +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01CoreBitVector_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01CoreBitVector_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData-members.html +83 -0
- package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html +145 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.html +12 -12
- 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_1SmallVector_3_01T_00_01N_01_4_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01llvm_1_1SparseBitVector_3_01N_01_4_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +129 -0
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +2 -2
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
- package/include/Graphs/SVFGStat.h +10 -10
- package/include/MemoryModel/PTAStat.h +8 -2
- package/include/Util/CoreBitVector.h +8 -0
- package/include/Util/Options.h +6 -0
- package/include/Util/SVFBasicTypes.h +22 -2
- package/include/WPA/VersionedFlowSensitive.h +96 -65
- package/include/WPA/WPASolver.h +1 -2
- package/lib/SVF-FE/CHG.cpp +3 -2
- package/lib/Util/Options.cpp +16 -0
- package/lib/Util/PTAStat.cpp +17 -2
- package/lib/WPA/VersionedFlowSensitive.cpp +503 -229
- package/lib/WPA/VersionedFlowSensitiveStat.cpp +23 -38
- package/package.json +1 -1
|
@@ -1010,7 +1010,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1010
1010
|
<div class="ttc" id="classSVF_1_1AndersenSCD_html_aaee864bb1fc5b5d4643e145d80ecfb8b"><div class="ttname"><a href="classSVF_1_1AndersenSCD.html#aaee864bb1fc5b5d4643e145d80ecfb8b">SVF::AndersenSCD::processPWC</a></div><div class="ttdeci">virtual void processPWC(ConstraintNode *rep)</div><div class="ttdef"><b>Definition:</b> <a href="AndersenSCD_8cpp_source.html#l00161">AndersenSCD.cpp:161</a></div></div>
|
|
1011
1011
|
<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#l00164">GenericGraph.h:164</a></div></div>
|
|
1012
1012
|
<div class="ttc" id="classSVF_1_1Andersen_html_a44d62658bbd2efcef5ff479930b5dce9"><div class="ttname"><a href="classSVF_1_1Andersen.html#a44d62658bbd2efcef5ff479930b5dce9">SVF::Andersen::mergePWC</a></div><div class="ttdeci">bool mergePWC() const</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00250">Andersen.h:250</a></div></div>
|
|
1013
|
-
<div class="ttc" id="classSVF_1_1WPASolver_html_a09c85e7a12715fc64e05a8448b699ec0"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a09c85e7a12715fc64e05a8448b699ec0">SVF::WPASolver::isInWorklist</a></div><div class="ttdeci">bool isInWorklist(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#
|
|
1013
|
+
<div class="ttc" id="classSVF_1_1WPASolver_html_a09c85e7a12715fc64e05a8448b699ec0"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a09c85e7a12715fc64e05a8448b699ec0">SVF::WPASolver::isInWorklist</a></div><div class="ttdeci">bool isInWorklist(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00170">WPASolver.h:170</a></div></div>
|
|
1014
1014
|
<div class="ttc" id="classSVF_1_1Andersen_html_ab069683dd6ca563113efbde2813ab35e"><div class="ttname"><a href="classSVF_1_1Andersen.html#ab069683dd6ca563113efbde2813ab35e">SVF::Andersen::handleCopyGep</a></div><div class="ttdeci">virtual void handleCopyGep(ConstraintNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00235">Andersen.cpp:235</a></div></div>
|
|
1015
1015
|
</div><!-- fragment -->
|
|
1016
1016
|
</div>
|
|
@@ -1043,7 +1043,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1043
1043
|
<p>Reimplemented from <a class="el" href="classSVF_1_1Andersen.html#a0f32ba8cb1109c257552fa775a007ffd">SVF::Andersen</a>.</p>
|
|
1044
1044
|
|
|
1045
1045
|
<p class="definition">Definition at line <a class="el" href="AndersenSCD_8cpp_source.html#l00206">206</a> of file <a class="el" href="AndersenSCD_8cpp_source.html">AndersenSCD.cpp</a>.</p>
|
|
1046
|
-
<div class="fragment"><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordtype">double</span> insertStart = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="comment">// handle load</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">ConstraintNode::const_iterator</a> it = node-><a class="code" href="classSVF_1_1ConstraintNode.html#af69c7e623ab5a36644b6aeabaa1a1e28">outgoingLoadsBegin</a>(),</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  eit = node-><a class="code" href="classSVF_1_1ConstraintNode.html#a134e8ed040d7749c2b9a02662115f746">outgoingLoadsEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> piter = <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(nodeId).<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>(), epiter =</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(nodeId).<a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>(); piter != epiter; ++piter)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd = *piter;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Andersen.html#abc20264231658b99998bc4af1f03a4de">processLoad</a>(ptd, *it))</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="classSVF_1_1WPASolver.html#ac460772d9236a2fefe17b2557023b883">reanalyze</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="comment">// handle store</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">ConstraintNode::const_iterator</a> it = node-><a class="code" href="classSVF_1_1ConstraintNode.html#a5a90b39f9e5769bde44a673806270714">incomingStoresBegin</a>(),</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  eit = node-><a class="code" href="classSVF_1_1ConstraintNode.html#a8d58f5224728bb6811f12c94826167f6">incomingStoresEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> piter = <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(nodeId).<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>(), epiter =</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(nodeId).<a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>(); piter != epiter; ++piter)</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd = *piter;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Andersen.html#ac262d42d45dc6130cb031d5b0ed1f024">processStore</a>(ptd, *it))</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="classSVF_1_1WPASolver.html#ac460772d9236a2fefe17b2557023b883">reanalyze</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  }</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordtype">double</span> insertEnd = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="classSVF_1_1AndersenBase.html#a9fe738f1e11c80006d540f246a80bfdf">timeOfProcessLoadStore</a> += (insertEnd - insertStart) / <a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> }</div><div class="ttc" id="classSVF_1_1WPASolver_html_ac460772d9236a2fefe17b2557023b883"><div class="ttname"><a href="classSVF_1_1WPASolver.html#ac460772d9236a2fefe17b2557023b883">SVF::WPASolver::reanalyze</a></div><div class="ttdeci">bool reanalyze</div><div class="ttdoc">Reanalyze if any constraint value changed. </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#
|
|
1046
|
+
<div class="fragment"><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordtype">double</span> insertStart = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="comment">// handle load</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">ConstraintNode::const_iterator</a> it = node-><a class="code" href="classSVF_1_1ConstraintNode.html#af69c7e623ab5a36644b6aeabaa1a1e28">outgoingLoadsBegin</a>(),</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  eit = node-><a class="code" href="classSVF_1_1ConstraintNode.html#a134e8ed040d7749c2b9a02662115f746">outgoingLoadsEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> piter = <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(nodeId).<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>(), epiter =</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(nodeId).<a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>(); piter != epiter; ++piter)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd = *piter;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Andersen.html#abc20264231658b99998bc4af1f03a4de">processLoad</a>(ptd, *it))</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="classSVF_1_1WPASolver.html#ac460772d9236a2fefe17b2557023b883">reanalyze</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="comment">// handle store</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">ConstraintNode::const_iterator</a> it = node-><a class="code" href="classSVF_1_1ConstraintNode.html#a5a90b39f9e5769bde44a673806270714">incomingStoresBegin</a>(),</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  eit = node-><a class="code" href="classSVF_1_1ConstraintNode.html#a8d58f5224728bb6811f12c94826167f6">incomingStoresEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> piter = <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(nodeId).<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>(), epiter =</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(nodeId).<a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>(); piter != epiter; ++piter)</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd = *piter;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Andersen.html#ac262d42d45dc6130cb031d5b0ed1f024">processStore</a>(ptd, *it))</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="classSVF_1_1WPASolver.html#ac460772d9236a2fefe17b2557023b883">reanalyze</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  }</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordtype">double</span> insertEnd = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="classSVF_1_1AndersenBase.html#a9fe738f1e11c80006d540f246a80bfdf">timeOfProcessLoadStore</a> += (insertEnd - insertStart) / <a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> }</div><div class="ttc" id="classSVF_1_1WPASolver_html_ac460772d9236a2fefe17b2557023b883"><div class="ttname"><a href="classSVF_1_1WPASolver.html#ac460772d9236a2fefe17b2557023b883">SVF::WPASolver::reanalyze</a></div><div class="ttdeci">bool reanalyze</div><div class="ttdoc">Reanalyze if any constraint value changed. </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00177">WPASolver.h:177</a></div></div>
|
|
1047
1047
|
<div class="ttc" id="classSVF_1_1Andersen_html_a187285a5bdf9422d9188b2b11b667639"><div class="ttname"><a href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">SVF::Andersen::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID id)</div><div class="ttdoc">Operation of points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00222">Andersen.h:222</a></div></div>
|
|
1048
1048
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
1049
1049
|
<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#l00174">PointsTo.h:174</a></div></div>
|
|
@@ -1054,13 +1054,13 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1054
1054
|
<div class="ttc" id="classSVF_1_1ConstraintNode_html_a8d58f5224728bb6811f12c94826167f6"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#a8d58f5224728bb6811f12c94826167f6">SVF::ConstraintNode::incomingStoresEnd</a></div><div class="ttdeci">const_iterator incomingStoresEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00287">ConsGNode.h:287</a></div></div>
|
|
1055
1055
|
<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#l00155">PointerAnalysis.h:155</a></div></div>
|
|
1056
1056
|
<div class="ttc" id="classSVF_1_1ConstraintNode_html_a134e8ed040d7749c2b9a02662115f746"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#a134e8ed040d7749c2b9a02662115f746">SVF::ConstraintNode::outgoingLoadsEnd</a></div><div class="ttdeci">const_iterator outgoingLoadsEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00262">ConsGNode.h:262</a></div></div>
|
|
1057
|
-
<div class="ttc" id="SVFBasicTypes_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
1057
|
+
<div class="ttc" id="SVFBasicTypes_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00174">SVFBasicTypes.h:174</a></div></div>
|
|
1058
1058
|
<div class="ttc" id="classSVF_1_1Andersen_html_abc20264231658b99998bc4af1f03a4de"><div class="ttname"><a href="classSVF_1_1Andersen.html#abc20264231658b99998bc4af1f03a4de">SVF::Andersen::processLoad</a></div><div class="ttdeci">virtual bool processLoad(NodeID node, const ConstraintEdge *load)</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00312">Andersen.cpp:312</a></div></div>
|
|
1059
1059
|
<div class="ttc" id="classSVF_1_1ConstraintNode_html_af69c7e623ab5a36644b6aeabaa1a1e28"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#af69c7e623ab5a36644b6aeabaa1a1e28">SVF::ConstraintNode::outgoingLoadsBegin</a></div><div class="ttdeci">const_iterator outgoingLoadsBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00258">ConsGNode.h:258</a></div></div>
|
|
1060
1060
|
<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#l00164">GenericGraph.h:164</a></div></div>
|
|
1061
1061
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_a9fe738f1e11c80006d540f246a80bfdf"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a9fe738f1e11c80006d540f246a80bfdf">SVF::AndersenBase::timeOfProcessLoadStore</a></div><div class="ttdeci">static double timeOfProcessLoadStore</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00143">Andersen.h:143</a></div></div>
|
|
1062
1062
|
<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#l00128">PointsTo.h:128</a></div></div>
|
|
1063
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a3c4eaa1695ea13405911ae1621f98edc"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">SVF::PTAStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#
|
|
1063
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a3c4eaa1695ea13405911ae1621f98edc"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">SVF::PTAStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00114">PTAStat.cpp:114</a></div></div>
|
|
1064
1064
|
</div><!-- fragment -->
|
|
1065
1065
|
</div>
|
|
1066
1066
|
</div>
|
|
@@ -1127,7 +1127,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1127
1127
|
|
|
1128
1128
|
<p class="definition">Definition at line <a class="el" href="AndersenSCD_8cpp_source.html#l00161">161</a> of file <a class="el" href="AndersenSCD_8cpp_source.html">AndersenSCD.cpp</a>.</p>
|
|
1129
1129
|
<div class="fragment"><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> repId = rep-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> pwcNodes;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nId : <a class="code" href="classSVF_1_1WPASolver.html#a37ca8a99b8f83fba796293e6e13b0953">getSCCDetector</a>()->subNodes(repId))</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  pwcNodes.insert(nId);</div><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>  <a class="code" href="classSVF_1_1WPASolver.html#a624e9156b2d3a4f284548cbaaf650334">WorkList</a> tmpWorkList;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> subId : pwcNodes)</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1WPASolver.html#a09c85e7a12715fc64e05a8448b699ec0">isInWorklist</a>(subId))</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  tmpWorkList.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(subId);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">while</span> (!tmpWorkList.empty())</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = tmpWorkList.pop();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <a class="code" href="classSVF_1_1Andersen.html#a7e26ac6fb40684694f7ff2aadfde8bc7">computeDiffPts</a>(nodeId);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1Andersen.html#a106691684d8e7a69157d423393d83d66">getDiffPts</a>(nodeId).<a class="code" href="cuddInt_8c.html#a5beb39637a978181c7c17714ac96672e">empty</a>())</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *node = <a class="code" href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">consCG</a>-><a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(nodeId);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge : node-><a class="code" href="classSVF_1_1ConstraintNode.html#ab77173aa8af6155b569f20ff0cdcec72">getCopyOutEdges</a>())</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordtype">bool</span> changed = <a class="code" href="classSVF_1_1Andersen.html#ac4afe532655c3f311143ebbe15175ca2">processCopy</a>(nodeId, edge);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">if</span> (changed && pwcNodes.find(edge->getDstID()) != pwcNodes.end())</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  tmpWorkList.push(edge->getDstID());</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge : node-><a class="code" href="classSVF_1_1ConstraintNode.html#a19d3d2c996ba821227a836717e5443c8">getGepOutEdges</a>())</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GepCGEdge.html">GepCGEdge</a> *gepEdge = SVFUtil::dyn_cast<GepCGEdge>(edge))</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordtype">bool</span> changed = <a class="code" href="classSVF_1_1Andersen.html#aa697d4a6fe09dd6e50abb09228b3567f">processGep</a>(nodeId, gepEdge);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">if</span> (changed && pwcNodes.find(edge->getDstID()) != pwcNodes.end())</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  tmpWorkList.push(edge->getDstID());</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</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>  }</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  }</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> }</div><div class="ttc" id="classSVF_1_1Andersen_html_a106691684d8e7a69157d423393d83d66"><div class="ttname"><a href="classSVF_1_1Andersen.html#a106691684d8e7a69157d423393d83d66">SVF::Andersen::getDiffPts</a></div><div class="ttdeci">virtual const PointsTo & getDiffPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00282">Andersen.h:282</a></div></div>
|
|
1130
|
-
<div class="ttc" id="namespaceSVF_html_a212231734fa43d5c7414137deaac7df3"><div class="ttname"><a href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">SVF::NodeSet</a></div><div class="ttdeci">Set< NodeID > NodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
1130
|
+
<div class="ttc" id="namespaceSVF_html_a212231734fa43d5c7414137deaac7df3"><div class="ttname"><a href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">SVF::NodeSet</a></div><div class="ttdeci">Set< NodeID > NodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00114">SVFBasicTypes.h:114</a></div></div>
|
|
1131
1131
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
|
|
1132
1132
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
1133
1133
|
<div class="ttc" id="classSVF_1_1GepCGEdge_html"><div class="ttname"><a href="classSVF_1_1GepCGEdge.html">SVF::GepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00225">ConsGEdge.h:225</a></div></div>
|
|
@@ -1142,7 +1142,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1142
1142
|
<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#l00164">GenericGraph.h:164</a></div></div>
|
|
1143
1143
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_ae21e38a06a4397d11cdd17b0f8f282fd"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">SVF::AndersenBase::consCG</a></div><div class="ttdeci">ConstraintGraph * consCG</div><div class="ttdoc">Constraint Graph. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00149">Andersen.h:149</a></div></div>
|
|
1144
1144
|
<div class="ttc" id="classSVF_1_1Andersen_html_a7e26ac6fb40684694f7ff2aadfde8bc7"><div class="ttname"><a href="classSVF_1_1Andersen.html#a7e26ac6fb40684694f7ff2aadfde8bc7">SVF::Andersen::computeDiffPts</a></div><div class="ttdeci">virtual void computeDiffPts(NodeID id)</div><div class="ttdoc">Handle diff points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00274">Andersen.h:274</a></div></div>
|
|
1145
|
-
<div class="ttc" id="classSVF_1_1WPASolver_html_a09c85e7a12715fc64e05a8448b699ec0"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a09c85e7a12715fc64e05a8448b699ec0">SVF::WPASolver::isInWorklist</a></div><div class="ttdeci">bool isInWorklist(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#
|
|
1145
|
+
<div class="ttc" id="classSVF_1_1WPASolver_html_a09c85e7a12715fc64e05a8448b699ec0"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a09c85e7a12715fc64e05a8448b699ec0">SVF::WPASolver::isInWorklist</a></div><div class="ttdeci">bool isInWorklist(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00170">WPASolver.h:170</a></div></div>
|
|
1146
1146
|
<div class="ttc" id="classSVF_1_1ConstraintEdge_html"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html">SVF::ConstraintEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00048">ConsGEdge.h:48</a></div></div>
|
|
1147
1147
|
<div class="ttc" id="classSVF_1_1Andersen_html_aa697d4a6fe09dd6e50abb09228b3567f"><div class="ttname"><a href="classSVF_1_1Andersen.html#aa697d4a6fe09dd6e50abb09228b3567f">SVF::Andersen::processGep</a></div><div class="ttdeci">virtual bool processGep(NodeID node, const GepCGEdge *edge)</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00372">Andersen.cpp:372</a></div></div>
|
|
1148
1148
|
</div><!-- fragment -->
|
|
@@ -1174,7 +1174,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1174
1174
|
<p>Reimplemented in <a class="el" href="classSVF_1_1AndersenSFR.html#a7bb1bd307c5db4d732e51af810c5ad75">SVF::AndersenSFR</a>.</p>
|
|
1175
1175
|
|
|
1176
1176
|
<p class="definition">Definition at line <a class="el" href="AndersenSCD_8cpp_source.html#l00124">124</a> of file <a class="el" href="AndersenSCD_8cpp_source.html">AndersenSCD.cpp</a>.</p>
|
|
1177
|
-
<div class="fragment"><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>  <span class="comment">// replace scc candidates by their reps</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> tmpSccCandidates = <a class="code" href="classSVF_1_1AndersenSCD.html#aeb0b3644c3bfbfa5768b92c99aeeef40">sccCandidates</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="classSVF_1_1AndersenSCD.html#aeb0b3644c3bfbfa5768b92c99aeeef40">sccCandidates</a>.clear();</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> candidate : tmpSccCandidates)</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classSVF_1_1AndersenSCD.html#aeb0b3644c3bfbfa5768b92c99aeeef40">sccCandidates</a>.insert(<a class="code" href="classSVF_1_1Andersen.html#aad706e332847e6b0892350a05028ba30">sccRepNode</a>(candidate));</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  tmpSccCandidates.clear();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="comment">// set scc edge type as direct edge</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="classSVF_1_1ConstraintNode.html#a6e59b815d784bc1a9437290ff0e1e28c">ConstraintNode::SCCEdgeFlag</a> f = <a class="code" href="classSVF_1_1ConstraintNode.html#a0fd9fca5ed82cf83dbd825d23c63783a">ConstraintNode::sccEdgeFlag</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="classSVF_1_1Andersen.html#ab81b08574f80287803dd43b5ebe2adfa">setSCCEdgeFlag</a>(<a class="code" href="classSVF_1_1ConstraintNode.html#a6e59b815d784bc1a9437290ff0e1e28ca7f8c92a2f50277fee80899235ae477f9">ConstraintNode::Direct</a>);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="classSVF_1_1WPASolver.html#a37ca8a99b8f83fba796293e6e13b0953">getSCCDetector</a>()-><a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>(<a class="code" href="classSVF_1_1AndersenSCD.html#aeb0b3644c3bfbfa5768b92c99aeeef40">sccCandidates</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>  <span class="comment">// reset scc edge type</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="classSVF_1_1Andersen.html#ab81b08574f80287803dd43b5ebe2adfa">setSCCEdgeFlag</a>(f);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> }</div><div class="ttc" id="namespaceSVF_html_a212231734fa43d5c7414137deaac7df3"><div class="ttname"><a href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">SVF::NodeSet</a></div><div class="ttdeci">Set< NodeID > NodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
1177
|
+
<div class="fragment"><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>  <span class="comment">// replace scc candidates by their reps</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> tmpSccCandidates = <a class="code" href="classSVF_1_1AndersenSCD.html#aeb0b3644c3bfbfa5768b92c99aeeef40">sccCandidates</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="classSVF_1_1AndersenSCD.html#aeb0b3644c3bfbfa5768b92c99aeeef40">sccCandidates</a>.clear();</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> candidate : tmpSccCandidates)</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classSVF_1_1AndersenSCD.html#aeb0b3644c3bfbfa5768b92c99aeeef40">sccCandidates</a>.insert(<a class="code" href="classSVF_1_1Andersen.html#aad706e332847e6b0892350a05028ba30">sccRepNode</a>(candidate));</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  tmpSccCandidates.clear();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="comment">// set scc edge type as direct edge</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="classSVF_1_1ConstraintNode.html#a6e59b815d784bc1a9437290ff0e1e28c">ConstraintNode::SCCEdgeFlag</a> f = <a class="code" href="classSVF_1_1ConstraintNode.html#a0fd9fca5ed82cf83dbd825d23c63783a">ConstraintNode::sccEdgeFlag</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="classSVF_1_1Andersen.html#ab81b08574f80287803dd43b5ebe2adfa">setSCCEdgeFlag</a>(<a class="code" href="classSVF_1_1ConstraintNode.html#a6e59b815d784bc1a9437290ff0e1e28ca7f8c92a2f50277fee80899235ae477f9">ConstraintNode::Direct</a>);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="classSVF_1_1WPASolver.html#a37ca8a99b8f83fba796293e6e13b0953">getSCCDetector</a>()-><a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>(<a class="code" href="classSVF_1_1AndersenSCD.html#aeb0b3644c3bfbfa5768b92c99aeeef40">sccCandidates</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>  <span class="comment">// reset scc edge type</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="classSVF_1_1Andersen.html#ab81b08574f80287803dd43b5ebe2adfa">setSCCEdgeFlag</a>(f);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> }</div><div class="ttc" id="namespaceSVF_html_a212231734fa43d5c7414137deaac7df3"><div class="ttname"><a href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">SVF::NodeSet</a></div><div class="ttdeci">Set< NodeID > NodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00114">SVFBasicTypes.h:114</a></div></div>
|
|
1178
1178
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
1179
1179
|
<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>
|
|
1180
1180
|
<div class="ttc" id="classSVF_1_1ConstraintNode_html_a6e59b815d784bc1a9437290ff0e1e28ca7f8c92a2f50277fee80899235ae477f9"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#a6e59b815d784bc1a9437290ff0e1e28ca7f8c92a2f50277fee80899235ae477f9">SVF::ConstraintNode::Direct</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00050">ConsGNode.h:50</a></div></div>
|
|
@@ -1248,13 +1248,13 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1248
1248
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_a6b7d0e57f741c446d0bf178939960143"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a6b7d0e57f741c446d0bf178939960143">SVF::AndersenBase::timeOfSCCDetection</a></div><div class="ttdeci">static double timeOfSCCDetection</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00137">Andersen.h:137</a></div></div>
|
|
1249
1249
|
<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#l00071">WPASolver.h:71</a></div></div>
|
|
1250
1250
|
<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#l00155">PointerAnalysis.h:155</a></div></div>
|
|
1251
|
-
<div class="ttc" id="SVFBasicTypes_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
1251
|
+
<div class="ttc" id="SVFBasicTypes_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00174">SVFBasicTypes.h:174</a></div></div>
|
|
1252
1252
|
<div class="ttc" id="classSVF_1_1AndersenSCD_html_af155524f6f78424a846fe2eb575bb40a"><div class="ttname"><a href="classSVF_1_1AndersenSCD.html#af155524f6f78424a846fe2eb575bb40a">SVF::AndersenSCD::PWCDetect</a></div><div class="ttdeci">virtual void PWCDetect()</div><div class="ttdef"><b>Definition:</b> <a href="AndersenSCD_8cpp_source.html#l00124">AndersenSCD.cpp:124</a></div></div>
|
|
1253
1253
|
<div class="ttc" id="classSVF_1_1Andersen_html_a44d62658bbd2efcef5ff479930b5dce9"><div class="ttname"><a href="classSVF_1_1Andersen.html#a44d62658bbd2efcef5ff479930b5dce9">SVF::Andersen::mergePWC</a></div><div class="ttdeci">bool mergePWC() const</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00250">Andersen.h:250</a></div></div>
|
|
1254
1254
|
<div class="ttc" id="classSVF_1_1Andersen_html_ac86ffd334568e4df5c08b3c827018bef"><div class="ttname"><a href="classSVF_1_1Andersen.html#ac86ffd334568e4df5c08b3c827018bef">SVF::Andersen::mergeSccCycle</a></div><div class="ttdeci">void mergeSccCycle()</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00472">Andersen.cpp:472</a></div></div>
|
|
1255
1255
|
<div class="ttc" id="classSVF_1_1AndersenSCD_html_aeb0b3644c3bfbfa5768b92c99aeeef40"><div class="ttname"><a href="classSVF_1_1AndersenSCD.html#aeb0b3644c3bfbfa5768b92c99aeeef40">SVF::AndersenSCD::sccCandidates</a></div><div class="ttdeci">NodeSet sccCandidates</div><div class="ttdef"><b>Definition:</b> <a href="AndersenSFR_8h_source.html#l00051">AndersenSFR.h:51</a></div></div>
|
|
1256
1256
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_a6da6e1231a46fde6925493045b8b2490"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a6da6e1231a46fde6925493045b8b2490">SVF::AndersenBase::numOfSCCDetection</a></div><div class="ttdeci">static Size_t numOfSCCDetection</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00136">Andersen.h:136</a></div></div>
|
|
1257
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a3c4eaa1695ea13405911ae1621f98edc"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">SVF::PTAStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#
|
|
1257
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a3c4eaa1695ea13405911ae1621f98edc"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">SVF::PTAStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00114">PTAStat.cpp:114</a></div></div>
|
|
1258
1258
|
</div><!-- fragment -->
|
|
1259
1259
|
</div>
|
|
1260
1260
|
</div>
|
|
@@ -1285,26 +1285,26 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1285
1285
|
|
|
1286
1286
|
<p class="definition">Definition at line <a class="el" href="AndersenSCD_8cpp_source.html#l00042">42</a> of file <a class="el" href="AndersenSCD_8cpp_source.html">AndersenSCD.cpp</a>.</p>
|
|
1287
1287
|
<div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="comment">// Initialize the nodeStack via a whole SCC detection</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="comment">// Nodes in nodeStack are in topological order by default.</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">NodeStack</a>& nodeStack = <a class="code" href="classSVF_1_1AndersenSCD.html#a70f69baf47587b742b5013a63a3ce593">SCCDetect</a>();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nId : <a class="code" href="classSVF_1_1AndersenSCD.html#aeb0b3644c3bfbfa5768b92c99aeeef40">sccCandidates</a>)</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">pushIntoWorklist</a>(nId);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  sccCandidates.clear();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">// propagate point-to sets</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">while</span> (!nodeStack.empty())</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>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = nodeStack.top();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  nodeStack.pop();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</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_1Andersen.html#aad706e332847e6b0892350a05028ba30">sccRepNode</a>(nodeId) == nodeId)</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_1Andersen.html#ae79bff0e9c49f15e7db00ed605824d98">collapsePWCNode</a>(nodeId);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1WPASolver.html#a09c85e7a12715fc64e05a8448b699ec0">isInWorklist</a>(nodeId))</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="comment">// push the rep of node into worklist</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">pushIntoWorklist</a>(nodeId);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordtype">double</span> propStart = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="comment">// propagate pts through copy and gep edges</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* node = <a class="code" href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">consCG</a>-><a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(nodeId);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="classSVF_1_1AndersenSCD.html#aa0a496376f7bea2c417ef83c51d19a61">handleCopyGep</a>(node);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordtype">double</span> propEnd = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="classSVF_1_1AndersenBase.html#aae14de6fbca9280d8d0290326aa493f0">timeOfProcessCopyGep</a> += (propEnd - propStart) / <a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="classSVF_1_1Andersen.html#ac22a6946de30bc5887b9e4ec9259764f">collapseFields</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="comment">// New nodes will be inserted into workList during processing.</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">while</span> (!<a class="code" href="classSVF_1_1WPASolver.html#a992b105a0ec126050a123e24db3bd45b">isWorklistEmpty</a>())</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = <a class="code" href="classSVF_1_1WPASolver.html#a20a14ac31fe23d4fe67da15f5cc498df">popFromWorklist</a>();</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordtype">double</span> insertStart = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="comment">// add copy edges via processing load or store edges</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* node = <a class="code" href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">consCG</a>-><a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(nodeId);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="classSVF_1_1AndersenSCD.html#a7ae683eb8c607a0e742b44e3019b8cbc">handleLoadStore</a>(node);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordtype">double</span> insertEnd = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="classSVF_1_1AndersenBase.html#a9fe738f1e11c80006d540f246a80bfdf">timeOfProcessLoadStore</a> += (insertEnd - insertStart) / <a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> }</div><div class="ttc" id="classSVF_1_1AndersenBase_html_aae14de6fbca9280d8d0290326aa493f0"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#aae14de6fbca9280d8d0290326aa493f0">SVF::AndersenBase::timeOfProcessCopyGep</a></div><div class="ttdeci">static double timeOfProcessCopyGep</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00142">Andersen.h:142</a></div></div>
|
|
1288
|
-
<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#
|
|
1288
|
+
<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#l00162">WPASolver.h:162</a></div></div>
|
|
1289
1289
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
|
|
1290
1290
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
1291
|
-
<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="SVFBasicTypes_8h_source.html#
|
|
1291
|
+
<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="SVFBasicTypes_8h_source.html#l00119">SVFBasicTypes.h:119</a></div></div>
|
|
1292
1292
|
<div class="ttc" id="classSVF_1_1AndersenSCD_html_a70f69baf47587b742b5013a63a3ce593"><div class="ttname"><a href="classSVF_1_1AndersenSCD.html#a70f69baf47587b742b5013a63a3ce593">SVF::AndersenSCD::SCCDetect</a></div><div class="ttdeci">virtual NodeStack & SCCDetect()</div><div class="ttdef"><b>Definition:</b> <a href="AndersenSCD_8cpp_source.html#l00095">AndersenSCD.cpp:95</a></div></div>
|
|
1293
|
-
<div class="ttc" id="classSVF_1_1WPASolver_html_a992b105a0ec126050a123e24db3bd45b"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a992b105a0ec126050a123e24db3bd45b">SVF::WPASolver::isWorklistEmpty</a></div><div class="ttdeci">bool isWorklistEmpty()</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#
|
|
1293
|
+
<div class="ttc" id="classSVF_1_1WPASolver_html_a992b105a0ec126050a123e24db3bd45b"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a992b105a0ec126050a123e24db3bd45b">SVF::WPASolver::isWorklistEmpty</a></div><div class="ttdeci">bool isWorklistEmpty()</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00166">WPASolver.h:166</a></div></div>
|
|
1294
1294
|
<div class="ttc" id="classSVF_1_1Andersen_html_ac22a6946de30bc5887b9e4ec9259764f"><div class="ttname"><a href="classSVF_1_1Andersen.html#ac22a6946de30bc5887b9e4ec9259764f">SVF::Andersen::collapseFields</a></div><div class="ttdeci">void collapseFields()</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00457">Andersen.cpp:457</a></div></div>
|
|
1295
1295
|
<div class="ttc" id="classSVF_1_1AndersenSCD_html_aa0a496376f7bea2c417ef83c51d19a61"><div class="ttname"><a href="classSVF_1_1AndersenSCD.html#aa0a496376f7bea2c417ef83c51d19a61">SVF::AndersenSCD::handleCopyGep</a></div><div class="ttdeci">virtual void handleCopyGep(ConstraintNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="AndersenSCD_8cpp_source.html#l00147">AndersenSCD.cpp:147</a></div></div>
|
|
1296
1296
|
<div class="ttc" id="classSVF_1_1AndersenSCD_html_a7ae683eb8c607a0e742b44e3019b8cbc"><div class="ttname"><a href="classSVF_1_1AndersenSCD.html#a7ae683eb8c607a0e742b44e3019b8cbc">SVF::AndersenSCD::handleLoadStore</a></div><div class="ttdeci">virtual void handleLoadStore(ConstraintNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="AndersenSCD_8cpp_source.html#l00206">AndersenSCD.cpp:206</a></div></div>
|
|
1297
1297
|
<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#l00155">PointerAnalysis.h:155</a></div></div>
|
|
1298
1298
|
<div class="ttc" id="classSVF_1_1ConstraintNode_html"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html">SVF::ConstraintNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00040">ConsGNode.h:40</a></div></div>
|
|
1299
|
-
<div class="ttc" id="classSVF_1_1WPASolver_html_a20a14ac31fe23d4fe67da15f5cc498df"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a20a14ac31fe23d4fe67da15f5cc498df">SVF::WPASolver::popFromWorklist</a></div><div class="ttdeci">NodeID popFromWorklist()</div><div class="ttdoc">Worklist operations. </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#
|
|
1300
|
-
<div class="ttc" id="SVFBasicTypes_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
1299
|
+
<div class="ttc" id="classSVF_1_1WPASolver_html_a20a14ac31fe23d4fe67da15f5cc498df"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a20a14ac31fe23d4fe67da15f5cc498df">SVF::WPASolver::popFromWorklist</a></div><div class="ttdeci">NodeID popFromWorklist()</div><div class="ttdoc">Worklist operations. </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00157">WPASolver.h:157</a></div></div>
|
|
1300
|
+
<div class="ttc" id="SVFBasicTypes_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00174">SVFBasicTypes.h:174</a></div></div>
|
|
1301
1301
|
<div class="ttc" id="classSVF_1_1Andersen_html_ae79bff0e9c49f15e7db00ed605824d98"><div class="ttname"><a href="classSVF_1_1Andersen.html#ae79bff0e9c49f15e7db00ed605824d98">SVF::Andersen::collapsePWCNode</a></div><div class="ttdeci">void collapsePWCNode(NodeID nodeId)</div><div class="ttdoc">Collapse a field object into its base for field insensitive anlaysis. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00448">Andersen.cpp:448</a></div></div>
|
|
1302
1302
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_ae21e38a06a4397d11cdd17b0f8f282fd"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">SVF::AndersenBase::consCG</a></div><div class="ttdeci">ConstraintGraph * consCG</div><div class="ttdoc">Constraint Graph. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00149">Andersen.h:149</a></div></div>
|
|
1303
|
-
<div class="ttc" id="classSVF_1_1WPASolver_html_a09c85e7a12715fc64e05a8448b699ec0"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a09c85e7a12715fc64e05a8448b699ec0">SVF::WPASolver::isInWorklist</a></div><div class="ttdeci">bool isInWorklist(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#
|
|
1303
|
+
<div class="ttc" id="classSVF_1_1WPASolver_html_a09c85e7a12715fc64e05a8448b699ec0"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a09c85e7a12715fc64e05a8448b699ec0">SVF::WPASolver::isInWorklist</a></div><div class="ttdeci">bool isInWorklist(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00170">WPASolver.h:170</a></div></div>
|
|
1304
1304
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_a9fe738f1e11c80006d540f246a80bfdf"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a9fe738f1e11c80006d540f246a80bfdf">SVF::AndersenBase::timeOfProcessLoadStore</a></div><div class="ttdeci">static double timeOfProcessLoadStore</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00143">Andersen.h:143</a></div></div>
|
|
1305
1305
|
<div class="ttc" id="classSVF_1_1Andersen_html_aad706e332847e6b0892350a05028ba30"><div class="ttname"><a href="classSVF_1_1Andersen.html#aad706e332847e6b0892350a05028ba30">SVF::Andersen::sccRepNode</a></div><div class="ttdeci">NodeID sccRepNode(NodeID id) const</div><div class="ttdoc">SCC methods. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00211">Andersen.h:211</a></div></div>
|
|
1306
1306
|
<div class="ttc" id="classSVF_1_1AndersenSCD_html_aeb0b3644c3bfbfa5768b92c99aeeef40"><div class="ttname"><a href="classSVF_1_1AndersenSCD.html#aeb0b3644c3bfbfa5768b92c99aeeef40">SVF::AndersenSCD::sccCandidates</a></div><div class="ttdeci">NodeSet sccCandidates</div><div class="ttdef"><b>Definition:</b> <a href="AndersenSFR_8h_source.html#l00051">AndersenSFR.h:51</a></div></div>
|
|
1307
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a3c4eaa1695ea13405911ae1621f98edc"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">SVF::PTAStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#
|
|
1307
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a3c4eaa1695ea13405911ae1621f98edc"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">SVF::PTAStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00114">PTAStat.cpp:114</a></div></div>
|
|
1308
1308
|
</div><!-- fragment -->
|
|
1309
1309
|
</div>
|
|
1310
1310
|
</div>
|
|
@@ -1338,15 +1338,15 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1338
1338
|
|
|
1339
1339
|
<p class="definition">Definition at line <a class="el" href="AndersenSCD_8cpp_source.html#l00273">273</a> of file <a class="el" href="AndersenSCD_8cpp_source.html">AndersenSCD.cpp</a>.</p>
|
|
1340
1340
|
<div class="fragment"><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keywordtype">double</span> cgUpdateStart = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#aa9661d26d1ae9c829a9296d1b6d874f4">CallEdgeMap</a> newEdges;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a9830d4676fd424b633f8e4d918734296">onTheFlyCallGraphSolve</a>(callsites,newEdges);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <a class="code" href="namespaceSVF.html#ac82022f3f81965c3ce9b26c299f537a7">NodePairSet</a> cpySrcNodes; </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">for</span>(CallEdgeMap::iterator it = newEdges.begin(), eit = newEdges.end(); it!=eit; ++it )</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(it->first->getCallSite());</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">for</span>(FunctionSet::iterator cit = it->second.begin(), ecit = it->second.end(); cit!=ecit; ++cit)</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="classSVF_1_1Andersen.html#a5a90e681e46c52ffd3debf02910c7ecf">connectCaller2CalleeParams</a>(cs,*cit,cpySrcNodes);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div><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> cgUpdateEnd = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <a class="code" href="classSVF_1_1AndersenBase.html#a2afb49f513c9534fd051117b59dc056b">timeOfUpdateCallGraph</a> += (cgUpdateEnd - cgUpdateStart) / <a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</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>  <span class="keywordflow">return</span> (!newEdges.empty());</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> }</div><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#l00374">PointerAnalysisImpl.cpp:374</a></div></div>
|
|
1341
|
-
<div class="ttc" id="namespaceSVF_html_ac82022f3f81965c3ce9b26c299f537a7"><div class="ttname"><a href="namespaceSVF.html#ac82022f3f81965c3ce9b26c299f537a7">SVF::NodePairSet</a></div><div class="ttdeci">Set< NodePair > NodePairSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
1341
|
+
<div class="ttc" id="namespaceSVF_html_ac82022f3f81965c3ce9b26c299f537a7"><div class="ttname"><a href="namespaceSVF.html#ac82022f3f81965c3ce9b26c299f537a7">SVF::NodePairSet</a></div><div class="ttdeci">Set< NodePair > NodePairSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00115">SVFBasicTypes.h:115</a></div></div>
|
|
1342
1342
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_aa9661d26d1ae9c829a9296d1b6d874f4"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aa9661d26d1ae9c829a9296d1b6d874f4">SVF::PointerAnalysis::CallEdgeMap</a></div><div class="ttdeci">OrderedMap< const CallBlockNode *, FunctionSet > CallEdgeMap</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00111">PointerAnalysis.h:111</a></div></div>
|
|
1343
1343
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_a2afb49f513c9534fd051117b59dc056b"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a2afb49f513c9534fd051117b59dc056b">SVF::AndersenBase::timeOfUpdateCallGraph</a></div><div class="ttdeci">static double timeOfUpdateCallGraph</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00144">Andersen.h:144</a></div></div>
|
|
1344
1344
|
<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#l00155">PointerAnalysis.h:155</a></div></div>
|
|
1345
|
-
<div class="ttc" id="SVFBasicTypes_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
1345
|
+
<div class="ttc" id="SVFBasicTypes_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00174">SVFBasicTypes.h:174</a></div></div>
|
|
1346
1346
|
<div class="ttc" id="classSVF_1_1Andersen_html_a5a90e681e46c52ffd3debf02910c7ecf"><div class="ttname"><a href="classSVF_1_1Andersen.html#a5a90e681e46c52ffd3debf02910c7ecf">SVF::Andersen::connectCaller2CalleeParams</a></div><div class="ttdeci">void connectCaller2CalleeParams(CallSite cs, const SVFFunction *F, NodePairSet &cpySrcNodes)</div><div class="ttdoc">Connect formal and actual parameters for indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00676">Andersen.cpp:676</a></div></div>
|
|
1347
1347
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a202de7ad2bea0311e2f75894c030e7a9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVF::SVFUtil::getLLVMCallSite</a></div><div class="ttdeci">CallSite getLLVMCallSite(const Instruction *inst)</div><div class="ttdoc">Return LLVM callsite given a instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00219">SVFUtil.h:219</a></div></div>
|
|
1348
1348
|
<div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00313">BasicTypes.h:313</a></div></div>
|
|
1349
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a3c4eaa1695ea13405911ae1621f98edc"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">SVF::PTAStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#
|
|
1349
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a3c4eaa1695ea13405911ae1621f98edc"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">SVF::PTAStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00114">PTAStat.cpp:114</a></div></div>
|
|
1350
1350
|
</div><!-- fragment -->
|
|
1351
1351
|
</div>
|
|
1352
1352
|
</div>
|
|
@@ -1051,7 +1051,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1051
1051
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
1052
1052
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
1053
1053
|
<div class="ttc" id="classSVF_1_1PAG_html_a3aa1c92eb8a6fab72996964de80f19ac"><div class="ttname"><a href="classSVF_1_1PAG.html#a3aa1c92eb8a6fab72996964de80f19ac">SVF::PAG::getPAGNode</a></div><div class="ttdeci">PAGNode * getPAGNode(NodeID id) const</div><div class="ttdoc">Get PAGNode ID. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00539">PAG.h:539</a></div></div>
|
|
1054
|
-
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
1054
|
+
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00095">SVFBasicTypes.h:95</a></div></div>
|
|
1055
1055
|
<div class="ttc" id="namespaceSVF_html_a2db29836a72e8d86e9baa6d8d55d2978"><div class="ttname"><a href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">SVF::Size_t</a></div><div class="ttdeci">signed long Size_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00078">SVFBasicTypes.h:78</a></div></div>
|
|
1056
1056
|
<div class="ttc" id="classSVF_1_1PointsTo_html_ab196d86cfb48d1c5d27a0c03c7497afa"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">SVF::PointsTo::set</a></div><div class="ttdeci">void set(u32_t n)</div><div class="ttdoc">Inserts n in the set. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00149">PointsTo.cpp:149</a></div></div>
|
|
1057
1057
|
<div class="ttc" id="classSVF_1_1PAG_html_a459e2ef671d002ef6edf25cf0bfb7924"><div class="ttname"><a href="classSVF_1_1PAG.html#a459e2ef671d002ef6edf25cf0bfb7924">SVF::PAG::getBaseObj</a></div><div class="ttdeci">const MemObj * getBaseObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00721">PAG.h:721</a></div></div>
|
|
@@ -1095,8 +1095,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1095
1095
|
<p>Reimplemented from <a class="el" href="classSVF_1_1Andersen.html#a20617a69c112ad423b1b5021e48a8548">SVF::Andersen</a>.</p>
|
|
1096
1096
|
|
|
1097
1097
|
<p class="definition">Definition at line <a class="el" href="AndersenSFR_8cpp_source.html#l00041">41</a> of file <a class="el" href="AndersenSFR_8cpp_source.html">AndersenSFR.cpp</a>.</p>
|
|
1098
|
-
<div class="fragment"><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="classSVF_1_1Andersen.html#a20617a69c112ad423b1b5021e48a8548">AndersenSCD::initialize</a>();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classSVF_1_1Andersen.html#a2b13f14db90ad59a61dff097bcdf8fb7">setPWCOpt</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1AndersenSFR.html#aa39c668b1473ac4fb99da3aa736c9edb">csc</a>)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="classSVF_1_1AndersenSFR.html#aa39c668b1473ac4fb99da3aa736c9edb">csc</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CSC.html">CSC</a>(<a class="code" href="classSVF_1_1WPASolver.html#a87e9adb7fb0e0a42abaf90adac27a9c0">_graph</a>, <a class="code" href="classSVF_1_1WPASolver.html#a21709a0f33b6238afe735cc9fe49ff70">scc</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>  <span class="comment">// detect and collapse cycles that only comprise copy edges</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="classSVF_1_1WPASolver.html#a37ca8a99b8f83fba796293e6e13b0953">getSCCDetector</a>()-><a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="classSVF_1_1Andersen.html#ac86ffd334568e4df5c08b3c827018bef">mergeSccCycle</a>();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div><div class="ttc" id="classSVF_1_1WPASolver_html_a21709a0f33b6238afe735cc9fe49ff70"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a21709a0f33b6238afe735cc9fe49ff70">SVF::WPASolver::scc</a></div><div class="ttdeci">SCC * scc</div><div class="ttdoc">SCC. </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#
|
|
1099
|
-
<div class="ttc" id="classSVF_1_1WPASolver_html_a87e9adb7fb0e0a42abaf90adac27a9c0"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a87e9adb7fb0e0a42abaf90adac27a9c0">SVF::WPASolver::_graph</a></div><div class="ttdeci">GraphType _graph</div><div class="ttdoc">Graph. </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#
|
|
1098
|
+
<div class="fragment"><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="classSVF_1_1Andersen.html#a20617a69c112ad423b1b5021e48a8548">AndersenSCD::initialize</a>();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classSVF_1_1Andersen.html#a2b13f14db90ad59a61dff097bcdf8fb7">setPWCOpt</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1AndersenSFR.html#aa39c668b1473ac4fb99da3aa736c9edb">csc</a>)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="classSVF_1_1AndersenSFR.html#aa39c668b1473ac4fb99da3aa736c9edb">csc</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CSC.html">CSC</a>(<a class="code" href="classSVF_1_1WPASolver.html#a87e9adb7fb0e0a42abaf90adac27a9c0">_graph</a>, <a class="code" href="classSVF_1_1WPASolver.html#a21709a0f33b6238afe735cc9fe49ff70">scc</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>  <span class="comment">// detect and collapse cycles that only comprise copy edges</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="classSVF_1_1WPASolver.html#a37ca8a99b8f83fba796293e6e13b0953">getSCCDetector</a>()-><a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="classSVF_1_1Andersen.html#ac86ffd334568e4df5c08b3c827018bef">mergeSccCycle</a>();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div><div class="ttc" id="classSVF_1_1WPASolver_html_a21709a0f33b6238afe735cc9fe49ff70"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a21709a0f33b6238afe735cc9fe49ff70">SVF::WPASolver::scc</a></div><div class="ttdeci">SCC * scc</div><div class="ttdoc">SCC. </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00199">WPASolver.h:199</a></div></div>
|
|
1099
|
+
<div class="ttc" id="classSVF_1_1WPASolver_html_a87e9adb7fb0e0a42abaf90adac27a9c0"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a87e9adb7fb0e0a42abaf90adac27a9c0">SVF::WPASolver::_graph</a></div><div class="ttdeci">GraphType _graph</div><div class="ttdoc">Graph. </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00196">WPASolver.h:196</a></div></div>
|
|
1100
1100
|
<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>
|
|
1101
1101
|
<div class="ttc" id="classSVF_1_1AndersenSFR_html_aa39c668b1473ac4fb99da3aa736c9edb"><div class="ttname"><a href="classSVF_1_1AndersenSFR.html#aa39c668b1473ac4fb99da3aa736c9edb">SVF::AndersenSFR::csc</a></div><div class="ttdeci">CSC * csc</div><div class="ttdef"><b>Definition:</b> <a href="AndersenSFR_8h_source.html#l00112">AndersenSFR.h:112</a></div></div>
|
|
1102
1102
|
<div class="ttc" id="classSVF_1_1Andersen_html_a20617a69c112ad423b1b5021e48a8548"><div class="ttname"><a href="classSVF_1_1Andersen.html#a20617a69c112ad423b1b5021e48a8548">SVF::Andersen::initialize</a></div><div class="ttdeci">virtual void initialize()</div><div class="ttdoc">Initialize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00175">Andersen.cpp:175</a></div></div>
|
|
@@ -1192,9 +1192,9 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1192
1192
|
<p>Propagate point-to set via a gep edge, using SFR </p>
|
|
1193
1193
|
|
|
1194
1194
|
<p class="definition">Definition at line <a class="el" href="AndersenSFR_8cpp_source.html#l00083">83</a> of file <a class="el" href="AndersenSFR_8cpp_source.html">AndersenSFR.cpp</a>.</p>
|
|
1195
|
-
<div class="fragment"><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dst = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstId = dst-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</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="keywordflow">if</span> (!dst-><a class="code" href="classSVF_1_1ConstraintNode.html#a873ba0c14dc57bd603c4a6b4d73e4278">strides</a>.empty() && SVFUtil::isa<NormalGepCGEdge>(edge)) <span class="comment">// dst is in pwc</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> tmpDstPts;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> srcInits = pts - <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(dstId);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">if</span> (!srcInits.<a class="code" href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">empty</a>())</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> sortSrcInits;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd : srcInits)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  sortSrcInits.insert(ptd);</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="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> offset = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>>(edge)->getOffset();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="classSVF_1_1AndersenSFR.html#a78e48b3c3db39470ab47b92bbc577e7e">fieldExpand</a>(sortSrcInits, offset, dst-><a class="code" href="classSVF_1_1ConstraintNode.html#a873ba0c14dc57bd603c4a6b4d73e4278">strides</a>, tmpDstPts);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Andersen.html#ab7dadfd4d810be4863f03ed996b3b3c4">unionPts</a>(dstId, tmpDstPts))</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">pushIntoWorklist</a>(dstId);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">return</span> <span class="keyword">true</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="keywordflow">else</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</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="keywordflow">else</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Andersen.html#ac6b1efcaadfed48c226701ecf6bac55e">Andersen::processGepPts</a>(pts, edge);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> }</div><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#
|
|
1195
|
+
<div class="fragment"><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dst = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstId = dst-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</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="keywordflow">if</span> (!dst-><a class="code" href="classSVF_1_1ConstraintNode.html#a873ba0c14dc57bd603c4a6b4d73e4278">strides</a>.empty() && SVFUtil::isa<NormalGepCGEdge>(edge)) <span class="comment">// dst is in pwc</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> tmpDstPts;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> srcInits = pts - <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(dstId);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">if</span> (!srcInits.<a class="code" href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">empty</a>())</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> sortSrcInits;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd : srcInits)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  sortSrcInits.insert(ptd);</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="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> offset = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>>(edge)->getOffset();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="classSVF_1_1AndersenSFR.html#a78e48b3c3db39470ab47b92bbc577e7e">fieldExpand</a>(sortSrcInits, offset, dst-><a class="code" href="classSVF_1_1ConstraintNode.html#a873ba0c14dc57bd603c4a6b4d73e4278">strides</a>, tmpDstPts);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Andersen.html#ab7dadfd4d810be4863f03ed996b3b3c4">unionPts</a>(dstId, tmpDstPts))</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">pushIntoWorklist</a>(dstId);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">return</span> <span class="keyword">true</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="keywordflow">else</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</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="keywordflow">else</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Andersen.html#ac6b1efcaadfed48c226701ecf6bac55e">Andersen::processGepPts</a>(pts, edge);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> }</div><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#l00162">WPASolver.h:162</a></div></div>
|
|
1196
1196
|
<div class="ttc" id="classSVF_1_1Andersen_html_a187285a5bdf9422d9188b2b11b667639"><div class="ttname"><a href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">SVF::Andersen::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID id)</div><div class="ttdoc">Operation of points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00222">Andersen.h:222</a></div></div>
|
|
1197
|
-
<div class="ttc" id="namespaceSVF_html_a212231734fa43d5c7414137deaac7df3"><div class="ttname"><a href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">SVF::NodeSet</a></div><div class="ttdeci">Set< NodeID > NodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
1197
|
+
<div class="ttc" id="namespaceSVF_html_a212231734fa43d5c7414137deaac7df3"><div class="ttname"><a href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">SVF::NodeSet</a></div><div class="ttdeci">Set< NodeID > NodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00114">SVFBasicTypes.h:114</a></div></div>
|
|
1198
1198
|
<div class="ttc" id="classSVF_1_1Andersen_html_ab7dadfd4d810be4863f03ed996b3b3c4"><div class="ttname"><a href="classSVF_1_1Andersen.html#ab7dadfd4d810be4863f03ed996b3b3c4">SVF::Andersen::unionPts</a></div><div class="ttdeci">virtual bool unionPts(NodeID id, const PointsTo &target)</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00226">Andersen.h:226</a></div></div>
|
|
1199
1199
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
1200
1200
|
<div class="ttc" id="classSVF_1_1NormalGepCGEdge_html"><div class="ttname"><a href="classSVF_1_1NormalGepCGEdge.html">SVF::NormalGepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00265">ConsGEdge.h:265</a></div></div>
|
|
@@ -81,9 +81,11 @@ $(function() {
|
|
|
81
81
|
<tr><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#adb0edbe88a74e5e89921bcfafa4759c6">AveragePointsToSetSize</a></td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
|
82
82
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#a1649c9f893c5b9ec2d57a399bc050030">AverageTopLevPointsToSetSize</a></td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
|
83
83
|
<tr><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#a1772bc87370b5625f71edd4476277064">callgraphStat</a>()</td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
|
|
84
|
-
<tr class="even"><td class="entry"><a class="el" href="
|
|
85
|
-
<tr><td class="entry"><a class="el" href="classSVF_1_1AndersenStat.html#
|
|
86
|
-
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1AndersenStat.html#
|
|
84
|
+
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#a926cd5ab95f4f42ffe264413a32725cf">ClockType</a> enum name</td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"></td></tr>
|
|
85
|
+
<tr><td class="entry"><a class="el" href="classSVF_1_1AndersenStat.html#a3f5739454b1f4e03b4388a4ba5730e15">CollapseTime</a></td><td class="entry"><a class="el" href="classSVF_1_1AndersenStat.html">SVF::AndersenStat</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
|
86
|
+
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1AndersenStat.html#ae35507bebe6a1a9a64ab379473c85cad">collectCycleInfo</a>(ConstraintGraph *consCG)</td><td class="entry"><a class="el" href="classSVF_1_1AndersenStat.html">SVF::AndersenStat</a></td><td class="entry"></td></tr>
|
|
87
|
+
<tr><td class="entry"><a class="el" href="classSVF_1_1AndersenStat.html#a5ad75166a80052f9e6fdd14ff7c8b948">constraintGraphStat</a>()</td><td class="entry"><a class="el" href="classSVF_1_1AndersenStat.html">SVF::AndersenStat</a></td><td class="entry"></td></tr>
|
|
88
|
+
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#a926cd5ab95f4f42ffe264413a32725cfa518df17b11048afda951359227f53d2d">CPU</a> enum value</td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"></td></tr>
|
|
87
89
|
<tr><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#afe854f7416ea408104721a083ee9fee0">endClk</a>()</td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
|
|
88
90
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#a267ba4aac2e7ceb65f008f9486d3d9f7">endTime</a></td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"></td></tr>
|
|
89
91
|
<tr><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a></td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"></td></tr>
|
|
@@ -145,16 +147,17 @@ $(function() {
|
|
|
145
147
|
<tr><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#a5524ff7901659f56e9de343992be8f3b">startClk</a>()</td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
|
|
146
148
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#a59e0fe6fa506f1cf319b5acaf9d28be9">startTime</a></td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"></td></tr>
|
|
147
149
|
<tr><td class="entry"><a class="el" href="classSVF_1_1AndersenStat.html#a898f091cd9aeed4b0cf5b338b8a3b1d3">statNullPtr</a>()</td><td class="entry"><a class="el" href="classSVF_1_1AndersenStat.html">SVF::AndersenStat</a></td><td class="entry"></td></tr>
|
|
148
|
-
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#
|
|
149
|
-
<tr><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#
|
|
150
|
+
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a></td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"></td></tr>
|
|
151
|
+
<tr><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#a28f304e7095f3843ca4cc017bc1f7b10">TIMEStatMap</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"></td></tr>
|
|
150
152
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#a25001a6d794d91056f37d954d9660910">TotalAnalysisTime</a></td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
|
151
153
|
<tr><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#a3afc0a36232a0388d8aa42c68219cb26">TotalNumOfEdges</a></td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
|
152
154
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#ac0e0a1c49d33e02f5cc0f21565ce627d">TotalNumOfFieldObjects</a></td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
|
153
155
|
<tr><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#acd9848f15aa359550e86c7b857df84ed">TotalNumOfObjects</a></td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
|
154
156
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#a1a4d418fd9e5413e7ffbbfe57f5e0560">TotalNumOfPointers</a></td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
|
155
157
|
<tr><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#a8aedfeb35f76e6d33135637156468894">UpdateCallGraphTime</a></td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
|
156
|
-
<tr class="even"><td class="entry"><a class="el" href="
|
|
157
|
-
<tr><td class="entry"><a class="el" href="
|
|
158
|
+
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#a926cd5ab95f4f42ffe264413a32725cfa6c9d7a9709df10eb67ce27e744e0f61c">Wall</a> enum value</td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"></td></tr>
|
|
159
|
+
<tr><td class="entry"><a class="el" href="classSVF_1_1AndersenStat.html#a31c59fe771f44b32a7d58145eb44a971">~AndersenStat</a>()</td><td class="entry"><a class="el" href="classSVF_1_1AndersenStat.html">SVF::AndersenStat</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
|
|
160
|
+
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html#a1e5294c49b8bd8a850e938dccd5800a5">~PTAStat</a>()</td><td class="entry"><a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
|
|
158
161
|
</table></div><!-- contents -->
|
|
159
162
|
<!-- start footer part -->
|
|
160
163
|
<hr class="footer"/><address class="footer"><small>
|