svf-tools 1.0.310 → 1.0.311
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/AndersenLCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/Andersen_8h_source.html +8 -8
- package/SVF-doxygen/html/html/CHG_8cpp.html +1 -1
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/CHG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/CallGraphBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/ConsG_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +4 -4
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/DCHG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExternalPAG_8cpp.html +1 -1
- package/SVF-doxygen/html/html/ExternalPAG_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/ExternalPAG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +4 -4
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +82 -81
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +4 -4
- 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 +3 -3
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/ICFG_8h_source.html +6 -6
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +4 -4
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +4 -4
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +13 -13
- 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 +1 -1
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/MTA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemModel_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Options_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PAGBuilder_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/PAGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PAGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PAGNode_8h_source.html +6 -6
- package/SVF-doxygen/html/html/PAG_8cpp_source.html +27 -27
- package/SVF-doxygen/html/html/PAG_8h_source.html +17 -17
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/PTAType_8h_source.html +4 -4
- package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +34 -33
- package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +7 -7
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +66 -66
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +8 -8
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/SVFG_8h_source.html +7 -7
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFModule_8h.html +3 -0
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +53 -46
- package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +16 -16
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/TCT_8h_source.html +10 -10
- package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/VFG_8h_source.html +6 -6
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +1 -1
- 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_1ActualParmVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AddrPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiffWithType.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +69 -68
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +115 -115
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1CopyPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DummyValPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExternalPAG.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1FIObjPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +38 -38
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +5 -5
- 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_1GenericGraph.html +47 -47
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +58 -57
- package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +17 -17
- 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_1LoadVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LocObjTypeInfo.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LocSymTableInfo.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ObjPN.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PAG.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilder.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PAGEdge.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1PAGNode.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +39 -38
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +153 -116
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +2 -2
- 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_1RetPN.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +35 -35
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule-members.html +1 -0
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +110 -77
- package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1StorePE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +66 -65
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +4 -4
- 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_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ValPN.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +5 -5
- package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
- package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/functions_0x7e.html +3 -0
- package/SVF-doxygen/html/html/functions_c.html +27 -26
- package/SVF-doxygen/html/html/functions_func_0x7e.html +3 -0
- package/SVF-doxygen/html/html/functions_func_c.html +11 -10
- package/SVF-doxygen/html/html/functions_i.html +3 -3
- package/SVF-doxygen/html/html/functions_r.html +1 -1
- package/SVF-doxygen/html/html/functions_s.html +12 -12
- package/SVF-doxygen/html/html/functions_u.html +3 -3
- package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
- package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
- package/SVF-doxygen/html/html/saber_8cpp.html +1 -1
- package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/search/all_10.js +5 -5
- package/SVF-doxygen/html/html/search/all_12.js +1 -1
- package/SVF-doxygen/html/html/search/all_13.js +8 -8
- package/SVF-doxygen/html/html/search/all_14.js +2 -2
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_1b.js +1 -0
- package/SVF-doxygen/html/html/search/all_3.js +1 -1
- package/SVF-doxygen/html/html/search/all_9.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +2 -2
- package/SVF-doxygen/html/html/search/functions_16.js +1 -0
- package/SVF-doxygen/html/html/search/functions_2.js +1 -1
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PAG_01_5_01_4.html +17 -17
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_4_01_4.html +14 -14
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1GenericGraph_3_01NodeTy_00_01EdgeTy_01_4_01_5_4.html +20 -20
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_01_4.html +16 -16
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +5 -5
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
- package/include/Graphs/GenericGraph.h +5 -8
- package/include/MemoryModel/PersistentPointsToCache.h +13 -7
- package/include/MemoryModel/PointerAnalysisImpl.h +1 -0
- package/include/Util/SVFModule.h +16 -0
- package/lib/Graphs/PAG.cpp +3 -10
- package/lib/SVF-FE/SymbolTableInfo.cpp +3 -0
- package/lib/Util/Options.cpp +2 -2
- package/package.json +1 -1
|
@@ -68,7 +68,7 @@ $(function() {
|
|
|
68
68
|
<div class="contents">
|
|
69
69
|
<a href="PAG_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===- PAG.h -- Program assignment graph--------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * PAG.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * Created on: Nov 1, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef PAG_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#define PAG_H_</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="PAGEdge_8h.html">PAGEdge.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="PAGNode_8h.html">PAGNode.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="NodeIDAllocator_8h.html">Util/NodeIDAllocator.h</a>"</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="SVFUtil_8h.html">Util/SVFUtil.h</a>"</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="ICFG_8h.html">Graphs/ICFG.h</a>"</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html"> 47</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1PAG.html">PAG</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1GenericGraph.html">GenericGraph</a><PAGNode,PAGEdge></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> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#af34fb84e6a39ff6b23aa5e9381c7c80c"> 51</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const CallBlockNode*></a> <a class="code" href="classSVF_1_1PAG.html#af34fb84e6a39ff6b23aa5e9381c7c80c">CallSiteSet</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a52d16d0b3547a61b174424b91670e2ff"> 52</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap<const CallBlockNode*,NodeID></a> <a class="code" href="classSVF_1_1PAG.html#a52d16d0b3547a61b174424b91670e2ff">CallSiteToFunPtrMap</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ac24bbcc45a1c868705dac9204ff17316"> 53</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID,CallSiteSet></a> <a class="code" href="classSVF_1_1PAG.html#ac24bbcc45a1c868705dac9204ff17316">FunPtrToCallSitesMap</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a49da7e7d6273a0d8798166f95ce6bb16"> 54</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID,NodeBS></a> <a class="code" href="classSVF_1_1PAG.html#a49da7e7d6273a0d8798166f95ce6bb16">MemObjToFieldsMap</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ab18ceda2810981f4d4bb47ac88705577"> 55</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const PAGEdge*></a> <a class="code" href="classSVF_1_1PAG.html#ab18ceda2810981f4d4bb47ac88705577">PAGEdgeSet</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a3b70f1f3b785d735243962e83e210652"> 56</a></span>  <span class="keyword">typedef</span> std::vector<const PAGEdge*> <a class="code" href="classSVF_1_1PAG.html#a3b70f1f3b785d735243962e83e210652">PAGEdgeList</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a1aedb70211aa31a4741615e611d64397"> 57</a></span>  <span class="keyword">typedef</span> std::vector<const PAGNode*> <a class="code" href="classSVF_1_1PAG.html#a1aedb70211aa31a4741615e611d64397">PAGNodeList</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a7bdc824c927d79b624e93c1135ab98a6"> 58</a></span>  <span class="keyword">typedef</span> std::vector<const CopyPE*> <a class="code" href="classSVF_1_1PAG.html#a7bdc824c927d79b624e93c1135ab98a6">CopyPEList</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a22595c35a89f82adf447c6924dbbb8b2"> 59</a></span>  <span class="keyword">typedef</span> std::vector<const BinaryOPPE*> <a class="code" href="classSVF_1_1PAG.html#a22595c35a89f82adf447c6924dbbb8b2">BinaryOPList</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a6b8c71339e37338402b82734145898b6"> 60</a></span>  <span class="keyword">typedef</span> std::vector<const UnaryOPPE*> <a class="code" href="classSVF_1_1PAG.html#a6b8c71339e37338402b82734145898b6">UnaryOPList</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ab33607f8f36bf0a47e91ac510872a60e"> 61</a></span>  <span class="keyword">typedef</span> std::vector<const CmpPE*> <a class="code" href="classSVF_1_1PAG.html#ab33607f8f36bf0a47e91ac510872a60e">CmpPEList</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#aaf91fa0a5807355e276eeaeee0638aea"> 62</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const PAGNode*,CopyPEList></a> <a class="code" href="classSVF_1_1PAG.html#aaf91fa0a5807355e276eeaeee0638aea">PHINodeMap</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#aa9479778e9fe166b17bb765a7a1668a2"> 63</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const PAGNode*,BinaryOPList></a> <a class="code" href="classSVF_1_1PAG.html#aa9479778e9fe166b17bb765a7a1668a2">BinaryNodeMap</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a471804c7fbdfacd90915c3a9cec7fccd"> 64</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const PAGNode*,UnaryOPList></a> <a class="code" href="classSVF_1_1PAG.html#a471804c7fbdfacd90915c3a9cec7fccd">UnaryNodeMap</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a373335a3c28622cfc0aeb1ef7ae8ccf7"> 65</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const PAGNode*,CmpPEList></a> <a class="code" href="classSVF_1_1PAG.html#a373335a3c28622cfc0aeb1ef7ae8ccf7">CmpNodeMap</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a11b3e5d1aacf8a199b4ad35ce8cbca04"> 66</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFFunction*,PAGNodeList></a> <a class="code" href="classSVF_1_1PAG.html#a11b3e5d1aacf8a199b4ad35ce8cbca04">FunToArgsListMap</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#aeb293a1fc183c51053bdeb749d094e5a"> 67</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const CallBlockNode*,PAGNodeList></a> <a class="code" href="classSVF_1_1PAG.html#aeb293a1fc183c51053bdeb749d094e5a">CSToArgsListMap</a>;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a7b983e115709d3461be9f24395c87ab4"> 68</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const RetBlockNode*,const PAGNode*></a> <a class="code" href="classSVF_1_1PAG.html#a7b983e115709d3461be9f24395c87ab4">CSToRetMap</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a46ce928b6bfa06c0b4a08cd3c282f696"> 69</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFFunction*,const PAGNode*></a> <a class="code" href="classSVF_1_1PAG.html#a46ce928b6bfa06c0b4a08cd3c282f696">FunToRetMap</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a369ea2832e74716757a7d4afa7cb5d60"> 70</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFFunction*,PAGEdgeSet></a> <a class="code" href="classSVF_1_1PAG.html#a369ea2832e74716757a7d4afa7cb5d60">FunToPAGEdgeSetMap</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a8fb39e9156bb5cf07dc2329bfcfcd6f7"> 71</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const ICFGNode*,PAGEdgeList></a> <a class="code" href="classSVF_1_1PAG.html#a8fb39e9156bb5cf07dc2329bfcfcd6f7">Inst2PAGEdgesMap</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a8974543192816d31127076f5f7292825"> 72</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, NodeID></a> <a class="code" href="classSVF_1_1PAG.html#a8974543192816d31127076f5f7292825">NodeToNodeMap</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a9849898bac3644021638380b60f96891"> 73</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const Value*,PAGEdgeSet></a> <a class="code" href="classSVF_1_1PAG.html#a9849898bac3644021638380b60f96891">ValueToEdgeMap</a>;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ab17a2bedce0f05951ff19934c317460e"> 74</a></span>  <span class="keyword">typedef</span> std::pair<NodeID, Size_t> <a class="code" href="classSVF_1_1PAG.html#ab17a2bedce0f05951ff19934c317460e">NodeOffset</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a3aea90fd18662381bb601779b7c63275"> 75</a></span>  <span class="keyword">typedef</span> std::pair<NodeID, LocationSet> <a class="code" href="classSVF_1_1PAG.html#a3aea90fd18662381bb601779b7c63275">NodeLocationSet</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#afc24739cd11b6a85e1e62b8a409a2e56"> 76</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeOffset,NodeID></a> <a class="code" href="classSVF_1_1PAG.html#afc24739cd11b6a85e1e62b8a409a2e56">NodeOffsetMap</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a80b31ccc3263c7d5d93aa1247eea0853"> 77</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeLocationSet,NodeID></a> <a class="code" href="classSVF_1_1PAG.html#a80b31ccc3263c7d5d93aa1247eea0853">NodeLocationSetMap</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a213d27e032e81e61a72be710e5f0de74"> 78</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const Value*, NodeLocationSetMap></a> <a class="code" href="classSVF_1_1PAG.html#a213d27e032e81e61a72be710e5f0de74">GepValPNMap</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#af77e6ff9106bcb2502ceb7ce885d11a6"> 79</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodePair,NodeID></a> <a class="code" href="classSVF_1_1PAG.html#af77e6ff9106bcb2502ceb7ce885d11a6">NodePairSetMap</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#acebd1174f9bbeeb35ccfdf87a8f0998a"> 82</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html">SymbolTableInfo</a>* <a class="code" href="classSVF_1_1PAG.html#acebd1174f9bbeeb35ccfdf87a8f0998a">symInfo</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a32c107e02c73642ff4afd08b6cf22232"> 85</a></span>  <a class="code" href="classSVF_1_1PAGEdge.html#ac42a778eef6bd1c088233da9a8552a84">PAGEdge::PAGKindToEdgeSetMapTy</a> <a class="code" href="classSVF_1_1PAG.html#a32c107e02c73642ff4afd08b6cf22232">PAGEdgeKindToSetMap</a>; <span class="comment">// < PAG edge map containing all PAGEdges</span></div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ae297792b6cf9e7782ef4268f48c01748"> 86</a></span>  <a class="code" href="classSVF_1_1PAGEdge.html#ac42a778eef6bd1c088233da9a8552a84">PAGEdge::PAGKindToEdgeSetMapTy</a> <a class="code" href="classSVF_1_1PAG.html#ae297792b6cf9e7782ef4268f48c01748">PTAPAGEdgeKindToSetMap</a>; <span class="comment">// < PAG edge map containing only pointer-related edges, i.e, both RHS and RHS are of pointer type</span></div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ace643a606d59eb972d0f55590745bd5f"> 87</a></span>  Inst2PAGEdgesMap <a class="code" href="classSVF_1_1PAG.html#ace643a606d59eb972d0f55590745bd5f">inst2PAGEdgesMap</a>; </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a925ccfc7169d5c03bffbe945dedc90b6"> 88</a></span>  Inst2PAGEdgesMap <a class="code" href="classSVF_1_1PAG.html#a925ccfc7169d5c03bffbe945dedc90b6">inst2PTAPAGEdgesMap</a>; </div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#afe6d92c90401918b58644a575928012c"> 89</a></span>  GepValPNMap <a class="code" href="classSVF_1_1PAG.html#afe6d92c90401918b58644a575928012c">GepValNodeMap</a>; </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#aac2a1bfebed4b363e9477a3745184a2a"> 90</a></span>  NodeLocationSetMap <a class="code" href="classSVF_1_1PAG.html#aac2a1bfebed4b363e9477a3745184a2a">GepObjNodeMap</a>; </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#abe896f8fd3c8adc60bbb1a23862da8df"> 91</a></span>  MemObjToFieldsMap <a class="code" href="classSVF_1_1PAG.html#abe896f8fd3c8adc60bbb1a23862da8df">memToFieldsMap</a>; </div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a1235a44b3fed25e3d3bcfc868948822f"> 92</a></span>  PAGEdgeSet <a class="code" href="classSVF_1_1PAG.html#a1235a44b3fed25e3d3bcfc868948822f">globPAGEdgesSet</a>; </div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#af3158e346a519beca6aebf6c9092efc0"> 93</a></span>  PHINodeMap <a class="code" href="classSVF_1_1PAG.html#af3158e346a519beca6aebf6c9092efc0">phiNodeMap</a>; </div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ac312c15d6c41f4c97e1a5f66b0036c06"> 94</a></span>  BinaryNodeMap <a class="code" href="classSVF_1_1PAG.html#ac312c15d6c41f4c97e1a5f66b0036c06">binaryNodeMap</a>; </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a5c450f3a87983c66a477081acd97a49f"> 95</a></span>  UnaryNodeMap <a class="code" href="classSVF_1_1PAG.html#a5c450f3a87983c66a477081acd97a49f">unaryNodeMap</a>; </div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ab51dc1fa314705f66d3319ea95adfc68"> 96</a></span>  CmpNodeMap <a class="code" href="classSVF_1_1PAG.html#ab51dc1fa314705f66d3319ea95adfc68">cmpNodeMap</a>; </div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#aab9fa0c0f7f83055f7335fe7cf607f97"> 97</a></span>  FunToArgsListMap <a class="code" href="classSVF_1_1PAG.html#aab9fa0c0f7f83055f7335fe7cf607f97">funArgsListMap</a>; </div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#acc5e6a8469badb11c8f56738be4deb63"> 98</a></span>  CSToArgsListMap <a class="code" href="classSVF_1_1PAG.html#acc5e6a8469badb11c8f56738be4deb63">callSiteArgsListMap</a>; </div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#af63c417d121e37fd0427aa25ef5b15da"> 99</a></span>  CSToRetMap <a class="code" href="classSVF_1_1PAG.html#af63c417d121e37fd0427aa25ef5b15da">callSiteRetMap</a>; </div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a2742d22cfc819f0c8f7e6880c0cfbaf4"> 100</a></span>  FunToRetMap <a class="code" href="classSVF_1_1PAG.html#a2742d22cfc819f0c8f7e6880c0cfbaf4">funRetMap</a>; </div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a42b57f4523f30b0f739b1285ea744766"> 101</a></span>  ValueToEdgeMap <a class="code" href="classSVF_1_1PAG.html#a42b57f4523f30b0f739b1285ea744766">valueToEdgeMap</a>; </div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a50d0968c6a467ab224ebc73d8beff852"> 102</a></span>  <span class="keyword">static</span> <a class="code" href="classSVF_1_1PAG.html">PAG</a>* <a class="code" href="classSVF_1_1PAG.html#a50d0968c6a467ab224ebc73d8beff852">pag</a>; </div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a704bbd07934ac14c08ab891946292c04"> 103</a></span>  CallSiteToFunPtrMap <a class="code" href="classSVF_1_1PAG.html#a704bbd07934ac14c08ab891946292c04">indCallSiteToFunPtrMap</a>; </div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a6cf9a9e75749e898d39026cb8c225c92"> 104</a></span>  FunPtrToCallSitesMap <a class="code" href="classSVF_1_1PAG.html#a6cf9a9e75749e898d39026cb8c225c92">funPtrToCallSitesMap</a>; </div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a682355bd8e695faedbe5546f98636ee0"> 105</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#a682355bd8e695faedbe5546f98636ee0">fromFile</a>; </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a> <a class="code" href="classSVF_1_1PAG.html#aada10ac92c40951586031271478248c2">candidatePointers</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a911d401c9572219d08552ea96635e081"> 109</a></span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#a911d401c9572219d08552ea96635e081">nodeNumAfterPAGBuild</a>; <span class="comment">// initial node number after building PAG, excluding later added nodes, e.g., gepobj nodes</span></div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#aa26d3c84f970deaa76ae404597abf960"> 110</a></span>  <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* <a class="code" href="classSVF_1_1PAG.html#aa26d3c84f970deaa76ae404597abf960">icfg</a>; <span class="comment">// ICFG</span></div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a52e4a8cfefcde7d0acc8ae94135105a8"> 111</a></span>  CallSiteSet <a class="code" href="classSVF_1_1PAG.html#a52e4a8cfefcde7d0acc8ae94135105a8">callSiteSet</a>; </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <a class="code" href="classSVF_1_1PAG.html#a0a417d229823991031eda0b97148481c">PAG</a>(<span class="keywordtype">bool</span> buildFromFile);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#a5a6278a7244c926022288243007da790">destroy</a>();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a7bd46d36d58cc8ec70d8a42e5eb93683"> 120</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1PAG.html#a7bd46d36d58cc8ec70d8a42e5eb93683">totalPTAPAGEdge</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#af47bff6b90ad3ff83e2b4bb16c2d39b1"> 123</a></span>  <span class="keyword">inline</span> MemObjToFieldsMap& <a class="code" href="classSVF_1_1PAG.html#af47bff6b90ad3ff83e2b4bb16c2d39b1">getMemToFieldsMap</a>()</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#abe896f8fd3c8adc60bbb1a23862da8df">memToFieldsMap</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a4a25c75954a4c68104a7ebcaf35cb466"> 129</a></span>  <span class="keyword">inline</span> NodeLocationSetMap& <a class="code" href="classSVF_1_1PAG.html#a4a25c75954a4c68104a7ebcaf35cb466">getGepObjNodeMap</a>()</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#aac2a1bfebed4b363e9477a3745184a2a">GepObjNodeMap</a>;</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> </div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ad274c5c15ac51cea5d09ad08febe8c14"> 135</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* <a class="code" href="classSVF_1_1PAG.html#ad274c5c15ac51cea5d09ad08febe8c14">getICFG</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>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#aa26d3c84f970deaa76ae404597abf960">icfg</a>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#af771436bf36e2831d9c945c4dbc0be16"> 141</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a>& <a class="code" href="classSVF_1_1PAG.html#af771436bf36e2831d9c945c4dbc0be16">getAllValidPtrs</a>()</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#aada10ac92c40951586031271478248c2">candidatePointers</a>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#af4e69fb580bc8eec1064ac967f4f7cb2"> 146</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#af4e69fb580bc8eec1064ac967f4f7cb2">initialiseCandidatePointers</a>()</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="comment">// collect candidate pointers for demand-driven analysis</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">iterator</a> nIter = <a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); nIter != <a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); ++nIter)</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = nIter->first;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="comment">// do not compute points-to for isolated node</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PAG.html#a17fab82554f5a81c22c037b5813999e3">isValidPointer</a>(nodeId) == <span class="keyword">false</span>)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  candidatePointers.insert(nodeId);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ac8910c7330638bdf31c23d4cc03ba9c5"> 162</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1PAG.html">PAG</a>* <a class="code" href="classSVF_1_1PAG.html#ac8910c7330638bdf31c23d4cc03ba9c5">getPAG</a>(<span class="keywordtype">bool</span> buildFromFile = <span class="keyword">false</span>)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">if</span> (pag == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  pag = <span class="keyword">new</span> <a class="code" href="classSVF_1_1PAG.html#a0a417d229823991031eda0b97148481c">PAG</a>(buildFromFile);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#a50d0968c6a467ab224ebc73d8beff852">pag</a>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  }</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ac606fa72b7f1d0b4901519f6bba02fc7"> 170</a></span>  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#ac606fa72b7f1d0b4901519f6bba02fc7">releasePAG</a>()</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">if</span> (pag)</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1PAG.html#a50d0968c6a467ab224ebc73d8beff852">pag</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  pag = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a79b6cf7f3c13a96513b33670ef2c8df1"> 179</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1PAG.html#a79b6cf7f3c13a96513b33670ef2c8df1">~PAG</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_1PAG.html#a5a6278a7244c926022288243007da790">destroy</a>();</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#aa814a179b4e96ef9f6c8e00fb063eb0b"> 185</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#aa814a179b4e96ef9f6c8e00fb063eb0b">isBuiltFromFile</a>()</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#a682355bd8e695faedbe5546f98636ee0">fromFile</a>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#ab6f0bc584f351839c9dba440e8d382a0">handleBlackHole</a>(<span class="keywordtype">bool</span> b);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1PAG.html#a74f9e22acb40bf952c00168a221c0b00">getModule</a>()</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>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a40387a4893ae5caf58d6f786533d2f44">getModule</a>();</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  }</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a3767933efc81430ecd242879552f8a18"> 199</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#a3767933efc81430ecd242879552f8a18">addCallSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* call)</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  callSiteSet.insert(call);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  }</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a4309ced29efb4f351dafb867206bb38b"> 203</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> CallSiteSet& <a class="code" href="classSVF_1_1PAG.html#a4309ced29efb4f351dafb867206bb38b">getCallSiteSet</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#a52e4a8cfefcde7d0acc8ae94135105a8">callSiteSet</a>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1PAGEdge.html#a59eb693c90848382efa1cccb56fe82d3">PAGEdge::PAGEdgeSetTy</a>& <a class="code" href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">getEdgeSet</a>(<a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6">PAGEdge::PEDGEK</a> kind)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">return</span> PAGEdgeKindToSetMap[kind];</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ae5125dd33403e055078e1c9d6ce6d778"> 215</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1PAGEdge.html#a59eb693c90848382efa1cccb56fe82d3">PAGEdge::PAGEdgeSetTy</a>& <a class="code" href="classSVF_1_1PAG.html#ae5125dd33403e055078e1c9d6ce6d778">getPTAEdgeSet</a>(<a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6">PAGEdge::PEDGEK</a> kind)</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>  <span class="keywordflow">return</span> PTAPAGEdgeKindToSetMap[kind];</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a8b498249185812b2bd1e9bd2aac50e4e"> 220</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#a8b498249185812b2bd1e9bd2aac50e4e">hasPAGEdgeList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* inst)<span class="keyword"> const</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">return</span> inst2PAGEdgesMap.find(inst)!=inst2PAGEdgesMap.end();</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  }</div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ad6d3a47e27f3aa9f3729fd9097da27d4"> 224</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#ad6d3a47e27f3aa9f3729fd9097da27d4">hasPTAPAGEdgeList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* inst)<span class="keyword"> const</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">return</span> inst2PTAPAGEdgesMap.find(inst)!=inst2PTAPAGEdgesMap.end();</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  }</div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a0f59371e012da5b8e030d11d84e7154b"> 229</a></span>  <span class="keyword">inline</span> PAGEdgeList& <a class="code" href="classSVF_1_1PAG.html#a0f59371e012da5b8e030d11d84e7154b">getInstPAGEdgeList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* inst)</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">return</span> inst2PAGEdgesMap[inst];</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  }</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a05751b2d055ea53b8a3452ead8380813"> 234</a></span>  <span class="keyword">inline</span> PAGEdgeList& <a class="code" href="classSVF_1_1PAG.html#a05751b2d055ea53b8a3452ead8380813">getInstPTAPAGEdgeList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* inst)</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>  <span class="keywordflow">return</span> inst2PTAPAGEdgesMap[inst];</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a13028887a4b608ace787c683cbd01209"> 239</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#a13028887a4b608ace787c683cbd01209">addToInstPAGEdgeList</a>(<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* inst, <a class="code" href="classSVF_1_1PAGEdge.html">PAGEdge</a>* edge)</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  edge-><a class="code" href="classSVF_1_1PAGEdge.html#a4cbbf44ec07d829f3c6d75dee2a30cee">setICFGNode</a>(inst);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  inst2PAGEdgesMap[inst].push_back(edge);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">if</span> (edge-><a class="code" href="classSVF_1_1PAGEdge.html#a3d5a75d4f3792f90bf6ee58776512154">isPTAEdge</a>())</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  inst2PTAPAGEdgesMap[inst].push_back(edge);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  }</div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#adfd70b02bb37f3e17cb7d2edda2cf047"> 247</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#adfd70b02bb37f3e17cb7d2edda2cf047">addGlobalPAGEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGEdge.html">PAGEdge</a>* edge)</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  {</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  globPAGEdgesSet.insert(edge);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  }</div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#acb2c9f92f0ed39f1cd823876c37510d3"> 252</a></span>  <span class="keyword">inline</span> PAGEdgeSet& <a class="code" href="classSVF_1_1PAG.html#acb2c9f92f0ed39f1cd823876c37510d3">getGlobalPAGEdgeSet</a>()</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#a1235a44b3fed25e3d3bcfc868948822f">globPAGEdgesSet</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  }</div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ad117554c86d9e1ed90231032c96504b0"> 257</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#ad117554c86d9e1ed90231032c96504b0">addPhiNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* res, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyPE.html">CopyPE</a>* edge)</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  phiNodeMap[res].push_back(edge);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  }</div><div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a9f33422f70dc4efeb741042564aac0ba"> 262</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#a9f33422f70dc4efeb741042564aac0ba">isPhiNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node)<span class="keyword"> const</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">return</span> phiNodeMap.find(node) != phiNodeMap.end();</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ad81e9de87891387c6fc860d964316d4f"> 267</a></span>  <span class="keyword">inline</span> PHINodeMap& <a class="code" href="classSVF_1_1PAG.html#ad81e9de87891387c6fc860d964316d4f">getPhiNodeMap</a>()</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#af3158e346a519beca6aebf6c9092efc0">phiNodeMap</a>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  }</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a582b8b5ca32b0fbb984e62c55b408bfc"> 272</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> CopyPEList& <a class="code" href="classSVF_1_1PAG.html#a582b8b5ca32b0fbb984e62c55b408bfc">getPhiCopyPEs</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node)<span class="keyword"> const</span>{</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  PHINodeMap::const_iterator it = phiNodeMap.find(node);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != phiNodeMap.end() && <span class="stringliteral">"PhiCopyPEs not found!"</span>);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  }</div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ad7b5d745134fa564934aa892f38a6990"> 278</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#ad7b5d745134fa564934aa892f38a6990">addBinaryNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* res, <span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPPE.html">BinaryOPPE</a>* edge)</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  binaryNodeMap[res].push_back(edge);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  }</div><div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ab5292b85206dfa622cff12146755d616"> 283</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#ab5292b85206dfa622cff12146755d616">isBinaryNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node)<span class="keyword"> const</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">return</span> binaryNodeMap.find(node) != binaryNodeMap.end();</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a6931eafe066036139d2538340ef9b95b"> 288</a></span>  <span class="keyword">inline</span> BinaryNodeMap& <a class="code" href="classSVF_1_1PAG.html#a6931eafe066036139d2538340ef9b95b">getBinaryNodeMap</a>()</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  {</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#ac312c15d6c41f4c97e1a5f66b0036c06">binaryNodeMap</a>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  }</div><div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ae7ac5823205b4282b53d400dc45e6c21"> 293</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> BinaryOPList& <a class="code" href="classSVF_1_1PAG.html#ae7ac5823205b4282b53d400dc45e6c21">getBinaryPEs</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node)<span class="keyword"> const</span>{</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  BinaryNodeMap::const_iterator it = binaryNodeMap.find(node);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != binaryNodeMap.end() && <span class="stringliteral">"BinaryPEs not found!"</span>);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a6b0f6fd131875d60b51d6c29577b8f29"> 299</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#a6b0f6fd131875d60b51d6c29577b8f29">addUnaryNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* res, <span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPPE.html">UnaryOPPE</a>* edge)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  unaryNodeMap[res].push_back(edge);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  }</div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ac0e8f9b3b7255479b70aecb97e9f8f00"> 304</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#ac0e8f9b3b7255479b70aecb97e9f8f00">isUnaryNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node)<span class="keyword"> const</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">return</span> unaryNodeMap.find(node) != unaryNodeMap.end();</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  }</div><div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a71a4647b6ac6a67d69ba580b3f5cac6a"> 309</a></span>  <span class="keyword">inline</span> UnaryNodeMap& <a class="code" href="classSVF_1_1PAG.html#a71a4647b6ac6a67d69ba580b3f5cac6a">getUnaryNodeMap</a>()</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  {</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#a5c450f3a87983c66a477081acd97a49f">unaryNodeMap</a>;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  }</div><div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#afaeb005000260534f63afd4b35d7a58e"> 314</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> UnaryOPList& <a class="code" href="classSVF_1_1PAG.html#afaeb005000260534f63afd4b35d7a58e">getUnaryPEs</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node)<span class="keyword"> const</span>{</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  UnaryNodeMap::const_iterator it = unaryNodeMap.find(node);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != unaryNodeMap.end() && <span class="stringliteral">"UnaryPEs not found!"</span>);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div><div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a8485560177f2e3a4098b4b7d5ba3282c"> 320</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#a8485560177f2e3a4098b4b7d5ba3282c">addCmpNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* res, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpPE.html">CmpPE</a>* edge)</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  {</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  cmpNodeMap[res].push_back(edge);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  }</div><div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ab10f10221807584aa4547a612cb40a8b"> 325</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#ab10f10221807584aa4547a612cb40a8b">isCmpNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node)<span class="keyword"> const</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keywordflow">return</span> cmpNodeMap.find(node) != cmpNodeMap.end();</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  }</div><div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a667b240e083d720b486a47308e36ae55"> 330</a></span>  <span class="keyword">inline</span> CmpNodeMap& <a class="code" href="classSVF_1_1PAG.html#a667b240e083d720b486a47308e36ae55">getCmpNodeMap</a>()</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  {</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#ab51dc1fa314705f66d3319ea95adfc68">cmpNodeMap</a>;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  }</div><div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a8154e4aef8e24147d9b945958aca8b18"> 335</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> CmpPEList& <a class="code" href="classSVF_1_1PAG.html#a8154e4aef8e24147d9b945958aca8b18">getCmpPEs</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node)<span class="keyword"> const</span>{</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  CmpNodeMap::const_iterator it = cmpNodeMap.find(node);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != cmpNodeMap.end() && <span class="stringliteral">"CmpPEs not found!"</span>);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#ac74bc9bfdba81862977b6148dba5becc">addFunArgs</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* arg)</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <a class="code" href="classSVF_1_1FunEntryBlockNode.html">FunEntryBlockNode</a>* funEntryBlockNode = icfg-><a class="code" href="classSVF_1_1ICFG.html#ae1ef14cdda27a2062c4c454750444108">getFunEntryBlockNode</a>(fun);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  funEntryBlockNode-><a class="code" href="classSVF_1_1FunEntryBlockNode.html#ac1a828ebeeab311c73485ffc7b0e5867">addFormalParms</a>(arg);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  funArgsListMap[fun].push_back(arg);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  }</div><div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ae99451bef14af36312dbf45e3447bb22"> 352</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#ae99451bef14af36312dbf45e3447bb22">addFunRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* ret)</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  {</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <a class="code" href="classSVF_1_1FunExitBlockNode.html">FunExitBlockNode</a>* funExitBlockNode = icfg-><a class="code" href="classSVF_1_1ICFG.html#aa33426d57dc150956902945a17a29bcb">getFunExitBlockNode</a>(fun);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  funExitBlockNode-><a class="code" href="classSVF_1_1FunExitBlockNode.html#a5230b3768ec1407334d8132fd34cbb72">addFormalRet</a>(ret);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  funRetMap[fun] = ret;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div><div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#aa7cdda6d4397975f27dfa524ce7cfc80"> 359</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#aa7cdda6d4397975f27dfa524ce7cfc80">addCallSiteArgs</a>(<a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* callBlockNode,<span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* arg)</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  {</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  callBlockNode-><a class="code" href="classSVF_1_1CallBlockNode.html#accb3aa1ea4667f594f2623660239fb38">addActualParms</a>(arg);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  callSiteArgsListMap[callBlockNode].push_back(arg);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  }</div><div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#af10b739e5d4459cbf954e7edfd5dc268"> 365</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#af10b739e5d4459cbf954e7edfd5dc268">addCallSiteRets</a>(<a class="code" href="classSVF_1_1RetBlockNode.html">RetBlockNode</a>* retBlockNode,<span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* arg)</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  {</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  retBlockNode-><a class="code" href="classSVF_1_1RetBlockNode.html#a334951fc0160a6caeb5c54ce0bddc79d">addActualRet</a>(arg);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  callSiteRetMap[retBlockNode]= arg;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  }</div><div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#abfb24b0a57ffe59f345a7490ce64e63d"> 371</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#abfb24b0a57ffe59f345a7490ce64e63d">hasFunArgsList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func)<span class="keyword"> const</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">return</span> (funArgsListMap.find(func) != funArgsListMap.end());</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  }</div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ab6779cc646bc50965722984f1a708811"> 376</a></span>  <span class="keyword">inline</span> FunToArgsListMap& <a class="code" href="classSVF_1_1PAG.html#ab6779cc646bc50965722984f1a708811">getFunArgsMap</a>()</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  {</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#aab9fa0c0f7f83055f7335fe7cf607f97">funArgsListMap</a>;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  }</div><div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ad2ff2e50f8e5234979ba9cacc6a6268c"> 381</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> PAGNodeList& <a class="code" href="classSVF_1_1PAG.html#ad2ff2e50f8e5234979ba9cacc6a6268c">getFunArgsList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func)<span class="keyword"> const</span></div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  FunToArgsListMap::const_iterator it = funArgsListMap.find(func);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != funArgsListMap.end() && <span class="stringliteral">"this function doesn't have arguments"</span>);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  }</div><div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a157df68295822a17ad07a850a230bae1"> 388</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#a157df68295822a17ad07a850a230bae1">hasCallSiteArgsMap</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">return</span> (callSiteArgsListMap.find(cs) != callSiteArgsListMap.end());</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  }</div><div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ae0151d49c9199a2899d8b872dc1ebcfc"> 393</a></span>  <span class="keyword">inline</span> CSToArgsListMap& <a class="code" href="classSVF_1_1PAG.html#ae0151d49c9199a2899d8b872dc1ebcfc">getCallSiteArgsMap</a>()</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  {</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#acc5e6a8469badb11c8f56738be4deb63">callSiteArgsListMap</a>;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  }</div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a4dac2dc4756bf3f84e6fa034a8b906da"> 398</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> PAGNodeList& <a class="code" href="classSVF_1_1PAG.html#a4dac2dc4756bf3f84e6fa034a8b906da">getCallSiteArgsList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  CSToArgsListMap::const_iterator it = callSiteArgsListMap.find(cs);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != callSiteArgsListMap.end() && <span class="stringliteral">"this call site doesn't have arguments"</span>);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  }</div><div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#af46a20842683fbbc52ac554c0777fbdc"> 405</a></span>  <span class="keyword">inline</span> CSToRetMap& <a class="code" href="classSVF_1_1PAG.html#af46a20842683fbbc52ac554c0777fbdc">getCallSiteRets</a>()</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#af63c417d121e37fd0427aa25ef5b15da">callSiteRetMap</a>;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  }</div><div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ae455de4db007a5bebffd3a9c16e0b107"> 410</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* <a class="code" href="classSVF_1_1PAG.html#ae455de4db007a5bebffd3a9c16e0b107">getCallSiteRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetBlockNode.html">RetBlockNode</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  CSToRetMap::const_iterator it = callSiteRetMap.find(cs);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != callSiteRetMap.end() && <span class="stringliteral">"this call site doesn't have return"</span>);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  }</div><div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a0ed3da89d9cba90888e04969dc43f5a3"> 416</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#a0ed3da89d9cba90888e04969dc43f5a3">callsiteHasRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetBlockNode.html">RetBlockNode</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordflow">return</span> callSiteRetMap.find(cs) != callSiteRetMap.end();</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  }</div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ac0835eaa3f23a53eb56a122bebe2ac6c"> 421</a></span>  <span class="keyword">inline</span> FunToRetMap& <a class="code" href="classSVF_1_1PAG.html#ac0835eaa3f23a53eb56a122bebe2ac6c">getFunRets</a>()</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#a2742d22cfc819f0c8f7e6880c0cfbaf4">funRetMap</a>;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  }</div><div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a838a9fa42e68b5f32853f73fa05a7c09"> 426</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* <a class="code" href="classSVF_1_1PAG.html#a838a9fa42e68b5f32853f73fa05a7c09">getFunRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func)<span class="keyword"> const</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  FunToRetMap::const_iterator it = funRetMap.find(func);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != funRetMap.end() && <span class="stringliteral">"this function doesn't have return"</span>);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  }</div><div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a08f1b7f68a267b6cc5ad9cb3f1efede0"> 432</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#a08f1b7f68a267b6cc5ad9cb3f1efede0">funHasRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func)<span class="keyword"> const</span></div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keywordflow">return</span> funRetMap.find(func) != funRetMap.end();</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  }</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span> </div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span> </div><div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a42a7abab6a762d75455b0954097dddc4"> 440</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1PAG.html#a42a7abab6a762d75455b0954097dddc4">getPAGNodeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericGraph.html#a38122734cbe71551a420dfb7fee2012e">nodeNum</a>;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  }</div><div class="line"><a name="l00444"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a74de66edb19a534fe85d4621085021ec"> 444</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1PAG.html#a74de66edb19a534fe85d4621085021ec">getPAGEdgeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericGraph.html#a2fbc96de5f066469c2739229307bcc0c">edgeNum</a>;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  }</div><div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ad8c9f6134aa97d310f8eebbd7bf9bc8f"> 448</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1PAG.html#ad8c9f6134aa97d310f8eebbd7bf9bc8f">getValueNodeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a8f3cb8a1db34dd692ee04561f4edeebf">valSyms</a>().size();</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  }</div><div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#afe02872115f15623178cb1ed8f737992"> 452</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1PAG.html#afe02872115f15623178cb1ed8f737992">getObjectNodeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a929a20dc8f2eb4d82e93938b8339d697">idToObjMap</a>().size();</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  }</div><div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a815b0acd760c050c7b352b2000675fc5"> 456</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1PAG.html#a815b0acd760c050c7b352b2000675fc5">getFieldValNodeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordflow">return</span> GepValNodeMap.size();</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  }</div><div class="line"><a name="l00460"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#acde529dcb2054bf50a0793d8aa51bb07"> 460</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1PAG.html#acde529dcb2054bf50a0793d8aa51bb07">getFieldObjNodeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordflow">return</span> GepObjNodeMap.size();</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  }</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span> </div><div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ac2e844bdb316b2ab4bc780fbf8f48914"> 467</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#ac2e844bdb316b2ab4bc780fbf8f48914">getGepValNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* curInst, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& ls)<span class="keyword"> const</span></div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  GepValPNMap::const_iterator iter = GepValNodeMap.find(curInst);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="keywordflow">if</span>(iter==GepValNodeMap.end()){</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordflow">return</span> UINT_MAX;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  }</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keywordflow">else</span>{</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  NodeLocationSetMap::const_iterator lit = iter->second.find(std::make_pair(base, ls));</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keywordflow">if</span>(lit==iter->second.end())</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="keywordflow">return</span> UINT_MAX;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keywordflow">return</span> lit->second;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  }</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  }</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span> </div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div><div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a6a468180bff1e8f6143587546a2e7742"> 484</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> CallSiteToFunPtrMap& <a class="code" href="classSVF_1_1PAG.html#a6a468180bff1e8f6143587546a2e7742">getIndirectCallsites</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#a704bbd07934ac14c08ab891946292c04">indCallSiteToFunPtrMap</a>;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  }</div><div class="line"><a name="l00488"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ae5d8ac3f715f0afdee0aa6194ad4a14a"> 488</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#ae5d8ac3f715f0afdee0aa6194ad4a14a">addIndirectCallsites</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs,<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> funPtr)</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  {</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keywordtype">bool</span> added = indCallSiteToFunPtrMap.insert(std::make_pair(cs,funPtr)).second;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  funPtrToCallSitesMap[funPtr].insert(cs);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added && <span class="stringliteral">"adding the same indirect callsite twice?"</span>);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  }</div><div class="line"><a name="l00494"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ae4bfb3e30a81cd8ece36f59a60f0f0ca"> 494</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#ae4bfb3e30a81cd8ece36f59a60f0f0ca">getFunPtr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  CallSiteToFunPtrMap::const_iterator it = indCallSiteToFunPtrMap.find(cs);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=indCallSiteToFunPtrMap.end() && <span class="stringliteral">"indirect callsite not have a function pointer?"</span>);</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  }</div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a63a8131c082052fc4a8c61430ce196af"> 500</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> CallSiteSet& <a class="code" href="classSVF_1_1PAG.html#a63a8131c082052fc4a8c61430ce196af">getIndCallSites</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> funPtr)<span class="keyword"> const</span></div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  FunPtrToCallSitesMap::const_iterator it = funPtrToCallSitesMap.find(funPtr);</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=funPtrToCallSitesMap.end() && <span class="stringliteral">"function pointer not used at any indirect callsite?"</span>);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  }</div><div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#abe123c69769f8edb29acb32aaef1449d"> 506</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#abe123c69769f8edb29acb32aaef1449d">isIndirectCallSites</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="keywordflow">return</span> (indCallSiteToFunPtrMap.find(cs) != indCallSiteToFunPtrMap.end());</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  }</div><div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a20e9df3a6397153dc3741ad5b370dc94"> 510</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#a20e9df3a6397153dc3741ad5b370dc94">isFunPtr</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keywordflow">return</span> (funPtrToCallSitesMap.find(<span class="keywordtype">id</span>) != funPtrToCallSitesMap.end());</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  }</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span> </div><div class="line"><a name="l00517"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a8ea029c95a38473b1611ce7323818fe5"> 517</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#a8ea029c95a38473b1611ce7323818fe5">findPAGNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">hasGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  }</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span> </div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span> </div><div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a0398b47429454e019884f0867262430a"> 524</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1PAGEdge.html">PAGEdge</a>* <a class="code" href="classSVF_1_1PAG.html#a0398b47429454e019884f0867262430a">getIntraPAGEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6">PAGEdge::PEDGEK</a> kind)</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  {</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#a0398b47429454e019884f0867262430a">getIntraPAGEdge</a>(<a class="code" href="classSVF_1_1PAG.html#a3aa1c92eb8a6fab72996964de80f19ac">getPAGNode</a>(src), <a class="code" href="classSVF_1_1PAG.html#a3aa1c92eb8a6fab72996964de80f19ac">getPAGNode</a>(dst), kind);</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  }</div><div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ae73900fac2a97736976bfad011c3cdb5"> 528</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1PAGEdge.html">PAGEdge</a>* <a class="code" href="classSVF_1_1PAG.html#ae73900fac2a97736976bfad011c3cdb5">getIntraPAGEdge</a>(<a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* src, <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* dst, <a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6">PAGEdge::PEDGEK</a> kind)</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  {</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <a class="code" href="classSVF_1_1PAGEdge.html">PAGEdge</a> edge(src,dst,kind);</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGEdge.html#a59eb693c90848382efa1cccb56fe82d3">PAGEdge::PAGEdgeSetTy</a>& edgeSet = <a class="code" href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">getEdgeSet</a>(kind);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  PAGEdge::PAGEdgeSetTy::const_iterator it = edgeSet.find(&edge);</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != edgeSet.end() && <span class="stringliteral">"can not find pag edge"</span>);</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordflow">return</span> (*it);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  }</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span> </div><div class="line"><a name="l00539"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a3aa1c92eb8a6fab72996964de80f19ac"> 539</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* <a class="code" href="classSVF_1_1PAG.html#a3aa1c92eb8a6fab72996964de80f19ac">getPAGNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  }</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span> </div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span> </div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#a5f49b7da110a626ed6605d1f108dfa25">getValueNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  {</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#aec7ee137f828c9d61a11df7fc2241161">getValSym</a>(V);</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  }</div><div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ae3cdf8c2139ba043595b420624f25427"> 551</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#ae3cdf8c2139ba043595b420624f25427">hasValueNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* V)</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#acbcd5035240fab0b809c3334a27159ae">hasValSym</a>(V);</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  }</div><div class="line"><a name="l00557"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a9e35f1d6a30c6200fb3c0c43ba4f36cb"> 557</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#a9e35f1d6a30c6200fb3c0c43ba4f36cb">getObjectNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  {</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#afca5a68d1825326e3ec6302ce0afee66">getObjSym</a>(V);</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  }</div><div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a12be35fbe2d830fb23fd0173eb66c108"> 562</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#a12be35fbe2d830fb23fd0173eb66c108">getObjectNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a> *mem)</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  {</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keywordflow">return</span> mem-><a class="code" href="classSVF_1_1MemObj.html#ad7f7de744715c3acaf3d48822865c87b">getSymId</a>();</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  }</div><div class="line"><a name="l00567"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a407d4cf15bc33dc54649f5d79c5f38f0"> 567</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> PAGEdgeSet& <a class="code" href="classSVF_1_1PAG.html#a407d4cf15bc33dc54649f5d79c5f38f0">getValueEdges</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  {</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="keyword">auto</span> it = valueToEdgeMap.find(V);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">if</span> (it == valueToEdgeMap.end()) {</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <span class="comment">//special empty set</span></div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordflow">return</span> valueToEdgeMap.at(<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  }</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  }</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span> </div><div class="line"><a name="l00577"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a02f02a895816386501e5ba032c0c6e4c"> 577</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#a02f02a895816386501e5ba032c0c6e4c">mapValueToEdge</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V, <a class="code" href="classSVF_1_1PAGEdge.html">PAGEdge</a> *edge)</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  {</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keyword">auto</span> inserted = valueToEdgeMap.emplace(V, PAGEdgeSet{edge});</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keywordflow">if</span> (!inserted.second) {</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  inserted.first->second.emplace(edge);</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  }</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  }</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span> </div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span> </div><div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a2b288fce8efa1b0b1b620efec2c96eb6"> 589</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>*<a class="code" href="classSVF_1_1PAG.html#a2b288fce8efa1b0b1b620efec2c96eb6">getObject</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1PAG.html#a3aa1c92eb8a6fab72996964de80f19ac">getPAGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a>* objPN = SVFUtil::dyn_cast<ObjPN>(node))</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#a2b288fce8efa1b0b1b620efec2c96eb6">getObject</a>(objPN);</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  }</div><div class="line"><a name="l00597"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a45017000af4946b27878bd1fbf58050f"> 597</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>*<a class="code" href="classSVF_1_1PAG.html#a45017000af4946b27878bd1fbf58050f">getObject</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a>* node)<span class="keyword"> const</span></div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <span class="keywordflow">return</span> node-><a class="code" href="classSVF_1_1ObjPN.html#a63ee5624271a63c2dc4f7f3ed2dcefdf">getMemObj</a>();</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  }</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span> </div><div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a4419b16246ed90e275a7be38d683d36d"> 604</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#a4419b16246ed90e275a7be38d683d36d">getReturnNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func)<span class="keyword"> const</span></div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#afc8b0b6aea972f34a0c099b75114b81e">getRetSym</a>(func-><a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>());</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  }</div><div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#aa7b2e9e0b3386e27af8413be4c36f519"> 609</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#aa7b2e9e0b3386e27af8413be4c36f519">getVarargNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func)<span class="keyword"> const</span></div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#aec3fd21a11f760ca8684e390c6948f02">getVarargSym</a>(func-><a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>());</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  }</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#aad5fc74d2a9baf3630ba6546a74053e7">getGepObjNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& ls);</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#aad5fc74d2a9baf3630ba6546a74053e7">getGepObjNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& ls) ;</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span> </div><div class="line"><a name="l00619"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#afc69b91408401d2a92d68c3414f3402d"> 619</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#afc69b91408401d2a92d68c3414f3402d">getFIObjNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj)<span class="keyword"> const</span></div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="keywordflow">return</span> obj-><a class="code" href="classSVF_1_1MemObj.html#ad7f7de744715c3acaf3d48822865c87b">getSymId</a>();</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  }</div><div class="line"><a name="l00623"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#afc4c57a4d200296cc8f7e2a8aa62fcb4"> 623</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#afc4c57a4d200296cc8f7e2a8aa62fcb4">getFIObjNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node = pag-><a class="code" href="classSVF_1_1PAG.html#a3aa1c92eb8a6fab72996964de80f19ac">getPAGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa<ObjPN>(node) && <span class="stringliteral">"need an object node"</span>);</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a>* obj = SVFUtil::cast<ObjPN>(node);</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#afc69b91408401d2a92d68c3414f3402d">getFIObjNode</a>(obj-><a class="code" href="classSVF_1_1ObjPN.html#a63ee5624271a63c2dc4f7f3ed2dcefdf">getMemObj</a>());</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  }</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span> </div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span> </div><div class="line"><a name="l00634"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#adc2f52d5c95c6b8718fe3f899d19cc2f"> 634</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#adc2f52d5c95c6b8718fe3f899d19cc2f">getBlackHoleNode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4">blackholeSymID</a>();</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  }</div><div class="line"><a name="l00638"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ad1f9568cf8b514d1fe86fa3473836580"> 638</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#ad1f9568cf8b514d1fe86fa3473836580">getConstantNode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497">constantSymID</a>();</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  }</div><div class="line"><a name="l00642"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a67dc43e25a29ff81f3e12c7b70061261"> 642</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#a67dc43e25a29ff81f3e12c7b70061261">getBlkPtr</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72">blkPtrSymID</a>();</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  }</div><div class="line"><a name="l00646"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a745eddbb75d513d9cbf76709e3d7057e"> 646</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#a745eddbb75d513d9cbf76709e3d7057e">getNullPtr</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#adaed6e68c2f53260ed4c4fc38b5c4721">nullPtrSymID</a>();</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  }</div><div class="line"><a name="l00650"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a45573c6019303fc731875df31636b059"> 650</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#a45573c6019303fc731875df31636b059">isBlkPtr</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SymbolTableInfo.html#acba43b6e9cdf07afaf3d30351aa8df7c">SymbolTableInfo::isBlkPtr</a>(<span class="keywordtype">id</span>));</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  }</div><div class="line"><a name="l00654"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#abad086cfecdab2d71033574456eb4eb6"> 654</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#abad086cfecdab2d71033574456eb4eb6">isNullPtr</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SymbolTableInfo.html#ad095e4a569d399cadc03ce864f61c394">SymbolTableInfo::isNullPtr</a>(<span class="keywordtype">id</span>));</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  }</div><div class="line"><a name="l00658"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#aa9b2a2aa2e0f34c659b4728e7b0fe1ba"> 658</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#aa9b2a2aa2e0f34c659b4728e7b0fe1ba">isBlkObjOrConstantObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1PAG.html#a34ac3687d4f4cec9df4cd450c0019c6d">isBlkObj</a>(<span class="keywordtype">id</span>) || <a class="code" href="classSVF_1_1PAG.html#a5382518f3bc9c3bbb3148b9499ae5ae2">isConstantObj</a>(<span class="keywordtype">id</span>));</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  }</div><div class="line"><a name="l00662"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a34ac3687d4f4cec9df4cd450c0019c6d"> 662</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#a34ac3687d4f4cec9df4cd450c0019c6d">isBlkObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad9cdb21e20182f3bc95f04bbb97712f3">SymbolTableInfo::isBlkObj</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  }</div><div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a5382518f3bc9c3bbb3148b9499ae5ae2"> 666</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#a5382518f3bc9c3bbb3148b9499ae5ae2">isConstantObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = <a class="code" href="classSVF_1_1PAG.html#a2b288fce8efa1b0b1b620efec2c96eb6">getObject</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(obj && <span class="stringliteral">"not an object node?"</span>);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b">SymbolTableInfo::isConstantObj</a>(<span class="keywordtype">id</span>) || obj-><a class="code" href="classSVF_1_1MemObj.html#ad67bc82cb51d0eb23c92c2ff9456c636">isConstant</a>();</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  }</div><div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a2bd0a705705138be2bbc7e0b6ef3bf0f"> 672</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#a2bd0a705705138be2bbc7e0b6ef3bf0f">isNonPointerObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1PAG.html#a3aa1c92eb8a6fab72996964de80f19ac">getPAGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FIObjPN.html">FIObjPN</a>* fiNode = SVFUtil::dyn_cast<FIObjPN>(node))</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  {</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <span class="keywordflow">return</span> (fiNode->getMemObj()->hasPtrObj() == <span class="keyword">false</span>);</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  }</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GepObjPN.html">GepObjPN</a>* gepNode = SVFUtil::dyn_cast<GepObjPN>(node))</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  {</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <span class="keywordflow">return</span> (gepNode->getMemObj()->isNonPtrFieldObj(gepNode->getLocationSet()));</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  }</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<DummyObjPN>(node))</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  {</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  }</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  {</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"expecting a object node"</span>);</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  }</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  }</div><div class="line"><a name="l00693"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a536287335ff3d05ff94b163b5334d935"> 693</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1PAG.html#a536287335ff3d05ff94b163b5334d935">getBlackHoleObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#aebf96274e1ad2a523981487839a3025e">getBlkObj</a>();</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  }</div><div class="line"><a name="l00697"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#adbc0b23c24bc25f96540f011a08d02f2"> 697</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1PAG.html#adbc0b23c24bc25f96540f011a08d02f2">getConstantObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a661eb9ff1839c3af942517808414202b">getConstantObj</a>();</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  }</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span> </div><div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a941d6160fe0081816616f7369126ed21"> 703</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1PAG.html#a941d6160fe0081816616f7369126ed21">getNodeNumAfterPAGBuild</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#a911d401c9572219d08552ea96635e081">nodeNumAfterPAGBuild</a>;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  }</div><div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a703bb4b820a92c72e17d3290e68a39d8"> 707</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#a703bb4b820a92c72e17d3290e68a39d8">setNodeNumAfterPAGBuild</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num)</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  {</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  nodeNumAfterPAGBuild = num;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  }</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span> </div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span> </div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#afc1e86e9690bb30138c9927368069f11">getBaseValNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId);</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1PAG.html#a7cd89e53bb857f6b8ee09e291f5aad3f">getLocationSetFromBaseNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId);</div><div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ae1e22e620954e3e9ede3f2bf0ac90c36"> 717</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#ae1e22e620954e3e9ede3f2bf0ac90c36">getBaseObjNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#a459e2ef671d002ef6edf25cf0bfb7924">getBaseObj</a>(<span class="keywordtype">id</span>)-><a class="code" href="classSVF_1_1MemObj.html#ad7f7de744715c3acaf3d48822865c87b">getSymId</a>();</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  }</div><div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a459e2ef671d002ef6edf25cf0bfb7924"> 721</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1PAG.html#a459e2ef671d002ef6edf25cf0bfb7924">getBaseObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node = pag-><a class="code" href="classSVF_1_1PAG.html#a3aa1c92eb8a6fab72996964de80f19ac">getPAGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa<ObjPN>(node) && <span class="stringliteral">"need an object node"</span>);</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a>* obj = SVFUtil::cast<ObjPN>(node);</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keywordflow">return</span> obj-><a class="code" href="classSVF_1_1ObjPN.html#a63ee5624271a63c2dc4f7f3ed2dcefdf">getMemObj</a>();</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  }</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span> </div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span> </div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>& <a class="code" href="classSVF_1_1PAG.html#a049069cb76eada008e65b71e08ccdf46">getAllFieldsObjNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj);</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>& <a class="code" href="classSVF_1_1PAG.html#a049069cb76eada008e65b71e08ccdf46">getAllFieldsObjNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> <a class="code" href="classSVF_1_1PAG.html#a19c4e63ab6129d4e7aeae8b280bb057b">getFieldsAfterCollapse</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span> </div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span> </div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#af97b7459e24b23498acece32fafd82ef">addNode</a>(<a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  {</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <a class="code" href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">addGNode</a>(i,node);</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="keywordflow">return</span> i;</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  }</div><div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a7a7929598197f300b97393ecdffd81f1"> 746</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#a7a7929598197f300b97393ecdffd81f1">addValNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  {</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a> *node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ValPN.html">ValPN</a>(val,i);</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#a7a7929598197f300b97393ecdffd81f1">addValNode</a>(val, node, i);</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  }</div><div class="line"><a name="l00752"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#ab867cf7056089872daf2b27eb7ff1a8a"> 752</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#ab867cf7056089872daf2b27eb7ff1a8a">addObjNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  {</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906">getObj</a>(symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#afca5a68d1825326e3ec6302ce0afee66">getObjSym</a>(val));</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(((mem-><a class="code" href="classSVF_1_1MemObj.html#ad7f7de744715c3acaf3d48822865c87b">getSymId</a>() == i)) && <span class="stringliteral">"not same object id?"</span>);</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#ae3ae274db4f5a4f86a0579cb47530f8c">addFIObjNode</a>(mem);</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  }</div><div class="line"><a name="l00759"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a51f03f1d0fdc9ccb0e0f150877e01eb1"> 759</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#a51f03f1d0fdc9ccb0e0f150877e01eb1">addRetNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  {</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a> *node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1RetPN.html">RetPN</a>(val,i);</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#a51f03f1d0fdc9ccb0e0f150877e01eb1">addRetNode</a>(val, node, i);</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  }</div><div class="line"><a name="l00765"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a86e660bbb9764bce241bdb5c91a6705c"> 765</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#a86e660bbb9764bce241bdb5c91a6705c">addVarargNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  {</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a> *node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1VarArgPN.html">VarArgPN</a>(val,i);</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#af97b7459e24b23498acece32fafd82ef">addNode</a>(node,i);</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  }</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span> </div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#a4f4cd384fe1b4bead9bfadb386e3f328">addGepValNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* curInst,<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& ls, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *type, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fieldidx);</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#a39028e2fb42dec9e0b25a48400948d48">addGepObjNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& ls);</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#ae3ae274db4f5a4f86a0579cb47530f8c">addFIObjNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj);</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span> </div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span> </div><div class="line"><a name="l00781"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a98b4beb7f17585173072f3bbea20eeb6"> 781</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#a98b4beb7f17585173072f3bbea20eeb6">addDummyValNode</a>()</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  {</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#a98b4beb7f17585173072f3bbea20eeb6">addDummyValNode</a>(<a class="code" href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">NodeIDAllocator::get</a>()->allocateValueId());</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  }</div><div class="line"><a name="l00785"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a279f9a8361c4fb438879713674455b35"> 785</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#a279f9a8361c4fb438879713674455b35">addDummyValNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  {</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#a7a7929598197f300b97393ecdffd81f1">addValNode</a>(<span class="keyword">nullptr</span>, <span class="keyword">new</span> <a class="code" href="classSVF_1_1DummyValPN.html">DummyValPN</a>(i), i);</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  }</div><div class="line"><a name="l00789"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#adc044907b992993b5ad803d1acf0dd91"> 789</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#adc044907b992993b5ad803d1acf0dd91">addDummyObjNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* type = <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  {</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#adc044907b992993b5ad803d1acf0dd91">addDummyObjNode</a>(<a class="code" href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">NodeIDAllocator::get</a>()->allocateObjectId(), type);</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  }</div><div class="line"><a name="l00793"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a6d2c4132c03661348cf61aa62f35e25b"> 793</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#a6d2c4132c03661348cf61aa62f35e25b">addDummyObjNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* type)</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  {</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = <a class="code" href="classSVF_1_1PAG.html#a2e17a208081f29c33180a5de2b4dd0e9">addDummyMemObj</a>(i, type);</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#ab867cf7056089872daf2b27eb7ff1a8a">addObjNode</a>(<span class="keyword">nullptr</span>, <span class="keyword">new</span> <a class="code" href="classSVF_1_1DummyObjPN.html">DummyObjPN</a>(i,mem), i);</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  }</div><div class="line"><a name="l00798"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a2e17a208081f29c33180a5de2b4dd0e9"> 798</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1PAG.html#a2e17a208081f29c33180a5de2b4dd0e9">addDummyMemObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* type)</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  {</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a2fede86948eeb07aacfed2575ea329d1">createDummyObj</a>(i,type);</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  }</div><div class="line"><a name="l00802"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a6b017ac98185865180d1442881278667"> 802</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#a6b017ac98185865180d1442881278667">addBlackholeObjNode</a>()</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  {</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#ab867cf7056089872daf2b27eb7ff1a8a">addObjNode</a>(<span class="keyword">nullptr</span>, <span class="keyword">new</span> <a class="code" href="classSVF_1_1DummyObjPN.html">DummyObjPN</a>(<a class="code" href="classSVF_1_1PAG.html#adc2f52d5c95c6b8718fe3f899d19cc2f">getBlackHoleNode</a>(),<a class="code" href="classSVF_1_1PAG.html#a536287335ff3d05ff94b163b5334d935">getBlackHoleObj</a>()), <a class="code" href="classSVF_1_1PAG.html#adc2f52d5c95c6b8718fe3f899d19cc2f">getBlackHoleNode</a>());</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  }</div><div class="line"><a name="l00806"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#adb2e3171f5c5fe98093c8a27c43e068c"> 806</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#adb2e3171f5c5fe98093c8a27c43e068c">addConstantObjNode</a>()</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  {</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#ab867cf7056089872daf2b27eb7ff1a8a">addObjNode</a>(<span class="keyword">nullptr</span>, <span class="keyword">new</span> <a class="code" href="classSVF_1_1DummyObjPN.html">DummyObjPN</a>(<a class="code" href="classSVF_1_1PAG.html#ad1f9568cf8b514d1fe86fa3473836580">getConstantNode</a>(),<a class="code" href="classSVF_1_1PAG.html#adbc0b23c24bc25f96540f011a08d02f2">getConstantObj</a>()), <a class="code" href="classSVF_1_1PAG.html#ad1f9568cf8b514d1fe86fa3473836580">getConstantNode</a>());</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  }</div><div class="line"><a name="l00810"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#afdd76ad274ec1ebe31587c459c6254aa"> 810</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#afdd76ad274ec1ebe31587c459c6254aa">addBlackholePtrNode</a>()</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  {</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#a98b4beb7f17585173072f3bbea20eeb6">addDummyValNode</a>(<a class="code" href="classSVF_1_1PAG.html#a67dc43e25a29ff81f3e12c7b70061261">getBlkPtr</a>());</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  }</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span> </div><div class="line"><a name="l00817"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a20fef02062c6047810907f0f8973ba2b"> 817</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#a20fef02062c6047810907f0f8973ba2b">addValNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>*, <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a> *node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  {</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">hasGNode</a>(i) == <span class="keyword">false</span> && <span class="stringliteral">"This NodeID clashes here. Please check NodeIDAllocator. Switch Strategy::DEBUG to SEQ or DENSE"</span>);</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#af97b7459e24b23498acece32fafd82ef">addNode</a>(node,i);</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  }</div><div class="line"><a name="l00823"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#adfb70002cc08313c43c403c1203bf091"> 823</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#adfb70002cc08313c43c403c1203bf091">addObjNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>*, <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a> *node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  {</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">hasGNode</a>(i) == <span class="keyword">false</span> && <span class="stringliteral">"This NodeID clashes here. Please check NodeIDAllocator. Switch Strategy::DEBUG to SEQ or DENSE"</span>);</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#af97b7459e24b23498acece32fafd82ef">addNode</a>(node,i);</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  }</div><div class="line"><a name="l00829"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#af520c7fb9b396d8f159f7254b3828f31"> 829</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#af520c7fb9b396d8f159f7254b3828f31">addRetNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>*, <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a> *node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  {</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#af97b7459e24b23498acece32fafd82ef">addNode</a>(node,i);</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  }</div><div class="line"><a name="l00834"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#a10e33feca283850034891af28d7da43f"> 834</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PAG.html#a10e33feca283850034891af28d7da43f">addVarargNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>*, <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a> *node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  {</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PAG.html#af97b7459e24b23498acece32fafd82ef">addNode</a>(node,i);</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  }</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span> </div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span> </div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#a277706ab8f62e6f95c660be9cb825a27">addEdge</a>(<a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* src, <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* dst, <a class="code" href="classSVF_1_1PAGEdge.html">PAGEdge</a>* edge);</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span> </div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <a class="code" href="classSVF_1_1PAGEdge.html">PAGEdge</a>* <a class="code" href="classSVF_1_1PAG.html#a0c7cea14374ff762a9933b803853286e">hasNonlabeledEdge</a>(<a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* src, <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* dst, <a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6">PAGEdge::PEDGEK</a> kind);</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  <a class="code" href="classSVF_1_1PAGEdge.html">PAGEdge</a>* <a class="code" href="classSVF_1_1PAG.html#ab2a0e681184accace607464278525cba">hasLabeledEdge</a>(<a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* src, <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* dst, <a class="code" href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6">PAGEdge::PEDGEK</a> kind, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* cs);</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span> </div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  <a class="code" href="classSVF_1_1AddrPE.html">AddrPE</a>* <a class="code" href="classSVF_1_1PAG.html#a6ac3b5eb1f34ac2257d0ba2556ed52c0">addAddrPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst);</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <a class="code" href="classSVF_1_1CopyPE.html">CopyPE</a>* <a class="code" href="classSVF_1_1PAG.html#aa50bf9fbf8ff2dff0392bff0319be622">addCopyPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst);</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  <a class="code" href="classSVF_1_1CmpPE.html">CmpPE</a>* <a class="code" href="classSVF_1_1PAG.html#af88ceecaac4e20ac1dd85908b3d190c8">addCmpPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst);</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  <a class="code" href="classSVF_1_1BinaryOPPE.html">BinaryOPPE</a>* <a class="code" href="classSVF_1_1PAG.html#acf01961e2d9f3eba91c6e44c1f0137af">addBinaryOPPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst);</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <a class="code" href="classSVF_1_1UnaryOPPE.html">UnaryOPPE</a>* <a class="code" href="classSVF_1_1PAG.html#a44e671995575a58c4a92dc892b0b7239">addUnaryOPPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst);</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <a class="code" href="classSVF_1_1LoadPE.html">LoadPE</a>* <a class="code" href="classSVF_1_1PAG.html#a0dc823946e0b86027b6093fe7c907543">addLoadPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst);</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  <a class="code" href="classSVF_1_1StorePE.html">StorePE</a>* <a class="code" href="classSVF_1_1PAG.html#adbe031ff60dbcd981ff68e30a2e677ef">addStorePE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntraBlockNode.html">IntraBlockNode</a>* val);</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>* <a class="code" href="classSVF_1_1PAG.html#aa8bb3b659b70041e82aee15e8a595afb">addCallPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs);</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>* <a class="code" href="classSVF_1_1PAG.html#a2887310a7757f92063c5598ea694edbb">addRetPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs);</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  <a class="code" href="classSVF_1_1GepPE.html">GepPE</a>* <a class="code" href="classSVF_1_1PAG.html#a49d8956f5723957509cbc620c3e12d2e">addGepPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& ls, <span class="keywordtype">bool</span> constGep);</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  <a class="code" href="classSVF_1_1NormalGepPE.html">NormalGepPE</a>* <a class="code" href="classSVF_1_1PAG.html#a4606d6ff072f5ac5974719035676792e">addNormalGepPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& ls);</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <a class="code" href="classSVF_1_1VariantGepPE.html">VariantGepPE</a>* <a class="code" href="classSVF_1_1PAG.html#a9d575070ab5234078590f9e8bf80bbf4">addVariantGepPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst);</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>* <a class="code" href="classSVF_1_1PAG.html#a806249f7589b55d57a62a5473bebc2e4">addThreadForkPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs);</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>* <a class="code" href="classSVF_1_1PAG.html#a37c31f1829f540fb0a4b57b7de3e7bca">addThreadJoinPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs);</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span> </div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <a class="code" href="classSVF_1_1PAGEdge.html">PAGEdge</a>* <a class="code" href="classSVF_1_1PAG.html#addb513f5571acf2854adc878e58cf523">addBlackHoleAddrPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node);</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span> </div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span> </div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#a17fab82554f5a81c22c037b5813999e3">isValidPointer</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId) <span class="keyword">const</span>;</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span> </div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PAG.html#a107c329c9524b2c029ff3fd8088dab67">isValidTopLevelPtr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node);</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span> </div><div class="line"><a name="l00891"></a><span class="lineno"><a class="line" href="classSVF_1_1PAG.html#aa18a51570a397eabffdd613fdb15b4ac"> 891</a></span>  <span class="keyword">inline</span> std::string <a class="code" href="classSVF_1_1PAG.html#aa18a51570a397eabffdd613fdb15b4ac">getGraphName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <span class="keywordflow">return</span> <span class="stringliteral">"PAG"</span>;</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  }</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span> </div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#aa432bbc7c4e83abecdc8706972a9635b">print</a>();</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span> </div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#ab4326448a536de1c8c1513fcf6d45aa2">dump</a>(std::string name);</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span> </div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PAG.html#a287461961353d4c8b5b3947fe62ad388">view</a>();</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span> </div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span> };</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span> </div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span> </div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span> <span class="keyword">namespace </span><a class="code" href="namespacellvm.html">llvm</a></div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span> {</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span> </div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span> <span class="comment">/* !</span></div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span> <span class="comment"> * GraphTraits specializations of PAG to be used for the generic graph algorithms.</span></div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span> <span class="comment"> * Provide graph traits for tranversing from a PAG node using standard graph traversals.</span></div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span> <span class="comment"> */</span></div><div class="line"><a name="l00916"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01SVF_1_1PAGNode_01_5_01_4.html"> 916</a></span> <span class="keyword">template</span><> <span class="keyword">struct </span>GraphTraits<<a class="code" href="namespaceSVF.html">SVF</a>::PAGNode*> : <span class="keyword">public</span> GraphTraits<SVF::GenericNode<SVF::PAGNode,SVF::PAGEdge>* ></div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span> {</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span> };</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span> </div><div class="line"><a name="l00921"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1PAGNode_01_5_01_4_01_4.html"> 921</a></span> <span class="keyword">template</span><> <span class="keyword">struct </span>GraphTraits<Inverse<SVF::PAGNode *> > : <span class="keyword">public</span> GraphTraits<Inverse<SVF::GenericNode<SVF::PAGNode,SVF::PAGEdge>* > ></div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span> {</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span> };</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span> </div><div class="line"><a name="l00925"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01SVF_1_1PAG_01_5_01_4.html"> 925</a></span> <span class="keyword">template</span><> <span class="keyword">struct </span>GraphTraits<SVF::<a class="code" href="classSVF_1_1PAG.html#a0a417d229823991031eda0b97148481c">PAG</a>*> : <span class="keyword">public</span> GraphTraits<SVF::GenericGraph<SVF::PAGNode,SVF::PAGEdge>* ></div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span> {</div><div class="line"><a name="l00927"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01SVF_1_1PAG_01_5_01_4.html#af513fa5edc5c46322af4be17ed9d27e0"> 927</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1PAGNode.html">SVF::PAGNode</a> *<a class="code" href="structllvm_1_1GraphTraits_3_01SVF_1_1PAG_01_5_01_4.html#af513fa5edc5c46322af4be17ed9d27e0">NodeRef</a>;</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span> };</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span> </div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span> } <span class="comment">// End namespace llvm</span></div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span> </div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span> <span class="preprocessor">#endif </span><span class="comment">/* PAG_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1PAG_html_a7bdc824c927d79b624e93c1135ab98a6"><div class="ttname"><a href="classSVF_1_1PAG.html#a7bdc824c927d79b624e93c1135ab98a6">SVF::PAG::CopyPEList</a></div><div class="ttdeci">std::vector< const CopyPE * > CopyPEList</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00058">PAG.h:58</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_1_1PAG_html_aa9479778e9fe166b17bb765a7a1668a2"><div class="ttname"><a href="classSVF_1_1PAG.html#aa9479778e9fe166b17bb765a7a1668a2">SVF::PAG::BinaryNodeMap</a></div><div class="ttdeci">Map< const PAGNode *, BinaryOPList > BinaryNodeMap</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00063">PAG.h:63</a></div></div>
|
|
71
|
-
<div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph< PAGNode, PAGEdge >::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#
|
|
71
|
+
<div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph< PAGNode, PAGEdge >::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00361">GenericGraph.h:361</a></div></div>
|
|
72
72
|
<div class="ttc" id="classSVF_1_1PAG_html_a8b498249185812b2bd1e9bd2aac50e4e"><div class="ttname"><a href="classSVF_1_1PAG.html#a8b498249185812b2bd1e9bd2aac50e4e">SVF::PAG::hasPAGEdgeList</a></div><div class="ttdeci">bool hasPAGEdgeList(const ICFGNode *inst) const</div><div class="ttdoc">Whether this instruction has PAG Edge. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00220">PAG.h:220</a></div></div>
|
|
73
73
|
<div class="ttc" id="classSVF_1_1PAG_html_a8154e4aef8e24147d9b945958aca8b18"><div class="ttname"><a href="classSVF_1_1PAG.html#a8154e4aef8e24147d9b945958aca8b18">SVF::PAG::getCmpPEs</a></div><div class="ttdeci">const CmpPEList & getCmpPEs(const PAGNode *node) const</div><div class="ttdoc">Get the corresponding CmpPEs. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00335">PAG.h:335</a></div></div>
|
|
74
74
|
<div class="ttc" id="classSVF_1_1PAG_html_a7a7929598197f300b97393ecdffd81f1"><div class="ttname"><a href="classSVF_1_1PAG.html#a7a7929598197f300b97393ecdffd81f1">SVF::PAG::addValNode</a></div><div class="ttdeci">NodeID addValNode(const Value *val, NodeID i)</div><div class="ttdoc">Add a value (pointer) node. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00746">PAG.h:746</a></div></div>
|
|
@@ -87,7 +87,7 @@ $(function() {
|
|
|
87
87
|
<div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00385">ConsG.h:385</a></div></div>
|
|
88
88
|
<div class="ttc" id="classSVF_1_1PAG_html_afc1e86e9690bb30138c9927368069f11"><div class="ttname"><a href="classSVF_1_1PAG.html#afc1e86e9690bb30138c9927368069f11">SVF::PAG::getBaseValNode</a></div><div class="ttdeci">NodeID getBaseValNode(NodeID nodeId)</div><div class="ttdoc">Base and Offset methods for Value and Object node. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00820">PAG.cpp:820</a></div></div>
|
|
89
89
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_aebf96274e1ad2a523981487839a3025e"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#aebf96274e1ad2a523981487839a3025e">SVF::SymbolTableInfo::getBlkObj</a></div><div class="ttdeci">MemObj * getBlkObj() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00212">SymbolTableInfo.h:212</a></div></div>
|
|
90
|
-
<div class="ttc" id="classSVF_1_1PAG_html_ab6f0bc584f351839c9dba440e8d382a0"><div class="ttname"><a href="classSVF_1_1PAG.html#ab6f0bc584f351839c9dba440e8d382a0">SVF::PAG::handleBlackHole</a></div><div class="ttdeci">static void handleBlackHole(bool b)</div><div class="ttdoc">PAG build configurations. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#
|
|
90
|
+
<div class="ttc" id="classSVF_1_1PAG_html_ab6f0bc584f351839c9dba440e8d382a0"><div class="ttname"><a href="classSVF_1_1PAG.html#ab6f0bc584f351839c9dba440e8d382a0">SVF::PAG::handleBlackHole</a></div><div class="ttdeci">static void handleBlackHole(bool b)</div><div class="ttdoc">PAG build configurations. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l01092">PAG.cpp:1092</a></div></div>
|
|
91
91
|
<div class="ttc" id="classSVF_1_1PAG_html_a13028887a4b608ace787c683cbd01209"><div class="ttname"><a href="classSVF_1_1PAG.html#a13028887a4b608ace787c683cbd01209">SVF::PAG::addToInstPAGEdgeList</a></div><div class="ttdeci">void addToInstPAGEdgeList(ICFGNode *inst, PAGEdge *edge)</div><div class="ttdoc">Add a PAGEdge into instruction map. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00239">PAG.h:239</a></div></div>
|
|
92
92
|
<div class="ttc" id="classSVF_1_1PAG_html_a7bd46d36d58cc8ec70d8a42e5eb93683"><div class="ttname"><a href="classSVF_1_1PAG.html#a7bd46d36d58cc8ec70d8a42e5eb93683">SVF::PAG::totalPTAPAGEdge</a></div><div class="ttdeci">u32_t totalPTAPAGEdge</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00120">PAG.h:120</a></div></div>
|
|
93
93
|
<div class="ttc" id="classSVF_1_1PAG_html_a536287335ff3d05ff94b163b5334d935"><div class="ttname"><a href="classSVF_1_1PAG.html#a536287335ff3d05ff94b163b5334d935">SVF::PAG::getBlackHoleObj</a></div><div class="ttdeci">const MemObj * getBlackHoleObj() const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00693">PAG.h:693</a></div></div>
|
|
@@ -132,7 +132,7 @@ $(function() {
|
|
|
132
132
|
<div class="ttc" id="classSVF_1_1PAG_html_a279f9a8361c4fb438879713674455b35"><div class="ttname"><a href="classSVF_1_1PAG.html#a279f9a8361c4fb438879713674455b35">SVF::PAG::addDummyValNode</a></div><div class="ttdeci">NodeID addDummyValNode(NodeID i)</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00785">PAG.h:785</a></div></div>
|
|
133
133
|
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
|
|
134
134
|
<div class="ttc" id="classSVF_1_1PAG_html_a1235a44b3fed25e3d3bcfc868948822f"><div class="ttname"><a href="classSVF_1_1PAG.html#a1235a44b3fed25e3d3bcfc868948822f">SVF::PAG::globPAGEdgesSet</a></div><div class="ttdeci">PAGEdgeSet globPAGEdgesSet</div><div class="ttdoc">Global PAGEdges without control flow information. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00092">PAG.h:92</a></div></div>
|
|
135
|
-
<div class="ttc" id="classSVF_1_1GenericGraph_html_a2fbc96de5f066469c2739229307bcc0c"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a2fbc96de5f066469c2739229307bcc0c">SVF::GenericGraph< PAGNode, PAGEdge >::edgeNum</a></div><div class="ttdeci">u32_t edgeNum</div><div class="ttdoc">total num of node </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#
|
|
135
|
+
<div class="ttc" id="classSVF_1_1GenericGraph_html_a2fbc96de5f066469c2739229307bcc0c"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a2fbc96de5f066469c2739229307bcc0c">SVF::GenericGraph< PAGNode, PAGEdge >::edgeNum</a></div><div class="ttdeci">u32_t edgeNum</div><div class="ttdoc">total num of node </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00436">GenericGraph.h:436</a></div></div>
|
|
136
136
|
<div class="ttc" id="classSVF_1_1PAG_html_a7b983e115709d3461be9f24395c87ab4"><div class="ttname"><a href="classSVF_1_1PAG.html#a7b983e115709d3461be9f24395c87ab4">SVF::PAG::CSToRetMap</a></div><div class="ttdeci">Map< const RetBlockNode *, const PAGNode * > CSToRetMap</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00068">PAG.h:68</a></div></div>
|
|
137
137
|
<div class="ttc" id="classSVF_1_1StorePE_html"><div class="ttname"><a href="classSVF_1_1StorePE.html">SVF::StorePE</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00359">PAGEdge.h:359</a></div></div>
|
|
138
138
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a704b917b1e1dbaf9cd758fa9acc1083b"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b">SVF::SymbolTableInfo::isConstantObj</a></div><div class="ttdeci">static bool isConstantObj(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00196">SymbolTableInfo.h:196</a></div></div>
|
|
@@ -143,7 +143,7 @@ $(function() {
|
|
|
143
143
|
<div class="ttc" id="classSVF_1_1PAG_html_a7cd89e53bb857f6b8ee09e291f5aad3f"><div class="ttname"><a href="classSVF_1_1PAG.html#a7cd89e53bb857f6b8ee09e291f5aad3f">SVF::PAG::getLocationSetFromBaseNode</a></div><div class="ttdeci">LocationSet getLocationSetFromBaseNode(NodeID nodeId)</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00849">PAG.cpp:849</a></div></div>
|
|
144
144
|
<div class="ttc" id="classSVF_1_1PAG_html_a4419b16246ed90e275a7be38d683d36d"><div class="ttname"><a href="classSVF_1_1PAG.html#a4419b16246ed90e275a7be38d683d36d">SVF::PAG::getReturnNode</a></div><div class="ttdeci">NodeID getReturnNode(const SVFFunction *func) const</div><div class="ttdoc">GetReturnNode - Return the unique node representing the return value of a function. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00604">PAG.h:604</a></div></div>
|
|
145
145
|
<div class="ttc" id="SVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
|
|
146
|
-
<div class="ttc" id="classSVF_1_1GenericGraph_html_a38122734cbe71551a420dfb7fee2012e"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a38122734cbe71551a420dfb7fee2012e">SVF::GenericGraph< PAGNode, PAGEdge >::nodeNum</a></div><div class="ttdeci">u32_t nodeNum</div><div class="ttdoc">total num of edge </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#
|
|
146
|
+
<div class="ttc" id="classSVF_1_1GenericGraph_html_a38122734cbe71551a420dfb7fee2012e"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a38122734cbe71551a420dfb7fee2012e">SVF::GenericGraph< PAGNode, PAGEdge >::nodeNum</a></div><div class="ttdeci">u32_t nodeNum</div><div class="ttdoc">total num of edge </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00437">GenericGraph.h:437</a></div></div>
|
|
147
147
|
<div class="ttc" id="classSVF_1_1PAG_html_ab867cf7056089872daf2b27eb7ff1a8a"><div class="ttname"><a href="classSVF_1_1PAG.html#ab867cf7056089872daf2b27eb7ff1a8a">SVF::PAG::addObjNode</a></div><div class="ttdeci">NodeID addObjNode(const Value *val, NodeID i)</div><div class="ttdoc">Add a memory obj node. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00752">PAG.h:752</a></div></div>
|
|
148
148
|
<div class="ttc" id="classSVF_1_1PAG_html_aeb293a1fc183c51053bdeb749d094e5a"><div class="ttname"><a href="classSVF_1_1PAG.html#aeb293a1fc183c51053bdeb749d094e5a">SVF::PAG::CSToArgsListMap</a></div><div class="ttdeci">Map< const CallBlockNode *, PAGNodeList > CSToArgsListMap</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00067">PAG.h:67</a></div></div>
|
|
149
149
|
<div class="ttc" id="classSVF_1_1PAG_html_af4e69fb580bc8eec1064ac967f4f7cb2"><div class="ttname"><a href="classSVF_1_1PAG.html#af4e69fb580bc8eec1064ac967f4f7cb2">SVF::PAG::initialiseCandidatePointers</a></div><div class="ttdeci">void initialiseCandidatePointers()</div><div class="ttdoc">Initialize candidate pointers. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00146">PAG.h:146</a></div></div>
|
|
@@ -162,15 +162,15 @@ $(function() {
|
|
|
162
162
|
<div class="ttc" id="classSVF_1_1PAG_html_af771436bf36e2831d9c945c4dbc0be16"><div class="ttname"><a href="classSVF_1_1PAG.html#af771436bf36e2831d9c945c4dbc0be16">SVF::PAG::getAllValidPtrs</a></div><div class="ttdeci">OrderedNodeSet & getAllValidPtrs()</div><div class="ttdoc">Return valid pointers. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00141">PAG.h:141</a></div></div>
|
|
163
163
|
<div class="ttc" id="classSVF_1_1PAG_html_a925ccfc7169d5c03bffbe945dedc90b6"><div class="ttname"><a href="classSVF_1_1PAG.html#a925ccfc7169d5c03bffbe945dedc90b6">SVF::PAG::inst2PTAPAGEdgesMap</a></div><div class="ttdeci">Inst2PAGEdgesMap inst2PTAPAGEdgesMap</div><div class="ttdoc">Map a instruction to its PointerAnalysis related PAGEdges. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00088">PAG.h:88</a></div></div>
|
|
164
164
|
<div class="ttc" id="classSVF_1_1PAG_html_ae297792b6cf9e7782ef4268f48c01748"><div class="ttname"><a href="classSVF_1_1PAG.html#ae297792b6cf9e7782ef4268f48c01748">SVF::PAG::PTAPAGEdgeKindToSetMap</a></div><div class="ttdeci">PAGEdge::PAGKindToEdgeSetMapTy PTAPAGEdgeKindToSetMap</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00086">PAG.h:86</a></div></div>
|
|
165
|
-
<div class="ttc" id="classSVF_1_1PAG_html_a287461961353d4c8b5b3947fe62ad388"><div class="ttname"><a href="classSVF_1_1PAG.html#a287461961353d4c8b5b3947fe62ad388">SVF::PAG::view</a></div><div class="ttdeci">void view()</div><div class="ttdoc">View graph from the debugger. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#
|
|
166
|
-
<div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#
|
|
165
|
+
<div class="ttc" id="classSVF_1_1PAG_html_a287461961353d4c8b5b3947fe62ad388"><div class="ttname"><a href="classSVF_1_1PAG.html#a287461961353d4c8b5b3947fe62ad388">SVF::PAG::view</a></div><div class="ttdeci">void view()</div><div class="ttdoc">View graph from the debugger. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l01084">PAG.cpp:1084</a></div></div>
|
|
166
|
+
<div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
|
|
167
167
|
<div class="ttc" id="classSVF_1_1PAG_html_a5c450f3a87983c66a477081acd97a49f"><div class="ttname"><a href="classSVF_1_1PAG.html#a5c450f3a87983c66a477081acd97a49f">SVF::PAG::unaryNodeMap</a></div><div class="ttdeci">UnaryNodeMap unaryNodeMap</div><div class="ttdoc">A set of unary edges. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00095">PAG.h:95</a></div></div>
|
|
168
168
|
<div class="ttc" id="classSVF_1_1PAG_html_a8fb39e9156bb5cf07dc2329bfcfcd6f7"><div class="ttname"><a href="classSVF_1_1PAG.html#a8fb39e9156bb5cf07dc2329bfcfcd6f7">SVF::PAG::Inst2PAGEdgesMap</a></div><div class="ttdeci">Map< const ICFGNode *, PAGEdgeList > Inst2PAGEdgesMap</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00071">PAG.h:71</a></div></div>
|
|
169
169
|
<div class="ttc" id="classSVF_1_1PAG_html_acde529dcb2054bf50a0793d8aa51bb07"><div class="ttname"><a href="classSVF_1_1PAG.html#acde529dcb2054bf50a0793d8aa51bb07">SVF::PAG::getFieldObjNodeNum</a></div><div class="ttdeci">Size_t getFieldObjNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00460">PAG.h:460</a></div></div>
|
|
170
170
|
<div class="ttc" id="classSVF_1_1PAG_html_af47bff6b90ad3ff83e2b4bb16c2d39b1"><div class="ttname"><a href="classSVF_1_1PAG.html#af47bff6b90ad3ff83e2b4bb16c2d39b1">SVF::PAG::getMemToFieldsMap</a></div><div class="ttdeci">MemObjToFieldsMap & getMemToFieldsMap()</div><div class="ttdoc">Return memToFieldsMap. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00123">PAG.h:123</a></div></div>
|
|
171
171
|
<div class="ttc" id="classSVF_1_1PAG_html_acb2c9f92f0ed39f1cd823876c37510d3"><div class="ttname"><a href="classSVF_1_1PAG.html#acb2c9f92f0ed39f1cd823876c37510d3">SVF::PAG::getGlobalPAGEdgeSet</a></div><div class="ttdeci">PAGEdgeSet & getGlobalPAGEdgeSet()</div><div class="ttdoc">Get global PAGEdges (not in a procedure) </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00252">PAG.h:252</a></div></div>
|
|
172
172
|
<div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00100">SVFBasicTypes.h:100</a></div></div>
|
|
173
|
-
<div class="ttc" id="classSVF_1_1PAGEdge_html_a3d5a75d4f3792f90bf6ee58776512154"><div class="ttname"><a href="classSVF_1_1PAGEdge.html#a3d5a75d4f3792f90bf6ee58776512154">SVF::PAGEdge::isPTAEdge</a></div><div class="ttdeci">bool isPTAEdge() const</div><div class="ttdoc">Whether src and dst nodes are both of pointer type. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#
|
|
173
|
+
<div class="ttc" id="classSVF_1_1PAGEdge_html_a3d5a75d4f3792f90bf6ee58776512154"><div class="ttname"><a href="classSVF_1_1PAGEdge.html#a3d5a75d4f3792f90bf6ee58776512154">SVF::PAGEdge::isPTAEdge</a></div><div class="ttdeci">bool isPTAEdge() const</div><div class="ttdoc">Whether src and dst nodes are both of pointer type. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l01005">PAG.cpp:1005</a></div></div>
|
|
174
174
|
<div class="ttc" id="classSVF_1_1PAG_html_aa7cdda6d4397975f27dfa524ce7cfc80"><div class="ttname"><a href="classSVF_1_1PAG.html#aa7cdda6d4397975f27dfa524ce7cfc80">SVF::PAG::addCallSiteArgs</a></div><div class="ttdeci">void addCallSiteArgs(CallBlockNode *callBlockNode, const PAGNode *arg)</div><div class="ttdoc">Add callsite arguments. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00359">PAG.h:359</a></div></div>
|
|
175
175
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a65f49178a948380c2d6105178509a906"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906">SVF::SymbolTableInfo::getObj</a></div><div class="ttdeci">MemObj * getObj(SymID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00301">SymbolTableInfo.h:301</a></div></div>
|
|
176
176
|
<div class="ttc" id="classSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
|
|
@@ -201,16 +201,16 @@ $(function() {
|
|
|
201
201
|
<div class="ttc" id="classSVF_1_1PAG_html_a6b017ac98185865180d1442881278667"><div class="ttname"><a href="classSVF_1_1PAG.html#a6b017ac98185865180d1442881278667">SVF::PAG::addBlackholeObjNode</a></div><div class="ttdeci">NodeID addBlackholeObjNode()</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00802">PAG.h:802</a></div></div>
|
|
202
202
|
<div class="ttc" id="classSVF_1_1PAG_html_af77e6ff9106bcb2502ceb7ce885d11a6"><div class="ttname"><a href="classSVF_1_1PAG.html#af77e6ff9106bcb2502ceb7ce885d11a6">SVF::PAG::NodePairSetMap</a></div><div class="ttdeci">Map< NodePair, NodeID > NodePairSetMap</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00079">PAG.h:79</a></div></div>
|
|
203
203
|
<div class="ttc" id="classSVF_1_1PAG_html_addb513f5571acf2854adc878e58cf523"><div class="ttname"><a href="classSVF_1_1PAG.html#addb513f5571acf2854adc878e58cf523">SVF::PAG::addBlackHoleAddrPE</a></div><div class="ttdeci">PAGEdge * addBlackHoleAddrPE(NodeID node)</div><div class="ttdoc">Set a pointer points-to black hole (e.g. int2ptr) </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00530">PAG.cpp:530</a></div></div>
|
|
204
|
-
<div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph< PAGNode, PAGEdge >::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#
|
|
204
|
+
<div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph< PAGNode, PAGEdge >::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
|
|
205
205
|
<div class="ttc" id="classSVF_1_1PAG_html_aa7b2e9e0b3386e27af8413be4c36f519"><div class="ttname"><a href="classSVF_1_1PAG.html#aa7b2e9e0b3386e27af8413be4c36f519">SVF::PAG::getVarargNode</a></div><div class="ttdeci">NodeID getVarargNode(const SVFFunction *func) const</div><div class="ttdoc">getVarargNode - Return the unique node representing the variadic argument of a variadic function...</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00609">PAG.h:609</a></div></div>
|
|
206
206
|
<div class="ttc" id="classSVF_1_1FIObjPN_html"><div class="ttname"><a href="classSVF_1_1FIObjPN.html">SVF::FIObjPN</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00530">PAGNode.h:530</a></div></div>
|
|
207
|
-
<div class="ttc" id="classSVF_1_1GenericGraph_html_a6885064afa211958af7b73f0233284e5"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">SVF::GenericGraph< PAGNode, PAGEdge >::hasGNode</a></div><div class="ttdeci">bool hasGNode(NodeID id) const</div><div class="ttdoc">Has a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#
|
|
207
|
+
<div class="ttc" id="classSVF_1_1GenericGraph_html_a6885064afa211958af7b73f0233284e5"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">SVF::GenericGraph< PAGNode, PAGEdge >::hasGNode</a></div><div class="ttdeci">bool hasGNode(NodeID id) const</div><div class="ttdoc">Has a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00395">GenericGraph.h:395</a></div></div>
|
|
208
208
|
<div class="ttc" id="classSVF_1_1PAG_html_a52d16d0b3547a61b174424b91670e2ff"><div class="ttname"><a href="classSVF_1_1PAG.html#a52d16d0b3547a61b174424b91670e2ff">SVF::PAG::CallSiteToFunPtrMap</a></div><div class="ttdeci">OrderedMap< const CallBlockNode *, NodeID > CallSiteToFunPtrMap</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00052">PAG.h:52</a></div></div>
|
|
209
209
|
<div class="ttc" id="classSVF_1_1PAG_html_a4f4cd384fe1b4bead9bfadb386e3f328"><div class="ttname"><a href="classSVF_1_1PAG.html#a4f4cd384fe1b4bead9bfadb386e3f328">SVF::PAG::addGepValNode</a></div><div class="ttdeci">NodeID addGepValNode(const Value *curInst, const Value *val, const LocationSet &ls, NodeID i, const Type *type, u32_t fieldidx)</div><div class="ttdoc">Add a temp field value node, this method can only invoked by getGepValNode. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00637">PAG.cpp:637</a></div></div>
|
|
210
210
|
<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>
|
|
211
211
|
<div class="ttc" id="classSVF_1_1PAG_html_ab2a0e681184accace607464278525cba"><div class="ttname"><a href="classSVF_1_1PAG.html#ab2a0e681184accace607464278525cba">SVF::PAG::hasLabeledEdge</a></div><div class="ttdeci">PAGEdge * hasLabeledEdge(PAGNode *src, PAGNode *dst, PAGEdge::PEDGEK kind, const ICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00741">PAG.cpp:741</a></div></div>
|
|
212
212
|
<div class="ttc" id="classSVF_1_1PAG_html_a45573c6019303fc731875df31636b059"><div class="ttname"><a href="classSVF_1_1PAG.html#a45573c6019303fc731875df31636b059">SVF::PAG::isBlkPtr</a></div><div class="ttdeci">bool isBlkPtr(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00650">PAG.h:650</a></div></div>
|
|
213
|
-
<div class="ttc" id="classSVF_1_1GenericGraph_html_ac213302cf5c7cdf3b66f7b18649d0fbc"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVF::GenericGraph< PAGNode, PAGEdge >::iterator</a></div><div class="ttdeci">IDToNodeMapTy::iterator iterator</div><div class="ttdoc">Node Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#
|
|
213
|
+
<div class="ttc" id="classSVF_1_1GenericGraph_html_ac213302cf5c7cdf3b66f7b18649d0fbc"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVF::GenericGraph< PAGNode, PAGEdge >::iterator</a></div><div class="ttdeci">IDToNodeMapTy::iterator iterator</div><div class="ttdoc">Node Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00338">GenericGraph.h:338</a></div></div>
|
|
214
214
|
<div class="ttc" id="classSVF_1_1PAG_html_a213d27e032e81e61a72be710e5f0de74"><div class="ttname"><a href="classSVF_1_1PAG.html#a213d27e032e81e61a72be710e5f0de74">SVF::PAG::GepValPNMap</a></div><div class="ttdeci">Map< const Value *, NodeLocationSetMap > GepValPNMap</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00078">PAG.h:78</a></div></div>
|
|
215
215
|
<div class="ttc" id="classSVF_1_1VariantGepPE_html"><div class="ttname"><a href="classSVF_1_1VariantGepPE.html">SVF::VariantGepPE</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00522">PAGEdge.h:522</a></div></div>
|
|
216
216
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_ab582424fdb6d9674c1bd4466cdfbe497"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497">SVF::SymbolTableInfo::constantSymID</a></div><div class="ttdeci">SymID constantSymID() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00231">SymbolTableInfo.h:231</a></div></div>
|
|
@@ -265,7 +265,7 @@ $(function() {
|
|
|
265
265
|
<div class="ttc" id="classSVF_1_1PAG_html_a6cf9a9e75749e898d39026cb8c225c92"><div class="ttname"><a href="classSVF_1_1PAG.html#a6cf9a9e75749e898d39026cb8c225c92">SVF::PAG::funPtrToCallSitesMap</a></div><div class="ttdeci">FunPtrToCallSitesMap funPtrToCallSitesMap</div><div class="ttdoc">Map a function pointer to the callsites where it is used. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00104">PAG.h:104</a></div></div>
|
|
266
266
|
<div class="ttc" id="ICFG_8h_html"><div class="ttname"><a href="ICFG_8h.html">ICFG.h</a></div></div>
|
|
267
267
|
<div class="ttc" id="classSVF_1_1PAG_html_a67dc43e25a29ff81f3e12c7b70061261"><div class="ttname"><a href="classSVF_1_1PAG.html#a67dc43e25a29ff81f3e12c7b70061261">SVF::PAG::getBlkPtr</a></div><div class="ttdeci">NodeID getBlkPtr() const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00642">PAG.h:642</a></div></div>
|
|
268
|
-
<div class="ttc" id="classSVF_1_1GenericGraph_html_a0a8831a5429005ff9d71adbd6bf3994f"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">SVF::GenericGraph< PAGNode, PAGEdge >::addGNode</a></div><div class="ttdeci">void addGNode(NodeID id, NodeType *node)</div><div class="ttdoc">Add a Node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#
|
|
268
|
+
<div class="ttc" id="classSVF_1_1GenericGraph_html_a0a8831a5429005ff9d71adbd6bf3994f"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">SVF::GenericGraph< PAGNode, PAGEdge >::addGNode</a></div><div class="ttdeci">void addGNode(NodeID id, NodeType *node)</div><div class="ttdoc">Add a Node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00380">GenericGraph.h:380</a></div></div>
|
|
269
269
|
<div class="ttc" id="classSVF_1_1PAGEdge_html_a4cbbf44ec07d829f3c6d75dee2a30cee"><div class="ttname"><a href="classSVF_1_1PAGEdge.html#a4cbbf44ec07d829f3c6d75dee2a30cee">SVF::PAGEdge::setICFGNode</a></div><div class="ttdeci">void setICFGNode(ICFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00128">PAGEdge.h:128</a></div></div>
|
|
270
270
|
<div class="ttc" id="classSVF_1_1PAG_html_a9d575070ab5234078590f9e8bf80bbf4"><div class="ttname"><a href="classSVF_1_1PAG.html#a9d575070ab5234078590f9e8bf80bbf4">SVF::PAG::addVariantGepPE</a></div><div class="ttdeci">VariantGepPE * addVariantGepPE(NodeID src, NodeID dst)</div><div class="ttdoc">Add Variant(Gep) edge. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00616">PAG.cpp:616</a></div></div>
|
|
271
271
|
<div class="ttc" id="classSVF_1_1PAG_html_ae1e22e620954e3e9ede3f2bf0ac90c36"><div class="ttname"><a href="classSVF_1_1PAG.html#ae1e22e620954e3e9ede3f2bf0ac90c36">SVF::PAG::getBaseObjNode</a></div><div class="ttdeci">NodeID getBaseObjNode(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00717">PAG.h:717</a></div></div>
|
|
@@ -289,7 +289,7 @@ $(function() {
|
|
|
289
289
|
<div class="ttc" id="classSVF_1_1PAG_html_ad81e9de87891387c6fc860d964316d4f"><div class="ttname"><a href="classSVF_1_1PAG.html#ad81e9de87891387c6fc860d964316d4f">SVF::PAG::getPhiNodeMap</a></div><div class="ttdeci">PHINodeMap & getPhiNodeMap()</div><div class="ttdoc">Get all phi copy edges. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00267">PAG.h:267</a></div></div>
|
|
290
290
|
<div class="ttc" id="classSVF_1_1PAG_html_afc24739cd11b6a85e1e62b8a409a2e56"><div class="ttname"><a href="classSVF_1_1PAG.html#afc24739cd11b6a85e1e62b8a409a2e56">SVF::PAG::NodeOffsetMap</a></div><div class="ttdeci">Map< NodeOffset, NodeID > NodeOffsetMap</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00076">PAG.h:76</a></div></div>
|
|
291
291
|
<div class="ttc" id="classSVF_1_1PAG_html_a42b57f4523f30b0f739b1285ea744766"><div class="ttname"><a href="classSVF_1_1PAG.html#a42b57f4523f30b0f739b1285ea744766">SVF::PAG::valueToEdgeMap</a></div><div class="ttdeci">ValueToEdgeMap valueToEdgeMap</div><div class="ttdoc">Map llvm::Values to all corresponding PAGEdges. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00101">PAG.h:101</a></div></div>
|
|
292
|
-
<div class="ttc" id="classSVF_1_1PAG_html_ab4326448a536de1c8c1513fcf6d45aa2"><div class="ttname"><a href="classSVF_1_1PAG.html#ab4326448a536de1c8c1513fcf6d45aa2">SVF::PAG::dump</a></div><div class="ttdeci">void dump(std::string name)</div><div class="ttdoc">Dump PAG. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#
|
|
292
|
+
<div class="ttc" id="classSVF_1_1PAG_html_ab4326448a536de1c8c1513fcf6d45aa2"><div class="ttname"><a href="classSVF_1_1PAG.html#ab4326448a536de1c8c1513fcf6d45aa2">SVF::PAG::dump</a></div><div class="ttdeci">void dump(std::string name)</div><div class="ttdoc">Dump PAG. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l01076">PAG.cpp:1076</a></div></div>
|
|
293
293
|
<div class="ttc" id="classSVF_1_1PAG_html_af63c417d121e37fd0427aa25ef5b15da"><div class="ttname"><a href="classSVF_1_1PAG.html#af63c417d121e37fd0427aa25ef5b15da">SVF::PAG::callSiteRetMap</a></div><div class="ttdeci">CSToRetMap callSiteRetMap</div><div class="ttdoc">Map a callsite to its callsite returns PAGNodes. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00099">PAG.h:99</a></div></div>
|
|
294
294
|
<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>
|
|
295
295
|
<div class="ttc" id="classSVF_1_1PAG_html_a815b0acd760c050c7b352b2000675fc5"><div class="ttname"><a href="classSVF_1_1PAG.html#a815b0acd760c050c7b352b2000675fc5">SVF::PAG::getFieldValNodeNum</a></div><div class="ttdeci">Size_t getFieldValNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00456">PAG.h:456</a></div></div>
|
|
@@ -302,8 +302,8 @@ $(function() {
|
|
|
302
302
|
<div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00249">BasicTypes.h:249</a></div></div>
|
|
303
303
|
<div class="ttc" id="classSVF_1_1PAG_html_a3aea90fd18662381bb601779b7c63275"><div class="ttname"><a href="classSVF_1_1PAG.html#a3aea90fd18662381bb601779b7c63275">SVF::PAG::NodeLocationSet</a></div><div class="ttdeci">std::pair< NodeID, LocationSet > NodeLocationSet</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00075">PAG.h:75</a></div></div>
|
|
304
304
|
<div class="ttc" id="classSVF_1_1PAG_html_abfb24b0a57ffe59f345a7490ce64e63d"><div class="ttname"><a href="classSVF_1_1PAG.html#abfb24b0a57ffe59f345a7490ce64e63d">SVF::PAG::hasFunArgsList</a></div><div class="ttdeci">bool hasFunArgsList(const SVFFunction *func) const</div><div class="ttdoc">Function has arguments list. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00371">PAG.h:371</a></div></div>
|
|
305
|
-
<div class="ttc" id="classSVF_1_1PAG_html_a17fab82554f5a81c22c037b5813999e3"><div class="ttname"><a href="classSVF_1_1PAG.html#a17fab82554f5a81c22c037b5813999e3">SVF::PAG::isValidPointer</a></div><div class="ttdeci">bool isValidPointer(NodeID nodeId) const</div><div class="ttdoc">Whether a node is a valid pointer. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#
|
|
306
|
-
<div class="ttc" id="classSVF_1_1PAG_html_a107c329c9524b2c029ff3fd8088dab67"><div class="ttname"><a href="classSVF_1_1PAG.html#a107c329c9524b2c029ff3fd8088dab67">SVF::PAG::isValidTopLevelPtr</a></div><div class="ttdeci">bool isValidTopLevelPtr(const PAGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#
|
|
305
|
+
<div class="ttc" id="classSVF_1_1PAG_html_a17fab82554f5a81c22c037b5813999e3"><div class="ttname"><a href="classSVF_1_1PAG.html#a17fab82554f5a81c22c037b5813999e3">SVF::PAG::isValidPointer</a></div><div class="ttdeci">bool isValidPointer(NodeID nodeId) const</div><div class="ttdoc">Whether a node is a valid pointer. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00971">PAG.cpp:971</a></div></div>
|
|
306
|
+
<div class="ttc" id="classSVF_1_1PAG_html_a107c329c9524b2c029ff3fd8088dab67"><div class="ttname"><a href="classSVF_1_1PAG.html#a107c329c9524b2c029ff3fd8088dab67">SVF::PAG::isValidTopLevelPtr</a></div><div class="ttdeci">bool isValidTopLevelPtr(const PAGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00979">PAG.cpp:979</a></div></div>
|
|
307
307
|
<div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00016">ContextDDA.h:16</a></div></div>
|
|
308
308
|
<div class="ttc" id="classSVF_1_1PAG_html_ae5d8ac3f715f0afdee0aa6194ad4a14a"><div class="ttname"><a href="classSVF_1_1PAG.html#ae5d8ac3f715f0afdee0aa6194ad4a14a">SVF::PAG::addIndirectCallsites</a></div><div class="ttdeci">void addIndirectCallsites(const CallBlockNode *cs, NodeID funPtr)</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00488">PAG.h:488</a></div></div>
|
|
309
309
|
<div class="ttc" id="classSVF_1_1BinaryOPPE_html"><div class="ttname"><a href="classSVF_1_1BinaryOPPE.html">SVF::BinaryOPPE</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00290">PAGEdge.h:290</a></div></div>
|
|
@@ -330,12 +330,12 @@ $(function() {
|
|
|
330
330
|
<div class="ttc" id="classSVF_1_1PAG_html_af10b739e5d4459cbf954e7edfd5dc268"><div class="ttname"><a href="classSVF_1_1PAG.html#af10b739e5d4459cbf954e7edfd5dc268">SVF::PAG::addCallSiteRets</a></div><div class="ttdeci">void addCallSiteRets(RetBlockNode *retBlockNode, const PAGNode *arg)</div><div class="ttdoc">Add callsite returns. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00365">PAG.h:365</a></div></div>
|
|
331
331
|
<div class="ttc" id="classSVF_1_1PAG_html_a42a7abab6a762d75455b0954097dddc4"><div class="ttname"><a href="classSVF_1_1PAG.html#a42a7abab6a762d75455b0954097dddc4">SVF::PAG::getPAGNodeNum</a></div><div class="ttdeci">Size_t getPAGNodeNum() const</div><div class="ttdoc">Node and edge statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00440">PAG.h:440</a></div></div>
|
|
332
332
|
<div class="ttc" id="classSVF_1_1PAG_html_ab6779cc646bc50965722984f1a708811"><div class="ttname"><a href="classSVF_1_1PAG.html#ab6779cc646bc50965722984f1a708811">SVF::PAG::getFunArgsMap</a></div><div class="ttdeci">FunToArgsListMap & getFunArgsMap()</div><div class="ttdoc">Get function arguments list. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00376">PAG.h:376</a></div></div>
|
|
333
|
-
<div class="ttc" id="classSVF_1_1GenericGraph_html"><div class="ttname"><a href="classSVF_1_1GenericGraph.html">SVF::GenericGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#
|
|
333
|
+
<div class="ttc" id="classSVF_1_1GenericGraph_html"><div class="ttname"><a href="classSVF_1_1GenericGraph.html">SVF::GenericGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00327">GenericGraph.h:327</a></div></div>
|
|
334
334
|
<div class="ttc" id="classSVF_1_1PAG_html_a8485560177f2e3a4098b4b7d5ba3282c"><div class="ttname"><a href="classSVF_1_1PAG.html#a8485560177f2e3a4098b4b7d5ba3282c">SVF::PAG::addCmpNode</a></div><div class="ttdeci">void addCmpNode(const PAGNode *res, const CmpPE *edge)</div><div class="ttdoc">Add phi node information. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00320">PAG.h:320</a></div></div>
|
|
335
335
|
<div class="ttc" id="classSVF_1_1PAG_html_adfb70002cc08313c43c403c1203bf091"><div class="ttname"><a href="classSVF_1_1PAG.html#adfb70002cc08313c43c403c1203bf091">SVF::PAG::addObjNode</a></div><div class="ttdeci">NodeID addObjNode(const Value *, PAGNode *node, NodeID i)</div><div class="ttdoc">Add a memory obj node. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00823">PAG.h:823</a></div></div>
|
|
336
336
|
<div class="ttc" id="classSVF_1_1PAG_html_afdd76ad274ec1ebe31587c459c6254aa"><div class="ttname"><a href="classSVF_1_1PAG.html#afdd76ad274ec1ebe31587c459c6254aa">SVF::PAG::addBlackholePtrNode</a></div><div class="ttdeci">NodeID addBlackholePtrNode()</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00810">PAG.h:810</a></div></div>
|
|
337
337
|
<div class="ttc" id="classSVF_1_1PAG_html_a582b8b5ca32b0fbb984e62c55b408bfc"><div class="ttname"><a href="classSVF_1_1PAG.html#a582b8b5ca32b0fbb984e62c55b408bfc">SVF::PAG::getPhiCopyPEs</a></div><div class="ttdeci">const CopyPEList & getPhiCopyPEs(const PAGNode *node) const</div><div class="ttdoc">Get the corresponding PhiCopyPEs. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00272">PAG.h:272</a></div></div>
|
|
338
|
-
<div class="ttc" id="classSVF_1_1PAG_html_aa432bbc7c4e83abecdc8706972a9635b"><div class="ttname"><a href="classSVF_1_1PAG.html#aa432bbc7c4e83abecdc8706972a9635b">SVF::PAG::print</a></div><div class="ttdeci">void print()</div><div class="ttdoc">Print PAG. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#
|
|
338
|
+
<div class="ttc" id="classSVF_1_1PAG_html_aa432bbc7c4e83abecdc8706972a9635b"><div class="ttname"><a href="classSVF_1_1PAG.html#aa432bbc7c4e83abecdc8706972a9635b">SVF::PAG::print</a></div><div class="ttdeci">void print()</div><div class="ttdoc">Print PAG. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00880">PAG.cpp:880</a></div></div>
|
|
339
339
|
<div class="ttc" id="classSVF_1_1PAG_html_abad086cfecdab2d71033574456eb4eb6"><div class="ttname"><a href="classSVF_1_1PAG.html#abad086cfecdab2d71033574456eb4eb6">SVF::PAG::isNullPtr</a></div><div class="ttdeci">bool isNullPtr(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00654">PAG.h:654</a></div></div>
|
|
340
340
|
<div class="ttc" id="classSVF_1_1PAGEdge_html_a79080505b4744aa8806b55215ac2b0f6"><div class="ttname"><a href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6">SVF::PAGEdge::PEDGEK</a></div><div class="ttdeci">PEDGEK</div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00054">PAGEdge.h:54</a></div></div>
|
|
341
341
|
<div class="ttc" id="classSVF_1_1PAGEdge_html_ac42a778eef6bd1c088233da9a8552a84"><div class="ttname"><a href="classSVF_1_1PAGEdge.html#ac42a778eef6bd1c088233da9a8552a84">SVF::PAGEdge::PAGKindToEdgeSetMapTy</a></div><div class="ttdeci">PAGEdgeToSetMapTy PAGKindToEdgeSetMapTy</div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00171">PAGEdge.h:171</a></div></div>
|
|
@@ -349,7 +349,7 @@ $(function() {
|
|
|
349
349
|
<div class="ttc" id="classSVF_1_1PAG_html_ab51dc1fa314705f66d3319ea95adfc68"><div class="ttname"><a href="classSVF_1_1PAG.html#ab51dc1fa314705f66d3319ea95adfc68">SVF::PAG::cmpNodeMap</a></div><div class="ttdeci">CmpNodeMap cmpNodeMap</div><div class="ttdoc">A set of comparision edges. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00096">PAG.h:96</a></div></div>
|
|
350
350
|
<div class="ttc" id="classSVF_1_1CallBlockNode_html"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html">SVF::CallBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
351
351
|
<div class="ttc" id="classSVF_1_1PAG_html_a49da7e7d6273a0d8798166f95ce6bb16"><div class="ttname"><a href="classSVF_1_1PAG.html#a49da7e7d6273a0d8798166f95ce6bb16">SVF::PAG::MemObjToFieldsMap</a></div><div class="ttdeci">Map< NodeID, NodeBS > MemObjToFieldsMap</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00054">PAG.h:54</a></div></div>
|
|
352
|
-
<div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph< PAGNode, PAGEdge >::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#
|
|
352
|
+
<div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph< PAGNode, PAGEdge >::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00387">GenericGraph.h:387</a></div></div>
|
|
353
353
|
<div class="ttc" id="classSVF_1_1PAG_html_af3158e346a519beca6aebf6c9092efc0"><div class="ttname"><a href="classSVF_1_1PAG.html#af3158e346a519beca6aebf6c9092efc0">SVF::PAG::phiNodeMap</a></div><div class="ttdeci">PHINodeMap phiNodeMap</div><div class="ttdoc">A set of phi copy edges. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00093">PAG.h:93</a></div></div>
|
|
354
354
|
<div class="ttc" id="classSVF_1_1PAG_html_a0a417d229823991031eda0b97148481c"><div class="ttname"><a href="classSVF_1_1PAG.html#a0a417d229823991031eda0b97148481c">SVF::PAG::PAG</a></div><div class="ttdeci">PAG(bool buildFromFile)</div><div class="ttdoc">all the callsites of a program </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00362">PAG.cpp:362</a></div></div>
|
|
355
355
|
<div class="ttc" id="classSVF_1_1PAG_html_a0c7cea14374ff762a9933b803853286e"><div class="ttname"><a href="classSVF_1_1PAG.html#a0c7cea14374ff762a9933b803853286e">SVF::PAG::hasNonlabeledEdge</a></div><div class="ttdeci">PAGEdge * hasNonlabeledEdge(PAGNode *src, PAGNode *dst, PAGEdge::PEDGEK kind)</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00727">PAG.cpp:727</a></div></div>
|