svf-tools 1.0.317 → 1.0.321
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/AndersenStat_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/Andersen_8cpp.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/Andersen_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CHGBuilder_8cpp.html +138 -0
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +178 -0
- package/SVF-doxygen/html/html/CHGBuilder_8h.html +95 -0
- package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +109 -0
- package/SVF-doxygen/html/html/CHG_8cpp.html +10 -64
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +31 -108
- package/SVF-doxygen/html/html/CHG_8h.html +9 -3
- package/SVF-doxygen/html/html/CHG_8h_source.html +82 -76
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +37 -33
- package/SVF-doxygen/html/html/ConsG_8h_source.html +32 -32
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DCHG_8h.html +1 -1
- package/SVF-doxygen/html/html/DCHG_8h_source.html +8 -8
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +5 -5
- 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/DDAStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +12 -12
- package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ExternalPAG_8cpp.html +1 -1
- package/SVF-doxygen/html/html/ExternalPAG_8cpp_source.html +22 -22
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +4 -4
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +16 -16
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +6 -6
- package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +3 -3
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +20 -21
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +37 -40
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +5 -5
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp.html +1 -2
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +30 -33
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +31 -31
- package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +48 -48
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +36 -36
- package/SVF-doxygen/html/html/SVFG_8h_source.html +25 -25
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp.html +0 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +5 -6
- package/SVF-doxygen/html/html/SVFIRBuilder_8h.html +1 -7
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +90 -85
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +70 -62
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +168 -182
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +39 -23
- package/SVF-doxygen/html/html/SVFStatements_8h.html +6 -0
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +146 -94
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TCT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/VFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VFGNode_8h.html +2 -0
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +143 -126
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +136 -129
- package/SVF-doxygen/html/html/VFG_8h_source.html +144 -133
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/annotated.html +265 -261
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode-members.html +75 -74
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +10 -9
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode-members.html +75 -74
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +10 -9
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode-members.html +73 -72
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +31 -30
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode-members.html +75 -74
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +35 -34
- package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1AddrPE-members.html +42 -39
- package/SVF-doxygen/html/html/classSVF_1_1AddrPE.html +27 -22
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode-members.html +77 -76
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +23 -22
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode-members.html +69 -68
- package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +30 -29
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPPE-members.html +49 -28
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPPE.html +295 -34
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPPE.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode-members.html +76 -75
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +12 -11
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +70 -22
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +633 -89
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode-members.html +164 -0
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +694 -0
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CHEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHEdge.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder-members.html +100 -0
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +777 -0
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph-members.html +31 -46
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +103 -651
- package/SVF-doxygen/html/html/classSVF_1_1CHNode.html +54 -54
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +48 -45
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +33 -28
- package/SVF-doxygen/html/html/classSVF_1_1CmpPE-members.html +49 -28
- package/SVF-doxygen/html/html/classSVF_1_1CmpPE.html +295 -34
- package/SVF-doxygen/html/html/classSVF_1_1CmpPE.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode-members.html +79 -78
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +13 -12
- package/SVF-doxygen/html/html/classSVF_1_1CommonCHGraph.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +90 -86
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1CopyCGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyCGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CopyPE-members.html +45 -42
- package/SVF-doxygen/html/html/classSVF_1_1CopyPE.html +27 -22
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode-members.html +80 -79
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +11 -10
- package/SVF-doxygen/html/html/classSVF_1_1DCHEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DCHEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode-members.html +72 -71
- package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +10 -9
- package/SVF-doxygen/html/html/classSVF_1_1ExternalPAG.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode-members.html +76 -75
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +10 -9
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode-members.html +76 -75
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +10 -9
- package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode-members.html +76 -75
- package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +38 -37
- package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode-members.html +79 -78
- package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +38 -37
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1GenericEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +8 -7
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepCGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepCGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepPE-members.html +45 -42
- package/SVF-doxygen/html/html/classSVF_1_1GepPE.html +22 -17
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode-members.html +80 -79
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +23 -22
- package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph-members.html +36 -37
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +149 -163
- package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode-members.html +88 -87
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +10 -9
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode-members.html +86 -85
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +46 -45
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode-members.html +85 -84
- package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +10 -9
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode-members.html +84 -83
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +33 -32
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LoadCGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadCGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LoadPE-members.html +45 -42
- package/SVF-doxygen/html/html/classSVF_1_1LoadPE.html +27 -22
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode-members.html +80 -79
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +11 -10
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode-members.html +70 -69
- package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +10 -9
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode-members.html +81 -80
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +10 -9
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +143 -0
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +669 -0
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepPE-members.html +47 -44
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepPE.html +34 -29
- package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode-members.html +66 -65
- package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +37 -36
- package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +17 -16
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode-members.html +77 -76
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +44 -43
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1PhiPE-members.html +153 -0
- package/SVF-doxygen/html/html/classSVF_1_1PhiPE.html +717 -0
- package/SVF-doxygen/html/html/classSVF_1_1PhiPE.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +77 -79
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +48 -45
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +33 -28
- package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +90 -86
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +81 -71
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +105 -101
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +149 -138
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +106 -119
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +621 -1090
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +14 -12
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +401 -288
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt-members.html +41 -35
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +174 -37
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode-members.html +76 -75
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +14 -13
- package/SVF-doxygen/html/html/classSVF_1_1StoreCGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreCGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1StorePE-members.html +45 -42
- package/SVF-doxygen/html/html/classSVF_1_1StorePE.html +27 -22
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode-members.html +80 -79
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +11 -10
- package/SVF-doxygen/html/html/classSVF_1_1TCTEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TCTEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +49 -46
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +22 -17
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +49 -46
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +22 -17
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPPE-members.html +56 -43
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPPE.html +329 -30
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode-members.html +34 -32
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +63 -30
- package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +52 -48
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +515 -441
- package/SVF-doxygen/html/html/classSVF_1_1VFGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1VFGNode-members.html +65 -64
- package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +22 -18
- package/SVF-doxygen/html/html/classSVF_1_1VFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepCGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepCGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepPE-members.html +47 -44
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepPE.html +28 -23
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +8 -8
- package/SVF-doxygen/html/html/classes.html +95 -94
- package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/dir_1870ebf480d659cc38d2dd7ac3aa8993.html +2 -2
- package/SVF-doxygen/html/html/dir_5840dc76920ee0f379cd88b55fa041fd.html +1 -1
- package/SVF-doxygen/html/html/dir_770a542efe75a1b68c109cb4e4290224.html +1 -3
- package/SVF-doxygen/html/html/dir_fa02919a30fec2d2c2d591b4d920d648.html +2 -2
- package/SVF-doxygen/html/html/files.html +18 -19
- package/SVF-doxygen/html/html/functions_0x7e.html +0 -3
- package/SVF-doxygen/html/html/functions_a.html +35 -36
- package/SVF-doxygen/html/html/functions_b.html +24 -17
- package/SVF-doxygen/html/html/functions_c.html +44 -43
- package/SVF-doxygen/html/html/functions_d.html +0 -3
- package/SVF-doxygen/html/html/functions_e.html +7 -9
- package/SVF-doxygen/html/html/functions_eval_b.html +4 -0
- package/SVF-doxygen/html/html/functions_eval_p.html +3 -0
- package/SVF-doxygen/html/html/functions_f.html +6 -15
- package/SVF-doxygen/html/html/functions_func.html +40 -38
- package/SVF-doxygen/html/html/functions_func_0x7e.html +0 -3
- package/SVF-doxygen/html/html/functions_func_b.html +14 -8
- package/SVF-doxygen/html/html/functions_func_c.html +32 -28
- package/SVF-doxygen/html/html/functions_func_d.html +0 -3
- package/SVF-doxygen/html/html/functions_func_e.html +0 -3
- package/SVF-doxygen/html/html/functions_func_g.html +92 -60
- package/SVF-doxygen/html/html/functions_func_h.html +3 -9
- package/SVF-doxygen/html/html/functions_func_i.html +12 -16
- package/SVF-doxygen/html/html/functions_func_m.html +6 -0
- package/SVF-doxygen/html/html/functions_func_o.html +11 -4
- package/SVF-doxygen/html/html/functions_func_p.html +6 -6
- package/SVF-doxygen/html/html/functions_func_r.html +3 -4
- package/SVF-doxygen/html/html/functions_func_s.html +6 -9
- package/SVF-doxygen/html/html/functions_func_t.html +14 -11
- package/SVF-doxygen/html/html/functions_g.html +91 -59
- package/SVF-doxygen/html/html/functions_h.html +2 -11
- package/SVF-doxygen/html/html/functions_i.html +12 -16
- package/SVF-doxygen/html/html/functions_l.html +6 -6
- package/SVF-doxygen/html/html/functions_m.html +9 -0
- package/SVF-doxygen/html/html/functions_n.html +6 -6
- package/SVF-doxygen/html/html/functions_o.html +31 -16
- package/SVF-doxygen/html/html/functions_p.html +23 -18
- package/SVF-doxygen/html/html/functions_r.html +4 -8
- package/SVF-doxygen/html/html/functions_rela.html +3 -0
- package/SVF-doxygen/html/html/functions_s.html +14 -16
- package/SVF-doxygen/html/html/functions_t.html +18 -15
- package/SVF-doxygen/html/html/functions_type_b.html +0 -6
- package/SVF-doxygen/html/html/functions_type_c.html +2 -7
- package/SVF-doxygen/html/html/functions_type_o.html +3 -0
- package/SVF-doxygen/html/html/functions_type_p.html +4 -1
- package/SVF-doxygen/html/html/functions_type_u.html +0 -6
- package/SVF-doxygen/html/html/functions_type_v.html +3 -0
- package/SVF-doxygen/html/html/functions_type_w.html +1 -0
- package/SVF-doxygen/html/html/functions_u.html +4 -13
- package/SVF-doxygen/html/html/functions_v.html +8 -5
- package/SVF-doxygen/html/html/functions_vars_a.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_b.html +6 -3
- package/SVF-doxygen/html/html/functions_vars_c.html +5 -4
- package/SVF-doxygen/html/html/functions_vars_e.html +1 -2
- package/SVF-doxygen/html/html/functions_vars_f.html +0 -9
- package/SVF-doxygen/html/html/functions_vars_h.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_m.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_o.html +8 -3
- package/SVF-doxygen/html/html/functions_vars_p.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_r.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_u.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_v.html +3 -3
- package/SVF-doxygen/html/html/functions_w.html +9 -4
- package/SVF-doxygen/html/html/globals_d.html +0 -4
- package/SVF-doxygen/html/html/globals_e.html +6 -9
- package/SVF-doxygen/html/html/globals_func_d.html +0 -3
- package/SVF-doxygen/html/html/globals_func_e.html +6 -9
- package/SVF-doxygen/html/html/globals_func_g.html +2 -5
- package/SVF-doxygen/html/html/globals_g.html +0 -3
- package/SVF-doxygen/html/html/globals_o.html +0 -9
- package/SVF-doxygen/html/html/globals_p.html +1 -1
- package/SVF-doxygen/html/html/globals_r.html +3 -3
- package/SVF-doxygen/html/html/globals_s.html +3 -3
- package/SVF-doxygen/html/html/globals_vars.html +2 -5
- package/SVF-doxygen/html/html/globals_z.html +1 -1
- package/SVF-doxygen/html/html/hierarchy.html +105 -101
- package/SVF-doxygen/html/html/menudata.js +0 -1
- package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/namespaceSVF.html +27 -37
- package/SVF-doxygen/html/html/namespacemembers_p.html +0 -3
- package/SVF-doxygen/html/html/namespacemembers_type_p.html +0 -3
- package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/search/all_1.js +20 -21
- package/SVF-doxygen/html/html/search/all_10.js +11 -10
- package/SVF-doxygen/html/html/search/all_12.js +6 -7
- package/SVF-doxygen/html/html/search/all_13.js +13 -13
- package/SVF-doxygen/html/html/search/all_14.js +3 -3
- package/SVF-doxygen/html/html/search/all_15.js +2 -4
- package/SVF-doxygen/html/html/search/all_16.js +2 -2
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_1a.js +1 -1
- package/SVF-doxygen/html/html/search/all_1b.js +0 -1
- package/SVF-doxygen/html/html/search/all_2.js +13 -10
- package/SVF-doxygen/html/html/search/all_3.js +15 -15
- package/SVF-doxygen/html/html/search/all_4.js +2 -4
- package/SVF-doxygen/html/html/search/all_5.js +3 -6
- package/SVF-doxygen/html/html/search/all_6.js +1 -4
- package/SVF-doxygen/html/html/search/all_7.js +34 -34
- package/SVF-doxygen/html/html/search/all_8.js +2 -5
- package/SVF-doxygen/html/html/search/all_9.js +4 -5
- package/SVF-doxygen/html/html/search/all_b.js +1 -1
- package/SVF-doxygen/html/html/search/all_c.js +3 -3
- package/SVF-doxygen/html/html/search/all_d.js +6 -3
- package/SVF-doxygen/html/html/search/all_e.js +6 -6
- package/SVF-doxygen/html/html/search/all_f.js +7 -8
- package/SVF-doxygen/html/html/search/classes_1.js +2 -0
- package/SVF-doxygen/html/html/search/classes_2.js +1 -0
- package/SVF-doxygen/html/html/search/classes_4.js +1 -2
- package/SVF-doxygen/html/html/search/classes_a.js +1 -0
- package/SVF-doxygen/html/html/search/classes_d.js +1 -0
- package/SVF-doxygen/html/html/search/enumvalues_1.js +1 -0
- package/SVF-doxygen/html/html/search/enumvalues_d.js +1 -0
- package/SVF-doxygen/html/html/search/files_2.js +2 -1
- package/SVF-doxygen/html/html/search/files_4.js +1 -3
- package/SVF-doxygen/html/html/search/functions_0.js +20 -20
- package/SVF-doxygen/html/html/search/functions_1.js +10 -8
- package/SVF-doxygen/html/html/search/functions_10.js +2 -3
- package/SVF-doxygen/html/html/search/functions_11.js +1 -1
- package/SVF-doxygen/html/html/search/functions_12.js +1 -1
- package/SVF-doxygen/html/html/search/functions_13.js +1 -1
- package/SVF-doxygen/html/html/search/functions_16.js +0 -1
- package/SVF-doxygen/html/html/search/functions_2.js +8 -8
- package/SVF-doxygen/html/html/search/functions_3.js +2 -4
- package/SVF-doxygen/html/html/search/functions_4.js +0 -2
- package/SVF-doxygen/html/html/search/functions_6.js +34 -34
- package/SVF-doxygen/html/html/search/functions_7.js +2 -4
- package/SVF-doxygen/html/html/search/functions_8.js +3 -4
- package/SVF-doxygen/html/html/search/functions_b.js +2 -0
- package/SVF-doxygen/html/html/search/functions_d.js +4 -6
- package/SVF-doxygen/html/html/search/functions_e.js +1 -1
- package/SVF-doxygen/html/html/search/functions_f.js +2 -2
- package/SVF-doxygen/html/html/search/related_0.js +1 -2
- package/SVF-doxygen/html/html/search/related_1.js +2 -1
- package/SVF-doxygen/html/html/search/related_2.js +1 -1
- package/SVF-doxygen/html/html/search/related_3.js +1 -2
- package/SVF-doxygen/html/html/search/related_4.js +2 -1
- package/SVF-doxygen/html/html/search/related_5.js +1 -4
- package/SVF-doxygen/html/html/search/related_6.js +4 -1
- package/SVF-doxygen/html/html/search/related_7.js +1 -5
- package/SVF-doxygen/html/html/search/related_8.js +5 -2
- package/SVF-doxygen/html/html/search/related_9.js +2 -1
- package/SVF-doxygen/html/html/search/related_a.html +26 -0
- package/SVF-doxygen/html/html/search/related_a.js +4 -0
- package/SVF-doxygen/html/html/search/searchdata.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_1.js +0 -2
- package/SVF-doxygen/html/html/search/typedefs_13.js +0 -2
- package/SVF-doxygen/html/html/search/typedefs_14.js +1 -0
- package/SVF-doxygen/html/html/search/typedefs_15.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_2.js +1 -3
- package/SVF-doxygen/html/html/search/typedefs_d.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_e.js +1 -0
- package/SVF-doxygen/html/html/search/typedefs_f.js +2 -2
- package/SVF-doxygen/html/html/search/variables_1.js +0 -1
- package/SVF-doxygen/html/html/search/variables_10.js +2 -1
- package/SVF-doxygen/html/html/search/variables_12.js +0 -1
- package/SVF-doxygen/html/html/search/variables_13.js +2 -1
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_15.js +1 -2
- package/SVF-doxygen/html/html/search/variables_16.js +1 -1
- package/SVF-doxygen/html/html/search/variables_1a.js +1 -1
- package/SVF-doxygen/html/html/search/variables_2.js +2 -1
- package/SVF-doxygen/html/html/search/variables_3.js +2 -2
- package/SVF-doxygen/html/html/search/variables_4.js +0 -1
- package/SVF-doxygen/html/html/search/variables_5.js +1 -1
- package/SVF-doxygen/html/html/search/variables_6.js +1 -4
- package/SVF-doxygen/html/html/search/variables_8.js +0 -1
- package/SVF-doxygen/html/html/search/variables_b.js +1 -1
- package/SVF-doxygen/html/html/search/variables_d.js +2 -1
- package/SVF-doxygen/html/html/search/variables_e.js +1 -1
- package/SVF-doxygen/html/html/search/variables_f.js +2 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.html +14 -14
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +16 -16
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +18 -18
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +11 -11
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +29 -29
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CHNode_01_5_01_4_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CHGraph_01_5_01_4.html +3 -3
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CHNode_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1SVFVar_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFGNode_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +5 -6
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
- package/include/{SVF-FE → Graphs}/CHG.h +37 -20
- package/include/Graphs/GenericGraph.h +1 -1
- package/include/Graphs/IRGraph.h +6 -15
- package/include/Graphs/SVFGOPT.h +3 -2
- package/include/Graphs/VFG.h +42 -41
- package/include/Graphs/VFGNode.h +60 -7
- package/include/MemoryModel/SVFIR.h +93 -159
- package/include/MemoryModel/SVFStatements.h +253 -21
- package/include/SVF-FE/CHGBuilder.h +69 -0
- package/include/SVF-FE/DCHG.h +1 -1
- package/include/SVF-FE/SVFIRBuilder.h +21 -8
- package/lib/Graphs/CHG.cpp +280 -0
- package/lib/Graphs/ConsG.cpp +9 -0
- package/lib/Graphs/IRGraph.cpp +23 -8
- package/lib/Graphs/VFG.cpp +45 -19
- package/lib/MSSA/SVFGBuilder.cpp +3 -2
- package/lib/MemoryModel/PAGBuilderFromFile.cpp +9 -3
- package/lib/MemoryModel/PointerAnalysis.cpp +3 -5
- package/lib/MemoryModel/SVFIR.cpp +68 -12
- package/lib/MemoryModel/SVFStatements.cpp +65 -4
- package/lib/SVF-FE/{CHG.cpp → CHGBuilder.cpp} +82 -324
- package/lib/SVF-FE/SVFIRBuilder.cpp +58 -57
- package/lib/WPA/Andersen.cpp +1 -1
- package/lib/WPA/TypeAnalysis.cpp +1 -1
- package/package.json +1 -1
- package/tools/Example/svf-ex.cpp +1 -1
- package/include/Graphs/ExternalPAG.h +0 -147
- package/include/SVF-FE/CommonCHG.h +0 -49
- package/lib/Graphs/ExternalPAG.cpp +0 -623
|
@@ -66,17 +66,17 @@ $(function() {
|
|
|
66
66
|
<div class="title">IRGraph.h</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="IRGraph_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">//===- SVFIR.h -- SVF IR Graph or PAG (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"> * IRGraph.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 IRGRAPH_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#define IRGRAPH_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="SVFStatements_8h.html">MemoryModel/SVFStatements.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="SVFVariables_8h.html">MemoryModel/SVFVariables.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"><a class="line" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea"> 42</a></span> <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> <a class="code" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ae6ead95a66f69e1e4cfa1159f868a152"> 43</a></span> <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> <a class="code" href="namespaceSVF.html#ae6ead95a66f69e1e4cfa1159f868a152">PAGEdge</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">/*</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">* Graph representation of SVF IR. It can be seen as a program assignment graph (PAG)</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">*/</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html"> 48</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1IRGraph.html">IRGraph</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1GenericGraph.html">GenericGraph</a><SVFVar,SVFStmt></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_1IRGraph.html#ae9547730a27575194977b240647e8ce2"> 51</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFStmt*></a> <a class="code" href="classSVF_1_1IRGraph.html#ae9547730a27575194977b240647e8ce2">PAGEdgeSet</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a833015e6a332b0d97b9a7de37dce5fab"> 52</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_1IRGraph.html#a833015e6a332b0d97b9a7de37dce5fab">ValueToEdgeMap</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a7750a2b2a98bb39fc5f67af4e0c12379"> 55</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IRGraph.html#a7750a2b2a98bb39fc5f67af4e0c12379">fromFile</a>; </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a80cf14bf43accb89cb82490b4f173598"> 56</a></span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a80cf14bf43accb89cb82490b4f173598">nodeNumAfterPAGBuild</a>; <span class="comment">// initial node number after building SVFIR, excluding later added nodes, e.g., gepobj nodes</span></div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a9f68ffe75e3d9457092ac2368aa08a27"> 57</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a9f68ffe75e3d9457092ac2368aa08a27">totalPTAPAGEdge</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a6efd8215ac2484a16a9ab2afbde290b4"> 58</a></span>  <a class="code" href="classSVF_1_1SVFStmt.html#a47a67e8aaae7059e353841a40b89e936">SVFStmt::PAGKindToEdgeSetMapTy</a> <a class="code" href="classSVF_1_1IRGraph.html#a6efd8215ac2484a16a9ab2afbde290b4">PAGEdgeKindToSetMap</a>; <span class="comment">// < SVFIR edge map containing all PAGEdges</span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a780372b8241dc1c76e31b0340d5d2401"> 59</a></span>  <a class="code" href="classSVF_1_1SVFStmt.html#a47a67e8aaae7059e353841a40b89e936">SVFStmt::PAGKindToEdgeSetMapTy</a> <a class="code" href="classSVF_1_1IRGraph.html#a780372b8241dc1c76e31b0340d5d2401">PTAPAGEdgeKindToSetMap</a>; <span class="comment">// < SVFIR edge map containing only pointer-related edges, i.e, both RHS and RHS are of pointer type</span></div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a1308b5d3001c6676e8a8be6a8b118704"> 60</a></span>  ValueToEdgeMap <a class="code" href="classSVF_1_1IRGraph.html#a1308b5d3001c6676e8a8be6a8b118704">valueToEdgeMap</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a679145e7bf818b0a19005dc8e2845fe1"> 61</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html">SymbolTableInfo</a>* <a class="code" href="classSVF_1_1IRGraph.html#a679145e7bf818b0a19005dc8e2845fe1">symInfo</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007"> 65</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007">addNode</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">addGNode</a>(i,node);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">return</span> i;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e">addEdge</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* src, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* dst, <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* edge);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1IRGraph.html#abe0ab797a3da420e4d2f9136d64fb407">hasNonlabeledEdge</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* src, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* dst, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0">hasLabeledEdge</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* src, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* dst, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::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="l00079"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aefe3143b33cee00c3c2611fea577c1ac"> 79</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#aefe3143b33cee00c3c2611fea577c1ac">mapValueToEdge</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V, <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</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">auto</span> inserted = valueToEdgeMap.emplace(V, PAGEdgeSet{edge});</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">if</span> (!inserted.second) {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  inserted.first->second.emplace(edge);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a4f5792216c6f38c32dac5074862ffc50"> 87</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_1IRGraph.html#a4f5792216c6f38c32dac5074862ffc50">getMemObj</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)<span class="keyword"> const</span>{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">return</span> 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="l00089"></a><span class="lineno"> 89</span>  }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a34f7644ccf88fc0911c0b4f625dc1f28"> 92</a></span>  <a class="code" href="classSVF_1_1IRGraph.html#a34f7644ccf88fc0911c0b4f625dc1f28">IRGraph</a>(<span class="keywordtype">bool</span> buildFromFile): fromFile(buildFromFile), nodeNumAfterPAGBuild(0), totalPTAPAGEdge(0){</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  symInfo = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// insert dummy value if a correct value cannot be found</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  valueToEdgeMap[<span class="keyword">nullptr</span>] = <a class="code" href="classSVF_1_1IRGraph.html#ae9547730a27575194977b240647e8ce2">PAGEdgeSet</a>();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1IRGraph.html#a2085d6895363c2ff7b757eb58f3f4cea">~IRGraph</a>();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a41423da58a07b344bc7ca8dd96d48f98"> 101</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IRGraph.html#a41423da58a07b344bc7ca8dd96d48f98">isBuiltFromFile</a>()</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a7750a2b2a98bb39fc5f67af4e0c12379">fromFile</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a3071bd100577507b49859f1b1e23fa77"> 106</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">SVFStmt::PAGEdgeSetTy</a>& <a class="code" href="classSVF_1_1IRGraph.html#a3071bd100577507b49859f1b1e23fa77">getEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">return</span> PAGEdgeKindToSetMap[kind];</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  }</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a2e2b2090569c09c2e2f1d90d04fd2f8b"> 111</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">SVFStmt::PAGEdgeSetTy</a>& <a class="code" href="classSVF_1_1IRGraph.html#a2e2b2090569c09c2e2f1d90d04fd2f8b">getPTAEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">return</span> PTAPAGEdgeKindToSetMap[kind];</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aa9aca34170ac4308359a4c8c3466dcd0"> 117</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> PAGEdgeSet& <a class="code" href="classSVF_1_1IRGraph.html#aa9aca34170ac4308359a4c8c3466dcd0">getValueEdges</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</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">auto</span> it = valueToEdgeMap.find(V);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">if</span> (it == valueToEdgeMap.end()) {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="comment">//special empty set</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">return</span> valueToEdgeMap.at(<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624"> 129</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</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> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#aec7ee137f828c9d61a11df7fc2241161">getValSym</a>(V);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  }</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aceb17dfbe137658625e16291127267d1"> 133</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IRGraph.html#aceb17dfbe137658625e16291127267d1">hasValueNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* V)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</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="l00136"></a><span class="lineno"> 136</span>  }</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aba13ca47865614e45321c1ae53e640c1"> 139</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#aba13ca47865614e45321c1ae53e640c1">getObjectNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#afca5a68d1825326e3ec6302ce0afee66">getObjSym</a>(V);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  }</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a96010999a4e5013beb1c37ef753ff910"> 144</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a96010999a4e5013beb1c37ef753ff910">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="l00145"></a><span class="lineno"> 145</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</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="l00147"></a><span class="lineno"> 147</span>  }</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b"> 149</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">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="l00150"></a><span class="lineno"> 150</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</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="l00152"></a><span class="lineno"> 152</span>  }</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0"> 153</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">getBlackHoleNode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4">blackholeSymID</a>();</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  }</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#ac5da3a0cbe040a45d719b6f6a23aed91"> 157</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#ac5da3a0cbe040a45d719b6f6a23aed91">getConstantNode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497">constantSymID</a>();</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198"> 161</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">getBlkPtr</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72">blkPtrSymID</a>();</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  }</div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5"> 165</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">getNullPtr</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#adaed6e68c2f53260ed4c4fc38b5c4721">nullPtrSymID</a>();</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  }</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aafe9544b07a8c40bf915613df11df48e"> 169</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_1IRGraph.html#aafe9544b07a8c40bf915613df11df48e">getBlackHoleObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#aebf96274e1ad2a523981487839a3025e">getBlkObj</a>();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aceae1e4e49a1d2e63ef3d71a7e5ef3eb"> 173</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_1IRGraph.html#aceae1e4e49a1d2e63ef3d71a7e5ef3eb">getConstantObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a661eb9ff1839c3af942517808414202b">getConstantObj</a>();</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a4c8ef6e30a33ecbdc4024e201237ae22"> 178</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a4c8ef6e30a33ecbdc4024e201237ae22">getValueNodeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</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="l00181"></a><span class="lineno"> 181</span>  }</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a8e9b2e37b36433c01e90d54a4edbf7f3"> 182</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a8e9b2e37b36433c01e90d54a4edbf7f3">getObjectNodeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</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="l00185"></a><span class="lineno"> 185</span>  }</div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a0a18bca50f7cd3a1882754f19303d257"> 186</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a0a18bca50f7cd3a1882754f19303d257">getNodeNumAfterPAGBuild</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a80cf14bf43accb89cb82490b4f173598">nodeNumAfterPAGBuild</a>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  }</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a5fe12445ed0528183775747dec356db0"> 190</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#a5fe12445ed0528183775747dec356db0">setNodeNumAfterPAGBuild</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num)</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  nodeNumAfterPAGBuild = num;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a973fb40e0eb600a7f90884767e036a96"> 195</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a973fb40e0eb600a7f90884767e036a96">getPAGNodeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="keyword"> </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_1GenericGraph.html#a38122734cbe71551a420dfb7fee2012e">nodeNum</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_1IRGraph.html#a2fda1df53e53c0098d99f36d8f6f0998"> 199</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a2fda1df53e53c0098d99f36d8f6f0998">getPAGEdgeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericGraph.html#a2fbc96de5f066469c2739229307bcc0c">edgeNum</a>;</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_1IRGraph.html#ad4860fe89aa3a11c73aac3ed60f712cb"> 203</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#ad4860fe89aa3a11c73aac3ed60f712cb">getPTAPAGEdgeNum</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_1IRGraph.html#a9f68ffe75e3d9457092ac2368aa08a27">totalPTAPAGEdge</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"><a class="line" href="classSVF_1_1IRGraph.html#a5a34f23fee4f84e74908041efebd6867"> 208</a></span>  <span class="keyword">inline</span> std::string <a class="code" href="classSVF_1_1IRGraph.html#a5a34f23fee4f84e74908041efebd6867">getGraphName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">return</span> <span class="stringliteral">"SVFIR"</span>;</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> </div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#a1cb32461439c4dc8d044c2bfadb11307">dump</a>(std::string name);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#a3a656bb310ba0f42e525995a480a5b67">view</a>();</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> };</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> }</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="keyword">namespace </span><a class="code" href="namespacellvm.html">llvm</a></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment">/* !</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="comment"> * GraphTraits specializations of SVFIR to be used for the generic graph algorithms.</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="comment"> * Provide graph traits for tranversing from a SVFIR node using standard graph traversals.</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="comment"> */</span></div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01SVF_1_1SVFVar_01_5_01_4.html"> 230</a></span> <span class="keyword">template</span><> <span class="keyword">struct </span>GraphTraits<<a class="code" href="namespaceSVF.html">SVF</a>::SVFVar*> : <span class="keyword">public</span> GraphTraits<SVF::GenericNode<SVF::SVFVar,SVF::SVFStmt>* ></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> };</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.html"> 235</a></span> <span class="keyword">template</span><> <span class="keyword">struct </span>GraphTraits<Inverse<SVF::SVFVar *> > : <span class="keyword">public</span> GraphTraits<Inverse<SVF::GenericNode<SVF::SVFVar,SVF::SVFStmt>* > ></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> };</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html"> 239</a></span> <span class="keyword">template</span><> <span class="keyword">struct </span>GraphTraits<SVF::<a class="code" href="classSVF_1_1IRGraph.html#a34f7644ccf88fc0911c0b4f625dc1f28">IRGraph</a>*> : <span class="keyword">public</span> GraphTraits<SVF::GenericGraph<SVF::SVFVar,SVF::SVFStmt>* ></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> {</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html#a2f3dc486fd4a3d8f4f4fd27d0f0f65c4"> 241</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a> *<a class="code" href="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html#a2f3dc486fd4a3d8f4f4fd27d0f0f65c4">NodeRef</a>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> };</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> } <span class="comment">// End namespace llvm</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="preprocessor">#endif </span><span class="comment">/* IRGRAPH_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1IRGraph_html_a3ce34b9fcb651689bce44ab48fbcdff0"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">SVF::IRGraph::getBlackHoleNode</a></div><div class="ttdeci">NodeID getBlackHoleNode() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00153">IRGraph.h:153</a></div></div>
|
|
69
|
+
<a href="IRGraph_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">//===- SVFIR.h -- SVF IR Graph or PAG (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"> * IRGraph.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 IRGRAPH_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#define IRGRAPH_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="SVFStatements_8h.html">MemoryModel/SVFStatements.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="SVFVariables_8h.html">MemoryModel/SVFVariables.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"><a class="line" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea"> 42</a></span> <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> <a class="code" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ae6ead95a66f69e1e4cfa1159f868a152"> 43</a></span> <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> <a class="code" href="namespaceSVF.html#ae6ead95a66f69e1e4cfa1159f868a152">PAGEdge</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">/*</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">* Graph representation of SVF IR. It can be seen as a program assignment graph (PAG)</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">*/</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html"> 48</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1IRGraph.html">IRGraph</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1GenericGraph.html">GenericGraph</a><SVFVar,SVFStmt></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_1IRGraph.html#ae9547730a27575194977b240647e8ce2"> 51</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFStmt*></a> <a class="code" href="classSVF_1_1IRGraph.html#ae9547730a27575194977b240647e8ce2">PAGEdgeSet</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a833015e6a332b0d97b9a7de37dce5fab"> 52</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_1IRGraph.html#a833015e6a332b0d97b9a7de37dce5fab">ValueToEdgeMap</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a6efd8215ac2484a16a9ab2afbde290b4"> 55</a></span>  <a class="code" href="classSVF_1_1SVFStmt.html#a47a67e8aaae7059e353841a40b89e936">SVFStmt::PAGKindToEdgeSetMapTy</a> <a class="code" href="classSVF_1_1IRGraph.html#a6efd8215ac2484a16a9ab2afbde290b4">PAGEdgeKindToSetMap</a>; <span class="comment">// < SVFIR edge map containing all PAGEdges</span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a780372b8241dc1c76e31b0340d5d2401"> 56</a></span>  <a class="code" href="classSVF_1_1SVFStmt.html#a47a67e8aaae7059e353841a40b89e936">SVFStmt::PAGKindToEdgeSetMapTy</a> <a class="code" href="classSVF_1_1IRGraph.html#a780372b8241dc1c76e31b0340d5d2401">PTAPAGEdgeKindToSetMap</a>; <span class="comment">// < SVFIR edge map containing only pointer-related edges, i.e, both RHS and RHS are of pointer type</span></div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a7750a2b2a98bb39fc5f67af4e0c12379"> 57</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IRGraph.html#a7750a2b2a98bb39fc5f67af4e0c12379">fromFile</a>; </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a80cf14bf43accb89cb82490b4f173598"> 58</a></span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a80cf14bf43accb89cb82490b4f173598">nodeNumAfterPAGBuild</a>; <span class="comment">// initial node number after building SVFIR, excluding later added nodes, e.g., gepobj nodes</span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a9f68ffe75e3d9457092ac2368aa08a27"> 59</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a9f68ffe75e3d9457092ac2368aa08a27">totalPTAPAGEdge</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a1308b5d3001c6676e8a8be6a8b118704"> 60</a></span>  ValueToEdgeMap <a class="code" href="classSVF_1_1IRGraph.html#a1308b5d3001c6676e8a8be6a8b118704">valueToEdgeMap</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a679145e7bf818b0a19005dc8e2845fe1"> 61</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html">SymbolTableInfo</a>* <a class="code" href="classSVF_1_1IRGraph.html#a679145e7bf818b0a19005dc8e2845fe1">symInfo</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007"> 64</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007">addNode</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">addGNode</a>(i,node);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">return</span> i;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e">addEdge</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* src, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* dst, <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* edge);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1IRGraph.html#abe0ab797a3da420e4d2f9136d64fb407">hasNonlabeledEdge</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* src, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* dst, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0">hasLabeledEdge</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* src, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* dst, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::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="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0">hasLabeledEdge</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* src, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* op1, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* op2);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aefe3143b33cee00c3c2611fea577c1ac"> 81</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#aefe3143b33cee00c3c2611fea577c1ac">mapValueToEdge</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V, <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">auto</span> inserted = valueToEdgeMap.emplace(V, PAGEdgeSet{edge});</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">if</span> (!inserted.second) {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  inserted.first->second.emplace(edge);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a4f5792216c6f38c32dac5074862ffc50"> 89</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_1IRGraph.html#a4f5792216c6f38c32dac5074862ffc50">getMemObj</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)<span class="keyword"> const</span>{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">return</span> 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="l00091"></a><span class="lineno"> 91</span>  }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a34f7644ccf88fc0911c0b4f625dc1f28"> 94</a></span>  <a class="code" href="classSVF_1_1IRGraph.html#a34f7644ccf88fc0911c0b4f625dc1f28">IRGraph</a>(<span class="keywordtype">bool</span> buildFromFile): fromFile(buildFromFile), nodeNumAfterPAGBuild(0), totalPTAPAGEdge(0){</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  symInfo = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="comment">// insert dummy value if a correct value cannot be found</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  valueToEdgeMap[<span class="keyword">nullptr</span>] = <a class="code" href="classSVF_1_1IRGraph.html#ae9547730a27575194977b240647e8ce2">PAGEdgeSet</a>();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1IRGraph.html#a2085d6895363c2ff7b757eb58f3f4cea">~IRGraph</a>();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a41423da58a07b344bc7ca8dd96d48f98"> 103</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IRGraph.html#a41423da58a07b344bc7ca8dd96d48f98">isBuiltFromFile</a>()</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a7750a2b2a98bb39fc5f67af4e0c12379">fromFile</a>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  }</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aa9aca34170ac4308359a4c8c3466dcd0"> 108</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> PAGEdgeSet& <a class="code" href="classSVF_1_1IRGraph.html#aa9aca34170ac4308359a4c8c3466dcd0">getValueEdges</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">auto</span> it = valueToEdgeMap.find(V);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">if</span> (it == valueToEdgeMap.end()) {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="comment">//special empty set</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">return</span> valueToEdgeMap.at(<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624"> 120</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</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="l00123"></a><span class="lineno"> 123</span>  }</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aceb17dfbe137658625e16291127267d1"> 124</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IRGraph.html#aceb17dfbe137658625e16291127267d1">hasValueNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* V)</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#acbcd5035240fab0b809c3334a27159ae">hasValSym</a>(V);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aba13ca47865614e45321c1ae53e640c1"> 130</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#aba13ca47865614e45321c1ae53e640c1">getObjectNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</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="l00133"></a><span class="lineno"> 133</span>  }</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a96010999a4e5013beb1c37ef753ff910"> 135</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a96010999a4e5013beb1c37ef753ff910">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="l00136"></a><span class="lineno"> 136</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</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="l00138"></a><span class="lineno"> 138</span>  }</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b"> 140</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">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="l00141"></a><span class="lineno"> 141</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</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="l00143"></a><span class="lineno"> 143</span>  }</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0"> 144</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">getBlackHoleNode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4">blackholeSymID</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"><a class="line" href="classSVF_1_1IRGraph.html#ac5da3a0cbe040a45d719b6f6a23aed91"> 148</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#ac5da3a0cbe040a45d719b6f6a23aed91">getConstantNode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497">constantSymID</a>();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198"> 152</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">getBlkPtr</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72">blkPtrSymID</a>();</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  }</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5"> 156</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">getNullPtr</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#adaed6e68c2f53260ed4c4fc38b5c4721">nullPtrSymID</a>();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  }</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aafe9544b07a8c40bf915613df11df48e"> 160</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_1IRGraph.html#aafe9544b07a8c40bf915613df11df48e">getBlackHoleObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#aebf96274e1ad2a523981487839a3025e">getBlkObj</a>();</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aceae1e4e49a1d2e63ef3d71a7e5ef3eb"> 164</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_1IRGraph.html#aceae1e4e49a1d2e63ef3d71a7e5ef3eb">getConstantObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">return</span> symInfo-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a661eb9ff1839c3af942517808414202b">getConstantObj</a>();</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> </div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a4c8ef6e30a33ecbdc4024e201237ae22"> 169</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a4c8ef6e30a33ecbdc4024e201237ae22">getValueNodeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</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="l00172"></a><span class="lineno"> 172</span>  }</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a8e9b2e37b36433c01e90d54a4edbf7f3"> 173</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a8e9b2e37b36433c01e90d54a4edbf7f3">getObjectNodeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</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="l00176"></a><span class="lineno"> 176</span>  }</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a0a18bca50f7cd3a1882754f19303d257"> 177</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a0a18bca50f7cd3a1882754f19303d257">getNodeNumAfterPAGBuild</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a80cf14bf43accb89cb82490b4f173598">nodeNumAfterPAGBuild</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"><a class="line" href="classSVF_1_1IRGraph.html#a5fe12445ed0528183775747dec356db0"> 181</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#a5fe12445ed0528183775747dec356db0">setNodeNumAfterPAGBuild</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num)</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>  nodeNumAfterPAGBuild = num;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  }</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a973fb40e0eb600a7f90884767e036a96"> 186</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a973fb40e0eb600a7f90884767e036a96">getPAGNodeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericGraph.html#a38122734cbe71551a420dfb7fee2012e">nodeNum</a>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  }</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a2fda1df53e53c0098d99f36d8f6f0998"> 190</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a2fda1df53e53c0098d99f36d8f6f0998">getPAGEdgeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericGraph.html#a2fbc96de5f066469c2739229307bcc0c">edgeNum</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  }</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#ad4860fe89aa3a11c73aac3ed60f712cb"> 194</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#ad4860fe89aa3a11c73aac3ed60f712cb">getPTAPAGEdgeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a9f68ffe75e3d9457092ac2368aa08a27">totalPTAPAGEdge</a>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  }</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a5a34f23fee4f84e74908041efebd6867"> 199</a></span>  <span class="keyword">inline</span> std::string <a class="code" href="classSVF_1_1IRGraph.html#a5a34f23fee4f84e74908041efebd6867">getGraphName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">return</span> <span class="stringliteral">"SVFIR"</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#a1cb32461439c4dc8d044c2bfadb11307">dump</a>(std::string name);</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>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#a3a656bb310ba0f42e525995a480a5b67">view</a>();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> };</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </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> </div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="keyword">namespace </span><a class="code" href="namespacellvm.html">llvm</a></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> {</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="comment">/* !</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="comment"> * GraphTraits specializations of SVFIR to be used for the generic graph algorithms.</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="comment"> * Provide graph traits for tranversing from a SVFIR node using standard graph traversals.</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="comment"> */</span></div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01SVF_1_1SVFVar_01_5_01_4.html"> 221</a></span> <span class="keyword">template</span><> <span class="keyword">struct </span>GraphTraits<<a class="code" href="namespaceSVF.html">SVF</a>::SVFVar*> : <span class="keyword">public</span> GraphTraits<SVF::GenericNode<SVF::SVFVar,SVF::SVFStmt>* ></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> };</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.html"> 226</a></span> <span class="keyword">template</span><> <span class="keyword">struct </span>GraphTraits<Inverse<SVF::SVFVar *> > : <span class="keyword">public</span> GraphTraits<Inverse<SVF::GenericNode<SVF::SVFVar,SVF::SVFStmt>* > ></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> };</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html"> 230</a></span> <span class="keyword">template</span><> <span class="keyword">struct </span>GraphTraits<SVF::<a class="code" href="classSVF_1_1IRGraph.html#a34f7644ccf88fc0911c0b4f625dc1f28">IRGraph</a>*> : <span class="keyword">public</span> GraphTraits<SVF::GenericGraph<SVF::SVFVar,SVF::SVFStmt>* ></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> {</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html#a2f3dc486fd4a3d8f4f4fd27d0f0f65c4"> 232</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a> *<a class="code" href="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html#a2f3dc486fd4a3d8f4f4fd27d0f0f65c4">NodeRef</a>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> };</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> </div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> } <span class="comment">// End namespace llvm</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="preprocessor">#endif </span><span class="comment">/* IRGRAPH_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1IRGraph_html_a3ce34b9fcb651689bce44ab48fbcdff0"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">SVF::IRGraph::getBlackHoleNode</a></div><div class="ttdeci">NodeID getBlackHoleNode() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00144">IRGraph.h:144</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_acbcd5035240fab0b809c3334a27159ae"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#acbcd5035240fab0b809c3334a27159ae">SVF::SymbolTableInfo::hasValSym</a></div><div class="ttdeci">bool hasValSym(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00265">SymbolTableInfo.h:265</a></div></div>
|
|
71
71
|
<div class="ttc" id="classSVF_1_1IRGraph_html_ae9547730a27575194977b240647e8ce2"><div class="ttname"><a href="classSVF_1_1IRGraph.html#ae9547730a27575194977b240647e8ce2">SVF::IRGraph::PAGEdgeSet</a></div><div class="ttdeci">Set< const SVFStmt * > PAGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00051">IRGraph.h:51</a></div></div>
|
|
72
72
|
<div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00421">SymbolTableInfo.h:421</a></div></div>
|
|
73
|
-
<div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="
|
|
73
|
+
<div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00328">CHG.h:328</a></div></div>
|
|
74
74
|
<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#l00215">SymbolTableInfo.h:215</a></div></div>
|
|
75
75
|
<div class="ttc" id="SVFStatements_8h_html"><div class="ttname"><a href="SVFStatements_8h.html">SVFStatements.h</a></div></div>
|
|
76
76
|
<div class="ttc" id="classSVF_1_1IRGraph_html_a679145e7bf818b0a19005dc8e2845fe1"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a679145e7bf818b0a19005dc8e2845fe1">SVF::IRGraph::symInfo</a></div><div class="ttdeci">SymbolTableInfo * symInfo</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00061">IRGraph.h:61</a></div></div>
|
|
77
77
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a929a20dc8f2eb4d82e93938b8339d697"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a929a20dc8f2eb4d82e93938b8339d697">SVF::SymbolTableInfo::idToObjMap</a></div><div class="ttdeci">IDToMemMapTy & idToObjMap()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00327">SymbolTableInfo.h:327</a></div></div>
|
|
78
78
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a661eb9ff1839c3af942517808414202b"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a661eb9ff1839c3af942517808414202b">SVF::SymbolTableInfo::getConstantObj</a></div><div class="ttdeci">MemObj * getConstantObj() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00219">SymbolTableInfo.h:219</a></div></div>
|
|
79
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a5a34f23fee4f84e74908041efebd6867"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a5a34f23fee4f84e74908041efebd6867">SVF::IRGraph::getGraphName</a></div><div class="ttdeci">std::string getGraphName() const</div><div class="ttdoc">Return graph name. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
79
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a5a34f23fee4f84e74908041efebd6867"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a5a34f23fee4f84e74908041efebd6867">SVF::IRGraph::getGraphName</a></div><div class="ttdeci">std::string getGraphName() const</div><div class="ttdoc">Return graph name. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00199">IRGraph.h:199</a></div></div>
|
|
80
80
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a05ca2987d9f8716c24e489bec53502f4"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4">SVF::SymbolTableInfo::blackholeSymID</a></div><div class="ttdeci">SymID blackholeSymID() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00239">SymbolTableInfo.h:239</a></div></div>
|
|
81
81
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_aec3fd21a11f760ca8684e390c6948f02"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#aec3fd21a11f760ca8684e390c6948f02">SVF::SymbolTableInfo::getVarargSym</a></div><div class="ttdeci">SymID getVarargSym(const Function *val) const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00294">SymbolTableInfo.h:294</a></div></div>
|
|
82
82
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_afc8b0b6aea972f34a0c099b75114b81e"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#afc8b0b6aea972f34a0c099b75114b81e">SVF::SymbolTableInfo::getRetSym</a></div><div class="ttdeci">SymID getRetSym(const Function *val) const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00287">SymbolTableInfo.h:287</a></div></div>
|
|
@@ -84,76 +84,73 @@ $(function() {
|
|
|
84
84
|
<div class="ttc" id="classSVF_1_1IRGraph_html_a833015e6a332b0d97b9a7de37dce5fab"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a833015e6a332b0d97b9a7de37dce5fab">SVF::IRGraph::ValueToEdgeMap</a></div><div class="ttdeci">Map< const Value *, PAGEdgeSet > ValueToEdgeMap</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00052">IRGraph.h:52</a></div></div>
|
|
85
85
|
<div class="ttc" id="classSVF_1_1IRGraph_html"><div class="ttname"><a href="classSVF_1_1IRGraph.html">SVF::IRGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00048">IRGraph.h:48</a></div></div>
|
|
86
86
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVF::SVFStmt::PEDGEK</a></div><div class="ttdeci">PEDGEK</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00054">SVFStatements.h:54</a></div></div>
|
|
87
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a8b10c318674a47035d617b3ade4f069b"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">SVF::IRGraph::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="IRGraph_8h_source.html#
|
|
88
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a1cb32461439c4dc8d044c2bfadb11307"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a1cb32461439c4dc8d044c2bfadb11307">SVF::IRGraph::dump</a></div><div class="ttdeci">void dump(std::string name)</div><div class="ttdoc">Dump SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#
|
|
89
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a3a656bb310ba0f42e525995a480a5b67"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3a656bb310ba0f42e525995a480a5b67">SVF::IRGraph::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="IRGraph_8cpp_source.html#
|
|
90
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a41423da58a07b344bc7ca8dd96d48f98"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a41423da58a07b344bc7ca8dd96d48f98">SVF::IRGraph::isBuiltFromFile</a></div><div class="ttdeci">bool isBuiltFromFile()</div><div class="ttdoc">Whether this SVFIR built from a txt file. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
91
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_aafe9544b07a8c40bf915613df11df48e"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aafe9544b07a8c40bf915613df11df48e">SVF::IRGraph::getBlackHoleObj</a></div><div class="ttdeci">const MemObj * getBlackHoleObj() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
87
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a8b10c318674a47035d617b3ade4f069b"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">SVF::IRGraph::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="IRGraph_8h_source.html#l00140">IRGraph.h:140</a></div></div>
|
|
88
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a1cb32461439c4dc8d044c2bfadb11307"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a1cb32461439c4dc8d044c2bfadb11307">SVF::IRGraph::dump</a></div><div class="ttdeci">void dump(std::string name)</div><div class="ttdoc">Dump SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00099">IRGraph.cpp:99</a></div></div>
|
|
89
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a3a656bb310ba0f42e525995a480a5b67"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3a656bb310ba0f42e525995a480a5b67">SVF::IRGraph::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="IRGraph_8cpp_source.html#l00107">IRGraph.cpp:107</a></div></div>
|
|
90
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a41423da58a07b344bc7ca8dd96d48f98"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a41423da58a07b344bc7ca8dd96d48f98">SVF::IRGraph::isBuiltFromFile</a></div><div class="ttdeci">bool isBuiltFromFile()</div><div class="ttdoc">Whether this SVFIR built from a txt file. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00103">IRGraph.h:103</a></div></div>
|
|
91
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_aafe9544b07a8c40bf915613df11df48e"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aafe9544b07a8c40bf915613df11df48e">SVF::IRGraph::getBlackHoleObj</a></div><div class="ttdeci">const MemObj * getBlackHoleObj() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00160">IRGraph.h:160</a></div></div>
|
|
92
92
|
<div class="ttc" id="classSVF_1_1IRGraph_html_a1308b5d3001c6676e8a8be6a8b118704"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a1308b5d3001c6676e8a8be6a8b118704">SVF::IRGraph::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="IRGraph_8h_source.html#l00060">IRGraph.h:60</a></div></div>
|
|
93
93
|
<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>
|
|
94
94
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a2fbc96de5f066469c2739229307bcc0c"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a2fbc96de5f066469c2739229307bcc0c">SVF::GenericGraph< SVFVar, SVFStmt >::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>
|
|
95
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_aefe3143b33cee00c3c2611fea577c1ac"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aefe3143b33cee00c3c2611fea577c1ac">SVF::IRGraph::mapValueToEdge</a></div><div class="ttdeci">void mapValueToEdge(const Value *V, SVFStmt *edge)</div><div class="ttdoc">Map a value to a set of edges. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
95
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_aefe3143b33cee00c3c2611fea577c1ac"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aefe3143b33cee00c3c2611fea577c1ac">SVF::IRGraph::mapValueToEdge</a></div><div class="ttdeci">void mapValueToEdge(const Value *V, SVFStmt *edge)</div><div class="ttdoc">Map a value to a set of edges. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00081">IRGraph.h:81</a></div></div>
|
|
96
96
|
<div class="ttc" id="namespaceSVF_html_a733b44f64a95e6e13e7379120d7a3eea"><div class="ttname"><a href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">SVF::PAGNode</a></div><div class="ttdeci">SVFVar PAGNode</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00042">IRGraph.h:42</a></div></div>
|
|
97
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a9f68ffe75e3d9457092ac2368aa08a27"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a9f68ffe75e3d9457092ac2368aa08a27">SVF::IRGraph::totalPTAPAGEdge</a></div><div class="ttdeci">u32_t totalPTAPAGEdge</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
97
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a9f68ffe75e3d9457092ac2368aa08a27"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a9f68ffe75e3d9457092ac2368aa08a27">SVF::IRGraph::totalPTAPAGEdge</a></div><div class="ttdeci">u32_t totalPTAPAGEdge</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00059">IRGraph.h:59</a></div></div>
|
|
98
98
|
<div class="ttc" id="SVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
|
|
99
99
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a38122734cbe71551a420dfb7fee2012e"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a38122734cbe71551a420dfb7fee2012e">SVF::GenericGraph< SVFVar, SVFStmt >::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>
|
|
100
100
|
<div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00046">SVFVariables.h:46</a></div></div>
|
|
101
101
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_adaed6e68c2f53260ed4c4fc38b5c4721"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#adaed6e68c2f53260ed4c4fc38b5c4721">SVF::SymbolTableInfo::nullPtrSymID</a></div><div class="ttdeci">SymID nullPtrSymID() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00229">SymbolTableInfo.h:229</a></div></div>
|
|
102
102
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a8f3cb8a1db34dd692ee04561f4edeebf"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a8f3cb8a1db34dd692ee04561f4edeebf">SVF::SymbolTableInfo::valSyms</a></div><div class="ttdeci">ValueToIDMapTy & valSyms()</div><div class="ttdoc">Get different kinds of syms maps. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00317">SymbolTableInfo.h:317</a></div></div>
|
|
103
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a4c8ef6e30a33ecbdc4024e201237ae22"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a4c8ef6e30a33ecbdc4024e201237ae22">SVF::IRGraph::getValueNodeNum</a></div><div class="ttdeci">Size_t getValueNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
103
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a4c8ef6e30a33ecbdc4024e201237ae22"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a4c8ef6e30a33ecbdc4024e201237ae22">SVF::IRGraph::getValueNodeNum</a></div><div class="ttdeci">Size_t getValueNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00169">IRGraph.h:169</a></div></div>
|
|
104
104
|
<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>
|
|
105
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a80cf14bf43accb89cb82490b4f173598"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a80cf14bf43accb89cb82490b4f173598">SVF::IRGraph::nodeNumAfterPAGBuild</a></div><div class="ttdeci">NodeID nodeNumAfterPAGBuild</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
106
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a3b417ee79560fd00f4cf80906044c198"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">SVF::IRGraph::getBlkPtr</a></div><div class="ttdeci">NodeID getBlkPtr() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
105
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a80cf14bf43accb89cb82490b4f173598"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a80cf14bf43accb89cb82490b4f173598">SVF::IRGraph::nodeNumAfterPAGBuild</a></div><div class="ttdeci">NodeID nodeNumAfterPAGBuild</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00058">IRGraph.h:58</a></div></div>
|
|
106
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a3b417ee79560fd00f4cf80906044c198"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">SVF::IRGraph::getBlkPtr</a></div><div class="ttdeci">NodeID getBlkPtr() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00152">IRGraph.h:152</a></div></div>
|
|
107
107
|
<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#l00280">SymbolTableInfo.h:280</a></div></div>
|
|
108
108
|
<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>
|
|
109
109
|
<div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00075">SVFBasicTypes.h:75</a></div></div>
|
|
110
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_aa9aca34170ac4308359a4c8c3466dcd0"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aa9aca34170ac4308359a4c8c3466dcd0">SVF::IRGraph::getValueEdges</a></div><div class="ttdeci">const PAGEdgeSet & getValueEdges(const Value *V)</div><div class="ttdoc">Get all SVFIR Edges that corresponds to an LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
111
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_abffddd41cc308b9b3bd5ad4a7f8f1624"><div class="ttname"><a href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
112
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a2fda1df53e53c0098d99f36d8f6f0998"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a2fda1df53e53c0098d99f36d8f6f0998">SVF::IRGraph::getPAGEdgeNum</a></div><div class="ttdeci">Size_t getPAGEdgeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
110
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_aa9aca34170ac4308359a4c8c3466dcd0"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aa9aca34170ac4308359a4c8c3466dcd0">SVF::IRGraph::getValueEdges</a></div><div class="ttdeci">const PAGEdgeSet & getValueEdges(const Value *V)</div><div class="ttdoc">Get all SVFIR Edges that corresponds to an LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00108">IRGraph.h:108</a></div></div>
|
|
111
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_abffddd41cc308b9b3bd5ad4a7f8f1624"><div class="ttname"><a href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00120">IRGraph.h:120</a></div></div>
|
|
112
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a2fda1df53e53c0098d99f36d8f6f0998"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a2fda1df53e53c0098d99f36d8f6f0998">SVF::IRGraph::getPAGEdgeNum</a></div><div class="ttdeci">Size_t getPAGEdgeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00190">IRGraph.h:190</a></div></div>
|
|
113
113
|
<div class="ttc" id="NodeIDAllocator_8h_html"><div class="ttname"><a href="NodeIDAllocator_8h.html">NodeIDAllocator.h</a></div></div>
|
|
114
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a4f5792216c6f38c32dac5074862ffc50"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a4f5792216c6f38c32dac5074862ffc50">SVF::IRGraph::getMemObj</a></div><div class="ttdeci">const MemObj * getMemObj(const Value *val) const</div><div class="ttdoc">get MemObj according to LLVM value </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
115
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a3071bd100577507b49859f1b1e23fa77"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3071bd100577507b49859f1b1e23fa77">SVF::IRGraph::getEdgeSet</a></div><div class="ttdeci">SVFStmt::PAGEdgeSetTy & getEdgeSet(SVFStmt::PEDGEK kind)</div><div class="ttdoc">Get edges set according to its kind. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00106">IRGraph.h:106</a></div></div>
|
|
114
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a4f5792216c6f38c32dac5074862ffc50"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a4f5792216c6f38c32dac5074862ffc50">SVF::IRGraph::getMemObj</a></div><div class="ttdeci">const MemObj * getMemObj(const Value *val) const</div><div class="ttdoc">get MemObj according to LLVM value </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00089">IRGraph.h:89</a></div></div>
|
|
116
115
|
<div class="ttc" id="SVFVariables_8h_html"><div class="ttname"><a href="SVFVariables_8h.html">SVFVariables.h</a></div></div>
|
|
117
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a0a18bca50f7cd3a1882754f19303d257"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a0a18bca50f7cd3a1882754f19303d257">SVF::IRGraph::getNodeNumAfterPAGBuild</a></div><div class="ttdeci">u32_t getNodeNumAfterPAGBuild() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
118
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a192e584440eb141e0d35d8fed671bbe0"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0">SVF::IRGraph::hasLabeledEdge</a></div><div class="ttdeci">SVFStmt * hasLabeledEdge(SVFVar *src, SVFVar *dst, SVFStmt::PEDGEK kind, const ICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#
|
|
116
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a0a18bca50f7cd3a1882754f19303d257"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a0a18bca50f7cd3a1882754f19303d257">SVF::IRGraph::getNodeNumAfterPAGBuild</a></div><div class="ttdeci">u32_t getNodeNumAfterPAGBuild() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00177">IRGraph.h:177</a></div></div>
|
|
117
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a192e584440eb141e0d35d8fed671bbe0"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0">SVF::IRGraph::hasLabeledEdge</a></div><div class="ttdeci">SVFStmt * hasLabeledEdge(SVFVar *src, SVFVar *dst, SVFStmt::PEDGEK kind, const ICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00085">IRGraph.cpp:85</a></div></div>
|
|
119
118
|
<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#l00234">SymbolTableInfo.h:234</a></div></div>
|
|
120
119
|
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00095">SVFBasicTypes.h:95</a></div></div>
|
|
121
120
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_afca5a68d1825326e3ec6302ce0afee66"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#afca5a68d1825326e3ec6302ce0afee66">SVF::SymbolTableInfo::getObjSym</a></div><div class="ttdeci">SymID getObjSym(const Value *val) const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00273">SymbolTableInfo.h:273</a></div></div>
|
|
122
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a3de9a2a565c303f68a90c32dc59febd5"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">SVF::IRGraph::getNullPtr</a></div><div class="ttdeci">NodeID getNullPtr() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
121
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a3de9a2a565c303f68a90c32dc59febd5"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">SVF::IRGraph::getNullPtr</a></div><div class="ttdeci">NodeID getNullPtr() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00156">IRGraph.h:156</a></div></div>
|
|
123
122
|
<div class="ttc" id="namespaceSVF_html_a2db29836a72e8d86e9baa6d8d55d2978"><div class="ttname"><a href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">SVF::Size_t</a></div><div class="ttdeci">signed long Size_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00078">SVFBasicTypes.h:78</a></div></div>
|
|
124
123
|
<div class="ttc" id="classSVF_1_1IRGraph_html_a722f32d0a0a3bafdd97fc74819d2621e"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e">SVF::IRGraph::addEdge</a></div><div class="ttdeci">bool addEdge(SVFVar *src, SVFVar *dst, SVFStmt *edge)</div><div class="ttdoc">Add an edge into the graph. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00042">IRGraph.cpp:42</a></div></div>
|
|
125
|
-
<div class="ttc" id="
|
|
126
|
-
<div class="ttc" id="
|
|
127
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_aceb17dfbe137658625e16291127267d1"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aceb17dfbe137658625e16291127267d1">SVF::IRGraph::hasValueNode</a></div><div class="ttdeci">bool hasValueNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00133">IRGraph.h:133</a></div></div>
|
|
124
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_aceae1e4e49a1d2e63ef3d71a7e5ef3eb"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aceae1e4e49a1d2e63ef3d71a7e5ef3eb">SVF::IRGraph::getConstantObj</a></div><div class="ttdeci">const MemObj * getConstantObj() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00164">IRGraph.h:164</a></div></div>
|
|
125
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_aceb17dfbe137658625e16291127267d1"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aceb17dfbe137658625e16291127267d1">SVF::IRGraph::hasValueNode</a></div><div class="ttdeci">bool hasValueNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00124">IRGraph.h:124</a></div></div>
|
|
128
126
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00059">SymbolTableInfo.cpp:59</a></div></div>
|
|
129
127
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_aec7ee137f828c9d61a11df7fc2241161"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#aec7ee137f828c9d61a11df7fc2241161">SVF::SymbolTableInfo::getValSym</a></div><div class="ttdeci">SymID getValSym(const Value *val)</div><div class="ttdoc">Get different kinds of syms. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00250">SymbolTableInfo.h:250</a></div></div>
|
|
130
|
-
<div class="ttc" id="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4_html_a2f3dc486fd4a3d8f4f4fd27d0f0f65c4"><div class="ttname"><a href="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html#a2f3dc486fd4a3d8f4f4fd27d0f0f65c4">llvm::GraphTraits< SVF::IRGraph * >::NodeRef</a></div><div class="ttdeci">SVF::SVFVar * NodeRef</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
128
|
+
<div class="ttc" id="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4_html_a2f3dc486fd4a3d8f4f4fd27d0f0f65c4"><div class="ttname"><a href="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html#a2f3dc486fd4a3d8f4f4fd27d0f0f65c4">llvm::GraphTraits< SVF::IRGraph * >::NodeRef</a></div><div class="ttdeci">SVF::SVFVar * NodeRef</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00232">IRGraph.h:232</a></div></div>
|
|
131
129
|
<div class="ttc" id="ICFG_8h_html"><div class="ttname"><a href="ICFG_8h.html">ICFG.h</a></div></div>
|
|
132
130
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a0a8831a5429005ff9d71adbd6bf3994f"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">SVF::GenericGraph< SVFVar, SVFStmt >::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>
|
|
133
131
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a1689fa03795200b501ae3887906e7e72"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72">SVF::SymbolTableInfo::blkPtrSymID</a></div><div class="ttdeci">SymID blkPtrSymID() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00224">SymbolTableInfo.h:224</a></div></div>
|
|
134
132
|
<div class="ttc" id="namespaceSVF_html_ae6ead95a66f69e1e4cfa1159f868a152"><div class="ttname"><a href="namespaceSVF.html#ae6ead95a66f69e1e4cfa1159f868a152">SVF::PAGEdge</a></div><div class="ttdeci">SVFStmt PAGEdge</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00043">IRGraph.h:43</a></div></div>
|
|
135
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a973fb40e0eb600a7f90884767e036a96"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a973fb40e0eb600a7f90884767e036a96">SVF::IRGraph::getPAGNodeNum</a></div><div class="ttdeci">Size_t getPAGNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
136
|
-
<div class="ttc" id="classSVF_1_1SVFStmt_html_a47a67e8aaae7059e353841a40b89e936"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a47a67e8aaae7059e353841a40b89e936">SVF::SVFStmt::PAGKindToEdgeSetMapTy</a></div><div class="ttdeci">PAGEdgeToSetMapTy PAGKindToEdgeSetMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
133
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a973fb40e0eb600a7f90884767e036a96"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a973fb40e0eb600a7f90884767e036a96">SVF::IRGraph::getPAGNodeNum</a></div><div class="ttdeci">Size_t getPAGNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00186">IRGraph.h:186</a></div></div>
|
|
134
|
+
<div class="ttc" id="classSVF_1_1SVFStmt_html_a47a67e8aaae7059e353841a40b89e936"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a47a67e8aaae7059e353841a40b89e936">SVF::SVFStmt::PAGKindToEdgeSetMapTy</a></div><div class="ttdeci">PAGEdgeToSetMapTy PAGKindToEdgeSetMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00180">SVFStatements.h:180</a></div></div>
|
|
137
135
|
<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>
|
|
138
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a780372b8241dc1c76e31b0340d5d2401"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a780372b8241dc1c76e31b0340d5d2401">SVF::IRGraph::PTAPAGEdgeKindToSetMap</a></div><div class="ttdeci">SVFStmt::PAGKindToEdgeSetMapTy PTAPAGEdgeKindToSetMap</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
139
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a685f1a8a35aa5dc9c298e3b0e2ccf007"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007">SVF::IRGraph::addNode</a></div><div class="ttdeci">NodeID addNode(SVFVar *node, NodeID i)</div><div class="ttdoc">Add a node into the graph. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
136
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a780372b8241dc1c76e31b0340d5d2401"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a780372b8241dc1c76e31b0340d5d2401">SVF::IRGraph::PTAPAGEdgeKindToSetMap</a></div><div class="ttdeci">SVFStmt::PAGKindToEdgeSetMapTy PTAPAGEdgeKindToSetMap</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00056">IRGraph.h:56</a></div></div>
|
|
137
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a685f1a8a35aa5dc9c298e3b0e2ccf007"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007">SVF::IRGraph::addNode</a></div><div class="ttdeci">NodeID addNode(SVFVar *node, NodeID i)</div><div class="ttdoc">Add a node into the graph. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00064">IRGraph.h:64</a></div></div>
|
|
140
138
|
<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>
|
|
141
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a8e9b2e37b36433c01e90d54a4edbf7f3"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a8e9b2e37b36433c01e90d54a4edbf7f3">SVF::IRGraph::getObjectNodeNum</a></div><div class="ttdeci">Size_t getObjectNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
142
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_ac5da3a0cbe040a45d719b6f6a23aed91"><div class="ttname"><a href="classSVF_1_1IRGraph.html#ac5da3a0cbe040a45d719b6f6a23aed91">SVF::IRGraph::getConstantNode</a></div><div class="ttdeci">NodeID getConstantNode() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
143
|
-
<div class="ttc" id="
|
|
144
|
-
<div class="ttc" id="
|
|
145
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a34f7644ccf88fc0911c0b4f625dc1f28"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a34f7644ccf88fc0911c0b4f625dc1f28">SVF::IRGraph::IRGraph</a></div><div class="ttdeci">IRGraph(bool buildFromFile)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00092">IRGraph.h:92</a></div></div>
|
|
139
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a8e9b2e37b36433c01e90d54a4edbf7f3"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a8e9b2e37b36433c01e90d54a4edbf7f3">SVF::IRGraph::getObjectNodeNum</a></div><div class="ttdeci">Size_t getObjectNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00173">IRGraph.h:173</a></div></div>
|
|
140
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_ac5da3a0cbe040a45d719b6f6a23aed91"><div class="ttname"><a href="classSVF_1_1IRGraph.html#ac5da3a0cbe040a45d719b6f6a23aed91">SVF::IRGraph::getConstantNode</a></div><div class="ttdeci">NodeID getConstantNode() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00148">IRGraph.h:148</a></div></div>
|
|
141
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_abe0ab797a3da420e4d2f9136d64fb407"><div class="ttname"><a href="classSVF_1_1IRGraph.html#abe0ab797a3da420e4d2f9136d64fb407">SVF::IRGraph::hasNonlabeledEdge</a></div><div class="ttdeci">SVFStmt * hasNonlabeledEdge(SVFVar *src, SVFVar *dst, SVFStmt::PEDGEK kind)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00057">IRGraph.cpp:57</a></div></div>
|
|
142
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a34f7644ccf88fc0911c0b4f625dc1f28"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a34f7644ccf88fc0911c0b4f625dc1f28">SVF::IRGraph::IRGraph</a></div><div class="ttdeci">IRGraph(bool buildFromFile)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00094">IRGraph.h:94</a></div></div>
|
|
146
143
|
<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>
|
|
147
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a5fe12445ed0528183775747dec356db0"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a5fe12445ed0528183775747dec356db0">SVF::IRGraph::setNodeNumAfterPAGBuild</a></div><div class="ttdeci">void setNodeNumAfterPAGBuild(u32_t num)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
148
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_aba13ca47865614e45321c1ae53e640c1"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aba13ca47865614e45321c1ae53e640c1">SVF::IRGraph::getObjectNode</a></div><div class="ttdeci">NodeID getObjectNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
149
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a96010999a4e5013beb1c37ef753ff910"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a96010999a4e5013beb1c37ef753ff910">SVF::IRGraph::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="IRGraph_8h_source.html#
|
|
150
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a6efd8215ac2484a16a9ab2afbde290b4"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a6efd8215ac2484a16a9ab2afbde290b4">SVF::IRGraph::PAGEdgeKindToSetMap</a></div><div class="ttdeci">SVFStmt::PAGKindToEdgeSetMapTy PAGEdgeKindToSetMap</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
144
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a5fe12445ed0528183775747dec356db0"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a5fe12445ed0528183775747dec356db0">SVF::IRGraph::setNodeNumAfterPAGBuild</a></div><div class="ttdeci">void setNodeNumAfterPAGBuild(u32_t num)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00181">IRGraph.h:181</a></div></div>
|
|
145
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_aba13ca47865614e45321c1ae53e640c1"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aba13ca47865614e45321c1ae53e640c1">SVF::IRGraph::getObjectNode</a></div><div class="ttdeci">NodeID getObjectNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00130">IRGraph.h:130</a></div></div>
|
|
146
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a96010999a4e5013beb1c37ef753ff910"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a96010999a4e5013beb1c37ef753ff910">SVF::IRGraph::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="IRGraph_8h_source.html#l00135">IRGraph.h:135</a></div></div>
|
|
147
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a6efd8215ac2484a16a9ab2afbde290b4"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a6efd8215ac2484a16a9ab2afbde290b4">SVF::IRGraph::PAGEdgeKindToSetMap</a></div><div class="ttdeci">SVFStmt::PAGKindToEdgeSetMapTy PAGEdgeKindToSetMap</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00055">IRGraph.h:55</a></div></div>
|
|
151
148
|
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00078">BasicTypes.h:78</a></div></div>
|
|
152
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_a7750a2b2a98bb39fc5f67af4e0c12379"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a7750a2b2a98bb39fc5f67af4e0c12379">SVF::IRGraph::fromFile</a></div><div class="ttdeci">bool fromFile</div><div class="ttdoc">Whether the SVFIR is built according to user specified data from a txt file. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
149
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_a7750a2b2a98bb39fc5f67af4e0c12379"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a7750a2b2a98bb39fc5f67af4e0c12379">SVF::IRGraph::fromFile</a></div><div class="ttdeci">bool fromFile</div><div class="ttdoc">Whether the SVFIR is built according to user specified data from a txt file. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00057">IRGraph.h:57</a></div></div>
|
|
153
150
|
<div class="ttc" id="classSVF_1_1IRGraph_html_a2085d6895363c2ff7b757eb58f3f4cea"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a2085d6895363c2ff7b757eb58f3f4cea">SVF::IRGraph::~IRGraph</a></div><div class="ttdeci">virtual ~IRGraph()</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00034">IRGraph.cpp:34</a></div></div>
|
|
154
151
|
<div class="ttc" id="classSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00047">SVFStatements.h:47</a></div></div>
|
|
155
152
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html">SVF::SymbolTableInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00047">SymbolTableInfo.h:47</a></div></div>
|
|
156
|
-
<div class="ttc" id="classSVF_1_1IRGraph_html_ad4860fe89aa3a11c73aac3ed60f712cb"><div class="ttname"><a href="classSVF_1_1IRGraph.html#ad4860fe89aa3a11c73aac3ed60f712cb">SVF::IRGraph::getPTAPAGEdgeNum</a></div><div class="ttdeci">Size_t getPTAPAGEdgeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#
|
|
153
|
+
<div class="ttc" id="classSVF_1_1IRGraph_html_ad4860fe89aa3a11c73aac3ed60f712cb"><div class="ttname"><a href="classSVF_1_1IRGraph.html#ad4860fe89aa3a11c73aac3ed60f712cb">SVF::IRGraph::getPTAPAGEdgeNum</a></div><div class="ttdeci">Size_t getPTAPAGEdgeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00194">IRGraph.h:194</a></div></div>
|
|
157
154
|
</div><!-- fragment --></div><!-- contents -->
|
|
158
155
|
<!-- start footer part -->
|
|
159
156
|
<hr class="footer"/><address class="footer"><small>
|