svf-tools 1.0.340 → 1.0.344
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/AndersenSCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/BasicTypes_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +7 -7
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +7 -7
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +15 -15
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGNode_8h.html +7 -7
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +69 -69
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +64 -61
- package/SVF-doxygen/html/html/ICFG_8h_source.html +46 -46
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +6 -6
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +5 -5
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/MHP_8h_source.html +6 -6
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +9 -9
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +27 -27
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +18 -18
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +12 -12
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Options_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Options_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PCG_8h_source.html +4 -4
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +17 -17
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +17 -17
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +17 -17
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +9 -9
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +32 -32
- package/SVF-doxygen/html/html/SVFG_8h_source.html +27 -27
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +13 -13
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +32 -32
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +14 -14
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +7 -7
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +16 -15
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +30 -28
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +44 -42
- package/SVF-doxygen/html/html/TCT_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +20 -20
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +2 -2
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +11 -11
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/VFG_8h_source.html +19 -19
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/annotated.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +47 -47
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +34 -34
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +34 -34
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +38 -38
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +15 -12
- package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +5 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallCHI-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode-members.html +158 -0
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +852 -0
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CallMU-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +60 -60
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +52 -52
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +43 -43
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +4 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode-members.html +150 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +618 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +4 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode-members.html +149 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +624 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +3 -1
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode-members.html +144 -0
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +413 -0
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +224 -217
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +74 -71
- package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode-members.html +144 -0
- package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.html +399 -0
- package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +7 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode-members.html +146 -0
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +494 -0
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +61 -61
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1MHP-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +198 -198
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1MemObj-members.html +23 -22
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +70 -47
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +77 -77
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo-members.html +17 -15
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +141 -106
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +27 -27
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PCG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph-members.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +118 -118
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +109 -109
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +5 -3
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode-members.html +153 -0
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +696 -0
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +160 -160
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +76 -76
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +133 -133
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +62 -62
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +17 -16
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1TCT-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph-members.html +40 -40
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +220 -220
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +42 -42
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +10 -9
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +96 -96
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +37 -37
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +12 -12
- package/SVF-doxygen/html/html/classes.html +16 -16
- package/SVF-doxygen/html/html/functions_a.html +59 -59
- package/SVF-doxygen/html/html/functions_c.html +74 -71
- package/SVF-doxygen/html/html/functions_eval_c.html +5 -2
- package/SVF-doxygen/html/html/functions_f.html +14 -14
- package/SVF-doxygen/html/html/functions_func.html +56 -56
- package/SVF-doxygen/html/html/functions_func_c.html +28 -28
- package/SVF-doxygen/html/html/functions_func_f.html +6 -6
- package/SVF-doxygen/html/html/functions_func_g.html +88 -88
- package/SVF-doxygen/html/html/functions_func_h.html +17 -17
- package/SVF-doxygen/html/html/functions_func_i.html +31 -29
- package/SVF-doxygen/html/html/functions_func_m.html +1 -1
- package/SVF-doxygen/html/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/html/functions_func_r.html +6 -6
- package/SVF-doxygen/html/html/functions_func_s.html +1 -1
- package/SVF-doxygen/html/html/functions_func_t.html +7 -7
- package/SVF-doxygen/html/html/functions_func_u.html +3 -3
- package/SVF-doxygen/html/html/functions_g.html +88 -88
- package/SVF-doxygen/html/html/functions_h.html +16 -16
- package/SVF-doxygen/html/html/functions_i.html +37 -35
- package/SVF-doxygen/html/html/functions_m.html +2 -2
- package/SVF-doxygen/html/html/functions_n.html +3 -3
- package/SVF-doxygen/html/html/functions_o.html +10 -10
- package/SVF-doxygen/html/html/functions_p.html +21 -30
- package/SVF-doxygen/html/html/functions_r.html +6 -6
- package/SVF-doxygen/html/html/functions_s.html +15 -14
- package/SVF-doxygen/html/html/functions_t.html +13 -15
- package/SVF-doxygen/html/html/functions_type.html +1 -1
- package/SVF-doxygen/html/html/functions_type_c.html +24 -24
- package/SVF-doxygen/html/html/functions_type_f.html +3 -3
- package/SVF-doxygen/html/html/functions_type_i.html +2 -2
- package/SVF-doxygen/html/html/functions_type_p.html +1 -1
- package/SVF-doxygen/html/html/functions_type_s.html +1 -1
- package/SVF-doxygen/html/html/functions_type_v.html +2 -2
- package/SVF-doxygen/html/html/functions_u.html +3 -3
- package/SVF-doxygen/html/html/functions_v.html +5 -5
- package/SVF-doxygen/html/html/functions_vars_a.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_c.html +11 -11
- package/SVF-doxygen/html/html/functions_vars_f.html +5 -5
- package/SVF-doxygen/html/html/functions_vars_g.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_i.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_p.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_r.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
- package/SVF-doxygen/html/html/functions_w.html +5 -9
- package/SVF-doxygen/html/html/hierarchy.html +7 -7
- package/SVF-doxygen/html/html/namespaceSVF.html +11 -11
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +11 -11
- package/SVF-doxygen/html/html/search/all_1.js +58 -58
- package/SVF-doxygen/html/html/search/all_10.js +13 -14
- package/SVF-doxygen/html/html/search/all_12.js +5 -5
- package/SVF-doxygen/html/html/search/all_13.js +9 -8
- package/SVF-doxygen/html/html/search/all_14.js +6 -6
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +3 -3
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_3.js +37 -35
- package/SVF-doxygen/html/html/search/all_6.js +12 -12
- package/SVF-doxygen/html/html/search/all_7.js +62 -61
- package/SVF-doxygen/html/html/search/all_8.js +17 -17
- package/SVF-doxygen/html/html/search/all_9.js +19 -19
- package/SVF-doxygen/html/html/search/all_c.js +1 -1
- package/SVF-doxygen/html/html/search/all_d.js +2 -2
- package/SVF-doxygen/html/html/search/all_e.js +1 -1
- package/SVF-doxygen/html/html/search/all_f.js +2 -2
- package/SVF-doxygen/html/html/search/classes_2.js +1 -1
- package/SVF-doxygen/html/html/search/classes_5.js +2 -2
- package/SVF-doxygen/html/html/search/classes_6.js +1 -1
- package/SVF-doxygen/html/html/search/classes_8.js +2 -2
- package/SVF-doxygen/html/html/search/classes_e.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_2.js +2 -1
- package/SVF-doxygen/html/html/search/functions_0.js +55 -55
- package/SVF-doxygen/html/html/search/functions_10.js +2 -2
- package/SVF-doxygen/html/html/search/functions_11.js +4 -4
- package/SVF-doxygen/html/html/search/functions_12.js +1 -1
- package/SVF-doxygen/html/html/search/functions_2.js +10 -10
- package/SVF-doxygen/html/html/search/functions_5.js +4 -4
- package/SVF-doxygen/html/html/search/functions_6.js +61 -61
- package/SVF-doxygen/html/html/search/functions_7.js +17 -17
- package/SVF-doxygen/html/html/search/functions_8.js +16 -16
- package/SVF-doxygen/html/html/search/functions_b.js +1 -1
- package/SVF-doxygen/html/html/search/functions_e.js +2 -2
- package/SVF-doxygen/html/html/search/functions_f.js +4 -4
- package/SVF-doxygen/html/html/search/typedefs_0.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_14.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_2.js +21 -21
- package/SVF-doxygen/html/html/search/typedefs_5.js +3 -3
- package/SVF-doxygen/html/html/search/typedefs_8.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_f.js +1 -1
- package/SVF-doxygen/html/html/search/variables_1.js +2 -2
- package/SVF-doxygen/html/html/search/variables_10.js +0 -1
- package/SVF-doxygen/html/html/search/variables_12.js +1 -1
- package/SVF-doxygen/html/html/search/variables_13.js +1 -0
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_3.js +4 -4
- package/SVF-doxygen/html/html/search/variables_6.js +5 -5
- package/SVF-doxygen/html/html/search/variables_7.js +1 -1
- package/SVF-doxygen/html/html/search/variables_9.js +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +23 -23
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
- package/include/DDA/ContextDDA.h +3 -3
- package/include/DDA/DDAClient.h +2 -2
- package/include/DDA/DDAVFSolver.h +2 -2
- package/include/DDA/FlowDDA.h +2 -2
- package/include/Graphs/ICFG.h +32 -32
- package/include/Graphs/ICFGNode.h +33 -33
- package/include/Graphs/ICFGStat.h +11 -11
- package/include/Graphs/PTACallGraph.h +19 -19
- package/include/Graphs/SVFG.h +16 -16
- package/include/Graphs/SVFGNode.h +14 -14
- package/include/Graphs/SVFGOPT.h +1 -1
- package/include/Graphs/ThreadCallGraph.h +25 -25
- package/include/Graphs/VFG.h +10 -10
- package/include/Graphs/VFGNode.h +8 -8
- package/include/MSSA/MSSAMuChi.h +6 -6
- package/include/MSSA/MemRegion.h +24 -24
- package/include/MSSA/MemSSA.h +10 -10
- package/include/MTA/LockResultValidator.h +2 -2
- package/include/MTA/MHP.h +4 -4
- package/include/MTA/PCG.h +1 -1
- package/include/MTA/TCT.h +2 -2
- package/include/MemoryModel/PointerAnalysis.h +12 -12
- package/include/MemoryModel/SVFIR.h +22 -22
- package/include/MemoryModel/SVFStatements.h +11 -11
- package/include/MemoryModel/SymbolTableInfo.h +15 -9
- package/include/SABER/LeakChecker.h +4 -4
- package/include/SABER/ProgSlice.h +2 -2
- package/include/SABER/SaberCheckerAPI.h +4 -4
- package/include/SABER/SaberSVFGBuilder.h +1 -1
- package/include/SABER/SrcSnkDDA.h +1 -1
- package/include/SVF-FE/ICFGBuilder.h +4 -4
- package/include/SVF-FE/SVFIRBuilder.h +5 -5
- package/include/Util/Options.h +1 -1
- package/lib/DDA/ContextDDA.cpp +3 -3
- package/lib/DDA/DDAClient.cpp +1 -1
- package/lib/DDA/FlowDDA.cpp +1 -1
- package/lib/Graphs/ICFG.cpp +88 -71
- package/lib/Graphs/PTACallGraph.cpp +5 -5
- package/lib/Graphs/SVFG.cpp +7 -7
- package/lib/Graphs/ThreadCallGraph.cpp +6 -6
- package/lib/Graphs/VFG.cpp +6 -6
- package/lib/MSSA/MemRegion.cpp +17 -17
- package/lib/MSSA/MemSSA.cpp +3 -3
- package/lib/MTA/LockAnalysis.cpp +4 -4
- package/lib/MTA/MHP.cpp +5 -5
- package/lib/MTA/MTAResultValidator.cpp +1 -1
- package/lib/MTA/PCG.cpp +1 -1
- package/lib/MemoryModel/PointerAnalysis.cpp +10 -10
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
- package/lib/MemoryModel/SVFIR.cpp +5 -5
- package/lib/MemoryModel/SVFStatements.cpp +53 -49
- package/lib/MemoryModel/SVFVariables.cpp +10 -10
- package/lib/MemoryModel/SymbolTableInfo.cpp +12 -7
- package/lib/SABER/DoubleFreeChecker.cpp +1 -1
- package/lib/SABER/FileChecker.cpp +2 -2
- package/lib/SABER/LeakChecker.cpp +8 -8
- package/lib/SABER/ProgSlice.cpp +2 -2
- package/lib/SVF-FE/CallGraphBuilder.cpp +4 -4
- package/lib/SVF-FE/Graph2Json.cpp +5 -5
- package/lib/SVF-FE/ICFGBuilder.cpp +31 -25
- package/lib/SVF-FE/SVFIRBuilder.cpp +8 -8
- package/lib/SVF-FE/SymbolTableBuilder.cpp +2 -2
- package/lib/Util/Options.cpp +3 -3
- package/lib/Util/PTAStat.cpp +3 -3
- package/lib/Util/SVFUtil.cpp +2 -0
- package/lib/Util/TypeBasedHeapCloning.cpp +1 -1
- package/lib/WPA/Andersen.cpp +3 -3
- package/lib/WPA/FlowSensitive.cpp +2 -2
- package/lib/WPA/TypeAnalysis.cpp +1 -1
- package/lib/WPA/VersionedFlowSensitive.cpp +4 -4
- package/lib/WPA/WPAPass.cpp +4 -4
- package/package.json +1 -1
|
@@ -86,28 +86,28 @@ Inheritance diagram for SVF::ThreadCallGraph:</div>
|
|
|
86
86
|
<table class="memberdecls">
|
|
87
87
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
|
|
88
88
|
Public Types</h2></td></tr>
|
|
89
|
-
<tr class="memitem:
|
|
90
|
-
<tr class="separator:
|
|
91
|
-
<tr class="memitem:a0d560b811f8df1a710c627e1ac100155"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1ThreadCallGraph.html#
|
|
89
|
+
<tr class="memitem:a57b69bfb5d468bd1a81a55468f845de0"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a>< const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a57b69bfb5d468bd1a81a55468f845de0">InstSet</a></td></tr>
|
|
90
|
+
<tr class="separator:a57b69bfb5d468bd1a81a55468f845de0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
91
|
+
<tr class="memitem:a0d560b811f8df1a710c627e1ac100155"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1ThreadCallGraph.html#a57b69bfb5d468bd1a81a55468f845de0">InstSet</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a0d560b811f8df1a710c627e1ac100155">CallSiteSet</a></td></tr>
|
|
92
92
|
<tr class="separator:a0d560b811f8df1a710c627e1ac100155"><td class="memSeparator" colspan="2"> </td></tr>
|
|
93
93
|
<tr class="memitem:af952209ad8f7ae0c0f58c87d97f57ee9"><td class="memItemLeft" align="right" valign="top">typedef std::vector< const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#af952209ad8f7ae0c0f58c87d97f57ee9">InstVector</a></td></tr>
|
|
94
94
|
<tr class="separator:af952209ad8f7ae0c0f58c87d97f57ee9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
95
|
-
<tr class="memitem:a8c6eef5a291bd0c65cc2f816767795f1"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *, <a class="el" href="classSVF_1_1ThreadCallGraph.html#
|
|
95
|
+
<tr class="memitem:a8c6eef5a291bd0c65cc2f816767795f1"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *, <a class="el" href="classSVF_1_1ThreadCallGraph.html#a57b69bfb5d468bd1a81a55468f845de0">InstSet</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a8c6eef5a291bd0c65cc2f816767795f1">CallToInstMap</a></td></tr>
|
|
96
96
|
<tr class="separator:a8c6eef5a291bd0c65cc2f816767795f1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
97
97
|
<tr class="memitem:a304ba7ef48068fa019c69af5744842cc"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a>< <a class="el" href="classSVF_1_1ThreadCallGraph.html#a0d560b811f8df1a710c627e1ac100155">CallSiteSet</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a304ba7ef48068fa019c69af5744842cc">CtxSet</a></td></tr>
|
|
98
98
|
<tr class="separator:a304ba7ef48068fa019c69af5744842cc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
99
99
|
<tr class="memitem:aa5efa630056c1db2bb0dadc868752ec8"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1ThreadForkEdge.html#ad36696915ee802989b679dd058aaab68">ThreadForkEdge::ForkEdgeSet</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#aa5efa630056c1db2bb0dadc868752ec8">ForkEdgeSet</a></td></tr>
|
|
100
100
|
<tr class="separator:aa5efa630056c1db2bb0dadc868752ec8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
101
|
-
<tr class="memitem:
|
|
102
|
-
<tr class="separator:
|
|
101
|
+
<tr class="memitem:aec88ec07a721b120290a7dde94ae1b51"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *, <a class="el" href="classSVF_1_1ThreadCallGraph.html#aa5efa630056c1db2bb0dadc868752ec8">ForkEdgeSet</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#aec88ec07a721b120290a7dde94ae1b51">CallInstToForkEdgesMap</a></td></tr>
|
|
102
|
+
<tr class="separator:aec88ec07a721b120290a7dde94ae1b51"><td class="memSeparator" colspan="2"> </td></tr>
|
|
103
103
|
<tr class="memitem:aa9e07204488ec8f0f83f4e218b6ce6bd"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1ThreadJoinEdge.html#acf768ce9925ee75aea865cd9306afda9">ThreadJoinEdge::JoinEdgeSet</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#aa9e07204488ec8f0f83f4e218b6ce6bd">JoinEdgeSet</a></td></tr>
|
|
104
104
|
<tr class="separator:aa9e07204488ec8f0f83f4e218b6ce6bd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
105
|
-
<tr class="memitem:
|
|
106
|
-
<tr class="separator:
|
|
105
|
+
<tr class="memitem:ab446ddd20cf46eeb76fcd5789faef521"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *, <a class="el" href="classSVF_1_1ThreadCallGraph.html#aa9e07204488ec8f0f83f4e218b6ce6bd">JoinEdgeSet</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#ab446ddd20cf46eeb76fcd5789faef521">CallInstToJoinEdgesMap</a></td></tr>
|
|
106
|
+
<tr class="separator:ab446ddd20cf46eeb76fcd5789faef521"><td class="memSeparator" colspan="2"> </td></tr>
|
|
107
107
|
<tr class="memitem:abc4cdc5b401932bf410d26ab4d58ca33"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1HareParForEdge.html#ac352ec0ba628ac5fe96b1f6d74808cb2">HareParForEdge::ParForEdgeSet</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#abc4cdc5b401932bf410d26ab4d58ca33">ParForEdgeSet</a></td></tr>
|
|
108
108
|
<tr class="separator:abc4cdc5b401932bf410d26ab4d58ca33"><td class="memSeparator" colspan="2"> </td></tr>
|
|
109
|
-
<tr class="memitem:
|
|
110
|
-
<tr class="separator:
|
|
109
|
+
<tr class="memitem:aba9d3e04e923cc787ab46a1f7eebb554"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *, <a class="el" href="classSVF_1_1ThreadCallGraph.html#abc4cdc5b401932bf410d26ab4d58ca33">ParForEdgeSet</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#aba9d3e04e923cc787ab46a1f7eebb554">CallInstToParForEdgesMap</a></td></tr>
|
|
110
|
+
<tr class="separator:aba9d3e04e923cc787ab46a1f7eebb554"><td class="memSeparator" colspan="2"> </td></tr>
|
|
111
111
|
<tr class="inherit_header pub_types_classSVF_1_1PTACallGraph"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classSVF_1_1PTACallGraph')"><img src="closed.png" alt="-"/> Public Types inherited from <a class="el" href="classSVF_1_1PTACallGraph.html">SVF::PTACallGraph</a></td></tr>
|
|
112
112
|
<tr class="memitem:a5b1fe2b2314db947cd5e709b7285fe1c inherit pub_types_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a5b1fe2b2314db947cd5e709b7285fe1c">CGEK</a> { <a class="el" href="classSVF_1_1PTACallGraph.html#a5b1fe2b2314db947cd5e709b7285fe1ca6bbe72ac881caacbded694492df5417c">NormCallGraph</a>,
|
|
113
113
|
<a class="el" href="classSVF_1_1PTACallGraph.html#a5b1fe2b2314db947cd5e709b7285fe1ca4fe819bb1488afc48b04c1b7bef04bc2">ThdCallGraph</a>
|
|
@@ -117,18 +117,18 @@ Public Types</h2></td></tr>
|
|
|
117
117
|
<tr class="separator:a1ad288117daa4031e195eb35d805cac6 inherit pub_types_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
118
118
|
<tr class="memitem:a049bc978a93f0db1fe91efb6feb22b14 inherit pub_types_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *, <a class="el" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a049bc978a93f0db1fe91efb6feb22b14">FunToCallGraphNodeMap</a></td></tr>
|
|
119
119
|
<tr class="separator:a049bc978a93f0db1fe91efb6feb22b14 inherit pub_types_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
120
|
-
<tr class="memitem:
|
|
121
|
-
<tr class="separator:
|
|
122
|
-
<tr class="memitem:
|
|
123
|
-
<tr class="separator:
|
|
124
|
-
<tr class="memitem:ae4e3e5f108bc1e47af8f58d2e43345d2 inherit pub_types_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="classSVF_1_1PTACallGraph.html#
|
|
120
|
+
<tr class="memitem:a09245c929079024095cfe0d6570b70e8 inherit pub_types_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *, <a class="el" href="classSVF_1_1PTACallGraph.html#a1ad288117daa4031e195eb35d805cac6">CallGraphEdgeSet</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a09245c929079024095cfe0d6570b70e8">CallInstToCallGraphEdgesMap</a></td></tr>
|
|
121
|
+
<tr class="separator:a09245c929079024095cfe0d6570b70e8 inherit pub_types_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
122
|
+
<tr class="memitem:a178d9971028e8ce26ab8894c5c6b5784 inherit pub_types_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">typedef std::pair< const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a178d9971028e8ce26ab8894c5c6b5784">CallSitePair</a></td></tr>
|
|
123
|
+
<tr class="separator:a178d9971028e8ce26ab8894c5c6b5784 inherit pub_types_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
124
|
+
<tr class="memitem:ae4e3e5f108bc1e47af8f58d2e43345d2 inherit pub_types_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="classSVF_1_1PTACallGraph.html#a178d9971028e8ce26ab8894c5c6b5784">CallSitePair</a>, <a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#ae4e3e5f108bc1e47af8f58d2e43345d2">CallSiteToIdMap</a></td></tr>
|
|
125
125
|
<tr class="separator:ae4e3e5f108bc1e47af8f58d2e43345d2 inherit pub_types_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
126
|
-
<tr class="memitem:a5f626f5c9254b9e643d943e59068efba inherit pub_types_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a>, <a class="el" href="classSVF_1_1PTACallGraph.html#
|
|
126
|
+
<tr class="memitem:a5f626f5c9254b9e643d943e59068efba inherit pub_types_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a>, <a class="el" href="classSVF_1_1PTACallGraph.html#a178d9971028e8ce26ab8894c5c6b5784">CallSitePair</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a5f626f5c9254b9e643d943e59068efba">IdToCallSiteMap</a></td></tr>
|
|
127
127
|
<tr class="separator:a5f626f5c9254b9e643d943e59068efba inherit pub_types_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
128
128
|
<tr class="memitem:a5f5a5ec7e707a21994d301cc07d32a5a inherit pub_types_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a>< const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">FunctionSet</a></td></tr>
|
|
129
129
|
<tr class="separator:a5f5a5ec7e707a21994d301cc07d32a5a inherit pub_types_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
130
|
-
<tr class="memitem:
|
|
131
|
-
<tr class="separator:
|
|
130
|
+
<tr class="memitem:a4948c9e7ff7f1c86d0f27c49e7208aa3 inherit pub_types_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap</a>< const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *, <a class="el" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">FunctionSet</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a4948c9e7ff7f1c86d0f27c49e7208aa3">CallEdgeMap</a></td></tr>
|
|
131
|
+
<tr class="separator:a4948c9e7ff7f1c86d0f27c49e7208aa3 inherit pub_types_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
132
132
|
<tr class="memitem:a2f28a1ce0c7d6a0bc2fc2627e90acf1c inherit pub_types_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">typedef CallGraphEdgeSet::iterator </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a2f28a1ce0c7d6a0bc2fc2627e90acf1c">CallGraphEdgeIter</a></td></tr>
|
|
133
133
|
<tr class="separator:a2f28a1ce0c7d6a0bc2fc2627e90acf1c inherit pub_types_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
134
134
|
<tr class="memitem:a9b7f6979a95244c620fdb791e053237b inherit pub_types_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">typedef CallGraphEdgeSet::const_iterator </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a9b7f6979a95244c620fdb791e053237b">CallGraphEdgeConstIter</a></td></tr>
|
|
@@ -164,42 +164,42 @@ Public Member Functions</h2></td></tr>
|
|
|
164
164
|
<tr class="memitem:adcad8524a53baf256cd45503ec568c10"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ThreadAPI.html">ThreadAPI</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#adcad8524a53baf256cd45503ec568c10">getThreadAPI</a> () const</td></tr>
|
|
165
165
|
<tr class="memdesc:adcad8524a53baf256cd45503ec568c10"><td class="mdescLeft"> </td><td class="mdescRight">Thread API. <a href="#adcad8524a53baf256cd45503ec568c10">More...</a><br /></td></tr>
|
|
166
166
|
<tr class="separator:adcad8524a53baf256cd45503ec568c10"><td class="memSeparator" colspan="2"> </td></tr>
|
|
167
|
-
<tr class="memitem:
|
|
168
|
-
<tr class="memdesc:
|
|
169
|
-
<tr class="separator:
|
|
170
|
-
<tr class="memitem:
|
|
171
|
-
<tr class="memdesc:
|
|
172
|
-
<tr class="separator:
|
|
173
|
-
<tr class="memitem:
|
|
174
|
-
<tr class="memdesc:
|
|
175
|
-
<tr class="separator:
|
|
176
|
-
<tr class="memitem:
|
|
177
|
-
<tr class="memdesc:
|
|
178
|
-
<tr class="separator:
|
|
167
|
+
<tr class="memitem:ab20211a66583387f0da4769bee65e300"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#ab20211a66583387f0da4769bee65e300">addThreadForkEdgeSetMap</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs, <a class="el" href="classSVF_1_1ThreadForkEdge.html">ThreadForkEdge</a> *edge)</td></tr>
|
|
168
|
+
<tr class="memdesc:ab20211a66583387f0da4769bee65e300"><td class="mdescLeft"> </td><td class="mdescRight">map call instruction to its CallGraphEdge map <a href="#ab20211a66583387f0da4769bee65e300">More...</a><br /></td></tr>
|
|
169
|
+
<tr class="separator:ab20211a66583387f0da4769bee65e300"><td class="memSeparator" colspan="2"> </td></tr>
|
|
170
|
+
<tr class="memitem:a7100a68c27a965927975e26bb06e061c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a7100a68c27a965927975e26bb06e061c">addThreadJoinEdgeSetMap</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs, <a class="el" href="classSVF_1_1ThreadJoinEdge.html">ThreadJoinEdge</a> *edge)</td></tr>
|
|
171
|
+
<tr class="memdesc:a7100a68c27a965927975e26bb06e061c"><td class="mdescLeft"> </td><td class="mdescRight">map call instruction to its CallGraphEdge map <a href="#a7100a68c27a965927975e26bb06e061c">More...</a><br /></td></tr>
|
|
172
|
+
<tr class="separator:a7100a68c27a965927975e26bb06e061c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
173
|
+
<tr class="memitem:aae1caa7231ab9436db98403d6a175149"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#aae1caa7231ab9436db98403d6a175149">addHareParForEdgeSetMap</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs, <a class="el" href="classSVF_1_1HareParForEdge.html">HareParForEdge</a> *edge)</td></tr>
|
|
174
|
+
<tr class="memdesc:aae1caa7231ab9436db98403d6a175149"><td class="mdescLeft"> </td><td class="mdescRight">map call instruction to its CallGraphEdge map <a href="#aae1caa7231ab9436db98403d6a175149">More...</a><br /></td></tr>
|
|
175
|
+
<tr class="separator:aae1caa7231ab9436db98403d6a175149"><td class="memSeparator" colspan="2"> </td></tr>
|
|
176
|
+
<tr class="memitem:a98214e970762f43d0e9ad719961b4021"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ThreadJoinEdge.html">ThreadJoinEdge</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a98214e970762f43d0e9ad719961b4021">hasThreadJoinEdge</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *call, <a class="el" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a> *joinFunNode, <a class="el" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a> *threadRoutineFunNode, <a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId) const</td></tr>
|
|
177
|
+
<tr class="memdesc:a98214e970762f43d0e9ad719961b4021"><td class="mdescLeft"> </td><td class="mdescRight">has thread join edge <a href="#a98214e970762f43d0e9ad719961b4021">More...</a><br /></td></tr>
|
|
178
|
+
<tr class="separator:a98214e970762f43d0e9ad719961b4021"><td class="memSeparator" colspan="2"> </td></tr>
|
|
179
179
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
180
|
-
<tr class="memitem:
|
|
181
|
-
<tr class="memdesc:
|
|
182
|
-
<tr class="separator:
|
|
183
|
-
<tr class="memitem:
|
|
184
|
-
<tr class="separator:
|
|
185
|
-
<tr class="memitem:
|
|
186
|
-
<tr class="separator:
|
|
187
|
-
<tr class="memitem:
|
|
188
|
-
<tr class="memdesc:
|
|
189
|
-
<tr class="separator:
|
|
190
|
-
<tr class="memitem:
|
|
191
|
-
<tr class="separator:
|
|
192
|
-
<tr class="memitem:
|
|
193
|
-
<tr class="separator:
|
|
194
|
-
<tr class="memitem:aa8be8d48d680b3f2e61b2d8af5e9eddc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#aa8be8d48d680b3f2e61b2d8af5e9eddc">getJoinSites</a> (const <a class="el" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a> *routine, <a class="el" href="classSVF_1_1ThreadCallGraph.html#
|
|
180
|
+
<tr class="memitem:a933a6a2f0a0c6364e8df1bc65a07192f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a933a6a2f0a0c6364e8df1bc65a07192f">hasThreadForkEdge</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs) const</td></tr>
|
|
181
|
+
<tr class="memdesc:a933a6a2f0a0c6364e8df1bc65a07192f"><td class="mdescLeft"> </td><td class="mdescRight">Get call graph edge via call instruction. <a href="#a933a6a2f0a0c6364e8df1bc65a07192f">More...</a><br /></td></tr>
|
|
182
|
+
<tr class="separator:a933a6a2f0a0c6364e8df1bc65a07192f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
183
|
+
<tr class="memitem:a8721610a39212613ad55bbd46a35c576"><td class="memItemLeft" align="right" valign="top">ForkEdgeSet::const_iterator </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a8721610a39212613ad55bbd46a35c576">getForkEdgeBegin</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs) const</td></tr>
|
|
184
|
+
<tr class="separator:a8721610a39212613ad55bbd46a35c576"><td class="memSeparator" colspan="2"> </td></tr>
|
|
185
|
+
<tr class="memitem:a8351e7ab445cb7faf0209d1fbc63fce1"><td class="memItemLeft" align="right" valign="top">ForkEdgeSet::const_iterator </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a8351e7ab445cb7faf0209d1fbc63fce1">getForkEdgeEnd</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs) const</td></tr>
|
|
186
|
+
<tr class="separator:a8351e7ab445cb7faf0209d1fbc63fce1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
187
|
+
<tr class="memitem:a5f7c92af1a4ce33e4746f5b65c9c8421"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a5f7c92af1a4ce33e4746f5b65c9c8421">hasThreadJoinEdge</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs) const</td></tr>
|
|
188
|
+
<tr class="memdesc:a5f7c92af1a4ce33e4746f5b65c9c8421"><td class="mdescLeft"> </td><td class="mdescRight">Get call graph edge via call instruction. <a href="#a5f7c92af1a4ce33e4746f5b65c9c8421">More...</a><br /></td></tr>
|
|
189
|
+
<tr class="separator:a5f7c92af1a4ce33e4746f5b65c9c8421"><td class="memSeparator" colspan="2"> </td></tr>
|
|
190
|
+
<tr class="memitem:af848d7cb8a9f756ff45cca45adbf3b84"><td class="memItemLeft" align="right" valign="top">JoinEdgeSet::const_iterator </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#af848d7cb8a9f756ff45cca45adbf3b84">getJoinEdgeBegin</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs) const</td></tr>
|
|
191
|
+
<tr class="separator:af848d7cb8a9f756ff45cca45adbf3b84"><td class="memSeparator" colspan="2"> </td></tr>
|
|
192
|
+
<tr class="memitem:a811d7d13c05c71bd816621a9a8765365"><td class="memItemLeft" align="right" valign="top">JoinEdgeSet::const_iterator </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a811d7d13c05c71bd816621a9a8765365">getJoinEdgeEnd</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs) const</td></tr>
|
|
193
|
+
<tr class="separator:a811d7d13c05c71bd816621a9a8765365"><td class="memSeparator" colspan="2"> </td></tr>
|
|
194
|
+
<tr class="memitem:aa8be8d48d680b3f2e61b2d8af5e9eddc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#aa8be8d48d680b3f2e61b2d8af5e9eddc">getJoinSites</a> (const <a class="el" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a> *routine, <a class="el" href="classSVF_1_1ThreadCallGraph.html#a57b69bfb5d468bd1a81a55468f845de0">InstSet</a> &csSet)</td></tr>
|
|
195
195
|
<tr class="separator:aa8be8d48d680b3f2e61b2d8af5e9eddc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
196
196
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
197
|
-
<tr class="memitem:
|
|
198
|
-
<tr class="separator:
|
|
199
|
-
<tr class="memitem:
|
|
200
|
-
<tr class="separator:
|
|
201
|
-
<tr class="memitem:
|
|
202
|
-
<tr class="separator:
|
|
197
|
+
<tr class="memitem:a07d3db6ffe8d75effd6fbc3856c484fe"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a07d3db6ffe8d75effd6fbc3856c484fe">isForksite</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *csInst)</td></tr>
|
|
198
|
+
<tr class="separator:a07d3db6ffe8d75effd6fbc3856c484fe"><td class="memSeparator" colspan="2"> </td></tr>
|
|
199
|
+
<tr class="memitem:ac75a38384cda8379c32b4d01d4d5d20a"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#ac75a38384cda8379c32b4d01d4d5d20a">isJoinsite</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *csInst)</td></tr>
|
|
200
|
+
<tr class="separator:ac75a38384cda8379c32b4d01d4d5d20a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
201
|
+
<tr class="memitem:ae18f0b3245694145f6d9262ee28c6453"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#ae18f0b3245694145f6d9262ee28c6453">isParForSite</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *csInst)</td></tr>
|
|
202
|
+
<tr class="separator:ae18f0b3245694145f6d9262ee28c6453"><td class="memSeparator" colspan="2"> </td></tr>
|
|
203
203
|
<tr class="memitem:a37f2e076713a9aeb0e4313fb05dfb92e"><td class="memItemLeft" align="right" valign="top">CallSiteSet::const_iterator </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a37f2e076713a9aeb0e4313fb05dfb92e">forksitesBegin</a> () const</td></tr>
|
|
204
204
|
<tr class="memdesc:a37f2e076713a9aeb0e4313fb05dfb92e"><td class="mdescLeft"> </td><td class="mdescRight">Fork sites iterators. <a href="#a37f2e076713a9aeb0e4313fb05dfb92e">More...</a><br /></td></tr>
|
|
205
205
|
<tr class="separator:a37f2e076713a9aeb0e4313fb05dfb92e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -226,29 +226,29 @@ Public Member Functions</h2></td></tr>
|
|
|
226
226
|
<tr class="memitem:ad883eb92aece6818a3a0a261fa3407ce"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#ad883eb92aece6818a3a0a261fa3407ce">getNumOfParForSite</a> () const</td></tr>
|
|
227
227
|
<tr class="separator:ad883eb92aece6818a3a0a261fa3407ce"><td class="memSeparator" colspan="2"> </td></tr>
|
|
228
228
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
229
|
-
<tr class="memitem:
|
|
230
|
-
<tr class="memdesc:
|
|
231
|
-
<tr class="separator:
|
|
232
|
-
<tr class="memitem:
|
|
233
|
-
<tr class="separator:
|
|
234
|
-
<tr class="memitem:
|
|
235
|
-
<tr class="separator:
|
|
229
|
+
<tr class="memitem:a563ebb1ece0adb4bafe5e14b2a024a91"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a563ebb1ece0adb4bafe5e14b2a024a91">addForksite</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs)</td></tr>
|
|
230
|
+
<tr class="memdesc:a563ebb1ece0adb4bafe5e14b2a024a91"><td class="mdescLeft"> </td><td class="mdescRight">Add fork sites which directly or indirectly create a thread. <a href="#a563ebb1ece0adb4bafe5e14b2a024a91">More...</a><br /></td></tr>
|
|
231
|
+
<tr class="separator:a563ebb1ece0adb4bafe5e14b2a024a91"><td class="memSeparator" colspan="2"> </td></tr>
|
|
232
|
+
<tr class="memitem:a795d504a098634b1725af272b37e46e7"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a795d504a098634b1725af272b37e46e7">addJoinsite</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs)</td></tr>
|
|
233
|
+
<tr class="separator:a795d504a098634b1725af272b37e46e7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
234
|
+
<tr class="memitem:a69719915e8c23e3afd6766daea946ffe"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a69719915e8c23e3afd6766daea946ffe">addParForSite</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs)</td></tr>
|
|
235
|
+
<tr class="separator:a69719915e8c23e3afd6766daea946ffe"><td class="memSeparator" colspan="2"> </td></tr>
|
|
236
236
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
237
|
-
<tr class="memitem:
|
|
238
|
-
<tr class="memdesc:
|
|
239
|
-
<tr class="separator:
|
|
240
|
-
<tr class="memitem:
|
|
241
|
-
<tr class="separator:
|
|
237
|
+
<tr class="memitem:a19e505dbca2d2b5128762b223b9a7114"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a19e505dbca2d2b5128762b223b9a7114">addDirectForkEdge</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs)</td></tr>
|
|
238
|
+
<tr class="memdesc:a19e505dbca2d2b5128762b223b9a7114"><td class="mdescLeft"> </td><td class="mdescRight">Add direct/indirect thread fork edges. <a href="#a19e505dbca2d2b5128762b223b9a7114">More...</a><br /></td></tr>
|
|
239
|
+
<tr class="separator:a19e505dbca2d2b5128762b223b9a7114"><td class="memSeparator" colspan="2"> </td></tr>
|
|
240
|
+
<tr class="memitem:a579dd874301280f7c9750c2a22f065c7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a579dd874301280f7c9750c2a22f065c7">addIndirectForkEdge</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee)</td></tr>
|
|
241
|
+
<tr class="separator:a579dd874301280f7c9750c2a22f065c7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
242
242
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
243
|
-
<tr class="memitem:
|
|
244
|
-
<tr class="memdesc:
|
|
245
|
-
<tr class="separator:
|
|
243
|
+
<tr class="memitem:a8e1a6710a05e08b9ed87e373bd5bd0ee"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a8e1a6710a05e08b9ed87e373bd5bd0ee">addDirectJoinEdge</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs, const <a class="el" href="classSVF_1_1ThreadCallGraph.html#a0d560b811f8df1a710c627e1ac100155">CallSiteSet</a> &forksite)</td></tr>
|
|
244
|
+
<tr class="memdesc:a8e1a6710a05e08b9ed87e373bd5bd0ee"><td class="mdescLeft"> </td><td class="mdescRight">Add thread join edges. <a href="#a8e1a6710a05e08b9ed87e373bd5bd0ee">More...</a><br /></td></tr>
|
|
245
|
+
<tr class="separator:a8e1a6710a05e08b9ed87e373bd5bd0ee"><td class="memSeparator" colspan="2"> </td></tr>
|
|
246
246
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
247
|
-
<tr class="memitem:
|
|
248
|
-
<tr class="memdesc:
|
|
249
|
-
<tr class="separator:
|
|
250
|
-
<tr class="memitem:
|
|
251
|
-
<tr class="separator:
|
|
247
|
+
<tr class="memitem:ae942f7d46198207219e5ce8287497262"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#ae942f7d46198207219e5ce8287497262">addDirectParForEdge</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs)</td></tr>
|
|
248
|
+
<tr class="memdesc:ae942f7d46198207219e5ce8287497262"><td class="mdescLeft"> </td><td class="mdescRight">Add direct/indirect parallel for edges. <a href="#ae942f7d46198207219e5ce8287497262">More...</a><br /></td></tr>
|
|
249
|
+
<tr class="separator:ae942f7d46198207219e5ce8287497262"><td class="memSeparator" colspan="2"> </td></tr>
|
|
250
|
+
<tr class="memitem:a9258b680de64d8d2fdd1cb9aed8ae428"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a9258b680de64d8d2fdd1cb9aed8ae428">addIndirectParForEdge</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee)</td></tr>
|
|
251
|
+
<tr class="separator:a9258b680de64d8d2fdd1cb9aed8ae428"><td class="memSeparator" colspan="2"> </td></tr>
|
|
252
252
|
<tr class="inherit_header pub_methods_classSVF_1_1PTACallGraph"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1PTACallGraph')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classSVF_1_1PTACallGraph.html">SVF::PTACallGraph</a></td></tr>
|
|
253
253
|
<tr class="memitem:a612b05f1c37dc50a888b773b9bbe093f inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a612b05f1c37dc50a888b773b9bbe093f">PTACallGraph</a> (<a class="el" href="classSVF_1_1PTACallGraph.html#a5b1fe2b2314db947cd5e709b7285fe1c">CGEK</a> k=<a class="el" href="classSVF_1_1PTACallGraph.html#a5b1fe2b2314db947cd5e709b7285fe1ca6bbe72ac881caacbded694492df5417c">NormCallGraph</a>)</td></tr>
|
|
254
254
|
<tr class="memdesc:a612b05f1c37dc50a888b773b9bbe093f inherit pub_methods_classSVF_1_1PTACallGraph"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="classSVF_1_1PTACallGraph.html#a612b05f1c37dc50a888b773b9bbe093f">More...</a><br /></td></tr>
|
|
@@ -266,7 +266,7 @@ Public Member Functions</h2></td></tr>
|
|
|
266
266
|
<tr class="separator:aab4214b734d00f5db59385535419ca58 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
267
267
|
<tr class="memitem:a3379185589e9bcafa4f961930aaf2694 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a3379185589e9bcafa4f961930aaf2694">getNumOfResolvedIndCallEdge</a> () const</td></tr>
|
|
268
268
|
<tr class="separator:a3379185589e9bcafa4f961930aaf2694 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
269
|
-
<tr class="memitem:a368306a46d84ccc6d07d94833aded629 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1PTACallGraph.html#
|
|
269
|
+
<tr class="memitem:a368306a46d84ccc6d07d94833aded629 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1PTACallGraph.html#a09245c929079024095cfe0d6570b70e8">CallInstToCallGraphEdgesMap</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a368306a46d84ccc6d07d94833aded629">getCallInstToCallGraphEdgesMap</a> () const</td></tr>
|
|
270
270
|
<tr class="separator:a368306a46d84ccc6d07d94833aded629 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
271
271
|
<tr class="memitem:ac695d78f0a78e2e5f1fb4f93264e52b8 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#ac695d78f0a78e2e5f1fb4f93264e52b8">verifyCallGraph</a> ()</td></tr>
|
|
272
272
|
<tr class="memdesc:ac695d78f0a78e2e5f1fb4f93264e52b8 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="mdescLeft"> </td><td class="mdescRight">Issue a warning if the function which has indirect call sites can not be reached from program entry. <a href="classSVF_1_1PTACallGraph.html#ac695d78f0a78e2e5f1fb4f93264e52b8">More...</a><br /></td></tr>
|
|
@@ -277,9 +277,9 @@ Public Member Functions</h2></td></tr>
|
|
|
277
277
|
<tr class="memitem:a2634a24621ab93fae7ec1cf94a8cba0b inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PTACallGraphEdge.html">PTACallGraphEdge</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a2634a24621ab93fae7ec1cf94a8cba0b">getGraphEdge</a> (<a class="el" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a> *src, <a class="el" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a> *dst, <a class="el" href="classSVF_1_1PTACallGraphEdge.html#a9738544725458bb022b8d5f2dbd281f7">PTACallGraphEdge::CEDGEK</a> <a class="el" href="classSVF_1_1PTACallGraph.html#a6a5927a58cc777a0745bd0ca635f25b1">kind</a>, <a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId)</td></tr>
|
|
278
278
|
<tr class="memdesc:a2634a24621ab93fae7ec1cf94a8cba0b inherit pub_methods_classSVF_1_1PTACallGraph"><td class="mdescLeft"> </td><td class="mdescRight">Get call graph edge via nodes. <a href="classSVF_1_1PTACallGraph.html#a2634a24621ab93fae7ec1cf94a8cba0b">More...</a><br /></td></tr>
|
|
279
279
|
<tr class="separator:a2634a24621ab93fae7ec1cf94a8cba0b inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
280
|
-
<tr class="memitem:
|
|
281
|
-
<tr class="memdesc:
|
|
282
|
-
<tr class="separator:
|
|
280
|
+
<tr class="memitem:a317e09edb29b110cf4273009551d31ec inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a317e09edb29b110cf4273009551d31ec">getCallees</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs, <a class="el" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">FunctionSet</a> &callees)</td></tr>
|
|
281
|
+
<tr class="memdesc:a317e09edb29b110cf4273009551d31ec inherit pub_methods_classSVF_1_1PTACallGraph"><td class="mdescLeft"> </td><td class="mdescRight">Get all callees for a callsite. <a href="classSVF_1_1PTACallGraph.html#a317e09edb29b110cf4273009551d31ec">More...</a><br /></td></tr>
|
|
282
|
+
<tr class="separator:a317e09edb29b110cf4273009551d31ec inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
283
283
|
<tr class="memitem:a3154bbc421fc85649e786ed67ca03750 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a3154bbc421fc85649e786ed67ca03750">addEdge</a> (<a class="el" href="classSVF_1_1PTACallGraphEdge.html">PTACallGraphEdge</a> *edge)</td></tr>
|
|
284
284
|
<tr class="memdesc:a3154bbc421fc85649e786ed67ca03750 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="mdescLeft"> </td><td class="mdescRight">Add call graph edge. <a href="classSVF_1_1PTACallGraph.html#a3154bbc421fc85649e786ed67ca03750">More...</a><br /></td></tr>
|
|
285
285
|
<tr class="separator:a3154bbc421fc85649e786ed67ca03750 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -292,51 +292,51 @@ Public Member Functions</h2></td></tr>
|
|
|
292
292
|
<tr class="memitem:a7c2d28b4707d7feaabf62977cef90d27 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a7c2d28b4707d7feaabf62977cef90d27">view</a> ()</td></tr>
|
|
293
293
|
<tr class="memdesc:a7c2d28b4707d7feaabf62977cef90d27 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="mdescLeft"> </td><td class="mdescRight">View the graph from the debugger. <a href="classSVF_1_1PTACallGraph.html#a7c2d28b4707d7feaabf62977cef90d27">More...</a><br /></td></tr>
|
|
294
294
|
<tr class="separator:a7c2d28b4707d7feaabf62977cef90d27 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
295
|
-
<tr class="memitem:ad49fa2a288945f6910deb11acdf6a42d inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PTACallGraph.html#
|
|
295
|
+
<tr class="memitem:ad49fa2a288945f6910deb11acdf6a42d inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PTACallGraph.html#a4948c9e7ff7f1c86d0f27c49e7208aa3">CallEdgeMap</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">getIndCallMap</a> ()</td></tr>
|
|
296
296
|
<tr class="memdesc:ad49fa2a288945f6910deb11acdf6a42d inherit pub_methods_classSVF_1_1PTACallGraph"><td class="mdescLeft"> </td><td class="mdescRight">Get callees from an indirect callsite. <a href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">More...</a><br /></td></tr>
|
|
297
297
|
<tr class="separator:ad49fa2a288945f6910deb11acdf6a42d inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
298
|
-
<tr class="memitem:
|
|
299
|
-
<tr class="separator:
|
|
300
|
-
<tr class="memitem:
|
|
301
|
-
<tr class="separator:
|
|
298
|
+
<tr class="memitem:a71a63c53a093ea8e450fb53fd60c9424 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a71a63c53a093ea8e450fb53fd60c9424">hasIndCSCallees</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs) const</td></tr>
|
|
299
|
+
<tr class="separator:a71a63c53a093ea8e450fb53fd60c9424 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
300
|
+
<tr class="memitem:ac106536778c829d6925d6ed2149aeb44 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">FunctionSet</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#ac106536778c829d6925d6ed2149aeb44">getIndCSCallees</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs) const</td></tr>
|
|
301
|
+
<tr class="separator:ac106536778c829d6925d6ed2149aeb44 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
302
302
|
<tr class="memitem:aaab54c670518d9d6790707f76ea76aa1 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id) const</td></tr>
|
|
303
303
|
<tr class="memdesc:aaab54c670518d9d6790707f76ea76aa1 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="mdescLeft"> </td><td class="mdescRight">Get call graph node. <a href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">More...</a><br /></td></tr>
|
|
304
304
|
<tr class="separator:aaab54c670518d9d6790707f76ea76aa1 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
305
305
|
<tr class="memitem:ae3ee76be0e959a736c868dc7e0128077 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#ae3ee76be0e959a736c868dc7e0128077">getCallGraphNode</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun) const</td></tr>
|
|
306
306
|
<tr class="separator:ae3ee76be0e959a736c868dc7e0128077 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
307
|
-
<tr class="memitem:
|
|
308
|
-
<tr class="memdesc:
|
|
309
|
-
<tr class="separator:
|
|
310
|
-
<tr class="memitem:
|
|
311
|
-
<tr class="separator:
|
|
312
|
-
<tr class="memitem:
|
|
313
|
-
<tr class="separator:
|
|
314
|
-
<tr class="memitem:a9155629ddc58f71c6a6f2aec978e4610 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1PTACallGraph.html#
|
|
307
|
+
<tr class="memitem:a979359fc784e647c574de90c7af2cf40 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">addCallSite</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee)</td></tr>
|
|
308
|
+
<tr class="memdesc:a979359fc784e647c574de90c7af2cf40 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="mdescLeft"> </td><td class="mdescRight">Add/Get CallSiteID. <a href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">More...</a><br /></td></tr>
|
|
309
|
+
<tr class="separator:a979359fc784e647c574de90c7af2cf40 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
310
|
+
<tr class="memitem:a711bd8ad385f8454fbfcd20f134efe1b inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">getCallSiteID</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee) const</td></tr>
|
|
311
|
+
<tr class="separator:a711bd8ad385f8454fbfcd20f134efe1b inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
312
|
+
<tr class="memitem:aa8dbda3e46533680173e55d396f36756 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#aa8dbda3e46533680173e55d396f36756">hasCallSiteID</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee) const</td></tr>
|
|
313
|
+
<tr class="separator:aa8dbda3e46533680173e55d396f36756 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
314
|
+
<tr class="memitem:a9155629ddc58f71c6a6f2aec978e4610 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1PTACallGraph.html#a178d9971028e8ce26ab8894c5c6b5784">CallSitePair</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a9155629ddc58f71c6a6f2aec978e4610">getCallSitePair</a> (<a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> id) const</td></tr>
|
|
315
315
|
<tr class="separator:a9155629ddc58f71c6a6f2aec978e4610 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
316
|
-
<tr class="memitem:
|
|
317
|
-
<tr class="separator:
|
|
316
|
+
<tr class="memitem:a16e0017ad3a2d36d7efbc4383e394154 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a16e0017ad3a2d36d7efbc4383e394154">getCallSite</a> (<a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> id) const</td></tr>
|
|
317
|
+
<tr class="separator:a16e0017ad3a2d36d7efbc4383e394154 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
318
318
|
<tr class="memitem:a42035e9669204ddd5d38583db21af3d7 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a42035e9669204ddd5d38583db21af3d7">getCallerOfCallSite</a> (<a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> id) const</td></tr>
|
|
319
319
|
<tr class="separator:a42035e9669204ddd5d38583db21af3d7 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
320
320
|
<tr class="memitem:aacd5f35171717cb4d758c17bef828a0f inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#aacd5f35171717cb4d758c17bef828a0f">getCalleeOfCallSite</a> (<a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> id) const</td></tr>
|
|
321
321
|
<tr class="separator:aacd5f35171717cb4d758c17bef828a0f inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
322
|
-
<tr class="memitem:
|
|
323
|
-
<tr class="memdesc:
|
|
324
|
-
<tr class="separator:
|
|
325
|
-
<tr class="memitem:
|
|
326
|
-
<tr class="separator:
|
|
327
|
-
<tr class="memitem:
|
|
328
|
-
<tr class="separator:
|
|
329
|
-
<tr class="memitem:
|
|
330
|
-
<tr class="memdesc:
|
|
331
|
-
<tr class="separator:
|
|
332
|
-
<tr class="memitem:
|
|
333
|
-
<tr class="separator:
|
|
334
|
-
<tr class="memitem:a80070e2f50ed1036d334250841215ca8 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a80070e2f50ed1036d334250841215ca8">getAllCallSitesInvokingCallee</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee, <a class="el" href="classSVF_1_1PTACallGraphEdge.html#
|
|
322
|
+
<tr class="memitem:af8df9ca6d906453fa3f7168aa84fd087 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#af8df9ca6d906453fa3f7168aa84fd087">hasCallGraphEdge</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *inst) const</td></tr>
|
|
323
|
+
<tr class="memdesc:af8df9ca6d906453fa3f7168aa84fd087 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="mdescLeft"> </td><td class="mdescRight">Get call graph edge via call instruction. <a href="classSVF_1_1PTACallGraph.html#af8df9ca6d906453fa3f7168aa84fd087">More...</a><br /></td></tr>
|
|
324
|
+
<tr class="separator:af8df9ca6d906453fa3f7168aa84fd087 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
325
|
+
<tr class="memitem:a4ed2fd37007de9c873d5e197a0b3bd4e inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">CallGraphEdgeSet::const_iterator </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a4ed2fd37007de9c873d5e197a0b3bd4e">getCallEdgeBegin</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *inst) const</td></tr>
|
|
326
|
+
<tr class="separator:a4ed2fd37007de9c873d5e197a0b3bd4e inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
327
|
+
<tr class="memitem:a170a33ac22673dfd363c3e3b96987737 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">CallGraphEdgeSet::const_iterator </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a170a33ac22673dfd363c3e3b96987737">getCallEdgeEnd</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *inst) const</td></tr>
|
|
328
|
+
<tr class="separator:a170a33ac22673dfd363c3e3b96987737 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
329
|
+
<tr class="memitem:a69bf382a228644d1c683b436930ee6df inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a69bf382a228644d1c683b436930ee6df">addDirectCallGraphEdge</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *call, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callerFun, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *calleeFun)</td></tr>
|
|
330
|
+
<tr class="memdesc:a69bf382a228644d1c683b436930ee6df inherit pub_methods_classSVF_1_1PTACallGraph"><td class="mdescLeft"> </td><td class="mdescRight">Add direct/indirect call edges. <a href="classSVF_1_1PTACallGraph.html#a69bf382a228644d1c683b436930ee6df">More...</a><br /></td></tr>
|
|
331
|
+
<tr class="separator:a69bf382a228644d1c683b436930ee6df inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
332
|
+
<tr class="memitem:a46416c668e2f0099394e79f685ede758 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a46416c668e2f0099394e79f685ede758">addIndirectCallGraphEdge</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callerFun, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *calleeFun)</td></tr>
|
|
333
|
+
<tr class="separator:a46416c668e2f0099394e79f685ede758 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
334
|
+
<tr class="memitem:a80070e2f50ed1036d334250841215ca8 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a80070e2f50ed1036d334250841215ca8">getAllCallSitesInvokingCallee</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee, <a class="el" href="classSVF_1_1PTACallGraphEdge.html#adbedb15ac0f9395c5264f087a63bad3b">PTACallGraphEdge::CallInstSet</a> &csSet)</td></tr>
|
|
335
335
|
<tr class="memdesc:a80070e2f50ed1036d334250841215ca8 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="mdescLeft"> </td><td class="mdescRight">Get callsites invoking the callee. <a href="classSVF_1_1PTACallGraph.html#a80070e2f50ed1036d334250841215ca8">More...</a><br /></td></tr>
|
|
336
336
|
<tr class="separator:a80070e2f50ed1036d334250841215ca8 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
337
|
-
<tr class="memitem:a0d2544130cc2cdc3ac418c975c278eb2 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a0d2544130cc2cdc3ac418c975c278eb2">getDirCallSitesInvokingCallee</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee, <a class="el" href="classSVF_1_1PTACallGraphEdge.html#
|
|
337
|
+
<tr class="memitem:a0d2544130cc2cdc3ac418c975c278eb2 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a0d2544130cc2cdc3ac418c975c278eb2">getDirCallSitesInvokingCallee</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee, <a class="el" href="classSVF_1_1PTACallGraphEdge.html#adbedb15ac0f9395c5264f087a63bad3b">PTACallGraphEdge::CallInstSet</a> &csSet)</td></tr>
|
|
338
338
|
<tr class="separator:a0d2544130cc2cdc3ac418c975c278eb2 inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
339
|
-
<tr class="memitem:a9a4b0c6672288b9201ab254b4c49548d inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a9a4b0c6672288b9201ab254b4c49548d">getIndCallSitesInvokingCallee</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee, <a class="el" href="classSVF_1_1PTACallGraphEdge.html#
|
|
339
|
+
<tr class="memitem:a9a4b0c6672288b9201ab254b4c49548d inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a9a4b0c6672288b9201ab254b4c49548d">getIndCallSitesInvokingCallee</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee, <a class="el" href="classSVF_1_1PTACallGraphEdge.html#adbedb15ac0f9395c5264f087a63bad3b">PTACallGraphEdge::CallInstSet</a> &csSet)</td></tr>
|
|
340
340
|
<tr class="separator:a9a4b0c6672288b9201ab254b4c49548d inherit pub_methods_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
341
341
|
<tr class="inherit_header pub_methods_classSVF_1_1GenericGraph"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1GenericGraph')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph< NodeTy, EdgeTy ></a></td></tr>
|
|
342
342
|
<tr class="memitem:aa5837cddbbd63c5a8ac5725bcecb192f inherit pub_methods_classSVF_1_1GenericGraph"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericGraph.html#aa5837cddbbd63c5a8ac5725bcecb192f">GenericGraph</a> ()</td></tr>
|
|
@@ -403,13 +403,13 @@ Private Attributes</h2></td></tr>
|
|
|
403
403
|
<tr class="memitem:a6c47e8d4e328bf20d676913f39d842c2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a0d560b811f8df1a710c627e1ac100155">CallSiteSet</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a6c47e8d4e328bf20d676913f39d842c2">parForSites</a></td></tr>
|
|
404
404
|
<tr class="memdesc:a6c47e8d4e328bf20d676913f39d842c2"><td class="mdescLeft"> </td><td class="mdescRight">all parallel for sites <a href="#a6c47e8d4e328bf20d676913f39d842c2">More...</a><br /></td></tr>
|
|
405
405
|
<tr class="separator:a6c47e8d4e328bf20d676913f39d842c2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
406
|
-
<tr class="memitem:a79ba3df9d85eed3c9a55e6797fdcb9b9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ThreadCallGraph.html#
|
|
406
|
+
<tr class="memitem:a79ba3df9d85eed3c9a55e6797fdcb9b9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ThreadCallGraph.html#aec88ec07a721b120290a7dde94ae1b51">CallInstToForkEdgesMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a79ba3df9d85eed3c9a55e6797fdcb9b9">callinstToThreadForkEdgesMap</a></td></tr>
|
|
407
407
|
<tr class="memdesc:a79ba3df9d85eed3c9a55e6797fdcb9b9"><td class="mdescLeft"> </td><td class="mdescRight">Map a call instruction to its corresponding fork edges. <a href="#a79ba3df9d85eed3c9a55e6797fdcb9b9">More...</a><br /></td></tr>
|
|
408
408
|
<tr class="separator:a79ba3df9d85eed3c9a55e6797fdcb9b9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
409
|
-
<tr class="memitem:af2009968716a3785322e664a712cbb60"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ThreadCallGraph.html#
|
|
409
|
+
<tr class="memitem:af2009968716a3785322e664a712cbb60"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ThreadCallGraph.html#ab446ddd20cf46eeb76fcd5789faef521">CallInstToJoinEdgesMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#af2009968716a3785322e664a712cbb60">callinstToThreadJoinEdgesMap</a></td></tr>
|
|
410
410
|
<tr class="memdesc:af2009968716a3785322e664a712cbb60"><td class="mdescLeft"> </td><td class="mdescRight">Map a call instruction to its corresponding join edges. <a href="#af2009968716a3785322e664a712cbb60">More...</a><br /></td></tr>
|
|
411
411
|
<tr class="separator:af2009968716a3785322e664a712cbb60"><td class="memSeparator" colspan="2"> </td></tr>
|
|
412
|
-
<tr class="memitem:a42a088dba9cda7a7718685f80f52c928"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ThreadCallGraph.html#
|
|
412
|
+
<tr class="memitem:a42a088dba9cda7a7718685f80f52c928"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ThreadCallGraph.html#aba9d3e04e923cc787ab46a1f7eebb554">CallInstToParForEdgesMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a42a088dba9cda7a7718685f80f52c928">callinstToHareParForEdgesMap</a></td></tr>
|
|
413
413
|
<tr class="memdesc:a42a088dba9cda7a7718685f80f52c928"><td class="mdescLeft"> </td><td class="mdescRight">Map a call instruction to its corresponding hare_parallel_for edges. <a href="#a42a088dba9cda7a7718685f80f52c928">More...</a><br /></td></tr>
|
|
414
414
|
<tr class="separator:a42a088dba9cda7a7718685f80f52c928"><td class="memSeparator" colspan="2"> </td></tr>
|
|
415
415
|
</table><table class="memberdecls">
|
|
@@ -430,7 +430,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
430
430
|
<tr class="memitem:a97986d6e6732c78b04cc053f0e9d1367 inherit pro_attribs_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PTACallGraph.html#a049bc978a93f0db1fe91efb6feb22b14">FunToCallGraphNodeMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#a97986d6e6732c78b04cc053f0e9d1367">funToCallGraphNodeMap</a></td></tr>
|
|
431
431
|
<tr class="memdesc:a97986d6e6732c78b04cc053f0e9d1367 inherit pro_attribs_classSVF_1_1PTACallGraph"><td class="mdescLeft"> </td><td class="mdescRight">Call Graph node map. <a href="classSVF_1_1PTACallGraph.html#a97986d6e6732c78b04cc053f0e9d1367">More...</a><br /></td></tr>
|
|
432
432
|
<tr class="separator:a97986d6e6732c78b04cc053f0e9d1367 inherit pro_attribs_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
433
|
-
<tr class="memitem:ab29003352d8152b9d0fd37919ac212c5 inherit pro_attribs_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PTACallGraph.html#
|
|
433
|
+
<tr class="memitem:ab29003352d8152b9d0fd37919ac212c5 inherit pro_attribs_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PTACallGraph.html#a09245c929079024095cfe0d6570b70e8">CallInstToCallGraphEdgesMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#ab29003352d8152b9d0fd37919ac212c5">callinstToCallGraphEdgesMap</a></td></tr>
|
|
434
434
|
<tr class="memdesc:ab29003352d8152b9d0fd37919ac212c5 inherit pro_attribs_classSVF_1_1PTACallGraph"><td class="mdescLeft"> </td><td class="mdescRight">Map a call instruction to its corresponding call edges. <a href="classSVF_1_1PTACallGraph.html#ab29003352d8152b9d0fd37919ac212c5">More...</a><br /></td></tr>
|
|
435
435
|
<tr class="separator:ab29003352d8152b9d0fd37919ac212c5 inherit pro_attribs_classSVF_1_1PTACallGraph"><td class="memSeparator" colspan="2"> </td></tr>
|
|
436
436
|
<tr class="memitem:af0e1a940677fb7f6c4aaef2f9c46c3e5 inherit pro_attribs_classSVF_1_1PTACallGraph"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTACallGraph.html#af0e1a940677fb7f6c4aaef2f9c46c3e5">callGraphNodeNum</a></td></tr>
|
|
@@ -447,14 +447,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
447
447
|
|
|
448
448
|
<p class="definition">Definition at line <a class="el" href="ThreadCallGraph_8h_source.html#l00158">158</a> of file <a class="el" href="ThreadCallGraph_8h_source.html">ThreadCallGraph.h</a>.</p>
|
|
449
449
|
</div><h2 class="groupheader">Member Typedef Documentation</h2>
|
|
450
|
-
<a id="
|
|
451
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
450
|
+
<a id="aec88ec07a721b120290a7dde94ae1b51"></a>
|
|
451
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aec88ec07a721b120290a7dde94ae1b51">◆ </a></span>CallInstToForkEdgesMap</h2>
|
|
452
452
|
|
|
453
453
|
<div class="memitem">
|
|
454
454
|
<div class="memproto">
|
|
455
455
|
<table class="memname">
|
|
456
456
|
<tr>
|
|
457
|
-
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><const <a class="el" href="
|
|
457
|
+
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>*, <a class="el" href="classSVF_1_1ThreadCallGraph.html#aa5efa630056c1db2bb0dadc868752ec8">ForkEdgeSet</a>> <a class="el" href="classSVF_1_1ThreadCallGraph.html#aec88ec07a721b120290a7dde94ae1b51">SVF::ThreadCallGraph::CallInstToForkEdgesMap</a></td>
|
|
458
458
|
</tr>
|
|
459
459
|
</table>
|
|
460
460
|
</div><div class="memdoc">
|
|
@@ -463,14 +463,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
463
463
|
|
|
464
464
|
</div>
|
|
465
465
|
</div>
|
|
466
|
-
<a id="
|
|
467
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
466
|
+
<a id="ab446ddd20cf46eeb76fcd5789faef521"></a>
|
|
467
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ab446ddd20cf46eeb76fcd5789faef521">◆ </a></span>CallInstToJoinEdgesMap</h2>
|
|
468
468
|
|
|
469
469
|
<div class="memitem">
|
|
470
470
|
<div class="memproto">
|
|
471
471
|
<table class="memname">
|
|
472
472
|
<tr>
|
|
473
|
-
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><const <a class="el" href="
|
|
473
|
+
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>*, <a class="el" href="classSVF_1_1ThreadCallGraph.html#aa9e07204488ec8f0f83f4e218b6ce6bd">JoinEdgeSet</a>> <a class="el" href="classSVF_1_1ThreadCallGraph.html#ab446ddd20cf46eeb76fcd5789faef521">SVF::ThreadCallGraph::CallInstToJoinEdgesMap</a></td>
|
|
474
474
|
</tr>
|
|
475
475
|
</table>
|
|
476
476
|
</div><div class="memdoc">
|
|
@@ -479,14 +479,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
479
479
|
|
|
480
480
|
</div>
|
|
481
481
|
</div>
|
|
482
|
-
<a id="
|
|
483
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
482
|
+
<a id="aba9d3e04e923cc787ab46a1f7eebb554"></a>
|
|
483
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aba9d3e04e923cc787ab46a1f7eebb554">◆ </a></span>CallInstToParForEdgesMap</h2>
|
|
484
484
|
|
|
485
485
|
<div class="memitem">
|
|
486
486
|
<div class="memproto">
|
|
487
487
|
<table class="memname">
|
|
488
488
|
<tr>
|
|
489
|
-
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><const <a class="el" href="
|
|
489
|
+
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>*, <a class="el" href="classSVF_1_1ThreadCallGraph.html#abc4cdc5b401932bf410d26ab4d58ca33">ParForEdgeSet</a>> <a class="el" href="classSVF_1_1ThreadCallGraph.html#aba9d3e04e923cc787ab46a1f7eebb554">SVF::ThreadCallGraph::CallInstToParForEdgesMap</a></td>
|
|
490
490
|
</tr>
|
|
491
491
|
</table>
|
|
492
492
|
</div><div class="memdoc">
|
|
@@ -502,7 +502,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
502
502
|
<div class="memproto">
|
|
503
503
|
<table class="memname">
|
|
504
504
|
<tr>
|
|
505
|
-
<td class="memname">typedef <a class="el" href="classSVF_1_1ThreadCallGraph.html#
|
|
505
|
+
<td class="memname">typedef <a class="el" href="classSVF_1_1ThreadCallGraph.html#a57b69bfb5d468bd1a81a55468f845de0">InstSet</a> <a class="el" href="classSVF_1_1ThreadCallGraph.html#a0d560b811f8df1a710c627e1ac100155">SVF::ThreadCallGraph::CallSiteSet</a></td>
|
|
506
506
|
</tr>
|
|
507
507
|
</table>
|
|
508
508
|
</div><div class="memdoc">
|
|
@@ -518,7 +518,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
518
518
|
<div class="memproto">
|
|
519
519
|
<table class="memname">
|
|
520
520
|
<tr>
|
|
521
|
-
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>*, <a class="el" href="classSVF_1_1ThreadCallGraph.html#
|
|
521
|
+
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>*, <a class="el" href="classSVF_1_1ThreadCallGraph.html#a57b69bfb5d468bd1a81a55468f845de0">InstSet</a>> <a class="el" href="classSVF_1_1ThreadCallGraph.html#a8c6eef5a291bd0c65cc2f816767795f1">SVF::ThreadCallGraph::CallToInstMap</a></td>
|
|
522
522
|
</tr>
|
|
523
523
|
</table>
|
|
524
524
|
</div><div class="memdoc">
|
|
@@ -559,14 +559,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
559
559
|
|
|
560
560
|
</div>
|
|
561
561
|
</div>
|
|
562
|
-
<a id="
|
|
563
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
562
|
+
<a id="a57b69bfb5d468bd1a81a55468f845de0"></a>
|
|
563
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a57b69bfb5d468bd1a81a55468f845de0">◆ </a></span>InstSet</h2>
|
|
564
564
|
|
|
565
565
|
<div class="memitem">
|
|
566
566
|
<div class="memproto">
|
|
567
567
|
<table class="memname">
|
|
568
568
|
<tr>
|
|
569
|
-
<td class="memname">typedef <a class="el" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a><const <a class="el" href="
|
|
569
|
+
<td class="memname">typedef <a class="el" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a><const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>*> <a class="el" href="classSVF_1_1ThreadCallGraph.html#a57b69bfb5d468bd1a81a55468f845de0">SVF::ThreadCallGraph::InstSet</a></td>
|
|
570
570
|
</tr>
|
|
571
571
|
</table>
|
|
572
572
|
</div><div class="memdoc">
|
|
@@ -684,8 +684,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
684
684
|
</div>
|
|
685
685
|
</div>
|
|
686
686
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
687
|
-
<a id="
|
|
688
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
687
|
+
<a id="a19e505dbca2d2b5128762b223b9a7114"></a>
|
|
688
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a19e505dbca2d2b5128762b223b9a7114">◆ </a></span>addDirectForkEdge()</h2>
|
|
689
689
|
|
|
690
690
|
<div class="memitem">
|
|
691
691
|
<div class="memproto">
|
|
@@ -693,7 +693,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
693
693
|
<tr>
|
|
694
694
|
<td class="memname">void ThreadCallGraph::addDirectForkEdge </td>
|
|
695
695
|
<td>(</td>
|
|
696
|
-
<td class="paramtype">const <a class="el" href="
|
|
696
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
697
697
|
<td class="paramname"><em>cs</em></td><td>)</td>
|
|
698
698
|
<td></td>
|
|
699
699
|
</tr>
|
|
@@ -704,29 +704,29 @@ Additional Inherited Members</h2></td></tr>
|
|
|
704
704
|
<p>Add direct fork edges </p>
|
|
705
705
|
|
|
706
706
|
<p class="definition">Definition at line <a class="el" href="ThreadCallGraph_8cpp_source.html#l00147">147</a> of file <a class="el" href="ThreadCallGraph_8cpp_source.html">ThreadCallGraph.cpp</a>.</p>
|
|
707
|
-
<div class="fragment"><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* caller = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(cs-><a class="code" href="
|
|
707
|
+
<div class="fragment"><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* caller = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>());</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* forkee = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>>(<a class="code" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">tdAPI</a>-><a class="code" href="classSVF_1_1ThreadAPI.html#a7ddc0c71aeae315af21972a4905b3456">getForkedFun</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>()));</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(forkee && <span class="stringliteral">"callee does not exist"</span>);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* callee = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637">getDefFunForMultipleModule</a>(forkee));</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">addCallSite</a>(cs, callee-><a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</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"> 156</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1PTACallGraph.html#a6d29a39440d8f6290e2e8b7322b965fb">hasGraphEdge</a>(caller, callee, <a class="code" href="classSVF_1_1PTACallGraphEdge.html#a9738544725458bb022b8d5f2dbd281f7af32caf15ca19d512b5183bcf0d859cd7">PTACallGraphEdge::TDForkEdge</a>, csId))</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  {</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>() == caller-><a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>() && <span class="stringliteral">"callee instruction not inside caller??"</span>);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <a class="code" href="classSVF_1_1ThreadForkEdge.html">ThreadForkEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ThreadForkEdge.html">ThreadForkEdge</a>(caller, callee, csId);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  edge->addDirectCallSite(cs);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="classSVF_1_1PTACallGraph.html#a3154bbc421fc85649e786ed67ca03750">addEdge</a>(edge);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="classSVF_1_1ThreadCallGraph.html#ab20211a66583387f0da4769bee65e300">addThreadForkEdgeSetMap</a>(cs, edge);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> }</div><div class="ttc" id="classSVF_1_1PTACallGraph_html_aaab54c670518d9d6790707f76ea76aa1"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">SVF::PTACallGraph::getCallGraphNode</a></div><div class="ttdeci">PTACallGraphNode * getCallGraphNode(NodeID id) const</div><div class="ttdoc">Get call graph node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00315">PTACallGraph.h:315</a></div></div>
|
|
708
708
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a142e650415cb81011eb59dadd3cb0637"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637">SVF::SVFUtil::getDefFunForMultipleModule</a></div><div class="ttdeci">const SVFFunction * getDefFunForMultipleModule(const Function *fun)</div><div class="ttdoc">Get the definition of a function across multiple modules. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00256">SVFUtil.h:256</a></div></div>
|
|
709
709
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
710
|
-
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a72efe87a80f84a3945a93431d9414d3d"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a72efe87a80f84a3945a93431d9414d3d">SVF::PTACallGraph::addCallSite</a></div><div class="ttdeci">CallSiteID addCallSite(const CallBlockNode *cs, const SVFFunction *callee)</div><div class="ttdoc">Add/Get CallSiteID. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00330">PTACallGraph.h:330</a></div></div>
|
|
711
|
-
<div class="ttc" id="classSVF_1_1CallBlockNode_html_a5bab98a0b8cf0a804d53abd994e922c0"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">SVF::CallBlockNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00400">ICFGNode.h:400</a></div></div>
|
|
712
710
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_af1146c3d8e8b8885a1c48701e5b5a27f"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">SVF::ThreadCallGraph::tdAPI</a></div><div class="ttdeci">ThreadAPI * tdAPI</div><div class="ttdoc">Thread API. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00409">ThreadCallGraph.h:409</a></div></div>
|
|
713
711
|
<div class="ttc" id="classSVF_1_1ThreadForkEdge_html"><div class="ttname"><a href="classSVF_1_1ThreadForkEdge.html">SVF::ThreadForkEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00044">ThreadCallGraph.h:44</a></div></div>
|
|
712
|
+
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_ab20211a66583387f0da4769bee65e300"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#ab20211a66583387f0da4769bee65e300">SVF::ThreadCallGraph::addThreadForkEdgeSetMap</a></div><div class="ttdeci">void addThreadForkEdgeSetMap(const CallICFGNode *cs, ThreadForkEdge *edge)</div><div class="ttdoc">map call instruction to its CallGraphEdge map </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00365">ThreadCallGraph.h:365</a></div></div>
|
|
714
713
|
<div class="ttc" id="classSVF_1_1ThreadAPI_html_a7ddc0c71aeae315af21972a4905b3456"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a7ddc0c71aeae315af21972a4905b3456">SVF::ThreadAPI::getForkedFun</a></div><div class="ttdeci">const Value * getForkedFun(const Instruction *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00168">ThreadAPI.h:168</a></div></div>
|
|
715
714
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a3154bbc421fc85649e786ed67ca03750"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a3154bbc421fc85649e786ed67ca03750">SVF::PTACallGraph::addEdge</a></div><div class="ttdeci">void addEdge(PTACallGraphEdge *edge)</div><div class="ttdoc">Add call graph edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00417">PTACallGraph.h:417</a></div></div>
|
|
716
715
|
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
|
|
716
|
+
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a979359fc784e647c574de90c7af2cf40"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">SVF::PTACallGraph::addCallSite</a></div><div class="ttdeci">CallSiteID addCallSite(const CallICFGNode *cs, const SVFFunction *callee)</div><div class="ttdoc">Add/Get CallSiteID. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00330">PTACallGraph.h:330</a></div></div>
|
|
717
717
|
<div class="ttc" id="namespaceSVF_html_a03d88a0302bcd253387690f13f693f64"><div class="ttname"><a href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">SVF::CallSiteID</a></div><div class="ttdeci">unsigned CallSiteID</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00083">SVFBasicTypes.h:83</a></div></div>
|
|
718
718
|
<div class="ttc" id="classSVF_1_1PTACallGraphNode_html_a959445c97605953fbdebbbd999437a09"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">SVF::PTACallGraphNode::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdoc">Get function of this call node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00193">PTACallGraph.h:193</a></div></div>
|
|
719
|
-
<div class="ttc" id="
|
|
719
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html_a674753d5ca0fbe28674acb25291f2bcf"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00381">ICFGNode.h:381</a></div></div>
|
|
720
720
|
<div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_a9738544725458bb022b8d5f2dbd281f7af32caf15ca19d512b5183bcf0d859cd7"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#a9738544725458bb022b8d5f2dbd281f7af32caf15ca19d512b5183bcf0d859cd7">SVF::PTACallGraphEdge::TDForkEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00058">PTACallGraph.h:58</a></div></div>
|
|
721
|
-
<div class="ttc" id="
|
|
721
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html_a18f4077d42b23c3fed35efc793b6102e"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">SVF::CallICFGNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00400">ICFGNode.h:400</a></div></div>
|
|
722
722
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
|
|
723
723
|
<div class="ttc" id="classSVF_1_1PTACallGraphNode_html"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html">SVF::PTACallGraphNode</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00174">PTACallGraph.h:174</a></div></div>
|
|
724
724
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a6d29a39440d8f6290e2e8b7322b965fb"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a6d29a39440d8f6290e2e8b7322b965fb">SVF::PTACallGraph::hasGraphEdge</a></div><div class="ttdeci">PTACallGraphEdge * hasGraphEdge(PTACallGraphNode *src, PTACallGraphNode *dst, PTACallGraphEdge::CEDGEK kind, CallSiteID csId) const</div><div class="ttdoc">Whether we have aleady created this call graph edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00133">PTACallGraph.cpp:133</a></div></div>
|
|
725
725
|
</div><!-- fragment -->
|
|
726
726
|
</div>
|
|
727
727
|
</div>
|
|
728
|
-
<a id="
|
|
729
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
728
|
+
<a id="a8e1a6710a05e08b9ed87e373bd5bd0ee"></a>
|
|
729
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a8e1a6710a05e08b9ed87e373bd5bd0ee">◆ </a></span>addDirectJoinEdge()</h2>
|
|
730
730
|
|
|
731
731
|
<div class="memitem">
|
|
732
732
|
<div class="memproto">
|
|
@@ -734,7 +734,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
734
734
|
<tr>
|
|
735
735
|
<td class="memname">void ThreadCallGraph::addDirectJoinEdge </td>
|
|
736
736
|
<td>(</td>
|
|
737
|
-
<td class="paramtype">const <a class="el" href="
|
|
737
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
738
738
|
<td class="paramname"><em>cs</em>, </td>
|
|
739
739
|
</tr>
|
|
740
740
|
<tr>
|
|
@@ -755,19 +755,19 @@ Additional Inherited Members</h2></td></tr>
|
|
|
755
755
|
<p>Add direct fork edges As join edge is a special return which is back to join site(s) rather than its fork site A <a class="el" href="classSVF_1_1ThreadJoinEdge.html">ThreadJoinEdge</a> is created from the functions where join sites reside in to the start routine function But we don't invoke <a class="el" href="classSVF_1_1PTACallGraph.html#a3154bbc421fc85649e786ed67ca03750" title="Add call graph edge. ">addEdge()</a> method to add the edge to src and dst, otherwise it makes a scc cycle </p>
|
|
756
756
|
|
|
757
757
|
<p class="definition">Definition at line <a class="el" href="ThreadCallGraph_8cpp_source.html#l00196">196</a> of file <a class="el" href="ThreadCallGraph_8cpp_source.html">ThreadCallGraph.cpp</a>.</p>
|
|
758
|
-
<div class="fragment"><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* joinFunNode = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(cs-><a class="code" href="
|
|
759
|
-
<div class="ttc" id="
|
|
758
|
+
<div class="fragment"><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* joinFunNode = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>());</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">for</span> (CallSiteSet::const_iterator it = forkset.begin(), eit = forkset.end(); it != eit; ++it)</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="l00204"></a><span class="lineno"> 204</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* threadRoutineFun = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>>(<a class="code" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">tdAPI</a>-><a class="code" href="classSVF_1_1ThreadAPI.html#a7ddc0c71aeae315af21972a4905b3456">getForkedFun</a>((*it)->getCallSite()));</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(threadRoutineFun && <span class="stringliteral">"thread routine function does not exist"</span>);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfRoutineFun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(threadRoutineFun);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* threadRoutineFunNode = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(svfRoutineFun);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">addCallSite</a>(cs, svfRoutineFun);</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>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1ThreadCallGraph.html#a5f7c92af1a4ce33e4746f5b65c9c8421">hasThreadJoinEdge</a>(cs,joinFunNode,threadRoutineFunNode, csId))</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>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>() == joinFunNode-><a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>() && <span class="stringliteral">"callee instruction not inside caller??"</span>);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="classSVF_1_1ThreadJoinEdge.html">ThreadJoinEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ThreadJoinEdge.html">ThreadJoinEdge</a>(joinFunNode,threadRoutineFunNode,csId);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  edge->addDirectCallSite(cs);</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>  <a class="code" href="classSVF_1_1ThreadCallGraph.html#a7100a68c27a965927975e26bb06e061c">addThreadJoinEdgeSetMap</a>(cs, edge);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> }</div><div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a7100a68c27a965927975e26bb06e061c"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a7100a68c27a965927975e26bb06e061c">SVF::ThreadCallGraph::addThreadJoinEdgeSetMap</a></div><div class="ttdeci">void addThreadJoinEdgeSetMap(const CallICFGNode *cs, ThreadJoinEdge *edge)</div><div class="ttdoc">map call instruction to its CallGraphEdge map </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00375">ThreadCallGraph.h:375</a></div></div>
|
|
759
|
+
<div class="ttc" id="classSVF_1_1PTACallGraph_html_aaab54c670518d9d6790707f76ea76aa1"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">SVF::PTACallGraph::getCallGraphNode</a></div><div class="ttdeci">PTACallGraphNode * getCallGraphNode(NodeID id) const</div><div class="ttdoc">Get call graph node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00315">PTACallGraph.h:315</a></div></div>
|
|
760
760
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
761
761
|
<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>
|
|
762
|
-
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a72efe87a80f84a3945a93431d9414d3d"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a72efe87a80f84a3945a93431d9414d3d">SVF::PTACallGraph::addCallSite</a></div><div class="ttdeci">CallSiteID addCallSite(const CallBlockNode *cs, const SVFFunction *callee)</div><div class="ttdoc">Add/Get CallSiteID. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00330">PTACallGraph.h:330</a></div></div>
|
|
763
|
-
<div class="ttc" id="classSVF_1_1CallBlockNode_html_a5bab98a0b8cf0a804d53abd994e922c0"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">SVF::CallBlockNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00400">ICFGNode.h:400</a></div></div>
|
|
764
762
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_af1146c3d8e8b8885a1c48701e5b5a27f"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">SVF::ThreadCallGraph::tdAPI</a></div><div class="ttdeci">ThreadAPI * tdAPI</div><div class="ttdoc">Thread API. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00409">ThreadCallGraph.h:409</a></div></div>
|
|
765
763
|
<div class="ttc" id="classSVF_1_1ThreadAPI_html_a7ddc0c71aeae315af21972a4905b3456"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a7ddc0c71aeae315af21972a4905b3456">SVF::ThreadAPI::getForkedFun</a></div><div class="ttdeci">const Value * getForkedFun(const Instruction *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00168">ThreadAPI.h:168</a></div></div>
|
|
766
764
|
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
|
|
767
|
-
<div class="ttc" id="
|
|
765
|
+
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a979359fc784e647c574de90c7af2cf40"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">SVF::PTACallGraph::addCallSite</a></div><div class="ttdeci">CallSiteID addCallSite(const CallICFGNode *cs, const SVFFunction *callee)</div><div class="ttdoc">Add/Get CallSiteID. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00330">PTACallGraph.h:330</a></div></div>
|
|
768
766
|
<div class="ttc" id="namespaceSVF_html_a03d88a0302bcd253387690f13f693f64"><div class="ttname"><a href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">SVF::CallSiteID</a></div><div class="ttdeci">unsigned CallSiteID</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00083">SVFBasicTypes.h:83</a></div></div>
|
|
769
767
|
<div class="ttc" id="classSVF_1_1PTACallGraphNode_html_a959445c97605953fbdebbbd999437a09"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">SVF::PTACallGraphNode::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdoc">Get function of this call node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00193">PTACallGraph.h:193</a></div></div>
|
|
768
|
+
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a5f7c92af1a4ce33e4746f5b65c9c8421"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a5f7c92af1a4ce33e4746f5b65c9c8421">SVF::ThreadCallGraph::hasThreadJoinEdge</a></div><div class="ttdeci">bool hasThreadJoinEdge(const CallICFGNode *cs) const</div><div class="ttdoc">Get call graph edge via call instruction. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00222">ThreadCallGraph.h:222</a></div></div>
|
|
770
769
|
<div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00069">LLVMModule.h:69</a></div></div>
|
|
770
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html_a18f4077d42b23c3fed35efc793b6102e"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">SVF::CallICFGNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00400">ICFGNode.h:400</a></div></div>
|
|
771
771
|
<div class="ttc" id="classSVF_1_1ThreadJoinEdge_html"><div class="ttname"><a href="classSVF_1_1ThreadJoinEdge.html">SVF::ThreadJoinEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00086">ThreadCallGraph.h:86</a></div></div>
|
|
772
772
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
|
|
773
773
|
<div class="ttc" id="classSVF_1_1PTACallGraphNode_html"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html">SVF::PTACallGraphNode</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00174">PTACallGraph.h:174</a></div></div>
|
|
@@ -775,8 +775,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
775
775
|
</div><!-- fragment -->
|
|
776
776
|
</div>
|
|
777
777
|
</div>
|
|
778
|
-
<a id="
|
|
779
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
778
|
+
<a id="ae942f7d46198207219e5ce8287497262"></a>
|
|
779
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ae942f7d46198207219e5ce8287497262">◆ </a></span>addDirectParForEdge()</h2>
|
|
780
780
|
|
|
781
781
|
<div class="memitem">
|
|
782
782
|
<div class="memproto">
|
|
@@ -784,7 +784,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
784
784
|
<tr>
|
|
785
785
|
<td class="memname">void ThreadCallGraph::addDirectParForEdge </td>
|
|
786
786
|
<td>(</td>
|
|
787
|
-
<td class="paramtype">const <a class="el" href="
|
|
787
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
788
788
|
<td class="paramname"><em>cs</em></td><td>)</td>
|
|
789
789
|
<td></td>
|
|
790
790
|
</tr>
|
|
@@ -795,22 +795,22 @@ Additional Inherited Members</h2></td></tr>
|
|
|
795
795
|
<p>Add a direct ParFor edges </p>
|
|
796
796
|
|
|
797
797
|
<p class="definition">Definition at line <a class="el" href="ThreadCallGraph_8cpp_source.html#l00224">224</a> of file <a class="el" href="ThreadCallGraph_8cpp_source.html">ThreadCallGraph.cpp</a>.</p>
|
|
798
|
-
<div class="fragment"><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> </div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* caller = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(cs-><a class="code" href="
|
|
798
|
+
<div class="fragment"><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> </div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* caller = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>());</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* taskFunc = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>>(<a class="code" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">tdAPI</a>-><a class="code" href="classSVF_1_1ThreadAPI.html#afeedd6e518af76fa9e7142af8899b2f5">getTaskFuncAtHareParForSite</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>()));</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(taskFunc && <span class="stringliteral">"callee does not exist"</span>);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfTaskFun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(taskFunc);</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>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* callee = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(svfTaskFun);</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>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">addCallSite</a>(cs, callee-><a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>());</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1PTACallGraph.html#a6d29a39440d8f6290e2e8b7322b965fb">hasGraphEdge</a>(caller, callee, <a class="code" href="classSVF_1_1PTACallGraphEdge.html#a9738544725458bb022b8d5f2dbd281f7af32caf15ca19d512b5183bcf0d859cd7">PTACallGraphEdge::TDForkEdge</a>, csId))</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>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>() == caller-><a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>() && <span class="stringliteral">"callee instruction not inside caller??"</span>);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="classSVF_1_1HareParForEdge.html">HareParForEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1HareParForEdge.html">HareParForEdge</a>(caller, callee, csId);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  edge->addDirectCallSite(cs);</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>  <a class="code" href="classSVF_1_1PTACallGraph.html#a3154bbc421fc85649e786ed67ca03750">addEdge</a>(edge);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="classSVF_1_1ThreadCallGraph.html#aae1caa7231ab9436db98403d6a175149">addHareParForEdgeSetMap</a>(cs, edge);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> }</div><div class="ttc" id="classSVF_1_1PTACallGraph_html_aaab54c670518d9d6790707f76ea76aa1"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">SVF::PTACallGraph::getCallGraphNode</a></div><div class="ttdeci">PTACallGraphNode * getCallGraphNode(NodeID id) const</div><div class="ttdoc">Get call graph node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00315">PTACallGraph.h:315</a></div></div>
|
|
799
799
|
<div class="ttc" id="classSVF_1_1HareParForEdge_html"><div class="ttname"><a href="classSVF_1_1HareParForEdge.html">SVF::HareParForEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00125">ThreadCallGraph.h:125</a></div></div>
|
|
800
800
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
801
801
|
<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>
|
|
802
|
-
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a72efe87a80f84a3945a93431d9414d3d"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a72efe87a80f84a3945a93431d9414d3d">SVF::PTACallGraph::addCallSite</a></div><div class="ttdeci">CallSiteID addCallSite(const CallBlockNode *cs, const SVFFunction *callee)</div><div class="ttdoc">Add/Get CallSiteID. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00330">PTACallGraph.h:330</a></div></div>
|
|
803
|
-
<div class="ttc" id="classSVF_1_1CallBlockNode_html_a5bab98a0b8cf0a804d53abd994e922c0"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">SVF::CallBlockNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00400">ICFGNode.h:400</a></div></div>
|
|
804
802
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_af1146c3d8e8b8885a1c48701e5b5a27f"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">SVF::ThreadCallGraph::tdAPI</a></div><div class="ttdeci">ThreadAPI * tdAPI</div><div class="ttdoc">Thread API. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00409">ThreadCallGraph.h:409</a></div></div>
|
|
805
803
|
<div class="ttc" id="classSVF_1_1ThreadAPI_html_afeedd6e518af76fa9e7142af8899b2f5"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#afeedd6e518af76fa9e7142af8899b2f5">SVF::ThreadAPI::getTaskFuncAtHareParForSite</a></div><div class="ttdeci">const Value * getTaskFuncAtHareParForSite(const Instruction *inst) const</div><div class="ttdoc">Get the task function (i.e., the 5th parameter) of the hare_parallel_for call. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00195">ThreadAPI.h:195</a></div></div>
|
|
806
804
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a3154bbc421fc85649e786ed67ca03750"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a3154bbc421fc85649e786ed67ca03750">SVF::PTACallGraph::addEdge</a></div><div class="ttdeci">void addEdge(PTACallGraphEdge *edge)</div><div class="ttdoc">Add call graph edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00417">PTACallGraph.h:417</a></div></div>
|
|
807
805
|
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
|
|
806
|
+
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_aae1caa7231ab9436db98403d6a175149"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#aae1caa7231ab9436db98403d6a175149">SVF::ThreadCallGraph::addHareParForEdgeSetMap</a></div><div class="ttdeci">void addHareParForEdgeSetMap(const CallICFGNode *cs, HareParForEdge *edge)</div><div class="ttdoc">map call instruction to its CallGraphEdge map </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00385">ThreadCallGraph.h:385</a></div></div>
|
|
807
|
+
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a979359fc784e647c574de90c7af2cf40"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">SVF::PTACallGraph::addCallSite</a></div><div class="ttdeci">CallSiteID addCallSite(const CallICFGNode *cs, const SVFFunction *callee)</div><div class="ttdoc">Add/Get CallSiteID. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00330">PTACallGraph.h:330</a></div></div>
|
|
808
808
|
<div class="ttc" id="namespaceSVF_html_a03d88a0302bcd253387690f13f693f64"><div class="ttname"><a href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">SVF::CallSiteID</a></div><div class="ttdeci">unsigned CallSiteID</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00083">SVFBasicTypes.h:83</a></div></div>
|
|
809
809
|
<div class="ttc" id="classSVF_1_1PTACallGraphNode_html_a959445c97605953fbdebbbd999437a09"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">SVF::PTACallGraphNode::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdoc">Get function of this call node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00193">PTACallGraph.h:193</a></div></div>
|
|
810
|
-
<div class="ttc" id="
|
|
810
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html_a674753d5ca0fbe28674acb25291f2bcf"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00381">ICFGNode.h:381</a></div></div>
|
|
811
811
|
<div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00069">LLVMModule.h:69</a></div></div>
|
|
812
812
|
<div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_a9738544725458bb022b8d5f2dbd281f7af32caf15ca19d512b5183bcf0d859cd7"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#a9738544725458bb022b8d5f2dbd281f7af32caf15ca19d512b5183bcf0d859cd7">SVF::PTACallGraphEdge::TDForkEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00058">PTACallGraph.h:58</a></div></div>
|
|
813
|
-
<div class="ttc" id="
|
|
813
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html_a18f4077d42b23c3fed35efc793b6102e"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">SVF::CallICFGNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00400">ICFGNode.h:400</a></div></div>
|
|
814
814
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
|
|
815
815
|
<div class="ttc" id="classSVF_1_1PTACallGraphNode_html"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html">SVF::PTACallGraphNode</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00174">PTACallGraph.h:174</a></div></div>
|
|
816
816
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a6d29a39440d8f6290e2e8b7322b965fb"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a6d29a39440d8f6290e2e8b7322b965fb">SVF::PTACallGraph::hasGraphEdge</a></div><div class="ttdeci">PTACallGraphEdge * hasGraphEdge(PTACallGraphNode *src, PTACallGraphNode *dst, PTACallGraphEdge::CEDGEK kind, CallSiteID csId) const</div><div class="ttdoc">Whether we have aleady created this call graph edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00133">PTACallGraph.cpp:133</a></div></div>
|
|
@@ -818,8 +818,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
818
818
|
</div><!-- fragment -->
|
|
819
819
|
</div>
|
|
820
820
|
</div>
|
|
821
|
-
<a id="
|
|
822
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
821
|
+
<a id="a563ebb1ece0adb4bafe5e14b2a024a91"></a>
|
|
822
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a563ebb1ece0adb4bafe5e14b2a024a91">◆ </a></span>addForksite()</h2>
|
|
823
823
|
|
|
824
824
|
<div class="memitem">
|
|
825
825
|
<div class="memproto">
|
|
@@ -830,7 +830,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
830
830
|
<tr>
|
|
831
831
|
<td class="memname">bool SVF::ThreadCallGraph::addForksite </td>
|
|
832
832
|
<td>(</td>
|
|
833
|
-
<td class="paramtype">const <a class="el" href="
|
|
833
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
834
834
|
<td class="paramname"><em>cs</em></td><td>)</td>
|
|
835
835
|
<td></td>
|
|
836
836
|
</tr>
|
|
@@ -850,8 +850,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
850
850
|
</div><!-- fragment -->
|
|
851
851
|
</div>
|
|
852
852
|
</div>
|
|
853
|
-
<a id="
|
|
854
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
853
|
+
<a id="aae1caa7231ab9436db98403d6a175149"></a>
|
|
854
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aae1caa7231ab9436db98403d6a175149">◆ </a></span>addHareParForEdgeSetMap()</h2>
|
|
855
855
|
|
|
856
856
|
<div class="memitem">
|
|
857
857
|
<div class="memproto">
|
|
@@ -862,7 +862,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
862
862
|
<tr>
|
|
863
863
|
<td class="memname">void SVF::ThreadCallGraph::addHareParForEdgeSetMap </td>
|
|
864
864
|
<td>(</td>
|
|
865
|
-
<td class="paramtype">const <a class="el" href="
|
|
865
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
866
866
|
<td class="paramname"><em>cs</em>, </td>
|
|
867
867
|
</tr>
|
|
868
868
|
<tr>
|
|
@@ -892,8 +892,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
892
892
|
</div><!-- fragment -->
|
|
893
893
|
</div>
|
|
894
894
|
</div>
|
|
895
|
-
<a id="
|
|
896
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
895
|
+
<a id="a579dd874301280f7c9750c2a22f065c7"></a>
|
|
896
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a579dd874301280f7c9750c2a22f065c7">◆ </a></span>addIndirectForkEdge()</h2>
|
|
897
897
|
|
|
898
898
|
<div class="memitem">
|
|
899
899
|
<div class="memproto">
|
|
@@ -901,7 +901,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
901
901
|
<tr>
|
|
902
902
|
<td class="memname">void ThreadCallGraph::addIndirectForkEdge </td>
|
|
903
903
|
<td>(</td>
|
|
904
|
-
<td class="paramtype">const <a class="el" href="
|
|
904
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
905
905
|
<td class="paramname"><em>cs</em>, </td>
|
|
906
906
|
</tr>
|
|
907
907
|
<tr>
|
|
@@ -920,23 +920,23 @@ Additional Inherited Members</h2></td></tr>
|
|
|
920
920
|
<p>Add indirect fork edge to update call graph </p>
|
|
921
921
|
|
|
922
922
|
<p class="definition">Definition at line <a class="el" href="ThreadCallGraph_8cpp_source.html#l00171">171</a> of file <a class="el" href="ThreadCallGraph_8cpp_source.html">ThreadCallGraph.cpp</a>.</p>
|
|
923
|
-
<div class="fragment"><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* caller = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(cs-><a class="code" href="
|
|
923
|
+
<div class="fragment"><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* caller = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>());</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* callee = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(calleefun);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">addCallSite</a>(cs, callee->getFunction());</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1PTACallGraph.html#a6d29a39440d8f6290e2e8b7322b965fb">hasGraphEdge</a>(caller, callee, <a class="code" href="classSVF_1_1PTACallGraphEdge.html#a9738544725458bb022b8d5f2dbd281f7af32caf15ca19d512b5183bcf0d859cd7">PTACallGraphEdge::TDForkEdge</a>, csId))</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>() == caller-><a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>() && <span class="stringliteral">"callee instruction not inside caller??"</span>);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="classSVF_1_1ThreadForkEdge.html">ThreadForkEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ThreadForkEdge.html">ThreadForkEdge</a>(caller, callee, csId);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  edge->addInDirectCallSite(cs);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="classSVF_1_1PTACallGraph.html#a3154bbc421fc85649e786ed67ca03750">addEdge</a>(edge);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="classSVF_1_1ThreadCallGraph.html#ab20211a66583387f0da4769bee65e300">addThreadForkEdgeSetMap</a>(cs, edge);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> }</div><div class="ttc" id="classSVF_1_1PTACallGraph_html_aaab54c670518d9d6790707f76ea76aa1"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">SVF::PTACallGraph::getCallGraphNode</a></div><div class="ttdeci">PTACallGraphNode * getCallGraphNode(NodeID id) const</div><div class="ttdoc">Get call graph node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00315">PTACallGraph.h:315</a></div></div>
|
|
924
924
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
925
|
-
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a72efe87a80f84a3945a93431d9414d3d"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a72efe87a80f84a3945a93431d9414d3d">SVF::PTACallGraph::addCallSite</a></div><div class="ttdeci">CallSiteID addCallSite(const CallBlockNode *cs, const SVFFunction *callee)</div><div class="ttdoc">Add/Get CallSiteID. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00330">PTACallGraph.h:330</a></div></div>
|
|
926
|
-
<div class="ttc" id="classSVF_1_1CallBlockNode_html_a5bab98a0b8cf0a804d53abd994e922c0"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">SVF::CallBlockNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00400">ICFGNode.h:400</a></div></div>
|
|
927
925
|
<div class="ttc" id="classSVF_1_1ThreadForkEdge_html"><div class="ttname"><a href="classSVF_1_1ThreadForkEdge.html">SVF::ThreadForkEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00044">ThreadCallGraph.h:44</a></div></div>
|
|
926
|
+
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_ab20211a66583387f0da4769bee65e300"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#ab20211a66583387f0da4769bee65e300">SVF::ThreadCallGraph::addThreadForkEdgeSetMap</a></div><div class="ttdeci">void addThreadForkEdgeSetMap(const CallICFGNode *cs, ThreadForkEdge *edge)</div><div class="ttdoc">map call instruction to its CallGraphEdge map </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00365">ThreadCallGraph.h:365</a></div></div>
|
|
928
927
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a3154bbc421fc85649e786ed67ca03750"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a3154bbc421fc85649e786ed67ca03750">SVF::PTACallGraph::addEdge</a></div><div class="ttdeci">void addEdge(PTACallGraphEdge *edge)</div><div class="ttdoc">Add call graph edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00417">PTACallGraph.h:417</a></div></div>
|
|
928
|
+
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a979359fc784e647c574de90c7af2cf40"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">SVF::PTACallGraph::addCallSite</a></div><div class="ttdeci">CallSiteID addCallSite(const CallICFGNode *cs, const SVFFunction *callee)</div><div class="ttdoc">Add/Get CallSiteID. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00330">PTACallGraph.h:330</a></div></div>
|
|
929
929
|
<div class="ttc" id="namespaceSVF_html_a03d88a0302bcd253387690f13f693f64"><div class="ttname"><a href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">SVF::CallSiteID</a></div><div class="ttdeci">unsigned CallSiteID</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00083">SVFBasicTypes.h:83</a></div></div>
|
|
930
930
|
<div class="ttc" id="classSVF_1_1PTACallGraphNode_html_a959445c97605953fbdebbbd999437a09"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">SVF::PTACallGraphNode::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdoc">Get function of this call node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00193">PTACallGraph.h:193</a></div></div>
|
|
931
|
-
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a29d3e4d720f61b4c29fee9691cedff96"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a29d3e4d720f61b4c29fee9691cedff96">SVF::ThreadCallGraph::addThreadForkEdgeSetMap</a></div><div class="ttdeci">void addThreadForkEdgeSetMap(const CallBlockNode *cs, ThreadForkEdge *edge)</div><div class="ttdoc">map call instruction to its CallGraphEdge map </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00365">ThreadCallGraph.h:365</a></div></div>
|
|
932
931
|
<div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_a9738544725458bb022b8d5f2dbd281f7af32caf15ca19d512b5183bcf0d859cd7"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#a9738544725458bb022b8d5f2dbd281f7af32caf15ca19d512b5183bcf0d859cd7">SVF::PTACallGraphEdge::TDForkEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00058">PTACallGraph.h:58</a></div></div>
|
|
932
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html_a18f4077d42b23c3fed35efc793b6102e"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">SVF::CallICFGNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00400">ICFGNode.h:400</a></div></div>
|
|
933
933
|
<div class="ttc" id="classSVF_1_1PTACallGraphNode_html"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html">SVF::PTACallGraphNode</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00174">PTACallGraph.h:174</a></div></div>
|
|
934
934
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a6d29a39440d8f6290e2e8b7322b965fb"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a6d29a39440d8f6290e2e8b7322b965fb">SVF::PTACallGraph::hasGraphEdge</a></div><div class="ttdeci">PTACallGraphEdge * hasGraphEdge(PTACallGraphNode *src, PTACallGraphNode *dst, PTACallGraphEdge::CEDGEK kind, CallSiteID csId) const</div><div class="ttdoc">Whether we have aleady created this call graph edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00133">PTACallGraph.cpp:133</a></div></div>
|
|
935
935
|
</div><!-- fragment -->
|
|
936
936
|
</div>
|
|
937
937
|
</div>
|
|
938
|
-
<a id="
|
|
939
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
938
|
+
<a id="a9258b680de64d8d2fdd1cb9aed8ae428"></a>
|
|
939
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a9258b680de64d8d2fdd1cb9aed8ae428">◆ </a></span>addIndirectParForEdge()</h2>
|
|
940
940
|
|
|
941
941
|
<div class="memitem">
|
|
942
942
|
<div class="memproto">
|
|
@@ -944,7 +944,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
944
944
|
<tr>
|
|
945
945
|
<td class="memname">void ThreadCallGraph::addIndirectParForEdge </td>
|
|
946
946
|
<td>(</td>
|
|
947
|
-
<td class="paramtype">const <a class="el" href="
|
|
947
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
948
948
|
<td class="paramname"><em>cs</em>, </td>
|
|
949
949
|
</tr>
|
|
950
950
|
<tr>
|
|
@@ -963,23 +963,23 @@ Additional Inherited Members</h2></td></tr>
|
|
|
963
963
|
<p>Add an indirect ParFor edge to update call graph </p>
|
|
964
964
|
|
|
965
965
|
<p class="definition">Definition at line <a class="el" href="ThreadCallGraph_8cpp_source.html#l00251">251</a> of file <a class="el" href="ThreadCallGraph_8cpp_source.html">ThreadCallGraph.cpp</a>.</p>
|
|
966
|
-
<div class="fragment"><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* caller = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(cs-><a class="code" href="
|
|
966
|
+
<div class="fragment"><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* caller = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>());</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* callee = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(calleefun);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">addCallSite</a>(cs, callee->getFunction());</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1PTACallGraph.html#a6d29a39440d8f6290e2e8b7322b965fb">hasGraphEdge</a>(caller, callee, <a class="code" href="classSVF_1_1PTACallGraphEdge.html#a9738544725458bb022b8d5f2dbd281f7a17e0d58fd42d0d493087e698d4ecd838">PTACallGraphEdge::HareParForEdge</a>,csId))</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>() == caller-><a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>() && <span class="stringliteral">"callee instruction not inside caller??"</span>);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="classSVF_1_1HareParForEdge.html">HareParForEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1HareParForEdge.html">HareParForEdge</a>(caller, callee, csId);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  edge->addInDirectCallSite(cs);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <a class="code" href="classSVF_1_1PTACallGraph.html#a3154bbc421fc85649e786ed67ca03750">addEdge</a>(edge);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="classSVF_1_1ThreadCallGraph.html#aae1caa7231ab9436db98403d6a175149">addHareParForEdgeSetMap</a>(cs, edge);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> }</div><div class="ttc" id="classSVF_1_1PTACallGraph_html_aaab54c670518d9d6790707f76ea76aa1"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">SVF::PTACallGraph::getCallGraphNode</a></div><div class="ttdeci">PTACallGraphNode * getCallGraphNode(NodeID id) const</div><div class="ttdoc">Get call graph node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00315">PTACallGraph.h:315</a></div></div>
|
|
967
967
|
<div class="ttc" id="classSVF_1_1HareParForEdge_html"><div class="ttname"><a href="classSVF_1_1HareParForEdge.html">SVF::HareParForEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00125">ThreadCallGraph.h:125</a></div></div>
|
|
968
968
|
<div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_a9738544725458bb022b8d5f2dbd281f7a17e0d58fd42d0d493087e698d4ecd838"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#a9738544725458bb022b8d5f2dbd281f7a17e0d58fd42d0d493087e698d4ecd838">SVF::PTACallGraphEdge::HareParForEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00058">PTACallGraph.h:58</a></div></div>
|
|
969
969
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
970
|
-
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a72efe87a80f84a3945a93431d9414d3d"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a72efe87a80f84a3945a93431d9414d3d">SVF::PTACallGraph::addCallSite</a></div><div class="ttdeci">CallSiteID addCallSite(const CallBlockNode *cs, const SVFFunction *callee)</div><div class="ttdoc">Add/Get CallSiteID. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00330">PTACallGraph.h:330</a></div></div>
|
|
971
|
-
<div class="ttc" id="classSVF_1_1CallBlockNode_html_a5bab98a0b8cf0a804d53abd994e922c0"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">SVF::CallBlockNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00400">ICFGNode.h:400</a></div></div>
|
|
972
970
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a3154bbc421fc85649e786ed67ca03750"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a3154bbc421fc85649e786ed67ca03750">SVF::PTACallGraph::addEdge</a></div><div class="ttdeci">void addEdge(PTACallGraphEdge *edge)</div><div class="ttdoc">Add call graph edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00417">PTACallGraph.h:417</a></div></div>
|
|
971
|
+
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_aae1caa7231ab9436db98403d6a175149"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#aae1caa7231ab9436db98403d6a175149">SVF::ThreadCallGraph::addHareParForEdgeSetMap</a></div><div class="ttdeci">void addHareParForEdgeSetMap(const CallICFGNode *cs, HareParForEdge *edge)</div><div class="ttdoc">map call instruction to its CallGraphEdge map </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00385">ThreadCallGraph.h:385</a></div></div>
|
|
972
|
+
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a979359fc784e647c574de90c7af2cf40"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">SVF::PTACallGraph::addCallSite</a></div><div class="ttdeci">CallSiteID addCallSite(const CallICFGNode *cs, const SVFFunction *callee)</div><div class="ttdoc">Add/Get CallSiteID. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00330">PTACallGraph.h:330</a></div></div>
|
|
973
973
|
<div class="ttc" id="namespaceSVF_html_a03d88a0302bcd253387690f13f693f64"><div class="ttname"><a href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">SVF::CallSiteID</a></div><div class="ttdeci">unsigned CallSiteID</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00083">SVFBasicTypes.h:83</a></div></div>
|
|
974
974
|
<div class="ttc" id="classSVF_1_1PTACallGraphNode_html_a959445c97605953fbdebbbd999437a09"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">SVF::PTACallGraphNode::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdoc">Get function of this call node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00193">PTACallGraph.h:193</a></div></div>
|
|
975
|
-
<div class="ttc" id="
|
|
975
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html_a18f4077d42b23c3fed35efc793b6102e"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">SVF::CallICFGNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00400">ICFGNode.h:400</a></div></div>
|
|
976
976
|
<div class="ttc" id="classSVF_1_1PTACallGraphNode_html"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html">SVF::PTACallGraphNode</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00174">PTACallGraph.h:174</a></div></div>
|
|
977
977
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a6d29a39440d8f6290e2e8b7322b965fb"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a6d29a39440d8f6290e2e8b7322b965fb">SVF::PTACallGraph::hasGraphEdge</a></div><div class="ttdeci">PTACallGraphEdge * hasGraphEdge(PTACallGraphNode *src, PTACallGraphNode *dst, PTACallGraphEdge::CEDGEK kind, CallSiteID csId) const</div><div class="ttdoc">Whether we have aleady created this call graph edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00133">PTACallGraph.cpp:133</a></div></div>
|
|
978
978
|
</div><!-- fragment -->
|
|
979
979
|
</div>
|
|
980
980
|
</div>
|
|
981
|
-
<a id="
|
|
982
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
981
|
+
<a id="a795d504a098634b1725af272b37e46e7"></a>
|
|
982
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a795d504a098634b1725af272b37e46e7">◆ </a></span>addJoinsite()</h2>
|
|
983
983
|
|
|
984
984
|
<div class="memitem">
|
|
985
985
|
<div class="memproto">
|
|
@@ -990,7 +990,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
990
990
|
<tr>
|
|
991
991
|
<td class="memname">bool SVF::ThreadCallGraph::addJoinsite </td>
|
|
992
992
|
<td>(</td>
|
|
993
|
-
<td class="paramtype">const <a class="el" href="
|
|
993
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
994
994
|
<td class="paramname"><em>cs</em></td><td>)</td>
|
|
995
995
|
<td></td>
|
|
996
996
|
</tr>
|
|
@@ -1008,8 +1008,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1008
1008
|
</div><!-- fragment -->
|
|
1009
1009
|
</div>
|
|
1010
1010
|
</div>
|
|
1011
|
-
<a id="
|
|
1012
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1011
|
+
<a id="a69719915e8c23e3afd6766daea946ffe"></a>
|
|
1012
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a69719915e8c23e3afd6766daea946ffe">◆ </a></span>addParForSite()</h2>
|
|
1013
1013
|
|
|
1014
1014
|
<div class="memitem">
|
|
1015
1015
|
<div class="memproto">
|
|
@@ -1020,7 +1020,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1020
1020
|
<tr>
|
|
1021
1021
|
<td class="memname">bool SVF::ThreadCallGraph::addParForSite </td>
|
|
1022
1022
|
<td>(</td>
|
|
1023
|
-
<td class="paramtype">const <a class="el" href="
|
|
1023
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
1024
1024
|
<td class="paramname"><em>cs</em></td><td>)</td>
|
|
1025
1025
|
<td></td>
|
|
1026
1026
|
</tr>
|
|
@@ -1038,8 +1038,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1038
1038
|
</div><!-- fragment -->
|
|
1039
1039
|
</div>
|
|
1040
1040
|
</div>
|
|
1041
|
-
<a id="
|
|
1042
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1041
|
+
<a id="ab20211a66583387f0da4769bee65e300"></a>
|
|
1042
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ab20211a66583387f0da4769bee65e300">◆ </a></span>addThreadForkEdgeSetMap()</h2>
|
|
1043
1043
|
|
|
1044
1044
|
<div class="memitem">
|
|
1045
1045
|
<div class="memproto">
|
|
@@ -1050,7 +1050,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1050
1050
|
<tr>
|
|
1051
1051
|
<td class="memname">void SVF::ThreadCallGraph::addThreadForkEdgeSetMap </td>
|
|
1052
1052
|
<td>(</td>
|
|
1053
|
-
<td class="paramtype">const <a class="el" href="
|
|
1053
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
1054
1054
|
<td class="paramname"><em>cs</em>, </td>
|
|
1055
1055
|
</tr>
|
|
1056
1056
|
<tr>
|
|
@@ -1080,8 +1080,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1080
1080
|
</div><!-- fragment -->
|
|
1081
1081
|
</div>
|
|
1082
1082
|
</div>
|
|
1083
|
-
<a id="
|
|
1084
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1083
|
+
<a id="a7100a68c27a965927975e26bb06e061c"></a>
|
|
1084
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a7100a68c27a965927975e26bb06e061c">◆ </a></span>addThreadJoinEdgeSetMap()</h2>
|
|
1085
1085
|
|
|
1086
1086
|
<div class="memitem">
|
|
1087
1087
|
<div class="memproto">
|
|
@@ -1092,7 +1092,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1092
1092
|
<tr>
|
|
1093
1093
|
<td class="memname">void SVF::ThreadCallGraph::addThreadJoinEdgeSetMap </td>
|
|
1094
1094
|
<td>(</td>
|
|
1095
|
-
<td class="paramtype">const <a class="el" href="
|
|
1095
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
1096
1096
|
<td class="paramname"><em>cs</em>, </td>
|
|
1097
1097
|
</tr>
|
|
1098
1098
|
<tr>
|
|
@@ -1239,8 +1239,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1239
1239
|
</div><!-- fragment -->
|
|
1240
1240
|
</div>
|
|
1241
1241
|
</div>
|
|
1242
|
-
<a id="
|
|
1243
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1242
|
+
<a id="a8721610a39212613ad55bbd46a35c576"></a>
|
|
1243
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a8721610a39212613ad55bbd46a35c576">◆ </a></span>getForkEdgeBegin()</h2>
|
|
1244
1244
|
|
|
1245
1245
|
<div class="memitem">
|
|
1246
1246
|
<div class="memproto">
|
|
@@ -1251,7 +1251,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1251
1251
|
<tr>
|
|
1252
1252
|
<td class="memname">ForkEdgeSet::const_iterator SVF::ThreadCallGraph::getForkEdgeBegin </td>
|
|
1253
1253
|
<td>(</td>
|
|
1254
|
-
<td class="paramtype">const <a class="el" href="
|
|
1254
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
1255
1255
|
<td class="paramname"><em>cs</em></td><td>)</td>
|
|
1256
1256
|
<td> const</td>
|
|
1257
1257
|
</tr>
|
|
@@ -1269,8 +1269,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1269
1269
|
</div><!-- fragment -->
|
|
1270
1270
|
</div>
|
|
1271
1271
|
</div>
|
|
1272
|
-
<a id="
|
|
1273
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1272
|
+
<a id="a8351e7ab445cb7faf0209d1fbc63fce1"></a>
|
|
1273
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a8351e7ab445cb7faf0209d1fbc63fce1">◆ </a></span>getForkEdgeEnd()</h2>
|
|
1274
1274
|
|
|
1275
1275
|
<div class="memitem">
|
|
1276
1276
|
<div class="memproto">
|
|
@@ -1281,7 +1281,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1281
1281
|
<tr>
|
|
1282
1282
|
<td class="memname">ForkEdgeSet::const_iterator SVF::ThreadCallGraph::getForkEdgeEnd </td>
|
|
1283
1283
|
<td>(</td>
|
|
1284
|
-
<td class="paramtype">const <a class="el" href="
|
|
1284
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
1285
1285
|
<td class="paramname"><em>cs</em></td><td>)</td>
|
|
1286
1286
|
<td> const</td>
|
|
1287
1287
|
</tr>
|
|
@@ -1299,8 +1299,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1299
1299
|
</div><!-- fragment -->
|
|
1300
1300
|
</div>
|
|
1301
1301
|
</div>
|
|
1302
|
-
<a id="
|
|
1303
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1302
|
+
<a id="af848d7cb8a9f756ff45cca45adbf3b84"></a>
|
|
1303
|
+
<h2 class="memtitle"><span class="permalink"><a href="#af848d7cb8a9f756ff45cca45adbf3b84">◆ </a></span>getJoinEdgeBegin()</h2>
|
|
1304
1304
|
|
|
1305
1305
|
<div class="memitem">
|
|
1306
1306
|
<div class="memproto">
|
|
@@ -1311,7 +1311,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1311
1311
|
<tr>
|
|
1312
1312
|
<td class="memname">JoinEdgeSet::const_iterator SVF::ThreadCallGraph::getJoinEdgeBegin </td>
|
|
1313
1313
|
<td>(</td>
|
|
1314
|
-
<td class="paramtype">const <a class="el" href="
|
|
1314
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
1315
1315
|
<td class="paramname"><em>cs</em></td><td>)</td>
|
|
1316
1316
|
<td> const</td>
|
|
1317
1317
|
</tr>
|
|
@@ -1329,8 +1329,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1329
1329
|
</div><!-- fragment -->
|
|
1330
1330
|
</div>
|
|
1331
1331
|
</div>
|
|
1332
|
-
<a id="
|
|
1333
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1332
|
+
<a id="a811d7d13c05c71bd816621a9a8765365"></a>
|
|
1333
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a811d7d13c05c71bd816621a9a8765365">◆ </a></span>getJoinEdgeEnd()</h2>
|
|
1334
1334
|
|
|
1335
1335
|
<div class="memitem">
|
|
1336
1336
|
<div class="memproto">
|
|
@@ -1341,7 +1341,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1341
1341
|
<tr>
|
|
1342
1342
|
<td class="memname">JoinEdgeSet::const_iterator SVF::ThreadCallGraph::getJoinEdgeEnd </td>
|
|
1343
1343
|
<td>(</td>
|
|
1344
|
-
<td class="paramtype">const <a class="el" href="
|
|
1344
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
1345
1345
|
<td class="paramname"><em>cs</em></td><td>)</td>
|
|
1346
1346
|
<td> const</td>
|
|
1347
1347
|
</tr>
|
|
@@ -1377,7 +1377,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1377
1377
|
<tr>
|
|
1378
1378
|
<td class="paramkey"></td>
|
|
1379
1379
|
<td></td>
|
|
1380
|
-
<td class="paramtype"><a class="el" href="classSVF_1_1ThreadCallGraph.html#
|
|
1380
|
+
<td class="paramtype"><a class="el" href="classSVF_1_1ThreadCallGraph.html#a57b69bfb5d468bd1a81a55468f845de0">InstSet</a> & </td>
|
|
1381
1381
|
<td class="paramname"><em>csSet</em> </td>
|
|
1382
1382
|
</tr>
|
|
1383
1383
|
<tr>
|
|
@@ -1514,8 +1514,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1514
1514
|
</div><!-- fragment -->
|
|
1515
1515
|
</div>
|
|
1516
1516
|
</div>
|
|
1517
|
-
<a id="
|
|
1518
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1517
|
+
<a id="a933a6a2f0a0c6364e8df1bc65a07192f"></a>
|
|
1518
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a933a6a2f0a0c6364e8df1bc65a07192f">◆ </a></span>hasThreadForkEdge()</h2>
|
|
1519
1519
|
|
|
1520
1520
|
<div class="memitem">
|
|
1521
1521
|
<div class="memproto">
|
|
@@ -1526,7 +1526,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1526
1526
|
<tr>
|
|
1527
1527
|
<td class="memname">bool SVF::ThreadCallGraph::hasThreadForkEdge </td>
|
|
1528
1528
|
<td>(</td>
|
|
1529
|
-
<td class="paramtype">const <a class="el" href="
|
|
1529
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
1530
1530
|
<td class="paramname"><em>cs</em></td><td>)</td>
|
|
1531
1531
|
<td> const</td>
|
|
1532
1532
|
</tr>
|
|
@@ -1546,8 +1546,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1546
1546
|
</div><!-- fragment -->
|
|
1547
1547
|
</div>
|
|
1548
1548
|
</div>
|
|
1549
|
-
<a id="
|
|
1550
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1549
|
+
<a id="a5f7c92af1a4ce33e4746f5b65c9c8421"></a>
|
|
1550
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a5f7c92af1a4ce33e4746f5b65c9c8421">◆ </a></span>hasThreadJoinEdge() <span class="overload">[1/2]</span></h2>
|
|
1551
1551
|
|
|
1552
1552
|
<div class="memitem">
|
|
1553
1553
|
<div class="memproto">
|
|
@@ -1558,7 +1558,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1558
1558
|
<tr>
|
|
1559
1559
|
<td class="memname">bool SVF::ThreadCallGraph::hasThreadJoinEdge </td>
|
|
1560
1560
|
<td>(</td>
|
|
1561
|
-
<td class="paramtype">const <a class="el" href="
|
|
1561
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
1562
1562
|
<td class="paramname"><em>cs</em></td><td>)</td>
|
|
1563
1563
|
<td> const</td>
|
|
1564
1564
|
</tr>
|
|
@@ -1578,8 +1578,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1578
1578
|
</div><!-- fragment -->
|
|
1579
1579
|
</div>
|
|
1580
1580
|
</div>
|
|
1581
|
-
<a id="
|
|
1582
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1581
|
+
<a id="a98214e970762f43d0e9ad719961b4021"></a>
|
|
1582
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a98214e970762f43d0e9ad719961b4021">◆ </a></span>hasThreadJoinEdge() <span class="overload">[2/2]</span></h2>
|
|
1583
1583
|
|
|
1584
1584
|
<div class="memitem">
|
|
1585
1585
|
<div class="memproto">
|
|
@@ -1590,7 +1590,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1590
1590
|
<tr>
|
|
1591
1591
|
<td class="memname"><a class="el" href="classSVF_1_1ThreadJoinEdge.html">ThreadJoinEdge</a>* SVF::ThreadCallGraph::hasThreadJoinEdge </td>
|
|
1592
1592
|
<td>(</td>
|
|
1593
|
-
<td class="paramtype">const <a class="el" href="
|
|
1593
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
1594
1594
|
<td class="paramname"><em>call</em>, </td>
|
|
1595
1595
|
</tr>
|
|
1596
1596
|
<tr>
|
|
@@ -1631,8 +1631,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1631
1631
|
</div><!-- fragment -->
|
|
1632
1632
|
</div>
|
|
1633
1633
|
</div>
|
|
1634
|
-
<a id="
|
|
1635
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1634
|
+
<a id="a07d3db6ffe8d75effd6fbc3856c484fe"></a>
|
|
1635
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a07d3db6ffe8d75effd6fbc3856c484fe">◆ </a></span>isForksite()</h2>
|
|
1636
1636
|
|
|
1637
1637
|
<div class="memitem">
|
|
1638
1638
|
<div class="memproto">
|
|
@@ -1643,7 +1643,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1643
1643
|
<tr>
|
|
1644
1644
|
<td class="memname">bool SVF::ThreadCallGraph::isForksite </td>
|
|
1645
1645
|
<td>(</td>
|
|
1646
|
-
<td class="paramtype">const <a class="el" href="
|
|
1646
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
1647
1647
|
<td class="paramname"><em>csInst</em></td><td>)</td>
|
|
1648
1648
|
<td></td>
|
|
1649
1649
|
</tr>
|
|
@@ -1661,8 +1661,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1661
1661
|
</div><!-- fragment -->
|
|
1662
1662
|
</div>
|
|
1663
1663
|
</div>
|
|
1664
|
-
<a id="
|
|
1665
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1664
|
+
<a id="ac75a38384cda8379c32b4d01d4d5d20a"></a>
|
|
1665
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ac75a38384cda8379c32b4d01d4d5d20a">◆ </a></span>isJoinsite()</h2>
|
|
1666
1666
|
|
|
1667
1667
|
<div class="memitem">
|
|
1668
1668
|
<div class="memproto">
|
|
@@ -1673,7 +1673,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1673
1673
|
<tr>
|
|
1674
1674
|
<td class="memname">bool SVF::ThreadCallGraph::isJoinsite </td>
|
|
1675
1675
|
<td>(</td>
|
|
1676
|
-
<td class="paramtype">const <a class="el" href="
|
|
1676
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
1677
1677
|
<td class="paramname"><em>csInst</em></td><td>)</td>
|
|
1678
1678
|
<td></td>
|
|
1679
1679
|
</tr>
|
|
@@ -1690,8 +1690,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1690
1690
|
</div><!-- fragment -->
|
|
1691
1691
|
</div>
|
|
1692
1692
|
</div>
|
|
1693
|
-
<a id="
|
|
1694
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1693
|
+
<a id="ae18f0b3245694145f6d9262ee28c6453"></a>
|
|
1694
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ae18f0b3245694145f6d9262ee28c6453">◆ </a></span>isParForSite()</h2>
|
|
1695
1695
|
|
|
1696
1696
|
<div class="memitem">
|
|
1697
1697
|
<div class="memproto">
|
|
@@ -1702,7 +1702,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1702
1702
|
<tr>
|
|
1703
1703
|
<td class="memname">bool SVF::ThreadCallGraph::isParForSite </td>
|
|
1704
1704
|
<td>(</td>
|
|
1705
|
-
<td class="paramtype">const <a class="el" href="
|
|
1705
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * </td>
|
|
1706
1706
|
<td class="paramname"><em>csInst</em></td><td>)</td>
|
|
1707
1707
|
<td></td>
|
|
1708
1708
|
</tr>
|
|
@@ -1854,29 +1854,29 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1854
1854
|
<p>Update call graph using pointer results. </p>
|
|
1855
1855
|
|
|
1856
1856
|
<p class="definition">Definition at line <a class="el" href="ThreadCallGraph_8cpp_source.html#l00053">53</a> of file <a class="el" href="ThreadCallGraph_8cpp_source.html">ThreadCallGraph.cpp</a>.</p>
|
|
1857
|
-
<div class="fragment"><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  PointerAnalysis::CallEdgeMap::const_iterator iter = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>().begin();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  PointerAnalysis::CallEdgeMap::const_iterator eiter = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>().end();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">for</span> (; iter != eiter; iter++)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs = iter->first;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> &functions = iter->second;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">for</span> (PTACallGraph::FunctionSet::const_iterator func_iter =</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  functions.begin(); func_iter != functions.end(); func_iter++)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *func_iter;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  this-><a class="code" href="classSVF_1_1PTACallGraph.html#a09d0b8461ec0e678e1e69368b0f66b02">addIndirectCallGraphEdge</a>(cs, cs-><a class="code" href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">getCaller</a>(), callee);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="comment">// Fork sites</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">for</span> (CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a37f2e076713a9aeb0e4313fb05dfb92e">forksitesBegin</a>(), eit = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a1ebbd26c17cff1c1a1bee9caa9a8f825">forksitesEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* forkedval = <a class="code" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">tdAPI</a>-><a class="code" href="classSVF_1_1ThreadAPI.html#a7ddc0c71aeae315af21972a4905b3456">getForkedFun</a>((*it)->getCallSite());</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">if</span>(SVFUtil::dyn_cast<Function>(forkedval)==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> targets = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">getPts</a>(pag-><a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(forkedval)).toNodeBS();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">for</span> (NodeBS::iterator ii = targets.begin(), ie = targets.end(); ii != ie; ii++)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* objPN = SVFUtil::dyn_cast<ObjVar>(pag-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*ii)))</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = pag-><a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(objPN);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">if</span>(obj-><a class="code" href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">isFunction</a>())</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>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = SVFUtil::cast<Function>(obj-><a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>());</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfCallee = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(callee);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  this-><a class="code" href="classSVF_1_1ThreadCallGraph.html#a2b0ccaaf219533907c0733b050628100">addIndirectForkEdge</a>(*it, svfCallee);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// parallel_for sites</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">for</span> (CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a29c74634b17007e5bef6fb48e1f3839f">parForSitesBegin</a>(), eit = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a506343bcd23ba71d2db915ff7c58e728">parForSitesEnd</a>(); it != eit; ++it)</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>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* forkedval = <a class="code" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">tdAPI</a>-><a class="code" href="classSVF_1_1ThreadAPI.html#afeedd6e518af76fa9e7142af8899b2f5">getTaskFuncAtHareParForSite</a>((*it)->getCallSite());</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">if</span>(SVFUtil::dyn_cast<Function>(forkedval)==<span class="keyword">nullptr</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>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> targets = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">getPts</a>(pag-><a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(forkedval)).toNodeBS();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">for</span> (NodeBS::iterator ii = targets.begin(), ie = targets.end(); ii != ie; ii++)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* objPN = SVFUtil::dyn_cast<ObjVar>(pag-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*ii)))</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = pag-><a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(objPN);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">if</span>(obj-><a class="code" href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">isFunction</a>())</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = SVFUtil::cast<Function>(obj-><a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>());</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfCallee = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(callee);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  this-><a class="code" href="classSVF_1_1ThreadCallGraph.html#a2b0ccaaf219533907c0733b050628100">addIndirectForkEdge</a>(*it, svfCallee);</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>  }</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="l00116"></a><span class="lineno"> 116</span>  }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> }</div><div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a506343bcd23ba71d2db915ff7c58e728"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a506343bcd23ba71d2db915ff7c58e728">SVF::ThreadCallGraph::parForSitesEnd</a></div><div class="ttdeci">CallSiteSet::const_iterator parForSitesEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00299">ThreadCallGraph.h:299</a></div></div>
|
|
1857
|
+
<div class="fragment"><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  PointerAnalysis::CallEdgeMap::const_iterator iter = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>().begin();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  PointerAnalysis::CallEdgeMap::const_iterator eiter = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>().end();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">for</span> (; iter != eiter; iter++)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = iter->first;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> &functions = iter->second;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">for</span> (PTACallGraph::FunctionSet::const_iterator func_iter =</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  functions.begin(); func_iter != functions.end(); func_iter++)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *func_iter;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  this-><a class="code" href="classSVF_1_1PTACallGraph.html#a46416c668e2f0099394e79f685ede758">addIndirectCallGraphEdge</a>(cs, cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>(), callee);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="comment">// Fork sites</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">for</span> (CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a37f2e076713a9aeb0e4313fb05dfb92e">forksitesBegin</a>(), eit = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a1ebbd26c17cff1c1a1bee9caa9a8f825">forksitesEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* forkedval = <a class="code" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">tdAPI</a>-><a class="code" href="classSVF_1_1ThreadAPI.html#a7ddc0c71aeae315af21972a4905b3456">getForkedFun</a>((*it)->getCallSite());</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">if</span>(SVFUtil::dyn_cast<Function>(forkedval)==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> targets = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">getPts</a>(pag-><a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(forkedval)).toNodeBS();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">for</span> (NodeBS::iterator ii = targets.begin(), ie = targets.end(); ii != ie; ii++)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* objPN = SVFUtil::dyn_cast<ObjVar>(pag-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*ii)))</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = pag-><a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(objPN);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">if</span>(obj-><a class="code" href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">isFunction</a>())</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>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = SVFUtil::cast<Function>(obj-><a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>());</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfCallee = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(callee);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  this-><a class="code" href="classSVF_1_1ThreadCallGraph.html#a579dd874301280f7c9750c2a22f065c7">addIndirectForkEdge</a>(*it, svfCallee);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// parallel_for sites</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">for</span> (CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a29c74634b17007e5bef6fb48e1f3839f">parForSitesBegin</a>(), eit = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a506343bcd23ba71d2db915ff7c58e728">parForSitesEnd</a>(); it != eit; ++it)</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>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* forkedval = <a class="code" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">tdAPI</a>-><a class="code" href="classSVF_1_1ThreadAPI.html#afeedd6e518af76fa9e7142af8899b2f5">getTaskFuncAtHareParForSite</a>((*it)->getCallSite());</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">if</span>(SVFUtil::dyn_cast<Function>(forkedval)==<span class="keyword">nullptr</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>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> targets = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">getPts</a>(pag-><a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(forkedval)).toNodeBS();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">for</span> (NodeBS::iterator ii = targets.begin(), ie = targets.end(); ii != ie; ii++)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* objPN = SVFUtil::dyn_cast<ObjVar>(pag-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*ii)))</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = pag-><a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(objPN);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">if</span>(obj-><a class="code" href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">isFunction</a>())</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = SVFUtil::cast<Function>(obj-><a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>());</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfCallee = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(callee);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  this-><a class="code" href="classSVF_1_1ThreadCallGraph.html#a579dd874301280f7c9750c2a22f065c7">addIndirectForkEdge</a>(*it, svfCallee);</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>  }</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="l00116"></a><span class="lineno"> 116</span>  }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> }</div><div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a506343bcd23ba71d2db915ff7c58e728"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a506343bcd23ba71d2db915ff7c58e728">SVF::ThreadCallGraph::parForSitesEnd</a></div><div class="ttdeci">CallSiteSet::const_iterator parForSitesEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00299">ThreadCallGraph.h:299</a></div></div>
|
|
1858
1858
|
<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#l00418">SymbolTableInfo.h:418</a></div></div>
|
|
1859
1859
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a4dfb43679e9fa794ebad99b6584c32ec"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">SVF::PointerAnalysis::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID ptr)=0</div><div class="ttdoc">Get points-to targets of a pointer. It needs to be implemented in child class. </div></div>
|
|
1860
|
+
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a46416c668e2f0099394e79f685ede758"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a46416c668e2f0099394e79f685ede758">SVF::PTACallGraph::addIndirectCallGraphEdge</a></div><div class="ttdeci">void addIndirectCallGraphEdge(const CallICFGNode *cs, const SVFFunction *callerFun, const SVFFunction *calleeFun)</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00185">PTACallGraph.cpp:185</a></div></div>
|
|
1860
1861
|
<div class="ttc" id="classSVF_1_1MemObj_html_ae1d14e2bf0be36cdadebf119822f607b"><div class="ttname"><a href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">SVF::MemObj::isFunction</a></div><div class="ttdeci">bool isFunction() const</div><div class="ttdoc">object attributes methods </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00660">SymbolTableInfo.cpp:660</a></div></div>
|
|
1861
1862
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a1ebbd26c17cff1c1a1bee9caa9a8f825"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a1ebbd26c17cff1c1a1bee9caa9a8f825">SVF::ThreadCallGraph::forksitesEnd</a></div><div class="ttdeci">CallSiteSet::const_iterator forksitesEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00275">ThreadCallGraph.h:275</a></div></div>
|
|
1862
1863
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a5f5a5ec7e707a21994d301cc07d32a5a"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">SVF::PTACallGraph::FunctionSet</a></div><div class="ttdeci">Set< const SVFFunction * > FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00228">PTACallGraph.h:228</a></div></div>
|
|
1863
1864
|
<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>
|
|
1864
1865
|
<div class="ttc" id="classSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00322">SVFVariables.h:322</a></div></div>
|
|
1865
|
-
<div class="ttc" id="classSVF_1_1CallBlockNode_html_a5bab98a0b8cf0a804d53abd994e922c0"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">SVF::CallBlockNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00400">ICFGNode.h:400</a></div></div>
|
|
1866
1866
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_af1146c3d8e8b8885a1c48701e5b5a27f"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">SVF::ThreadCallGraph::tdAPI</a></div><div class="ttdeci">ThreadAPI * tdAPI</div><div class="ttdoc">Thread API. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00409">ThreadCallGraph.h:409</a></div></div>
|
|
1867
1867
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a37f2e076713a9aeb0e4313fb05dfb92e"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a37f2e076713a9aeb0e4313fb05dfb92e">SVF::ThreadCallGraph::forksitesBegin</a></div><div class="ttdeci">CallSiteSet::const_iterator forksitesBegin() const</div><div class="ttdoc">Fork sites iterators. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00271">ThreadCallGraph.h:271</a></div></div>
|
|
1868
|
-
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a09d0b8461ec0e678e1e69368b0f66b02"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a09d0b8461ec0e678e1e69368b0f66b02">SVF::PTACallGraph::addIndirectCallGraphEdge</a></div><div class="ttdeci">void addIndirectCallGraphEdge(const CallBlockNode *cs, const SVFFunction *callerFun, const SVFFunction *calleeFun)</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00185">PTACallGraph.cpp:185</a></div></div>
|
|
1869
1868
|
<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>
|
|
1870
1869
|
<div class="ttc" id="classSVF_1_1ThreadAPI_html_a7ddc0c71aeae315af21972a4905b3456"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a7ddc0c71aeae315af21972a4905b3456">SVF::ThreadAPI::getForkedFun</a></div><div class="ttdeci">const Value * getForkedFun(const Instruction *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00168">ThreadAPI.h:168</a></div></div>
|
|
1871
1870
|
<div class="ttc" id="classSVF_1_1ThreadAPI_html_afeedd6e518af76fa9e7142af8899b2f5"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#afeedd6e518af76fa9e7142af8899b2f5">SVF::ThreadAPI::getTaskFuncAtHareParForSite</a></div><div class="ttdeci">const Value * getTaskFuncAtHareParForSite(const Instruction *inst) const</div><div class="ttdoc">Get the task function (i.e., the 5th parameter) of the hare_parallel_for call. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00195">ThreadAPI.h:195</a></div></div>
|
|
1872
1871
|
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
|
|
1872
|
+
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a579dd874301280f7c9750c2a22f065c7"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a579dd874301280f7c9750c2a22f065c7">SVF::ThreadCallGraph::addIndirectForkEdge</a></div><div class="ttdeci">void addIndirectForkEdge(const CallICFGNode *cs, const SVFFunction *callee)</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8cpp_source.html#l00171">ThreadCallGraph.cpp:171</a></div></div>
|
|
1873
1873
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00205">PointerAnalysis.h:205</a></div></div>
|
|
1874
1874
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a1ca30dfa42702071b65d363c76d25cbe"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">SVF::PointerAnalysis::getIndCallMap</a></div><div class="ttdeci">CallEdgeMap & getIndCallMap()</div><div class="ttdoc">Get callees from an indirect callsite. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00388">PointerAnalysis.h:388</a></div></div>
|
|
1875
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
1875
1876
|
<div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00069">LLVMModule.h:69</a></div></div>
|
|
1877
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html_a18f4077d42b23c3fed35efc793b6102e"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">SVF::CallICFGNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00400">ICFGNode.h:400</a></div></div>
|
|
1876
1878
|
<div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
|
|
1877
1879
|
<div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00442">SymbolTableInfo.h:442</a></div></div>
|
|
1878
|
-
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a2b0ccaaf219533907c0733b050628100"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a2b0ccaaf219533907c0733b050628100">SVF::ThreadCallGraph::addIndirectForkEdge</a></div><div class="ttdeci">void addIndirectForkEdge(const CallBlockNode *cs, const SVFFunction *callee)</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8cpp_source.html#l00171">ThreadCallGraph.cpp:171</a></div></div>
|
|
1879
|
-
<div class="ttc" id="classSVF_1_1CallBlockNode_html"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html">SVF::CallBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
1880
1880
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00387">GenericGraph.h:387</a></div></div>
|
|
1881
1881
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a29c74634b17007e5bef6fb48e1f3839f"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a29c74634b17007e5bef6fb48e1f3839f">SVF::ThreadCallGraph::parForSitesBegin</a></div><div class="ttdeci">CallSiteSet::const_iterator parForSitesBegin() const</div><div class="ttdoc">hare_parallel_for sites iterators </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00295">ThreadCallGraph.h:295</a></div></div>
|
|
1882
1882
|
<div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
@@ -1906,11 +1906,11 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1906
1906
|
<p>Update join edge using pointer analysis results </p>
|
|
1907
1907
|
|
|
1908
1908
|
<p class="definition">Definition at line <a class="el" href="ThreadCallGraph_8cpp_source.html#l00123">123</a> of file <a class="el" href="ThreadCallGraph_8cpp_source.html">ThreadCallGraph.cpp</a>.</p>
|
|
1909
|
-
<div class="fragment"><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">for</span> (CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a98ecfe14be2d38d292b5919716cdd29d">joinsitesBegin</a>(), eit = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a50502f398e5eac9c6da3e26ea6052057">joinsitesEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* jointhread = <a class="code" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">tdAPI</a>-><a class="code" href="classSVF_1_1ThreadAPI.html#ac9f3cc080275ce7d76dd2f56fc7c6434">getJoinedThread</a>((*it)->getCallSite());</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// find its corresponding fork sites first</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classSVF_1_1ThreadCallGraph.html#a0d560b811f8df1a710c627e1ac100155">CallSiteSet</a> forkset;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">for</span> (CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a37f2e076713a9aeb0e4313fb05dfb92e">forksitesBegin</a>(), eit = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a1ebbd26c17cff1c1a1bee9caa9a8f825">forksitesEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* forkthread = <a class="code" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">tdAPI</a>-><a class="code" href="classSVF_1_1ThreadAPI.html#a11dc55f35c18bd1f46d00c21c7dc695e">getForkedThread</a>((*it)->getCallSite());</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">if</span> (pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#abd9da46106d820721a24201caaa164e1">alias</a>(jointhread, forkthread))</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  forkset.insert(*it);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(!forkset.empty() && <span class="stringliteral">"Can't find a forksite for this join!!"</span>);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="classSVF_1_1ThreadCallGraph.html#
|
|
1909
|
+
<div class="fragment"><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">for</span> (CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a98ecfe14be2d38d292b5919716cdd29d">joinsitesBegin</a>(), eit = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a50502f398e5eac9c6da3e26ea6052057">joinsitesEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* jointhread = <a class="code" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">tdAPI</a>-><a class="code" href="classSVF_1_1ThreadAPI.html#ac9f3cc080275ce7d76dd2f56fc7c6434">getJoinedThread</a>((*it)->getCallSite());</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// find its corresponding fork sites first</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classSVF_1_1ThreadCallGraph.html#a0d560b811f8df1a710c627e1ac100155">CallSiteSet</a> forkset;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">for</span> (CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a37f2e076713a9aeb0e4313fb05dfb92e">forksitesBegin</a>(), eit = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a1ebbd26c17cff1c1a1bee9caa9a8f825">forksitesEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* forkthread = <a class="code" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">tdAPI</a>-><a class="code" href="classSVF_1_1ThreadAPI.html#a11dc55f35c18bd1f46d00c21c7dc695e">getForkedThread</a>((*it)->getCallSite());</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">if</span> (pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#abd9da46106d820721a24201caaa164e1">alias</a>(jointhread, forkthread))</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  forkset.insert(*it);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(!forkset.empty() && <span class="stringliteral">"Can't find a forksite for this join!!"</span>);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="classSVF_1_1ThreadCallGraph.html#a8e1a6710a05e08b9ed87e373bd5bd0ee">addDirectJoinEdge</a>(*it,forkset);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> }</div><div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a1ebbd26c17cff1c1a1bee9caa9a8f825"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a1ebbd26c17cff1c1a1bee9caa9a8f825">SVF::ThreadCallGraph::forksitesEnd</a></div><div class="ttdeci">CallSiteSet::const_iterator forksitesEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00275">ThreadCallGraph.h:275</a></div></div>
|
|
1910
1910
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
1911
|
-
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a62476a033fb54314da61dff6981bf229"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a62476a033fb54314da61dff6981bf229">SVF::ThreadCallGraph::addDirectJoinEdge</a></div><div class="ttdeci">void addDirectJoinEdge(const CallBlockNode *cs, const CallSiteSet &forksite)</div><div class="ttdoc">Add thread join edges. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8cpp_source.html#l00196">ThreadCallGraph.cpp:196</a></div></div>
|
|
1912
1911
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_abd9da46106d820721a24201caaa164e1"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#abd9da46106d820721a24201caaa164e1">SVF::PointerAnalysis::alias</a></div><div class="ttdeci">virtual AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB)=0</div><div class="ttdoc">Interface exposed to users of our pointer analysis, given Location infos. </div></div>
|
|
1913
1912
|
<div class="ttc" id="classSVF_1_1ThreadAPI_html_ac9f3cc080275ce7d76dd2f56fc7c6434"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#ac9f3cc080275ce7d76dd2f56fc7c6434">SVF::ThreadAPI::getJoinedThread</a></div><div class="ttdeci">const Value * getJoinedThread(const Instruction *inst) const</div><div class="ttdoc">Return arguments/attributes of pthread_join. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00237">ThreadAPI.h:237</a></div></div>
|
|
1913
|
+
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a8e1a6710a05e08b9ed87e373bd5bd0ee"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a8e1a6710a05e08b9ed87e373bd5bd0ee">SVF::ThreadCallGraph::addDirectJoinEdge</a></div><div class="ttdeci">void addDirectJoinEdge(const CallICFGNode *cs, const CallSiteSet &forksite)</div><div class="ttdoc">Add thread join edges. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8cpp_source.html#l00196">ThreadCallGraph.cpp:196</a></div></div>
|
|
1914
1914
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_af1146c3d8e8b8885a1c48701e5b5a27f"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">SVF::ThreadCallGraph::tdAPI</a></div><div class="ttdeci">ThreadAPI * tdAPI</div><div class="ttdoc">Thread API. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00409">ThreadCallGraph.h:409</a></div></div>
|
|
1915
1915
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a37f2e076713a9aeb0e4313fb05dfb92e"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a37f2e076713a9aeb0e4313fb05dfb92e">SVF::ThreadCallGraph::forksitesBegin</a></div><div class="ttdeci">CallSiteSet::const_iterator forksitesBegin() const</div><div class="ttdoc">Fork sites iterators. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00271">ThreadCallGraph.h:271</a></div></div>
|
|
1916
1916
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a98ecfe14be2d38d292b5919716cdd29d"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a98ecfe14be2d38d292b5919716cdd29d">SVF::ThreadCallGraph::joinsitesBegin</a></div><div class="ttdeci">CallSiteSet::const_iterator joinsitesBegin() const</div><div class="ttdoc">Join sites iterators. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00283">ThreadCallGraph.h:283</a></div></div>
|
|
@@ -1932,7 +1932,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1932
1932
|
<td class="mlabels-left">
|
|
1933
1933
|
<table class="memname">
|
|
1934
1934
|
<tr>
|
|
1935
|
-
<td class="memname"><a class="el" href="classSVF_1_1ThreadCallGraph.html#
|
|
1935
|
+
<td class="memname"><a class="el" href="classSVF_1_1ThreadCallGraph.html#aba9d3e04e923cc787ab46a1f7eebb554">CallInstToParForEdgesMap</a> SVF::ThreadCallGraph::callinstToHareParForEdgesMap</td>
|
|
1936
1936
|
</tr>
|
|
1937
1937
|
</table>
|
|
1938
1938
|
</td>
|
|
@@ -1958,7 +1958,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1958
1958
|
<td class="mlabels-left">
|
|
1959
1959
|
<table class="memname">
|
|
1960
1960
|
<tr>
|
|
1961
|
-
<td class="memname"><a class="el" href="classSVF_1_1ThreadCallGraph.html#
|
|
1961
|
+
<td class="memname"><a class="el" href="classSVF_1_1ThreadCallGraph.html#aec88ec07a721b120290a7dde94ae1b51">CallInstToForkEdgesMap</a> SVF::ThreadCallGraph::callinstToThreadForkEdgesMap</td>
|
|
1962
1962
|
</tr>
|
|
1963
1963
|
</table>
|
|
1964
1964
|
</td>
|
|
@@ -1984,7 +1984,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1984
1984
|
<td class="mlabels-left">
|
|
1985
1985
|
<table class="memname">
|
|
1986
1986
|
<tr>
|
|
1987
|
-
<td class="memname"><a class="el" href="classSVF_1_1ThreadCallGraph.html#
|
|
1987
|
+
<td class="memname"><a class="el" href="classSVF_1_1ThreadCallGraph.html#ab446ddd20cf46eeb76fcd5789faef521">CallInstToJoinEdgesMap</a> SVF::ThreadCallGraph::callinstToThreadJoinEdgesMap</td>
|
|
1988
1988
|
</tr>
|
|
1989
1989
|
</table>
|
|
1990
1990
|
</td>
|