svf-tools 1.0.459 → 1.0.460
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 +1 -1
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Annotator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/CHG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ConsG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/DCHG_8h_source.html +8 -8
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +8 -8
- package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +6 -6
- package/SVF-doxygen/html/html/ExeState_8cpp.html +1 -0
- package/SVF-doxygen/html/html/ExeState_8cpp_source.html +26 -25
- package/SVF-doxygen/html/html/ExeState_8h_source.html +13 -13
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +5 -5
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +21 -21
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +6 -6
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LocationSet_8cpp.html +1 -0
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +14 -13
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +10 -10
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +46 -46
- package/SVF-doxygen/html/html/MHP_8h.html +1 -0
- package/SVF-doxygen/html/html/MHP_8h_source.html +102 -101
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +8 -8
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MTA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +68 -50
- package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +51 -50
- package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +46 -46
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +36 -36
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +19 -19
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFVariables_8cpp.html +1 -0
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +35 -32
- package/SVF-doxygen/html/html/SVFVariables_8h.html +0 -1
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +140 -142
- package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +50 -50
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp.html +1 -0
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +95 -91
- package/SVF-doxygen/html/html/SymbolTableInfo_8h.html +0 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +141 -143
- package/SVF-doxygen/html/html/TCT_8cpp.html +1 -0
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +41 -40
- package/SVF-doxygen/html/html/TCT_8h_source.html +7 -7
- package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +22 -22
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +4 -4
- package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +0 -2
- package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +61 -62
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +3 -3
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/VFG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
- package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +50 -50
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +40 -40
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +183 -183
- package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +45 -45
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +27 -27
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +177 -177
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +91 -91
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +98 -98
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +35 -35
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +27 -27
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +62 -62
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +66 -66
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +98 -106
- package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +38 -38
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +78 -78
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +224 -240
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +88 -88
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +36 -36
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +2 -2
- package/SVF-doxygen/html/html/functions_func_g.html +1 -1
- package/SVF-doxygen/html/html/functions_func_h.html +1 -1
- package/SVF-doxygen/html/html/functions_func_i.html +1 -1
- package/SVF-doxygen/html/html/functions_g.html +1 -1
- package/SVF-doxygen/html/html/functions_h.html +1 -1
- package/SVF-doxygen/html/html/functions_i.html +1 -1
- package/SVF-doxygen/html/html/globals_c.html +103 -100
- package/SVF-doxygen/html/html/globals_s.html +9 -7
- package/SVF-doxygen/html/html/globals_type.html +3 -0
- package/SVF-doxygen/html/html/namespaceSVF.html +25 -43
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +14 -14
- package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +23 -23
- package/SVF-doxygen/html/html/namespacemembers_c.html +0 -3
- package/SVF-doxygen/html/html/namespacemembers_type.html +0 -3
- package/SVF-doxygen/html/html/search/all_13.js +3 -3
- package/SVF-doxygen/html/html/search/all_3.js +1 -1
- package/SVF-doxygen/html/html/search/all_7.js +1 -1
- package/SVF-doxygen/html/html/search/all_8.js +1 -1
- package/SVF-doxygen/html/html/search/all_9.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +1 -1
- package/SVF-doxygen/html/html/search/functions_7.js +1 -1
- package/SVF-doxygen/html/html/search/functions_8.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +3 -3
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +3 -3
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +3 -3
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +14 -14
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +4 -4
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +3 -3
- package/include/MTA/MHP.h +1 -0
- package/include/MemoryModel/SVFVariables.h +1 -8
- package/include/MemoryModel/SymbolTableInfo.h +2 -22
- package/include/SVF-FE/BasicTypes.h +1 -0
- package/include/Util/BasicTypes.h +0 -1
- package/lib/MTA/TCT.cpp +1 -0
- package/lib/MemoryModel/LocationSet.cpp +1 -0
- package/lib/MemoryModel/SVFVariables.cpp +10 -1
- package/lib/MemoryModel/SymbolTableInfo.cpp +26 -0
- package/lib/Util/ExeState.cpp +1 -0
- package/package.json +1 -1
|
@@ -262,7 +262,7 @@ Private Attributes</h2></td></tr>
|
|
|
262
262
|
</table>
|
|
263
263
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
264
264
|
<div class="textblock">
|
|
265
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
265
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00272">272</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
266
266
|
</div><h2 class="groupheader">Member Typedef Documentation</h2>
|
|
267
267
|
<a id="acdc652faba35e45820cce0cdd20ea99c"></a>
|
|
268
268
|
<h2 class="memtitle"><span class="permalink"><a href="#acdc652faba35e45820cce0cdd20ea99c">◆ </a></span>CxtStmtToAliveFlagMap</h2>
|
|
@@ -276,7 +276,7 @@ Private Attributes</h2></td></tr>
|
|
|
276
276
|
</table>
|
|
277
277
|
</div><div class="memdoc">
|
|
278
278
|
|
|
279
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
279
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00285">285</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
280
280
|
|
|
281
281
|
</div>
|
|
282
282
|
</div>
|
|
@@ -292,7 +292,7 @@ Private Attributes</h2></td></tr>
|
|
|
292
292
|
</table>
|
|
293
293
|
</div><div class="memdoc">
|
|
294
294
|
|
|
295
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
295
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00288">288</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
296
296
|
|
|
297
297
|
</div>
|
|
298
298
|
</div>
|
|
@@ -308,7 +308,7 @@ Private Attributes</h2></td></tr>
|
|
|
308
308
|
</table>
|
|
309
309
|
</div><div class="memdoc">
|
|
310
310
|
|
|
311
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
311
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00286">286</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
312
312
|
|
|
313
313
|
</div>
|
|
314
314
|
</div>
|
|
@@ -324,7 +324,7 @@ Private Attributes</h2></td></tr>
|
|
|
324
324
|
</table>
|
|
325
325
|
</div><div class="memdoc">
|
|
326
326
|
|
|
327
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
327
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00289">289</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
328
328
|
|
|
329
329
|
</div>
|
|
330
330
|
</div>
|
|
@@ -340,7 +340,7 @@ Private Attributes</h2></td></tr>
|
|
|
340
340
|
</table>
|
|
341
341
|
</div><div class="memdoc">
|
|
342
342
|
|
|
343
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
343
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00290">290</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
344
344
|
|
|
345
345
|
</div>
|
|
346
346
|
</div>
|
|
@@ -356,7 +356,7 @@ Private Attributes</h2></td></tr>
|
|
|
356
356
|
</table>
|
|
357
357
|
</div><div class="memdoc">
|
|
358
358
|
|
|
359
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
359
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00284">284</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
360
360
|
|
|
361
361
|
</div>
|
|
362
362
|
</div>
|
|
@@ -372,7 +372,7 @@ Private Attributes</h2></td></tr>
|
|
|
372
372
|
</table>
|
|
373
373
|
</div><div class="memdoc">
|
|
374
374
|
|
|
375
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
375
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00287">287</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
376
376
|
|
|
377
377
|
</div>
|
|
378
378
|
</div>
|
|
@@ -396,10 +396,10 @@ Private Attributes</h2></td></tr>
|
|
|
396
396
|
<tr><td class="fieldname"><a id="a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4"></a>TDDead </td><td class="fielddoc"></td></tr>
|
|
397
397
|
</table>
|
|
398
398
|
|
|
399
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
400
|
-
<div class="fragment"><div class="line"><a name="
|
|
401
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4">SVF::ForkJoinAnalysis::TDDead</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
402
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">SVF::ForkJoinAnalysis::TDAlive</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
399
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00277">277</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
400
|
+
<div class="fragment"><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a9d940442c782d5a1297102209540182f">Empty</a>, <span class="comment">// initial(dummy) state</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">TDAlive</a>, <span class="comment">// thread is alive</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4">TDDead</a>, <span class="comment">// thread is dead</span></div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  };</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631a9d940442c782d5a1297102209540182f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a9d940442c782d5a1297102209540182f">SVF::ForkJoinAnalysis::Empty</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00279">MHP.h:279</a></div></div>
|
|
401
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4">SVF::ForkJoinAnalysis::TDDead</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00281">MHP.h:281</a></div></div>
|
|
402
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">SVF::ForkJoinAnalysis::TDAlive</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00280">MHP.h:280</a></div></div>
|
|
403
403
|
</div><!-- fragment -->
|
|
404
404
|
</div>
|
|
405
405
|
</div>
|
|
@@ -428,8 +428,8 @@ Private Attributes</h2></td></tr>
|
|
|
428
428
|
</table>
|
|
429
429
|
</div><div class="memdoc">
|
|
430
430
|
|
|
431
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
432
|
-
<div class="fragment"><div class="line"><a name="
|
|
431
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00291">291</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
432
|
+
<div class="fragment"><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  : <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>(t)</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a731ece7e21bfa2b08ae16780b55f9f5f">collectSCEVInfo</a>();</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00539">MHP.h:539</a></div></div>
|
|
433
433
|
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a731ece7e21bfa2b08ae16780b55f9f5f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a731ece7e21bfa2b08ae16780b55f9f5f">SVF::ForkJoinAnalysis::collectSCEVInfo</a></div><div class="ttdeci">void collectSCEVInfo()</div><div class="ttdoc">functions </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l00674">MHP.cpp:674</a></div></div>
|
|
434
434
|
</div><!-- fragment -->
|
|
435
435
|
</div>
|
|
@@ -471,8 +471,8 @@ Private Attributes</h2></td></tr>
|
|
|
471
471
|
|
|
472
472
|
<p>maps a context-sensitive join site to a thread id </p>
|
|
473
473
|
|
|
474
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
475
|
-
<div class="fragment"><div class="line"><a name="
|
|
474
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00503">503</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
475
|
+
<div class="fragment"><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  {</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#abf5b499f93a658636d09a62d14a47cad">directJoinMap</a>[cs].set(tid);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_abf5b499f93a658636d09a62d14a47cad"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#abf5b499f93a658636d09a62d14a47cad">SVF::ForkJoinAnalysis::directJoinMap</a></div><div class="ttdeci">CxtStmtToTIDMap directJoinMap</div><div class="ttdoc">maps a context-sensitive join site to directly joined thread ids </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00542">MHP.h:542</a></div></div>
|
|
476
476
|
</div><!-- fragment -->
|
|
477
477
|
</div>
|
|
478
478
|
</div>
|
|
@@ -512,8 +512,8 @@ Private Attributes</h2></td></tr>
|
|
|
512
512
|
|
|
513
513
|
<p>Add inloop join. </p>
|
|
514
514
|
|
|
515
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
516
|
-
<div class="fragment"><div class="line"><a name="
|
|
515
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00535">535</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
516
|
+
<div class="fragment"><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  {</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a63da48d338683ec95709a6bd95238707">cxtJoinInLoop</a>[cs] = lp;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a63da48d338683ec95709a6bd95238707"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a63da48d338683ec95709a6bd95238707">SVF::ForkJoinAnalysis::cxtJoinInLoop</a></div><div class="ttdeci">CxtStmtToLoopMap cxtJoinInLoop</div><div class="ttdoc">a set of context-sensitive join inside loop </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00544">MHP.h:544</a></div></div>
|
|
517
517
|
</div><!-- fragment -->
|
|
518
518
|
</div>
|
|
519
519
|
</div>
|
|
@@ -553,8 +553,8 @@ Private Attributes</h2></td></tr>
|
|
|
553
553
|
|
|
554
554
|
<p>full join and partial join </p>
|
|
555
555
|
|
|
556
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
557
|
-
<div class="fragment"><div class="line"><a name="
|
|
556
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00524">524</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
557
|
+
<div class="fragment"><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  {</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4193a30050195cd9aaafd58511b66ccc">fullJoin</a>.insert(std::make_pair(tid1,tid2));</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a4193a30050195cd9aaafd58511b66ccc"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a4193a30050195cd9aaafd58511b66ccc">SVF::ForkJoinAnalysis::fullJoin</a></div><div class="ttdeci">ThreadPairSet fullJoin</div><div class="ttdoc">t1 fully joins t2 along all program path </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00547">MHP.h:547</a></div></div>
|
|
558
558
|
</div><!-- fragment -->
|
|
559
559
|
</div>
|
|
560
560
|
</div>
|
|
@@ -592,8 +592,8 @@ Private Attributes</h2></td></tr>
|
|
|
592
592
|
</table>
|
|
593
593
|
</div><div class="memdoc">
|
|
594
594
|
|
|
595
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
596
|
-
<div class="fragment"><div class="line"><a name="
|
|
595
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00516">516</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
596
|
+
<div class="fragment"><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  {</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aad3e722ecaa4a39aef0e1cabfa2b8019">HBPair</a>.insert(std::make_pair(tid1,tid2));</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aad3e722ecaa4a39aef0e1cabfa2b8019"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aad3e722ecaa4a39aef0e1cabfa2b8019">SVF::ForkJoinAnalysis::HBPair</a></div><div class="ttdeci">ThreadPairSet HBPair</div><div class="ttdoc">thread happens-before pair </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00545">MHP.h:545</a></div></div>
|
|
597
597
|
</div><!-- fragment -->
|
|
598
598
|
</div>
|
|
599
599
|
</div>
|
|
@@ -632,8 +632,8 @@ Private Attributes</h2></td></tr>
|
|
|
632
632
|
</div><div class="memdoc">
|
|
633
633
|
<p>happen-in-parallel pair happens-before pair </p>
|
|
634
634
|
|
|
635
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
636
|
-
<div class="fragment"><div class="line"><a name="
|
|
635
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00511">511</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
636
|
+
<div class="fragment"><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  {</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4ad5c7a21ca994d908d648ca9d9e1833">HPPair</a>.insert(std::make_pair(tid1,tid2));</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4ad5c7a21ca994d908d648ca9d9e1833">HPPair</a>.insert(std::make_pair(tid2,tid1));</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a4ad5c7a21ca994d908d648ca9d9e1833"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a4ad5c7a21ca994d908d648ca9d9e1833">SVF::ForkJoinAnalysis::HPPair</a></div><div class="ttdeci">ThreadPairSet HPPair</div><div class="ttdoc">threads happen-in-parallel </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00546">MHP.h:546</a></div></div>
|
|
637
637
|
</div><!-- fragment -->
|
|
638
638
|
</div>
|
|
639
639
|
</div>
|
|
@@ -671,8 +671,8 @@ Private Attributes</h2></td></tr>
|
|
|
671
671
|
</table>
|
|
672
672
|
</div><div class="memdoc">
|
|
673
673
|
|
|
674
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
675
|
-
<div class="fragment"><div class="line"><a name="
|
|
674
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00528">528</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
675
|
+
<div class="fragment"><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  {</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a3616d6e1649f9e451da0f7a44cffc1e3">partialJoin</a>.insert(std::make_pair(tid1,tid2));</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a3616d6e1649f9e451da0f7a44cffc1e3"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a3616d6e1649f9e451da0f7a44cffc1e3">SVF::ForkJoinAnalysis::partialJoin</a></div><div class="ttdeci">ThreadPairSet partialJoin</div><div class="ttdoc">t1 partially joins t2 along some program path(s) </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00548">MHP.h:548</a></div></div>
|
|
676
676
|
</div><!-- fragment -->
|
|
677
677
|
</div>
|
|
678
678
|
</div>
|
|
@@ -696,43 +696,43 @@ Private Attributes</h2></td></tr>
|
|
|
696
696
|
<p class="definition">Definition at line <a class="el" href="MHP_8cpp_source.html#l00728">728</a> of file <a class="el" href="MHP_8cpp_source.html">MHP.cpp</a>.</p>
|
|
697
697
|
<div class="fragment"><div class="line"><a name="l00729"></a><span class="lineno"> 729</span> {</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">TCT::const_iterator</a> it = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  {</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CxtThread.html">CxtThread</a>& ct = it->second->getCxtThread();</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rootTid = it->first;</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a7965a276a3a12d532c9967de13d4cc8a">clearFlagMap</a>();</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>* forkInst = ct.<a class="code" href="classSVF_1_1CxtThread.html#a066ba29a83edc1042139641ca088b038">getThread</a>())</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  {</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> forkSiteCxt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#ab4bc72ca330b315df06f2d4d2c1a7b4f">getCxtOfCxtThread</a>(ct);</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* exitInst = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#acc178bd423dbb21bd46a9fae9ed0351c">getExitInstOfParentRoutineFun</a>(rootTid);</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span> </div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">InstVec</a> nextInsts;</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a799e14292e16b9fb322cab07f3ff5593">getNextInsts</a>(forkInst,nextInsts);</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keywordflow">for</span>(InstVec::const_iterator nit = nextInsts.begin(), enit = nextInsts.end(); nit!=enit; ++nit)</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  {</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> cs(forkSiteCxt,*nit);</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(cs,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">TDAlive</a>);</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  }</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span> </div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <span class="keywordflow">while</span>(!<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#acccf53d174cac3275da0d79c89a73916">cxtStmtList</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  {</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> cts = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4d893583db922444c6a29923bf3d05d3">popFromCTSWorkList</a>();</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* curInst = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">getStmt</a>();</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"-----\nForkJoinAnalysis root thread: "</span> << it->first << <span class="stringliteral">" "</span>);</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>,cts.<a class="code" href="classSVF_1_1CxtStmt.html#a56e2767c327a383db09dca96edb19614">dump</a>());</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"-----\n"</span>);</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> callees;</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aff32f240a03421937c2fc606359dca9b">isTDFork</a>(curInst))</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  {</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#adddbc09b7b99170cd0941f22ccc7e561">handleFork</a>(cts,rootTid);</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  }</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aac722a42dc6e03e771a7a80de5f8ec94">isTDJoin</a>(curInst))</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  {</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ae4d0ee03b30220793d24f814e75a440e">handleJoin</a>(cts,rootTid);</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  }</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<CallInst>(curInst) && <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#aa69b82c888c8193e97f9e95c62ac99d4">isCandidateFun</a>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#afcf119c89e93a24923dd0d97ddec7ee1">getCallee</a>(curInst, callees)))</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  {</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span> </div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ab636777379aca0b53a06e4888d4b4c6b">handleCall</a>(cts,rootTid);</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  }</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<ReturnInst>(curInst))</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  {</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a30e5ef1322216857513047d23b525829">handleRet</a>(cts);</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  }</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  {</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#add09218cce8d8bd8dd9e73b2d26a5797">handleIntra</a>(cts);</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  }</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span> </div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <span class="keywordflow">if</span>(curInst==exitInst)</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  {</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">getMarkedFlag</a>(cts)!=<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">TDAlive</a>)</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a02dad7e9ae45a1751c4548dd9991a8b4">addToFullJoin</a>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a516578af1f8666ff672e6611e61d7152">getParentThread</a>(rootTid),rootTid);</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a6ead92486459ec7f94a8375c7f96faca">addToPartial</a>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a516578af1f8666ff672e6611e61d7152">getParentThread</a>(rootTid),rootTid);</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  }</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  }</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span> </div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  }</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  }</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span> }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
|
|
698
698
|
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ab636777379aca0b53a06e4888d4b4c6b"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ab636777379aca0b53a06e4888d4b4c6b">SVF::ForkJoinAnalysis::handleCall</a></div><div class="ttdeci">void handleCall(const CxtStmt &cts, NodeID rootTid)</div><div class="ttdoc">Handle call. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l00878">MHP.cpp:878</a></div></div>
|
|
699
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a149114898b13e1430c8fbb60978ca4f5"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">SVF::ForkJoinAnalysis::getMarkedFlag</a></div><div class="ttdeci">ValDomain getMarkedFlag(const CxtStmt &cs)</div><div class="ttdoc">Mark thread flags for cxtStmt. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
700
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a02dad7e9ae45a1751c4548dd9991a8b4"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a02dad7e9ae45a1751c4548dd9991a8b4">SVF::ForkJoinAnalysis::addToFullJoin</a></div><div class="ttdeci">void addToFullJoin(NodeID tid1, NodeID tid2)</div><div class="ttdoc">full join and partial join </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
699
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a149114898b13e1430c8fbb60978ca4f5"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">SVF::ForkJoinAnalysis::getMarkedFlag</a></div><div class="ttdeci">ValDomain getMarkedFlag(const CxtStmt &cs)</div><div class="ttdoc">Mark thread flags for cxtStmt. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00393">MHP.h:393</a></div></div>
|
|
700
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a02dad7e9ae45a1751c4548dd9991a8b4"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a02dad7e9ae45a1751c4548dd9991a8b4">SVF::ForkJoinAnalysis::addToFullJoin</a></div><div class="ttdeci">void addToFullJoin(NodeID tid1, NodeID tid2)</div><div class="ttdoc">full join and partial join </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00524">MHP.h:524</a></div></div>
|
|
701
701
|
<div class="ttc" id="SVFBasicTypes_8h_html_a217a1ccdaec1abb103cf6b0373631234"><div class="ttname"><a href="SVFBasicTypes_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a></div><div class="ttdeci">#define DMTA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00174">SVFBasicTypes.h:174</a></div></div>
|
|
702
702
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
|
|
703
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
704
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_afcf119c89e93a24923dd0d97ddec7ee1"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#afcf119c89e93a24923dd0d97ddec7ee1">SVF::ForkJoinAnalysis::getCallee</a></div><div class="ttdeci">const PTACallGraph::FunctionSet & getCallee(const Instruction *inst, PTACallGraph::FunctionSet &callees)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
703
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00539">MHP.h:539</a></div></div>
|
|
704
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_afcf119c89e93a24923dd0d97ddec7ee1"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#afcf119c89e93a24923dd0d97ddec7ee1">SVF::ForkJoinAnalysis::getCallee</a></div><div class="ttdeci">const PTACallGraph::FunctionSet & getCallee(const Instruction *inst, PTACallGraph::FunctionSet &callees)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00492">MHP.h:492</a></div></div>
|
|
705
705
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
|
|
706
706
|
<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>
|
|
707
707
|
<div class="ttc" id="classSVF_1_1CxtThread_html"><div class="ttname"><a href="classSVF_1_1CxtThread.html">SVF::CxtThread</a></div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00188">CxtStmt.h:188</a></div></div>
|
|
708
708
|
<div class="ttc" id="classSVF_1_1CxtThread_html_a066ba29a83edc1042139641ca088b038"><div class="ttname"><a href="classSVF_1_1CxtThread.html#a066ba29a83edc1042139641ca088b038">SVF::CxtThread::getThread</a></div><div class="ttdeci">const CallInst * getThread() const</div><div class="ttdoc">Return forksite. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00210">CxtStmt.h:210</a></div></div>
|
|
709
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a613d763731058899e6819acdb2d7315f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">SVF::ForkJoinAnalysis::InstVec</a></div><div class="ttdeci">TCT::InstVec InstVec</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
710
|
-
<div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdoc">LLVM Instructions. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
709
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a613d763731058899e6819acdb2d7315f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">SVF::ForkJoinAnalysis::InstVec</a></div><div class="ttdeci">TCT::InstVec InstVec</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00284">MHP.h:284</a></div></div>
|
|
710
|
+
<div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdoc">LLVM Instructions. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00105">BasicTypes.h:105</a></div></div>
|
|
711
711
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a5dfa3f178d4abf37177d0d74ff4c6a97"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">SVF::GenericGraph::const_iterator</a></div><div class="ttdeci">IDToNodeMapTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00343">GenericGraph.h:343</a></div></div>
|
|
712
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a799e14292e16b9fb322cab07f3ff5593"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a799e14292e16b9fb322cab07f3ff5593">SVF::ForkJoinAnalysis::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *inst, InstVec &instSet)</div><div class="ttdoc">Get the next instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
712
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a799e14292e16b9fb322cab07f3ff5593"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a799e14292e16b9fb322cab07f3ff5593">SVF::ForkJoinAnalysis::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *inst, InstVec &instSet)</div><div class="ttdoc">Get the next instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00457">MHP.h:457</a></div></div>
|
|
713
713
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00369">GenericGraph.h:369</a></div></div>
|
|
714
714
|
<div class="ttc" id="classSVF_1_1CxtStmt_html_a5e8c4b10eb5c3240d2e21a020ed834a6"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">SVF::CxtStmt::getStmt</a></div><div class="ttdeci">const Instruction * getStmt() const</div><div class="ttdoc">Return current statement. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00062">CxtStmt.h:62</a></div></div>
|
|
715
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a6ead92486459ec7f94a8375c7f96faca"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a6ead92486459ec7f94a8375c7f96faca">SVF::ForkJoinAnalysis::addToPartial</a></div><div class="ttdeci">void addToPartial(NodeID tid1, NodeID tid2)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
715
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a6ead92486459ec7f94a8375c7f96faca"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a6ead92486459ec7f94a8375c7f96faca">SVF::ForkJoinAnalysis::addToPartial</a></div><div class="ttdeci">void addToPartial(NodeID tid1, NodeID tid2)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00528">MHP.h:528</a></div></div>
|
|
716
716
|
<div class="ttc" id="namespaceSVF_html_ab700523619b089b952498f39a7f5b6b1"><div class="ttname"><a href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">SVF::CallStrCxt</a></div><div class="ttdeci">std::vector< u32_t > CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00130">SVFBasicTypes.h:130</a></div></div>
|
|
717
717
|
<div class="ttc" id="classSVF_1_1TCT_html_ab4bc72ca330b315df06f2d4d2c1a7b4f"><div class="ttname"><a href="classSVF_1_1TCT.html#ab4bc72ca330b315df06f2d4d2c1a7b4f">SVF::TCT::getCxtOfCxtThread</a></div><div class="ttdeci">const CallStrCxt & getCxtOfCxtThread(const CxtThread &ct) const</div><div class="ttdoc">get the context of a thread at its spawning site (fork site) </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00331">TCT.h:331</a></div></div>
|
|
718
718
|
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ae4d0ee03b30220793d24f814e75a440e"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ae4d0ee03b30220793d24f814e75a440e">SVF::ForkJoinAnalysis::handleJoin</a></div><div class="ttdeci">void handleJoin(const CxtStmt &cts, NodeID rootTid)</div><div class="ttdoc">Handle join. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l00818">MHP.cpp:818</a></div></div>
|
|
719
719
|
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00069">BasicTypes.h:69</a></div></div>
|
|
720
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ac483d3b0e9084c2033e177eda9ac9215"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">SVF::ForkJoinAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &tgr, ValDomain flag)</div><div class="ttdoc">Initialize TDAlive and TDDead flags. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
720
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ac483d3b0e9084c2033e177eda9ac9215"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">SVF::ForkJoinAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &tgr, ValDomain flag)</div><div class="ttdoc">Initialize TDAlive and TDDead flags. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00405">MHP.h:405</a></div></div>
|
|
721
721
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
722
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_acccf53d174cac3275da0d79c89a73916"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#acccf53d174cac3275da0d79c89a73916">SVF::ForkJoinAnalysis::cxtStmtList</a></div><div class="ttdeci">CxtStmtWorkList cxtStmtList</div><div class="ttdoc">context-sensitive statement worklist </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
722
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_acccf53d174cac3275da0d79c89a73916"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#acccf53d174cac3275da0d79c89a73916">SVF::ForkJoinAnalysis::cxtStmtList</a></div><div class="ttdeci">CxtStmtWorkList cxtStmtList</div><div class="ttdoc">context-sensitive statement worklist </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00541">MHP.h:541</a></div></div>
|
|
723
723
|
<div class="ttc" id="classSVF_1_1CxtStmt_html"><div class="ttname"><a href="classSVF_1_1CxtStmt.html">SVF::CxtStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00041">CxtStmt.h:41</a></div></div>
|
|
724
724
|
<div class="ttc" id="classSVF_1_1TCT_html_aa69b82c888c8193e97f9e95c62ac99d4"><div class="ttname"><a href="classSVF_1_1TCT.html#aa69b82c888c8193e97f9e95c62ac99d4">SVF::TCT::isCandidateFun</a></div><div class="ttdeci">bool isCandidateFun(const PTACallGraph::FunctionSet &callees) const</div><div class="ttdoc">Whether it is a candidate function for indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00249">TCT.h:249</a></div></div>
|
|
725
725
|
<div class="ttc" id="classSVF_1_1TCT_html_a516578af1f8666ff672e6611e61d7152"><div class="ttname"><a href="classSVF_1_1TCT.html#a516578af1f8666ff672e6611e61d7152">SVF::TCT::getParentThread</a></div><div class="ttdeci">NodeID getParentThread(NodeID tid) const</div><div class="ttdoc">Get parent thread. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00282">TCT.h:282</a></div></div>
|
|
726
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a4d893583db922444c6a29923bf3d05d3"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a4d893583db922444c6a29923bf3d05d3">SVF::ForkJoinAnalysis::popFromCTSWorkList</a></div><div class="ttdeci">CxtStmt popFromCTSWorkList()</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
726
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a4d893583db922444c6a29923bf3d05d3"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a4d893583db922444c6a29923bf3d05d3">SVF::ForkJoinAnalysis::popFromCTSWorkList</a></div><div class="ttdeci">CxtStmt popFromCTSWorkList()</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00449">MHP.h:449</a></div></div>
|
|
727
727
|
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a30e5ef1322216857513047d23b525829"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a30e5ef1322216857513047d23b525829">SVF::ForkJoinAnalysis::handleRet</a></div><div class="ttdeci">void handleRet(const CxtStmt &cts)</div><div class="ttdoc">Handle return. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l00902">MHP.cpp:902</a></div></div>
|
|
728
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aac722a42dc6e03e771a7a80de5f8ec94"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aac722a42dc6e03e771a7a80de5f8ec94">SVF::ForkJoinAnalysis::isTDJoin</a></div><div class="ttdeci">bool isTDJoin(const Instruction *call)</div><div class="ttdoc">Whether it is a join site. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
729
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aff32f240a03421937c2fc606359dca9b"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aff32f240a03421937c2fc606359dca9b">SVF::ForkJoinAnalysis::isTDFork</a></div><div class="ttdeci">bool isTDFork(const Instruction *call)</div><div class="ttdoc">Whether it is a fork site. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
730
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_acc178bd423dbb21bd46a9fae9ed0351c"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#acc178bd423dbb21bd46a9fae9ed0351c">SVF::ForkJoinAnalysis::getExitInstOfParentRoutineFun</a></div><div class="ttdeci">const Instruction * getExitInstOfParentRoutineFun(NodeID tid) const</div><div class="ttdoc">Get exit instruction of the start routine function of tid&#39;s parent thread. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
728
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aac722a42dc6e03e771a7a80de5f8ec94"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aac722a42dc6e03e771a7a80de5f8ec94">SVF::ForkJoinAnalysis::isTDJoin</a></div><div class="ttdeci">bool isTDJoin(const Instruction *call)</div><div class="ttdoc">Whether it is a join site. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00478">MHP.h:478</a></div></div>
|
|
729
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aff32f240a03421937c2fc606359dca9b"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aff32f240a03421937c2fc606359dca9b">SVF::ForkJoinAnalysis::isTDFork</a></div><div class="ttdeci">bool isTDFork(const Instruction *call)</div><div class="ttdoc">Whether it is a fork site. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00473">MHP.h:473</a></div></div>
|
|
730
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_acc178bd423dbb21bd46a9fae9ed0351c"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#acc178bd423dbb21bd46a9fae9ed0351c">SVF::ForkJoinAnalysis::getExitInstOfParentRoutineFun</a></div><div class="ttdeci">const Instruction * getExitInstOfParentRoutineFun(NodeID tid) const</div><div class="ttdoc">Get exit instruction of the start routine function of tid&#39;s parent thread. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00339">MHP.h:339</a></div></div>
|
|
731
731
|
<div class="ttc" id="classSVF_1_1CxtStmt_html_a56e2767c327a383db09dca96edb19614"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a56e2767c327a383db09dca96edb19614">SVF::CxtStmt::dump</a></div><div class="ttdeci">void dump() const</div><div class="ttdoc">Dump CxtStmt. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00109">CxtStmt.h:109</a></div></div>
|
|
732
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">SVF::ForkJoinAnalysis::TDAlive</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
732
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">SVF::ForkJoinAnalysis::TDAlive</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00280">MHP.h:280</a></div></div>
|
|
733
733
|
<div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00154">SVFBasicTypes.h:154</a></div></div>
|
|
734
734
|
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_adddbc09b7b99170cd0941f22ccc7e561"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#adddbc09b7b99170cd0941f22ccc7e561">SVF::ForkJoinAnalysis::handleFork</a></div><div class="ttdeci">void handleFork(const CxtStmt &cts, NodeID rootTid)</div><div class="ttdoc">Handle fork. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l00792">MHP.cpp:792</a></div></div>
|
|
735
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a7965a276a3a12d532c9967de13d4cc8a"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a7965a276a3a12d532c9967de13d4cc8a">SVF::ForkJoinAnalysis::clearFlagMap</a></div><div class="ttdeci">void clearFlagMap()</div><div class="ttdoc">Clear flags. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
735
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a7965a276a3a12d532c9967de13d4cc8a"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a7965a276a3a12d532c9967de13d4cc8a">SVF::ForkJoinAnalysis::clearFlagMap</a></div><div class="ttdeci">void clearFlagMap()</div><div class="ttdoc">Clear flags. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00436">MHP.h:436</a></div></div>
|
|
736
736
|
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_add09218cce8d8bd8dd9e73b2d26a5797"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#add09218cce8d8bd8dd9e73b2d26a5797">SVF::ForkJoinAnalysis::handleIntra</a></div><div class="ttdeci">void handleIntra(const CxtStmt &cts)</div><div class="ttdoc">Handle intra. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l00948">MHP.cpp:948</a></div></div>
|
|
737
737
|
</div><!-- fragment -->
|
|
738
738
|
</div>
|
|
@@ -762,9 +762,9 @@ Private Attributes</h2></td></tr>
|
|
|
762
762
|
|
|
763
763
|
<p>Clear flags. </p>
|
|
764
764
|
|
|
765
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
766
|
-
<div class="fragment"><div class="line"><a name="
|
|
767
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_acccf53d174cac3275da0d79c89a73916"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#acccf53d174cac3275da0d79c89a73916">SVF::ForkJoinAnalysis::cxtStmtList</a></div><div class="ttdeci">CxtStmtWorkList cxtStmtList</div><div class="ttdoc">context-sensitive statement worklist </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
765
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00436">436</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
766
|
+
<div class="fragment"><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  {</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aa31b3f3d51b963ccd475e66b77143dba">cxtStmtToAliveFlagMap</a>.clear();</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#acccf53d174cac3275da0d79c89a73916">cxtStmtList</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a29d9fec1ea7b8e5456342522eea403ad">clear</a>();</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aa31b3f3d51b963ccd475e66b77143dba"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aa31b3f3d51b963ccd475e66b77143dba">SVF::ForkJoinAnalysis::cxtStmtToAliveFlagMap</a></div><div class="ttdeci">CxtStmtToAliveFlagMap cxtStmtToAliveFlagMap</div><div class="ttdoc">flags for context-sensitive statements </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00540">MHP.h:540</a></div></div>
|
|
767
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_acccf53d174cac3275da0d79c89a73916"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#acccf53d174cac3275da0d79c89a73916">SVF::ForkJoinAnalysis::cxtStmtList</a></div><div class="ttdeci">CxtStmtWorkList cxtStmtList</div><div class="ttdoc">context-sensitive statement worklist </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00541">MHP.h:541</a></div></div>
|
|
768
768
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a29d9fec1ea7b8e5456342522eea403ad"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a29d9fec1ea7b8e5456342522eea403ad">SVF::FIFOWorkList::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00186">WorkList.h:186</a></div></div>
|
|
769
769
|
</div><!-- fragment -->
|
|
770
770
|
</div>
|
|
@@ -788,9 +788,9 @@ Private Attributes</h2></td></tr>
|
|
|
788
788
|
<p>Collect SCEV pass information for pointers at fork/join sites Because ScalarEvolution is a function pass, previous knowledge of a function may be overwritten when analyzing a new function. We use a internal wrapper class <a class="el" href="classSVF_1_1PTASCEV.html">PTASCEV</a> to record all the necessary information for determining symmetric fork/join inside loops </p>
|
|
789
789
|
|
|
790
790
|
<p class="definition">Definition at line <a class="el" href="MHP_8cpp_source.html#l00674">674</a> of file <a class="el" href="MHP_8cpp_source.html">MHP.cpp</a>.</p>
|
|
791
|
-
<div class="fragment"><div class="line"><a name="l00675"></a><span class="lineno"> 675</span> {</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const Instruction*></a> CallInstSet;</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const Function*, CallInstSet ></a> FunToFJSites;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  FunToFJSites funToFJSites;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span> </div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <span class="keywordflow">for</span>(ThreadCallGraph::CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>()-><a class="code" href="classSVF_1_1ThreadCallGraph.html#a37f2e076713a9aeb0e4313fb05dfb92e">forksitesBegin</a>(),</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  eit = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>()-><a class="code" href="classSVF_1_1ThreadCallGraph.html#a1ebbd26c17cff1c1a1bee9caa9a8f825">forksitesEnd</a>(); it!=eit; ++it)</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  {</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* fork = (*it)->getCallSite();</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = fork->getParent()->getParent();</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  funToFJSites[fun].insert(fork);</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  }</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span> </div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <span class="keywordflow">for</span>(ThreadCallGraph::CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>()-><a class="code" href="classSVF_1_1ThreadCallGraph.html#a98ecfe14be2d38d292b5919716cdd29d">joinsitesBegin</a>(),</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  eit = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>()-><a class="code" href="classSVF_1_1ThreadCallGraph.html#a50502f398e5eac9c6da3e26ea6052057">joinsitesEnd</a>(); it!=eit; ++it)</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  {</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* join = (*it)->getCallSite();</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  funToFJSites[join->getParent()->getParent()].insert(join);</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  }</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span> </div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <span class="keywordflow">for</span>(FunToFJSites::const_iterator it = funToFJSites.begin(), eit = funToFJSites.end(); it!=eit; ++it)</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  {</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="comment">// ScalarEvolution* SE = MTA::getSE(it->first);</span></div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="keywordflow">for</span>(CallInstSet::const_iterator sit = it->second.begin(), esit = it->second.end(); sit!=esit; ++sit)</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  {</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* callInst = *sit;</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>()-><a class="code" href="classSVF_1_1ThreadCallGraph.html#a07d3db6ffe8d75effd6fbc3856c484fe">isForksite</a>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a94d65f9e22a13772042b2af652cf5538">getCBN</a>(callInst)))</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  {</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *forkSiteTidPtr = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#acd4308b99446c277ccb3407103fe21d0">getForkedThread</a>(callInst);</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <span class="comment">// const SCEV *forkSiteTidPtrSCEV = SE->getSCEV(const_cast<Value*>(forkSiteTidPtr));</span></div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="comment">// const SCEV *baseForkTidPtrSCEV = SE->getSCEV(const_cast<Value*>(getBasePtr(forkSiteTidPtr)));</span></div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  <span class="comment">// forkSiteTidPtrSCEV = getSCEVMinusExpr(forkSiteTidPtrSCEV, baseForkTidPtrSCEV, SE);</span></div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <a class="code" href="classSVF_1_1PTASCEV.html">PTASCEV</a> scev(forkSiteTidPtr,<span class="keyword">nullptr</span>,<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4207948054a0f98560922f3f07ada10f">fkjnToPTASCEVMap</a>.insert(std::make_pair(callInst,scev));</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  }</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  {</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *joinSiteTidPtr = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ada1e56dfe2d64ea6310142a346c86ed4">getJoinedThread</a>(callInst);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="comment">//const SCEV *joinSiteTidPtrSCEV = SE->getSCEV(const_cast<Value*>(joinSiteTidPtr));</span></div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <span class="comment">//const SCEV *baseJoinTidPtrSCEV = SE->getSCEV(const_cast<Value*>(getBasePtr(joinSiteTidPtr)));</span></div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="comment">//joinSiteTidPtrSCEV = getSCEVMinusExpr(joinSiteTidPtrSCEV, baseJoinTidPtrSCEV, SE);</span></div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span> </div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <a class="code" href="classSVF_1_1PTASCEV.html">PTASCEV</a> scev(joinSiteTidPtr,<span class="keyword">nullptr</span>,<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4207948054a0f98560922f3f07ada10f">fkjnToPTASCEVMap</a>.insert(std::make_pair(callInst,scev));</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  }</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  }</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span> </div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  }</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span> }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a4207948054a0f98560922f3f07ada10f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a4207948054a0f98560922f3f07ada10f">SVF::ForkJoinAnalysis::fkjnToPTASCEVMap</a></div><div class="ttdeci">forkjoinToPTASCEVMap fkjnToPTASCEVMap</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00549">MHP.h:549</a></div></div>
|
|
792
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ada1e56dfe2d64ea6310142a346c86ed4"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ada1e56dfe2d64ea6310142a346c86ed4">SVF::ForkJoinAnalysis::getJoinedThread</a></div><div class="ttdeci">const Value * getJoinedThread(const Instruction *call)</div><div class="ttdoc">Get joined thread. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
793
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
791
|
+
<div class="fragment"><div class="line"><a name="l00675"></a><span class="lineno"> 675</span> {</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const Instruction*></a> CallInstSet;</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const Function*, CallInstSet ></a> FunToFJSites;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  FunToFJSites funToFJSites;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span> </div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <span class="keywordflow">for</span>(ThreadCallGraph::CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>()-><a class="code" href="classSVF_1_1ThreadCallGraph.html#a37f2e076713a9aeb0e4313fb05dfb92e">forksitesBegin</a>(),</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  eit = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>()-><a class="code" href="classSVF_1_1ThreadCallGraph.html#a1ebbd26c17cff1c1a1bee9caa9a8f825">forksitesEnd</a>(); it!=eit; ++it)</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  {</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* fork = (*it)->getCallSite();</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = fork->getParent()->getParent();</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  funToFJSites[fun].insert(fork);</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  }</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span> </div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <span class="keywordflow">for</span>(ThreadCallGraph::CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>()-><a class="code" href="classSVF_1_1ThreadCallGraph.html#a98ecfe14be2d38d292b5919716cdd29d">joinsitesBegin</a>(),</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  eit = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>()-><a class="code" href="classSVF_1_1ThreadCallGraph.html#a50502f398e5eac9c6da3e26ea6052057">joinsitesEnd</a>(); it!=eit; ++it)</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  {</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* join = (*it)->getCallSite();</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  funToFJSites[join->getParent()->getParent()].insert(join);</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  }</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span> </div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <span class="keywordflow">for</span>(FunToFJSites::const_iterator it = funToFJSites.begin(), eit = funToFJSites.end(); it!=eit; ++it)</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  {</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="comment">// ScalarEvolution* SE = MTA::getSE(it->first);</span></div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="keywordflow">for</span>(CallInstSet::const_iterator sit = it->second.begin(), esit = it->second.end(); sit!=esit; ++sit)</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  {</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* callInst = *sit;</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>()-><a class="code" href="classSVF_1_1ThreadCallGraph.html#a07d3db6ffe8d75effd6fbc3856c484fe">isForksite</a>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a94d65f9e22a13772042b2af652cf5538">getCBN</a>(callInst)))</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  {</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *forkSiteTidPtr = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#acd4308b99446c277ccb3407103fe21d0">getForkedThread</a>(callInst);</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <span class="comment">// const SCEV *forkSiteTidPtrSCEV = SE->getSCEV(const_cast<Value*>(forkSiteTidPtr));</span></div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="comment">// const SCEV *baseForkTidPtrSCEV = SE->getSCEV(const_cast<Value*>(getBasePtr(forkSiteTidPtr)));</span></div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  <span class="comment">// forkSiteTidPtrSCEV = getSCEVMinusExpr(forkSiteTidPtrSCEV, baseForkTidPtrSCEV, SE);</span></div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <a class="code" href="classSVF_1_1PTASCEV.html">PTASCEV</a> scev(forkSiteTidPtr,<span class="keyword">nullptr</span>,<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4207948054a0f98560922f3f07ada10f">fkjnToPTASCEVMap</a>.insert(std::make_pair(callInst,scev));</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  }</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  {</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *joinSiteTidPtr = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ada1e56dfe2d64ea6310142a346c86ed4">getJoinedThread</a>(callInst);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="comment">//const SCEV *joinSiteTidPtrSCEV = SE->getSCEV(const_cast<Value*>(joinSiteTidPtr));</span></div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <span class="comment">//const SCEV *baseJoinTidPtrSCEV = SE->getSCEV(const_cast<Value*>(getBasePtr(joinSiteTidPtr)));</span></div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="comment">//joinSiteTidPtrSCEV = getSCEVMinusExpr(joinSiteTidPtrSCEV, baseJoinTidPtrSCEV, SE);</span></div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span> </div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <a class="code" href="classSVF_1_1PTASCEV.html">PTASCEV</a> scev(joinSiteTidPtr,<span class="keyword">nullptr</span>,<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4207948054a0f98560922f3f07ada10f">fkjnToPTASCEVMap</a>.insert(std::make_pair(callInst,scev));</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  }</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  }</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span> </div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  }</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span> }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a4207948054a0f98560922f3f07ada10f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a4207948054a0f98560922f3f07ada10f">SVF::ForkJoinAnalysis::fkjnToPTASCEVMap</a></div><div class="ttdeci">forkjoinToPTASCEVMap fkjnToPTASCEVMap</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00550">MHP.h:550</a></div></div>
|
|
792
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ada1e56dfe2d64ea6310142a346c86ed4"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ada1e56dfe2d64ea6310142a346c86ed4">SVF::ForkJoinAnalysis::getJoinedThread</a></div><div class="ttdeci">const Value * getJoinedThread(const Instruction *call)</div><div class="ttdoc">Get joined thread. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00488">MHP.h:488</a></div></div>
|
|
793
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00539">MHP.h:539</a></div></div>
|
|
794
794
|
<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#l00277">ThreadCallGraph.h:277</a></div></div>
|
|
795
795
|
<div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00109">SVFBasicTypes.h:109</a></div></div>
|
|
796
796
|
<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#l00273">ThreadCallGraph.h:273</a></div></div>
|
|
@@ -798,11 +798,11 @@ Private Attributes</h2></td></tr>
|
|
|
798
798
|
<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="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
|
|
799
799
|
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00069">BasicTypes.h:69</a></div></div>
|
|
800
800
|
<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#l00285">ThreadCallGraph.h:285</a></div></div>
|
|
801
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a94d65f9e22a13772042b2af652cf5538"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a94d65f9e22a13772042b2af652cf5538">SVF::ForkJoinAnalysis::getCBN</a></div><div class="ttdeci">CallICFGNode * getCBN(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
801
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a94d65f9e22a13772042b2af652cf5538"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a94d65f9e22a13772042b2af652cf5538">SVF::ForkJoinAnalysis::getCBN</a></div><div class="ttdeci">CallICFGNode * getCBN(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00386">MHP.h:386</a></div></div>
|
|
802
802
|
<div class="ttc" id="classSVF_1_1TCT_html_a1602d02773578bca73dcbd29b95c67d0"><div class="ttname"><a href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">SVF::TCT::getThreadCallGraph</a></div><div class="ttdeci">ThreadCallGraph * getThreadCallGraph() const</div><div class="ttdoc">Get TCG. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00167">TCT.h:167</a></div></div>
|
|
803
803
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a07d3db6ffe8d75effd6fbc3856c484fe"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a07d3db6ffe8d75effd6fbc3856c484fe">SVF::ThreadCallGraph::isForksite</a></div><div class="ttdeci">bool isForksite(const CallICFGNode *csInst)</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00257">ThreadCallGraph.h:257</a></div></div>
|
|
804
804
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a50502f398e5eac9c6da3e26ea6052057"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a50502f398e5eac9c6da3e26ea6052057">SVF::ThreadCallGraph::joinsitesEnd</a></div><div class="ttdeci">CallSiteSet::const_iterator joinsitesEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00289">ThreadCallGraph.h:289</a></div></div>
|
|
805
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_acd4308b99446c277ccb3407103fe21d0"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#acd4308b99446c277ccb3407103fe21d0">SVF::ForkJoinAnalysis::getForkedThread</a></div><div class="ttdeci">const Value * getForkedThread(const Instruction *call)</div><div class="ttdoc">Get forked thread. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
805
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_acd4308b99446c277ccb3407103fe21d0"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#acd4308b99446c277ccb3407103fe21d0">SVF::ForkJoinAnalysis::getForkedThread</a></div><div class="ttdeci">const Value * getForkedThread(const Instruction *call)</div><div class="ttdoc">Get forked thread. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00483">MHP.h:483</a></div></div>
|
|
806
806
|
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00068">BasicTypes.h:68</a></div></div>
|
|
807
807
|
<div class="ttc" id="classSVF_1_1PTASCEV_html"><div class="ttname"><a href="classSVF_1_1PTASCEV.html">SVF::PTASCEV</a></div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00044">DataFlowUtil.h:44</a></div></div>
|
|
808
808
|
</div><!-- fragment -->
|
|
@@ -842,9 +842,9 @@ Private Attributes</h2></td></tr>
|
|
|
842
842
|
</table>
|
|
843
843
|
</div><div class="memdoc">
|
|
844
844
|
|
|
845
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
846
|
-
<div class="fragment"><div class="line"><a name="
|
|
847
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
845
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00492">492</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
846
|
+
<div class="fragment"><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#a317e09edb29b110cf4273009551d31ec">getCallees</a>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a94d65f9e22a13772042b2af652cf5538">getCBN</a>(inst), callees);</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keywordflow">return</span> callees;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a94d65f9e22a13772042b2af652cf5538"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a94d65f9e22a13772042b2af652cf5538">SVF::ForkJoinAnalysis::getCBN</a></div><div class="ttdeci">CallICFGNode * getCBN(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00386">MHP.h:386</a></div></div>
|
|
847
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00498">MHP.h:498</a></div></div>
|
|
848
848
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a317e09edb29b110cf4273009551d31ec"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a317e09edb29b110cf4273009551d31ec">SVF::PTACallGraph::getCallees</a></div><div class="ttdeci">void getCallees(const CallICFGNode *cs, FunctionSet &callees)</div><div class="ttdoc">Get all callees for a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00382">PTACallGraph.h:382</a></div></div>
|
|
849
849
|
</div><!-- fragment -->
|
|
850
850
|
</div>
|
|
@@ -873,8 +873,8 @@ Private Attributes</h2></td></tr>
|
|
|
873
873
|
</table>
|
|
874
874
|
</div><div class="memdoc">
|
|
875
875
|
|
|
876
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
877
|
-
<div class="fragment"><div class="line"><a name="
|
|
876
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00386">386</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
877
|
+
<div class="fragment"><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">getCallICFGNode</a>(inst);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00539">MHP.h:539</a></div></div>
|
|
878
878
|
<div class="ttc" id="classSVF_1_1TCT_html_a238810a60f1010c5177e01683c8c1159"><div class="ttname"><a href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">SVF::TCT::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const Instruction *inst)</div><div class="ttdoc">Get CallICFGNode given inst. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00151">TCT.h:151</a></div></div>
|
|
879
879
|
</div><!-- fragment -->
|
|
880
880
|
</div>
|
|
@@ -901,17 +901,17 @@ Private Attributes</h2></td></tr>
|
|
|
901
901
|
<p class="definition">Definition at line <a class="el" href="MHP_8cpp_source.html#l00968">968</a> of file <a class="el" href="MHP_8cpp_source.html">MHP.cpp</a>.</p>
|
|
902
902
|
<div class="fragment"><div class="line"><a name="l00969"></a><span class="lineno"> 969</span> {</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span> </div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  CxtStmtToTIDMap::const_iterator it = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ab5678bd46e573070827cc413f0e0d5be">dirAndIndJoinMap</a>.find(cs);</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ab5678bd46e573070827cc413f0e0d5be">dirAndIndJoinMap</a>.end())</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span> </div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>& directJoinTids = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a819ef18524ee9104b920d1a465c61da1">getDirectlyJoinedTid</a>(cs);</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> allJoinTids = directJoinTids;</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span> </div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList<NodeID></a> worklist;</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  <span class="keywordflow">for</span>(NodeBS::iterator it = directJoinTids.begin(), eit = directJoinTids.end(); it!=eit; ++it)</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  {</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(*it);</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  }</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span> </div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  <span class="keywordflow">while</span>(!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  {</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> tid = worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <a class="code" href="classSVF_1_1TCTNode.html">TCTNode</a>* node = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(tid);</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  <span class="keywordflow">for</span>(TCT::ThreadCreateEdgeSet::const_iterator it = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a511c2ee4cfdc01a720135b2cd493fe3b">getChildrenBegin</a>(node), eit = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#af47837e30a80e8d6684f3ee6001afb7a">getChildrenEnd</a>(node); it!=eit; ++it)</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  {</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> childTid = (*it)->getDstID();</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ab55532eefbcef639ced957ad82fbd340">isFullJoin</a>(tid,childTid))</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  {</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  allJoinTids.set(childTid);</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(childTid);</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  }</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  }</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  }</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span> </div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ab5678bd46e573070827cc413f0e0d5be">dirAndIndJoinMap</a>[cs] = allJoinTids;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> </div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  <span class="keywordflow">return</span> allJoinTids;</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> }</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
|
|
903
903
|
<div class="ttc" id="classSVF_1_1TCT_html_a511c2ee4cfdc01a720135b2cd493fe3b"><div class="ttname"><a href="classSVF_1_1TCT.html#a511c2ee4cfdc01a720135b2cd493fe3b">SVF::TCT::getChildrenBegin</a></div><div class="ttdeci">ThreadCreateEdgeSet::const_iterator getChildrenBegin(const TCTNode *node) const</div><div class="ttdoc">Get children and parent nodes. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00188">TCT.h:188</a></div></div>
|
|
904
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
904
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00539">MHP.h:539</a></div></div>
|
|
905
905
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
|
|
906
906
|
<div class="ttc" id="classSVF_1_1TCTNode_html"><div class="ttname"><a href="classSVF_1_1TCTNode.html">SVF::TCTNode</a></div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00066">TCT.h:66</a></div></div>
|
|
907
907
|
<div class="ttc" id="classSVF_1_1TCT_html_a7b4ad0b052e1f8b6869733eef15f4e4d"><div class="ttname"><a href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">SVF::TCT::getTCTNode</a></div><div class="ttdeci">TCTNode * getTCTNode(NodeID id) const</div><div class="ttdoc">Get TCT node. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00177">TCT.h:177</a></div></div>
|
|
908
908
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_ad4c6a48b60c870d63049fe7272cc7eb8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(Data data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00159">WorkList.h:159</a></div></div>
|
|
909
909
|
<div class="ttc" id="classSVF_1_1TCT_html_af47837e30a80e8d6684f3ee6001afb7a"><div class="ttname"><a href="classSVF_1_1TCT.html#af47837e30a80e8d6684f3ee6001afb7a">SVF::TCT::getChildrenEnd</a></div><div class="ttdeci">ThreadCreateEdgeSet::const_iterator getChildrenEnd(const TCTNode *node) const</div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00192">TCT.h:192</a></div></div>
|
|
910
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ab55532eefbcef639ced957ad82fbd340"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ab55532eefbcef639ced957ad82fbd340">SVF::ForkJoinAnalysis::isFullJoin</a></div><div class="ttdeci">bool isFullJoin(NodeID tid1, NodeID tid2)</div><div class="ttdoc">Whether t1 fully joins t2. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
910
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ab55532eefbcef639ced957ad82fbd340"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ab55532eefbcef639ced957ad82fbd340">SVF::ForkJoinAnalysis::isFullJoin</a></div><div class="ttdeci">bool isFullJoin(NodeID tid1, NodeID tid2)</div><div class="ttdoc">Whether t1 fully joins t2. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00329">MHP.h:329</a></div></div>
|
|
911
911
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html">SVF::FIFOWorkList< NodeID ></a></div></div>
|
|
912
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ab5678bd46e573070827cc413f0e0d5be"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ab5678bd46e573070827cc413f0e0d5be">SVF::ForkJoinAnalysis::dirAndIndJoinMap</a></div><div class="ttdeci">CxtStmtToTIDMap dirAndIndJoinMap</div><div class="ttdoc">maps a context-sensitive join site to directly and indirectly joined thread ids </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
912
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ab5678bd46e573070827cc413f0e0d5be"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ab5678bd46e573070827cc413f0e0d5be">SVF::ForkJoinAnalysis::dirAndIndJoinMap</a></div><div class="ttdeci">CxtStmtToTIDMap dirAndIndJoinMap</div><div class="ttdoc">maps a context-sensitive join site to directly and indirectly joined thread ids </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00543">MHP.h:543</a></div></div>
|
|
913
913
|
<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#l00095">SVFBasicTypes.h:95</a></div></div>
|
|
914
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a819ef18524ee9104b920d1a465c61da1"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a819ef18524ee9104b920d1a465c61da1">SVF::ForkJoinAnalysis::getDirectlyJoinedTid</a></div><div class="ttdeci">NodeBS & getDirectlyJoinedTid(const CxtStmt &cs)</div><div class="ttdoc">Get directly joined threadIDs based on a context-sensitive join site. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
914
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a819ef18524ee9104b920d1a465c61da1"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a819ef18524ee9104b920d1a465c61da1">SVF::ForkJoinAnalysis::getDirectlyJoinedTid</a></div><div class="ttdeci">NodeBS & getDirectlyJoinedTid(const CxtStmt &cs)</div><div class="ttdoc">Get directly joined threadIDs based on a context-sensitive join site. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00304">MHP.h:304</a></div></div>
|
|
915
915
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00174">WorkList.h:174</a></div></div>
|
|
916
916
|
</div><!-- fragment -->
|
|
917
917
|
</div>
|
|
@@ -942,8 +942,8 @@ Private Attributes</h2></td></tr>
|
|
|
942
942
|
|
|
943
943
|
<p>Get directly joined threadIDs based on a context-sensitive join site. </p>
|
|
944
944
|
|
|
945
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
946
|
-
<div class="fragment"><div class="line"><a name="
|
|
945
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00304">304</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
946
|
+
<div class="fragment"><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#abf5b499f93a658636d09a62d14a47cad">directJoinMap</a>[cs];</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_abf5b499f93a658636d09a62d14a47cad"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#abf5b499f93a658636d09a62d14a47cad">SVF::ForkJoinAnalysis::directJoinMap</a></div><div class="ttdeci">CxtStmtToTIDMap directJoinMap</div><div class="ttdoc">maps a context-sensitive join site to directly joined thread ids </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00542">MHP.h:542</a></div></div>
|
|
947
947
|
</div><!-- fragment -->
|
|
948
948
|
</div>
|
|
949
949
|
</div>
|
|
@@ -973,10 +973,10 @@ Private Attributes</h2></td></tr>
|
|
|
973
973
|
|
|
974
974
|
<p>Get exit instruction of the start routine function of tid's parent thread. </p>
|
|
975
975
|
|
|
976
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
977
|
-
<div class="fragment"><div class="line"><a name="
|
|
976
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00339">339</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
977
|
+
<div class="fragment"><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  {</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> parentTid = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a516578af1f8666ff672e6611e61d7152">getParentThread</a>(tid);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keyword">const</span> CxtThread& parentct = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(parentTid)-><a class="code" href="classSVF_1_1TCTNode.html#a21591b19f6a9267151c31178f9543ee6">getCxtThread</a>();</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* parentRoutine = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a7ccacac1c673b38215b90e4eb480581f">getStartRoutineOfCxtThread</a>(parentct);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">return</span> &(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a3cb226930eeaf558575e09e5b65e0223">SVFUtil::getFunExitBB</a>(parentRoutine)->back());</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  }</div><div class="ttc" id="classSVF_1_1TCT_html_a7ccacac1c673b38215b90e4eb480581f"><div class="ttname"><a href="classSVF_1_1TCT.html#a7ccacac1c673b38215b90e4eb480581f">SVF::TCT::getStartRoutineOfCxtThread</a></div><div class="ttdeci">const Function * getStartRoutineOfCxtThread(const CxtThread &ct) const</div><div class="ttdoc">get the start routine function of a thread </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00339">TCT.h:339</a></div></div>
|
|
978
978
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
|
|
979
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
979
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00539">MHP.h:539</a></div></div>
|
|
980
980
|
<div class="ttc" id="classSVF_1_1TCT_html_a7b4ad0b052e1f8b6869733eef15f4e4d"><div class="ttname"><a href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">SVF::TCT::getTCTNode</a></div><div class="ttdeci">TCTNode * getTCTNode(NodeID id) const</div><div class="ttdoc">Get TCT node. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00177">TCT.h:177</a></div></div>
|
|
981
981
|
<div class="ttc" id="classSVF_1_1TCTNode_html_a21591b19f6a9267151c31178f9543ee6"><div class="ttname"><a href="classSVF_1_1TCTNode.html#a21591b19f6a9267151c31178f9543ee6">SVF::TCTNode::getCxtThread</a></div><div class="ttdeci">const CxtThread & getCxtThread() const</div><div class="ttdoc">Get CxtThread. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00082">TCT.h:82</a></div></div>
|
|
982
982
|
<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="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
|
|
@@ -1011,10 +1011,10 @@ Private Attributes</h2></td></tr>
|
|
|
1011
1011
|
|
|
1012
1012
|
<p>Get forked thread. </p>
|
|
1013
1013
|
|
|
1014
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
1015
|
-
<div class="fragment"><div class="line"><a name="
|
|
1014
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00483">483</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
1015
|
+
<div class="fragment"><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  {</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-><a class="code" href="classSVF_1_1ThreadCallGraph.html#adcad8524a53baf256cd45503ec568c10">getThreadAPI</a>()-><a class="code" href="classSVF_1_1ThreadAPI.html#a11dc55f35c18bd1f46d00c21c7dc695e">getForkedThread</a>(call);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  }</div><div class="ttc" id="classSVF_1_1ThreadCallGraph_html_adcad8524a53baf256cd45503ec568c10"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#adcad8524a53baf256cd45503ec568c10">SVF::ThreadCallGraph::getThreadAPI</a></div><div class="ttdeci">ThreadAPI * getThreadAPI() const</div><div class="ttdoc">Thread API. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00324">ThreadCallGraph.h:324</a></div></div>
|
|
1016
1016
|
<div class="ttc" id="classSVF_1_1ThreadAPI_html_a11dc55f35c18bd1f46d00c21c7dc695e"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a11dc55f35c18bd1f46d00c21c7dc695e">SVF::ThreadAPI::getForkedThread</a></div><div class="ttdeci">const Value * getForkedThread(const Instruction *inst) const</div><div class="ttdoc">Return arguments/attributes of pthread_create / hare_parallel_for. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00155">ThreadAPI.h:155</a></div></div>
|
|
1017
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1017
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00498">MHP.h:498</a></div></div>
|
|
1018
1018
|
</div><!-- fragment -->
|
|
1019
1019
|
</div>
|
|
1020
1020
|
</div>
|
|
@@ -1044,10 +1044,10 @@ Private Attributes</h2></td></tr>
|
|
|
1044
1044
|
|
|
1045
1045
|
<p>Get joined thread. </p>
|
|
1046
1046
|
|
|
1047
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
1048
|
-
<div class="fragment"><div class="line"><a name="
|
|
1047
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00488">488</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
1048
|
+
<div class="fragment"><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  {</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-><a class="code" href="classSVF_1_1ThreadCallGraph.html#adcad8524a53baf256cd45503ec568c10">getThreadAPI</a>()-><a class="code" href="classSVF_1_1ThreadAPI.html#ac9f3cc080275ce7d76dd2f56fc7c6434">getJoinedThread</a>(call);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  }</div><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>
|
|
1049
1049
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_adcad8524a53baf256cd45503ec568c10"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#adcad8524a53baf256cd45503ec568c10">SVF::ThreadCallGraph::getThreadAPI</a></div><div class="ttdeci">ThreadAPI * getThreadAPI() const</div><div class="ttdoc">Thread API. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00324">ThreadCallGraph.h:324</a></div></div>
|
|
1050
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1050
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00498">MHP.h:498</a></div></div>
|
|
1051
1051
|
</div><!-- fragment -->
|
|
1052
1052
|
</div>
|
|
1053
1053
|
</div>
|
|
@@ -1077,8 +1077,8 @@ Private Attributes</h2></td></tr>
|
|
|
1077
1077
|
|
|
1078
1078
|
<p>Get loop for join site. </p>
|
|
1079
1079
|
|
|
1080
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
1081
|
-
<div class="fragment"><div class="line"><a name="
|
|
1080
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00348">348</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
1081
|
+
<div class="fragment"><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  {</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a52a707bf6f278e810f440c279f5261dc">getJoinLoop</a>(inst);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00539">MHP.h:539</a></div></div>
|
|
1082
1082
|
<div class="ttc" id="classSVF_1_1TCT_html_a52a707bf6f278e810f440c279f5261dc"><div class="ttname"><a href="classSVF_1_1TCT.html#a52a707bf6f278e810f440c279f5261dc">SVF::TCT::getJoinLoop</a></div><div class="ttdeci">const Loop * getJoinLoop(const Instruction *join)</div><div class="ttdoc">Get loop for join site. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00347">TCT.h:347</a></div></div>
|
|
1083
1083
|
</div><!-- fragment -->
|
|
1084
1084
|
</div>
|
|
@@ -1110,9 +1110,9 @@ Private Attributes</h2></td></tr>
|
|
|
1110
1110
|
<p>Mark thread flags for cxtStmt. </p>
|
|
1111
1111
|
<p>Get the flag for a cxtStmt </p>
|
|
1112
1112
|
|
|
1113
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
1114
|
-
<div class="fragment"><div class="line"><a name="
|
|
1115
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631a9d940442c782d5a1297102209540182f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a9d940442c782d5a1297102209540182f">SVF::ForkJoinAnalysis::Empty</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1113
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00393">393</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
1114
|
+
<div class="fragment"><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  {</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  CxtStmtToAliveFlagMap::const_iterator it = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aa31b3f3d51b963ccd475e66b77143dba">cxtStmtToAliveFlagMap</a>.find(cs);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordflow">if</span>(it==<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aa31b3f3d51b963ccd475e66b77143dba">cxtStmtToAliveFlagMap</a>.end())</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  {</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aa31b3f3d51b963ccd475e66b77143dba">cxtStmtToAliveFlagMap</a>[cs] = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a9d940442c782d5a1297102209540182f">Empty</a>;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a9d940442c782d5a1297102209540182f">Empty</a>;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  }</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aa31b3f3d51b963ccd475e66b77143dba"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aa31b3f3d51b963ccd475e66b77143dba">SVF::ForkJoinAnalysis::cxtStmtToAliveFlagMap</a></div><div class="ttdeci">CxtStmtToAliveFlagMap cxtStmtToAliveFlagMap</div><div class="ttdoc">flags for context-sensitive statements </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00540">MHP.h:540</a></div></div>
|
|
1115
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631a9d940442c782d5a1297102209540182f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a9d940442c782d5a1297102209540182f">SVF::ForkJoinAnalysis::Empty</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00279">MHP.h:279</a></div></div>
|
|
1116
1116
|
</div><!-- fragment -->
|
|
1117
1117
|
</div>
|
|
1118
1118
|
</div>
|
|
@@ -1152,9 +1152,9 @@ Private Attributes</h2></td></tr>
|
|
|
1152
1152
|
|
|
1153
1153
|
<p>Get the next instructions following control flow. </p>
|
|
1154
1154
|
|
|
1155
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
1156
|
-
<div class="fragment"><div class="line"><a name="
|
|
1157
|
-
<div class="ttc" id="classSVF_1_1TCT_html_a97c3081d0648a8d483b07f23bbd1b6bf"><div class="ttname"><a href="classSVF_1_1TCT.html#a97c3081d0648a8d483b07f23bbd1b6bf">SVF::TCT::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *inst, InstVec &instSet)</div><div class="ttdoc">Get the next instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#
|
|
1155
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00457">457</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
1156
|
+
<div class="fragment"><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  {</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a97c3081d0648a8d483b07f23bbd1b6bf">getNextInsts</a>(inst,instSet);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00539">MHP.h:539</a></div></div>
|
|
1157
|
+
<div class="ttc" id="classSVF_1_1TCT_html_a97c3081d0648a8d483b07f23bbd1b6bf"><div class="ttname"><a href="classSVF_1_1TCT.html#a97c3081d0648a8d483b07f23bbd1b6bf">SVF::TCT::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *inst, InstVec &instSet)</div><div class="ttdoc">Get the next instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#l00448">TCT.cpp:448</a></div></div>
|
|
1158
1158
|
</div><!-- fragment -->
|
|
1159
1159
|
</div>
|
|
1160
1160
|
</div>
|
|
@@ -1184,9 +1184,9 @@ Private Attributes</h2></td></tr>
|
|
|
1184
1184
|
|
|
1185
1185
|
<p>Get SE for function. </p>
|
|
1186
1186
|
|
|
1187
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
1188
|
-
<div class="fragment"><div class="line"><a name="
|
|
1189
|
-
<div class="ttc" id="classSVF_1_1TCT_html_ac66b3a193240c17c3f06437442b2d8bf"><div class="ttname"><a href="classSVF_1_1TCT.html#ac66b3a193240c17c3f06437442b2d8bf">SVF::TCT::getSE</a></div><div class="ttdeci">ScalarEvolution * getSE(const Instruction *inst)</div><div class="ttdoc">Get SE for function. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#
|
|
1187
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00353">353</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
1188
|
+
<div class="fragment"><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#ac66b3a193240c17c3f06437442b2d8bf">getSE</a>(inst);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00539">MHP.h:539</a></div></div>
|
|
1189
|
+
<div class="ttc" id="classSVF_1_1TCT_html_ac66b3a193240c17c3f06437442b2d8bf"><div class="ttname"><a href="classSVF_1_1TCT.html#ac66b3a193240c17c3f06437442b2d8bf">SVF::TCT::getSE</a></div><div class="ttdeci">ScalarEvolution * getSE(const Instruction *inst)</div><div class="ttdoc">Get SE for function. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#l00378">TCT.cpp:378</a></div></div>
|
|
1190
1190
|
</div><!-- fragment -->
|
|
1191
1191
|
</div>
|
|
1192
1192
|
</div>
|
|
@@ -1215,8 +1215,8 @@ Private Attributes</h2></td></tr>
|
|
|
1215
1215
|
|
|
1216
1216
|
<p><a class="el" href="classSVF_1_1ThreadCallGraph.html">ThreadCallGraph</a>. </p>
|
|
1217
1217
|
|
|
1218
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
1219
|
-
<div class="fragment"><div class="line"><a name="
|
|
1218
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00498">498</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
1219
|
+
<div class="fragment"><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  {</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>();</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00539">MHP.h:539</a></div></div>
|
|
1220
1220
|
<div class="ttc" id="classSVF_1_1TCT_html_a1602d02773578bca73dcbd29b95c67d0"><div class="ttname"><a href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">SVF::TCT::getThreadCallGraph</a></div><div class="ttdeci">ThreadCallGraph * getThreadCallGraph() const</div><div class="ttdoc">Get TCG. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00167">TCT.h:167</a></div></div>
|
|
1221
1221
|
</div><!-- fragment -->
|
|
1222
1222
|
</div>
|
|
@@ -1258,19 +1258,19 @@ Private Attributes</h2></td></tr>
|
|
|
1258
1258
|
<p>Handle call. </p>
|
|
1259
1259
|
|
|
1260
1260
|
<p class="definition">Definition at line <a class="el" href="MHP_8cpp_source.html#l00878">878</a> of file <a class="el" href="MHP_8cpp_source.html">MHP.cpp</a>.</p>
|
|
1261
|
-
<div class="fragment"><div class="line"><a name="l00879"></a><span class="lineno"> 879</span> {</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span> </div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>* call = SVFUtil::cast<CallInst>(cts.<a class="code" href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">getStmt</a>());</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>& curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a94d65f9e22a13772042b2af652cf5538">getCBN</a>(call);</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()->hasCallGraphEdge(cbn))</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  {</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  <span class="keywordflow">for</span> (PTACallGraph::CallGraphEdgeSet::const_iterator cgIt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()->getCallEdgeBegin(cbn),</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  ecgIt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()->getCallEdgeEnd(cbn); cgIt != ecgIt; ++cgIt)</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  {</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcallee = (*cgIt)->getDstNode()->getFunction();</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = svfcallee-><a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>();</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(svfcallee))</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aaf70954762aa86f835d799994726790e">pushCxt</a>(newCxt,call,callee);</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt,&(callee->getEntryBlock().front()));</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,cts);</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  }</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  }</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span> }</div><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="Util_2BasicTypes_8h_source.html#
|
|
1262
|
-
<div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdoc">LLVM Instructions. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
1261
|
+
<div class="fragment"><div class="line"><a name="l00879"></a><span class="lineno"> 879</span> {</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span> </div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>* call = SVFUtil::cast<CallInst>(cts.<a class="code" href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">getStmt</a>());</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>& curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a94d65f9e22a13772042b2af652cf5538">getCBN</a>(call);</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()->hasCallGraphEdge(cbn))</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  {</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  <span class="keywordflow">for</span> (PTACallGraph::CallGraphEdgeSet::const_iterator cgIt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()->getCallEdgeBegin(cbn),</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  ecgIt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()->getCallEdgeEnd(cbn); cgIt != ecgIt; ++cgIt)</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  {</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcallee = (*cgIt)->getDstNode()->getFunction();</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = svfcallee-><a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>();</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(svfcallee))</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aaf70954762aa86f835d799994726790e">pushCxt</a>(newCxt,call,callee);</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt,&(callee->getEntryBlock().front()));</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,cts);</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  }</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  }</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span> }</div><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="Util_2BasicTypes_8h_source.html#l00132">BasicTypes.h:132</a></div></div>
|
|
1262
|
+
<div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdoc">LLVM Instructions. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00105">BasicTypes.h:105</a></div></div>
|
|
1263
1263
|
<div class="ttc" id="classSVF_1_1CxtStmt_html_a5e8c4b10eb5c3240d2e21a020ed834a6"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">SVF::CxtStmt::getStmt</a></div><div class="ttdeci">const Instruction * getStmt() const</div><div class="ttdoc">Return current statement. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00062">CxtStmt.h:62</a></div></div>
|
|
1264
1264
|
<div class="ttc" id="namespaceSVF_html_ab700523619b089b952498f39a7f5b6b1"><div class="ttname"><a href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">SVF::CallStrCxt</a></div><div class="ttdeci">std::vector< u32_t > CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00130">SVFBasicTypes.h:130</a></div></div>
|
|
1265
1265
|
<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="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
|
|
1266
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ac483d3b0e9084c2033e177eda9ac9215"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">SVF::ForkJoinAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &tgr, ValDomain flag)</div><div class="ttdoc">Initialize TDAlive and TDDead flags. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1267
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aaf70954762aa86f835d799994726790e"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aaf70954762aa86f835d799994726790e">SVF::ForkJoinAnalysis::pushCxt</a></div><div class="ttdeci">void pushCxt(CallStrCxt &cxt, const Instruction *call, const Function *callee)</div><div class="ttdoc">Push calling context. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1266
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ac483d3b0e9084c2033e177eda9ac9215"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">SVF::ForkJoinAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &tgr, ValDomain flag)</div><div class="ttdoc">Initialize TDAlive and TDDead flags. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00405">MHP.h:405</a></div></div>
|
|
1267
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aaf70954762aa86f835d799994726790e"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aaf70954762aa86f835d799994726790e">SVF::ForkJoinAnalysis::pushCxt</a></div><div class="ttdeci">void pushCxt(CallStrCxt &cxt, const Instruction *call, const Function *callee)</div><div class="ttdoc">Push calling context. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00462">MHP.h:462</a></div></div>
|
|
1268
1268
|
<div class="ttc" id="classSVF_1_1CxtStmt_html"><div class="ttname"><a href="classSVF_1_1CxtStmt.html">SVF::CxtStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00041">CxtStmt.h:41</a></div></div>
|
|
1269
1269
|
<div class="ttc" id="classSVF_1_1CxtStmt_html_a3ce19b8f2de2e199ed4165dbe9d21f28"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">SVF::CxtStmt::getContext</a></div><div class="ttdeci">const CallStrCxt & getContext() const</div><div class="ttdoc">Return current context. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00057">CxtStmt.h:57</a></div></div>
|
|
1270
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a94d65f9e22a13772042b2af652cf5538"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a94d65f9e22a13772042b2af652cf5538">SVF::ForkJoinAnalysis::getCBN</a></div><div class="ttdeci">CallICFGNode * getCBN(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1270
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a94d65f9e22a13772042b2af652cf5538"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a94d65f9e22a13772042b2af652cf5538">SVF::ForkJoinAnalysis::getCBN</a></div><div class="ttdeci">CallICFGNode * getCBN(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00386">MHP.h:386</a></div></div>
|
|
1271
1271
|
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
|
|
1272
|
-
<div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
1273
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1272
|
+
<div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00148">BasicTypes.h:148</a></div></div>
|
|
1273
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00498">MHP.h:498</a></div></div>
|
|
1274
1274
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00072">LLVMUtil.h:72</a></div></div>
|
|
1275
1275
|
</div><!-- fragment -->
|
|
1276
1276
|
</div>
|
|
@@ -1312,25 +1312,25 @@ Private Attributes</h2></td></tr>
|
|
|
1312
1312
|
<p>Handle fork. </p>
|
|
1313
1313
|
|
|
1314
1314
|
<p class="definition">Definition at line <a class="el" href="MHP_8cpp_source.html#l00792">792</a> of file <a class="el" href="MHP_8cpp_source.html">MHP.cpp</a>.</p>
|
|
1315
|
-
<div class="fragment"><div class="line"><a name="l00793"></a><span class="lineno"> 793</span> {</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>* call = SVFUtil::cast<CallInst>(cts.<a class="code" href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">getStmt</a>());</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>& curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span> </div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aff32f240a03421937c2fc606359dca9b">isTDFork</a>(call));</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a94d65f9e22a13772042b2af652cf5538">getCBN</a>(call);</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()->hasThreadForkEdge(cbn))</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  {</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="keywordflow">for</span> (ThreadCallGraph::ForkEdgeSet::const_iterator cgIt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()->getForkEdgeBegin(cbn),</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  ecgIt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()->getForkEdgeEnd(cbn); cgIt != ecgIt; ++cgIt)</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  {</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = (*cgIt)->getDstNode()->getFunction()->getLLVMFun();</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aaf70954762aa86f835d799994726790e">pushCxt</a>(newCxt,call,callee);</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  <a class="code" href="classSVF_1_1CxtThread.html">CxtThread</a> ct(newCxt,call);</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">getMarkedFlag</a>(cts)!=<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">TDAlive</a>)</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a647ae6866bb37be850f0bdd5a7341188">addToHBPair</a>(rootTid,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(ct)-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a1505ba82206169f76ea239067797d6c2">addToHPPair</a>(rootTid,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(ct)-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  }</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  }</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#add09218cce8d8bd8dd9e73b2d26a5797">handleIntra</a>(cts);</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span> }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a1505ba82206169f76ea239067797d6c2"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a1505ba82206169f76ea239067797d6c2">SVF::ForkJoinAnalysis::addToHPPair</a></div><div class="ttdeci">void addToHPPair(NodeID tid1, NodeID tid2)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1316
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a149114898b13e1430c8fbb60978ca4f5"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">SVF::ForkJoinAnalysis::getMarkedFlag</a></div><div class="ttdeci">ValDomain getMarkedFlag(const CxtStmt &cs)</div><div class="ttdoc">Mark thread flags for cxtStmt. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1317
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1315
|
+
<div class="fragment"><div class="line"><a name="l00793"></a><span class="lineno"> 793</span> {</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>* call = SVFUtil::cast<CallInst>(cts.<a class="code" href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">getStmt</a>());</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>& curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span> </div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aff32f240a03421937c2fc606359dca9b">isTDFork</a>(call));</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a94d65f9e22a13772042b2af652cf5538">getCBN</a>(call);</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()->hasThreadForkEdge(cbn))</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  {</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="keywordflow">for</span> (ThreadCallGraph::ForkEdgeSet::const_iterator cgIt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()->getForkEdgeBegin(cbn),</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  ecgIt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()->getForkEdgeEnd(cbn); cgIt != ecgIt; ++cgIt)</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  {</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = (*cgIt)->getDstNode()->getFunction()->getLLVMFun();</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aaf70954762aa86f835d799994726790e">pushCxt</a>(newCxt,call,callee);</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  <a class="code" href="classSVF_1_1CxtThread.html">CxtThread</a> ct(newCxt,call);</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">getMarkedFlag</a>(cts)!=<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">TDAlive</a>)</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a647ae6866bb37be850f0bdd5a7341188">addToHBPair</a>(rootTid,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(ct)-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a1505ba82206169f76ea239067797d6c2">addToHPPair</a>(rootTid,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(ct)-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  }</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  }</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#add09218cce8d8bd8dd9e73b2d26a5797">handleIntra</a>(cts);</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span> }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a1505ba82206169f76ea239067797d6c2"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a1505ba82206169f76ea239067797d6c2">SVF::ForkJoinAnalysis::addToHPPair</a></div><div class="ttdeci">void addToHPPair(NodeID tid1, NodeID tid2)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00511">MHP.h:511</a></div></div>
|
|
1316
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a149114898b13e1430c8fbb60978ca4f5"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">SVF::ForkJoinAnalysis::getMarkedFlag</a></div><div class="ttdeci">ValDomain getMarkedFlag(const CxtStmt &cs)</div><div class="ttdoc">Mark thread flags for cxtStmt. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00393">MHP.h:393</a></div></div>
|
|
1317
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00539">MHP.h:539</a></div></div>
|
|
1318
1318
|
<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>
|
|
1319
1319
|
<div class="ttc" id="classSVF_1_1CxtThread_html"><div class="ttname"><a href="classSVF_1_1CxtThread.html">SVF::CxtThread</a></div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00188">CxtStmt.h:188</a></div></div>
|
|
1320
|
-
<div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdoc">LLVM Instructions. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
1320
|
+
<div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdoc">LLVM Instructions. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00105">BasicTypes.h:105</a></div></div>
|
|
1321
1321
|
<div class="ttc" id="classSVF_1_1TCT_html_a7b4ad0b052e1f8b6869733eef15f4e4d"><div class="ttname"><a href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">SVF::TCT::getTCTNode</a></div><div class="ttdeci">TCTNode * getTCTNode(NodeID id) const</div><div class="ttdoc">Get TCT node. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00177">TCT.h:177</a></div></div>
|
|
1322
1322
|
<div class="ttc" id="classSVF_1_1CxtStmt_html_a5e8c4b10eb5c3240d2e21a020ed834a6"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">SVF::CxtStmt::getStmt</a></div><div class="ttdeci">const Instruction * getStmt() const</div><div class="ttdoc">Return current statement. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00062">CxtStmt.h:62</a></div></div>
|
|
1323
1323
|
<div class="ttc" id="namespaceSVF_html_ab700523619b089b952498f39a7f5b6b1"><div class="ttname"><a href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">SVF::CallStrCxt</a></div><div class="ttdeci">std::vector< u32_t > CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00130">SVFBasicTypes.h:130</a></div></div>
|
|
1324
1324
|
<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="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
|
|
1325
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aaf70954762aa86f835d799994726790e"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aaf70954762aa86f835d799994726790e">SVF::ForkJoinAnalysis::pushCxt</a></div><div class="ttdeci">void pushCxt(CallStrCxt &cxt, const Instruction *call, const Function *callee)</div><div class="ttdoc">Push calling context. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1325
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aaf70954762aa86f835d799994726790e"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aaf70954762aa86f835d799994726790e">SVF::ForkJoinAnalysis::pushCxt</a></div><div class="ttdeci">void pushCxt(CallStrCxt &cxt, const Instruction *call, const Function *callee)</div><div class="ttdoc">Push calling context. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00462">MHP.h:462</a></div></div>
|
|
1326
1326
|
<div class="ttc" id="classSVF_1_1CxtStmt_html_a3ce19b8f2de2e199ed4165dbe9d21f28"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">SVF::CxtStmt::getContext</a></div><div class="ttdeci">const CallStrCxt & getContext() const</div><div class="ttdoc">Return current context. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00057">CxtStmt.h:57</a></div></div>
|
|
1327
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a94d65f9e22a13772042b2af652cf5538"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a94d65f9e22a13772042b2af652cf5538">SVF::ForkJoinAnalysis::getCBN</a></div><div class="ttdeci">CallICFGNode * getCBN(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1327
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a94d65f9e22a13772042b2af652cf5538"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a94d65f9e22a13772042b2af652cf5538">SVF::ForkJoinAnalysis::getCBN</a></div><div class="ttdeci">CallICFGNode * getCBN(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00386">MHP.h:386</a></div></div>
|
|
1328
1328
|
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
|
|
1329
1329
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00169">GenericGraph.h:169</a></div></div>
|
|
1330
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aff32f240a03421937c2fc606359dca9b"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aff32f240a03421937c2fc606359dca9b">SVF::ForkJoinAnalysis::isTDFork</a></div><div class="ttdeci">bool isTDFork(const Instruction *call)</div><div class="ttdoc">Whether it is a fork site. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1331
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a647ae6866bb37be850f0bdd5a7341188"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a647ae6866bb37be850f0bdd5a7341188">SVF::ForkJoinAnalysis::addToHBPair</a></div><div class="ttdeci">void addToHBPair(NodeID tid1, NodeID tid2)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1332
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">SVF::ForkJoinAnalysis::TDAlive</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1333
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1330
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aff32f240a03421937c2fc606359dca9b"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aff32f240a03421937c2fc606359dca9b">SVF::ForkJoinAnalysis::isTDFork</a></div><div class="ttdeci">bool isTDFork(const Instruction *call)</div><div class="ttdoc">Whether it is a fork site. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00473">MHP.h:473</a></div></div>
|
|
1331
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a647ae6866bb37be850f0bdd5a7341188"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a647ae6866bb37be850f0bdd5a7341188">SVF::ForkJoinAnalysis::addToHBPair</a></div><div class="ttdeci">void addToHBPair(NodeID tid1, NodeID tid2)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00516">MHP.h:516</a></div></div>
|
|
1332
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">SVF::ForkJoinAnalysis::TDAlive</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00280">MHP.h:280</a></div></div>
|
|
1333
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00498">MHP.h:498</a></div></div>
|
|
1334
1334
|
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_add09218cce8d8bd8dd9e73b2d26a5797"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#add09218cce8d8bd8dd9e73b2d26a5797">SVF::ForkJoinAnalysis::handleIntra</a></div><div class="ttdeci">void handleIntra(const CxtStmt &cts)</div><div class="ttdoc">Handle intra. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l00948">MHP.cpp:948</a></div></div>
|
|
1335
1335
|
</div><!-- fragment -->
|
|
1336
1336
|
</div>
|
|
@@ -1362,12 +1362,12 @@ Private Attributes</h2></td></tr>
|
|
|
1362
1362
|
<p>Handle intra. </p>
|
|
1363
1363
|
|
|
1364
1364
|
<p class="definition">Definition at line <a class="el" href="MHP_8cpp_source.html#l00948">948</a> of file <a class="el" href="MHP_8cpp_source.html">MHP.cpp</a>.</p>
|
|
1365
|
-
<div class="fragment"><div class="line"><a name="l00949"></a><span class="lineno"> 949</span> {</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span> </div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* curInst = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">getStmt</a>();</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>& curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span> </div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">InstVec</a> nextInsts;</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a799e14292e16b9fb322cab07f3ff5593">getNextInsts</a>(curInst,nextInsts);</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  <span class="keywordflow">for</span>(InstVec::const_iterator nit = nextInsts.begin(), enit = nextInsts.end(); nit!=enit; ++nit)</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  {</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(curCxt,*nit);</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,cts);</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  }</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span> }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a613d763731058899e6819acdb2d7315f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">SVF::ForkJoinAnalysis::InstVec</a></div><div class="ttdeci">TCT::InstVec InstVec</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1366
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a799e14292e16b9fb322cab07f3ff5593"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a799e14292e16b9fb322cab07f3ff5593">SVF::ForkJoinAnalysis::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *inst, InstVec &instSet)</div><div class="ttdoc">Get the next instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1365
|
+
<div class="fragment"><div class="line"><a name="l00949"></a><span class="lineno"> 949</span> {</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span> </div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* curInst = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">getStmt</a>();</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>& curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span> </div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">InstVec</a> nextInsts;</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a799e14292e16b9fb322cab07f3ff5593">getNextInsts</a>(curInst,nextInsts);</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  <span class="keywordflow">for</span>(InstVec::const_iterator nit = nextInsts.begin(), enit = nextInsts.end(); nit!=enit; ++nit)</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  {</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(curCxt,*nit);</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,cts);</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  }</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span> }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a613d763731058899e6819acdb2d7315f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">SVF::ForkJoinAnalysis::InstVec</a></div><div class="ttdeci">TCT::InstVec InstVec</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00284">MHP.h:284</a></div></div>
|
|
1366
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a799e14292e16b9fb322cab07f3ff5593"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a799e14292e16b9fb322cab07f3ff5593">SVF::ForkJoinAnalysis::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *inst, InstVec &instSet)</div><div class="ttdoc">Get the next instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00457">MHP.h:457</a></div></div>
|
|
1367
1367
|
<div class="ttc" id="classSVF_1_1CxtStmt_html_a5e8c4b10eb5c3240d2e21a020ed834a6"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">SVF::CxtStmt::getStmt</a></div><div class="ttdeci">const Instruction * getStmt() const</div><div class="ttdoc">Return current statement. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00062">CxtStmt.h:62</a></div></div>
|
|
1368
1368
|
<div class="ttc" id="namespaceSVF_html_ab700523619b089b952498f39a7f5b6b1"><div class="ttname"><a href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">SVF::CallStrCxt</a></div><div class="ttdeci">std::vector< u32_t > CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00130">SVFBasicTypes.h:130</a></div></div>
|
|
1369
1369
|
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00069">BasicTypes.h:69</a></div></div>
|
|
1370
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ac483d3b0e9084c2033e177eda9ac9215"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">SVF::ForkJoinAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &tgr, ValDomain flag)</div><div class="ttdoc">Initialize TDAlive and TDDead flags. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1370
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ac483d3b0e9084c2033e177eda9ac9215"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">SVF::ForkJoinAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &tgr, ValDomain flag)</div><div class="ttdoc">Initialize TDAlive and TDDead flags. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00405">MHP.h:405</a></div></div>
|
|
1371
1371
|
<div class="ttc" id="classSVF_1_1CxtStmt_html"><div class="ttname"><a href="classSVF_1_1CxtStmt.html">SVF::CxtStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00041">CxtStmt.h:41</a></div></div>
|
|
1372
1372
|
<div class="ttc" id="classSVF_1_1CxtStmt_html_a3ce19b8f2de2e199ed4165dbe9d21f28"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">SVF::CxtStmt::getContext</a></div><div class="ttdeci">const CallStrCxt & getContext() const</div><div class="ttdoc">Return current context. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00057">CxtStmt.h:57</a></div></div>
|
|
1373
1373
|
</div><!-- fragment -->
|
|
@@ -1414,32 +1414,32 @@ Private Attributes</h2></td></tr>
|
|
|
1414
1414
|
<div class="fragment"><div class="line"><a name="l00819"></a><span class="lineno"> 819</span> {</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>* call = SVFUtil::cast<CallInst>(cts.<a class="code" href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">getStmt</a>());</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>& curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span> </div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aac722a42dc6e03e771a7a80de5f8ec94">isTDJoin</a>(call));</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a94d65f9e22a13772042b2af652cf5538">getCBN</a>(call);</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()->hasCallGraphEdge(cbn))</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  {</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* forkSite = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(rootTid)-><a class="code" href="classSVF_1_1TCTNode.html#a21591b19f6a9267151c31178f9543ee6">getCxtThread</a>().<a class="code" href="classSVF_1_1CxtThread.html#a066ba29a83edc1042139641ca088b038">getThread</a>();</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* joinSite = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">getStmt</a>();</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span> </div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a3655131add43346a175576b023e32509">isAliasedForkJoin</a>(forkSite, joinSite))</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  {</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">Loop</a>* joinLoop = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a3449439792a54c847c67b3041094db49">getJoinLoop</a>(joinSite))</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  {</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  <a class="code" href="namespaceSVF.html#a02be4933b76c2baa7fdbe8b290e12bb3">SmallBBVector</a> exitbbs;</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  joinLoop->getExitBlocks(exitbbs);</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  <span class="keywordflow">while</span>(!exitbbs.empty())</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  {</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* eb = exitbbs.pop_back_val();</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(curCxt,&(eb->front()));</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8aa2d4c83981007108b152d05e9c51fe">addDirectlyJoinTID</a>(cts,rootTid);</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4d073da3e5266964dad7422033013219">isSameSCEV</a>(forkSite,joinSite))</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  {</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4">TDDead</a>);</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ab302cceb28998623fed622560e50a740">addSymmetricLoopJoin</a>(cts,joinLoop);</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  }</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(cts,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">TDAlive</a>);</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  }</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  }</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  {</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(cts,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4">TDDead</a>);</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8aa2d4c83981007108b152d05e9c51fe">addDirectlyJoinTID</a>(cts,rootTid);</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n\t match join site "</span> << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVFUtil::value2String</a>(call) << <span class="stringliteral">"for thread "</span> << rootTid << <span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  }</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  }</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  {</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">Loop</a>* joinLoop = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a3449439792a54c847c67b3041094db49">getJoinLoop</a>(joinSite))</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  {</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  <a class="code" href="namespaceSVF.html#a02be4933b76c2baa7fdbe8b290e12bb3">SmallBBVector</a> exitbbs;</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  joinLoop->getExitBlocks(exitbbs);</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  <span class="keywordflow">while</span>(!exitbbs.empty())</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  {</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* eb = exitbbs.pop_back_val();</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(curCxt,&(eb->front()));</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,cts);</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  }</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  }</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  }</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  }</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#add09218cce8d8bd8dd9e73b2d26a5797">handleIntra</a>(cts);</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span> }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a4d073da3e5266964dad7422033013219"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a4d073da3e5266964dad7422033013219">SVF::ForkJoinAnalysis::isSameSCEV</a></div><div class="ttdeci">bool isSameSCEV(const Instruction *forkSite, const Instruction *joinSite)</div><div class="ttdoc">Return true if the fork and join have the same SCEV. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l01043">MHP.cpp:1043</a></div></div>
|
|
1415
1415
|
<div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
|
|
1416
1416
|
<div class="ttc" id="SVFBasicTypes_8h_html_a217a1ccdaec1abb103cf6b0373631234"><div class="ttname"><a href="SVFBasicTypes_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a></div><div class="ttdeci">#define DMTA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00174">SVFBasicTypes.h:174</a></div></div>
|
|
1417
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1417
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00539">MHP.h:539</a></div></div>
|
|
1418
1418
|
<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>
|
|
1419
1419
|
<div class="ttc" id="namespaceSVF_html_a02be4933b76c2baa7fdbe8b290e12bb3"><div class="ttname"><a href="namespaceSVF.html#a02be4933b76c2baa7fdbe8b290e12bb3">SVF::SmallBBVector</a></div><div class="ttdeci">llvm::SmallVector< llvm::BasicBlock *, 8 > SmallBBVector</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00118">SVFBasicTypes.h:118</a></div></div>
|
|
1420
1420
|
<div class="ttc" id="classSVF_1_1CxtThread_html_a066ba29a83edc1042139641ca088b038"><div class="ttname"><a href="classSVF_1_1CxtThread.html#a066ba29a83edc1042139641ca088b038">SVF::CxtThread::getThread</a></div><div class="ttdeci">const CallInst * getThread() const</div><div class="ttdoc">Return forksite. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00210">CxtStmt.h:210</a></div></div>
|
|
1421
|
-
<div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdoc">LLVM Instructions. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
1421
|
+
<div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdoc">LLVM Instructions. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00105">BasicTypes.h:105</a></div></div>
|
|
1422
1422
|
<div class="ttc" id="classSVF_1_1TCT_html_a7b4ad0b052e1f8b6869733eef15f4e4d"><div class="ttname"><a href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">SVF::TCT::getTCTNode</a></div><div class="ttdeci">TCTNode * getTCTNode(NodeID id) const</div><div class="ttdoc">Get TCT node. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00177">TCT.h:177</a></div></div>
|
|
1423
1423
|
<div class="ttc" id="classSVF_1_1TCTNode_html_a21591b19f6a9267151c31178f9543ee6"><div class="ttname"><a href="classSVF_1_1TCTNode.html#a21591b19f6a9267151c31178f9543ee6">SVF::TCTNode::getCxtThread</a></div><div class="ttdeci">const CxtThread & getCxtThread() const</div><div class="ttdoc">Get CxtThread. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00082">TCT.h:82</a></div></div>
|
|
1424
1424
|
<div class="ttc" id="classSVF_1_1CxtStmt_html_a5e8c4b10eb5c3240d2e21a020ed834a6"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">SVF::CxtStmt::getStmt</a></div><div class="ttdeci">const Instruction * getStmt() const</div><div class="ttdoc">Return current statement. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00062">CxtStmt.h:62</a></div></div>
|
|
1425
1425
|
<div class="ttc" id="namespaceSVF_html_ab700523619b089b952498f39a7f5b6b1"><div class="ttname"><a href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">SVF::CallStrCxt</a></div><div class="ttdeci">std::vector< u32_t > CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00130">SVFBasicTypes.h:130</a></div></div>
|
|
1426
1426
|
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00069">BasicTypes.h:69</a></div></div>
|
|
1427
1427
|
<div class="ttc" id="namespaceSVF_html_abf85e29310b2e4df8925d00a5c081314"><div class="ttname"><a href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">SVF::Loop</a></div><div class="ttdeci">llvm::Loop Loop</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
|
|
1428
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8aa2d4c83981007108b152d05e9c51fe"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8aa2d4c83981007108b152d05e9c51fe">SVF::ForkJoinAnalysis::addDirectlyJoinTID</a></div><div class="ttdeci">void addDirectlyJoinTID(const CxtStmt &cs, NodeID tid)</div><div class="ttdoc">maps a context-sensitive join site to a thread id </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1429
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a3449439792a54c847c67b3041094db49"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a3449439792a54c847c67b3041094db49">SVF::ForkJoinAnalysis::getJoinLoop</a></div><div class="ttdeci">const Loop * getJoinLoop(const Instruction *inst)</div><div class="ttdoc">Get loop for join site. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1430
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ac483d3b0e9084c2033e177eda9ac9215"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">SVF::ForkJoinAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &tgr, ValDomain flag)</div><div class="ttdoc">Initialize TDAlive and TDDead flags. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1431
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a3655131add43346a175576b023e32509"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a3655131add43346a175576b023e32509">SVF::ForkJoinAnalysis::isAliasedForkJoin</a></div><div class="ttdeci">bool isAliasedForkJoin(const Instruction *forkSite, const Instruction *joinSite)</div><div class="ttdoc">Whether it is a matched fork join pair. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1428
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8aa2d4c83981007108b152d05e9c51fe"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8aa2d4c83981007108b152d05e9c51fe">SVF::ForkJoinAnalysis::addDirectlyJoinTID</a></div><div class="ttdeci">void addDirectlyJoinTID(const CxtStmt &cs, NodeID tid)</div><div class="ttdoc">maps a context-sensitive join site to a thread id </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00503">MHP.h:503</a></div></div>
|
|
1429
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a3449439792a54c847c67b3041094db49"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a3449439792a54c847c67b3041094db49">SVF::ForkJoinAnalysis::getJoinLoop</a></div><div class="ttdeci">const Loop * getJoinLoop(const Instruction *inst)</div><div class="ttdoc">Get loop for join site. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00348">MHP.h:348</a></div></div>
|
|
1430
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ac483d3b0e9084c2033e177eda9ac9215"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">SVF::ForkJoinAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &tgr, ValDomain flag)</div><div class="ttdoc">Initialize TDAlive and TDDead flags. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00405">MHP.h:405</a></div></div>
|
|
1431
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a3655131add43346a175576b023e32509"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a3655131add43346a175576b023e32509">SVF::ForkJoinAnalysis::isAliasedForkJoin</a></div><div class="ttdeci">bool isAliasedForkJoin(const Instruction *forkSite, const Instruction *joinSite)</div><div class="ttdoc">Whether it is a matched fork join pair. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00381">MHP.h:381</a></div></div>
|
|
1432
1432
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
1433
1433
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00392">SVFUtil.cpp:392</a></div></div>
|
|
1434
1434
|
<div class="ttc" id="classSVF_1_1CxtStmt_html"><div class="ttname"><a href="classSVF_1_1CxtStmt.html">SVF::CxtStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00041">CxtStmt.h:41</a></div></div>
|
|
1435
1435
|
<div class="ttc" id="classSVF_1_1CxtStmt_html_a3ce19b8f2de2e199ed4165dbe9d21f28"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">SVF::CxtStmt::getContext</a></div><div class="ttdeci">const CallStrCxt & getContext() const</div><div class="ttdoc">Return current context. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00057">CxtStmt.h:57</a></div></div>
|
|
1436
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a94d65f9e22a13772042b2af652cf5538"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a94d65f9e22a13772042b2af652cf5538">SVF::ForkJoinAnalysis::getCBN</a></div><div class="ttdeci">CallICFGNode * getCBN(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1436
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a94d65f9e22a13772042b2af652cf5538"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a94d65f9e22a13772042b2af652cf5538">SVF::ForkJoinAnalysis::getCBN</a></div><div class="ttdeci">CallICFGNode * getCBN(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00386">MHP.h:386</a></div></div>
|
|
1437
1437
|
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
|
|
1438
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4">SVF::ForkJoinAnalysis::TDDead</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1439
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aac722a42dc6e03e771a7a80de5f8ec94"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aac722a42dc6e03e771a7a80de5f8ec94">SVF::ForkJoinAnalysis::isTDJoin</a></div><div class="ttdeci">bool isTDJoin(const Instruction *call)</div><div class="ttdoc">Whether it is a join site. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1440
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ab302cceb28998623fed622560e50a740"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ab302cceb28998623fed622560e50a740">SVF::ForkJoinAnalysis::addSymmetricLoopJoin</a></div><div class="ttdeci">void addSymmetricLoopJoin(const CxtStmt &cs, const Loop *lp)</div><div class="ttdoc">Add inloop join. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1441
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">SVF::ForkJoinAnalysis::TDAlive</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1442
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1438
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4">SVF::ForkJoinAnalysis::TDDead</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00281">MHP.h:281</a></div></div>
|
|
1439
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aac722a42dc6e03e771a7a80de5f8ec94"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aac722a42dc6e03e771a7a80de5f8ec94">SVF::ForkJoinAnalysis::isTDJoin</a></div><div class="ttdeci">bool isTDJoin(const Instruction *call)</div><div class="ttdoc">Whether it is a join site. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00478">MHP.h:478</a></div></div>
|
|
1440
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ab302cceb28998623fed622560e50a740"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ab302cceb28998623fed622560e50a740">SVF::ForkJoinAnalysis::addSymmetricLoopJoin</a></div><div class="ttdeci">void addSymmetricLoopJoin(const CxtStmt &cs, const Loop *lp)</div><div class="ttdoc">Add inloop join. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00535">MHP.h:535</a></div></div>
|
|
1441
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">SVF::ForkJoinAnalysis::TDAlive</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00280">MHP.h:280</a></div></div>
|
|
1442
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00498">MHP.h:498</a></div></div>
|
|
1443
1443
|
<div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00154">SVFBasicTypes.h:154</a></div></div>
|
|
1444
1444
|
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_add09218cce8d8bd8dd9e73b2d26a5797"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#add09218cce8d8bd8dd9e73b2d26a5797">SVF::ForkJoinAnalysis::handleIntra</a></div><div class="ttdeci">void handleIntra(const CxtStmt &cts)</div><div class="ttdoc">Handle intra. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l00948">MHP.cpp:948</a></div></div>
|
|
1445
1445
|
</div><!-- fragment -->
|
|
@@ -1474,23 +1474,23 @@ Private Attributes</h2></td></tr>
|
|
|
1474
1474
|
<p class="definition">Definition at line <a class="el" href="MHP_8cpp_source.html#l00902">902</a> of file <a class="el" href="MHP_8cpp_source.html">MHP.cpp</a>.</p>
|
|
1475
1475
|
<div class="fragment"><div class="line"><a name="l00903"></a><span class="lineno"> 903</span> {</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span> </div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* curInst = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">getStmt</a>();</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>& curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span> </div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* curFunNode = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a21bcc063a406eb8650df42cf5ced68c9">getSVFFun</a>(curInst->getParent()->getParent()));</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1PTACallGraphNode.html#adf17f5699c9f40ffc8837e813e3af3ec">PTACallGraphNode::const_iterator</a> it = curFunNode-><a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>().begin(), eit = curFunNode-><a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>().end(); it!=eit; ++it)</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  {</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  <a class="code" href="classSVF_1_1PTACallGraphEdge.html">PTACallGraphEdge</a>* edge = *it;</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  <span class="keywordflow">if</span>(SVFUtil::isa<ThreadForkEdge>(edge) || SVFUtil::isa<ThreadJoinEdge>(edge))</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  <span class="keywordflow">for</span>(PTACallGraphEdge::CallInstSet::const_iterator cit = (edge)->directCallsBegin(),</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  ecit = (edge)->directCallsEnd(); cit!=ecit; ++cit)</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  {</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aea9ef584ce6c7129bcd1d5ecda2f1f74">matchCxt</a>(newCxt,(*cit)->getCallSite(),curFunNode-><a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>()-><a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>()))</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  {</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">InstVec</a> nextInsts;</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a799e14292e16b9fb322cab07f3ff5593">getNextInsts</a>((*cit)->getCallSite(),nextInsts);</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  <span class="keywordflow">for</span>(InstVec::const_iterator nit = nextInsts.begin(), enit = nextInsts.end(); nit!=enit; ++nit)</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  {</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt,*nit);</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,cts);</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  }</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  }</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  }</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  <span class="keywordflow">for</span>(PTACallGraphEdge::CallInstSet::const_iterator cit = (edge)->indirectCallsBegin(),</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  ecit = (edge)->indirectCallsEnd(); cit!=ecit; ++cit)</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  {</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aea9ef584ce6c7129bcd1d5ecda2f1f74">matchCxt</a>(newCxt,(*cit)->getCallSite(),curFunNode-><a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>()-><a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>()))</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  {</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">InstVec</a> nextInsts;</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a799e14292e16b9fb322cab07f3ff5593">getNextInsts</a>((*cit)->getCallSite(),nextInsts);</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <span class="keywordflow">for</span>(InstVec::const_iterator nit = nextInsts.begin(), enit = nextInsts.end(); nit!=enit; ++nit)</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  {</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt,*nit);</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,cts);</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  }</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  }</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  }</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  }</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</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>
|
|
1476
1476
|
<div class="ttc" id="classSVF_1_1GenericNode_html_afc8b5f86d7795b6a0dfc0687d942d79b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">SVF::GenericNode::getInEdges</a></div><div class="ttdeci">const GEdgeSetTy & getInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00186">GenericGraph.h:186</a></div></div>
|
|
1477
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1478
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a613d763731058899e6819acdb2d7315f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">SVF::ForkJoinAnalysis::InstVec</a></div><div class="ttdeci">TCT::InstVec InstVec</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1479
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a799e14292e16b9fb322cab07f3ff5593"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a799e14292e16b9fb322cab07f3ff5593">SVF::ForkJoinAnalysis::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *inst, InstVec &instSet)</div><div class="ttdoc">Get the next instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1477
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00539">MHP.h:539</a></div></div>
|
|
1478
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a613d763731058899e6819acdb2d7315f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">SVF::ForkJoinAnalysis::InstVec</a></div><div class="ttdeci">TCT::InstVec InstVec</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00284">MHP.h:284</a></div></div>
|
|
1479
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a799e14292e16b9fb322cab07f3ff5593"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a799e14292e16b9fb322cab07f3ff5593">SVF::ForkJoinAnalysis::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *inst, InstVec &instSet)</div><div class="ttdoc">Get the next instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00457">MHP.h:457</a></div></div>
|
|
1480
1480
|
<div class="ttc" id="classSVF_1_1CxtStmt_html_a5e8c4b10eb5c3240d2e21a020ed834a6"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">SVF::CxtStmt::getStmt</a></div><div class="ttdeci">const Instruction * getStmt() const</div><div class="ttdoc">Return current statement. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00062">CxtStmt.h:62</a></div></div>
|
|
1481
1481
|
<div class="ttc" id="namespaceSVF_html_ab700523619b089b952498f39a7f5b6b1"><div class="ttname"><a href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">SVF::CallStrCxt</a></div><div class="ttdeci">std::vector< u32_t > CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00130">SVFBasicTypes.h:130</a></div></div>
|
|
1482
1482
|
<div class="ttc" id="classSVF_1_1TCT_html_a21bcc063a406eb8650df42cf5ced68c9"><div class="ttname"><a href="classSVF_1_1TCT.html#a21bcc063a406eb8650df42cf5ced68c9">SVF::TCT::getSVFFun</a></div><div class="ttdeci">const SVFFunction * getSVFFun(const Function *fun) const</div><div class="ttdoc">Get SVFFuntion given Function. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00156">TCT.h:156</a></div></div>
|
|
1483
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aea9ef584ce6c7129bcd1d5ecda2f1f74"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aea9ef584ce6c7129bcd1d5ecda2f1f74">SVF::ForkJoinAnalysis::matchCxt</a></div><div class="ttdeci">bool matchCxt(CallStrCxt &cxt, const Instruction *call, const Function *callee)</div><div class="ttdoc">Match context. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1483
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aea9ef584ce6c7129bcd1d5ecda2f1f74"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aea9ef584ce6c7129bcd1d5ecda2f1f74">SVF::ForkJoinAnalysis::matchCxt</a></div><div class="ttdeci">bool matchCxt(CallStrCxt &cxt, const Instruction *call, const Function *callee)</div><div class="ttdoc">Match context. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00467">MHP.h:467</a></div></div>
|
|
1484
1484
|
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00069">BasicTypes.h:69</a></div></div>
|
|
1485
1485
|
<div class="ttc" id="classSVF_1_1PTACallGraphEdge_html"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html">SVF::PTACallGraphEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00051">PTACallGraph.h:51</a></div></div>
|
|
1486
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ac483d3b0e9084c2033e177eda9ac9215"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">SVF::ForkJoinAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &tgr, ValDomain flag)</div><div class="ttdoc">Initialize TDAlive and TDDead flags. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1486
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ac483d3b0e9084c2033e177eda9ac9215"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">SVF::ForkJoinAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &tgr, ValDomain flag)</div><div class="ttdoc">Initialize TDAlive and TDDead flags. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00405">MHP.h:405</a></div></div>
|
|
1487
1487
|
<div class="ttc" id="classSVF_1_1PTACallGraphNode_html_adf17f5699c9f40ffc8837e813e3af3ec"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html#adf17f5699c9f40ffc8837e813e3af3ec">SVF::PTACallGraphNode::const_iterator</a></div><div class="ttdeci">PTACallGraphEdge::CallGraphEdgeSet::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00180">PTACallGraph.h:180</a></div></div>
|
|
1488
1488
|
<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>
|
|
1489
1489
|
<div class="ttc" id="classSVF_1_1CxtStmt_html"><div class="ttname"><a href="classSVF_1_1CxtStmt.html">SVF::CxtStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00041">CxtStmt.h:41</a></div></div>
|
|
1490
1490
|
<div class="ttc" id="classSVF_1_1CxtStmt_html_a3ce19b8f2de2e199ed4165dbe9d21f28"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">SVF::CxtStmt::getContext</a></div><div class="ttdeci">const CallStrCxt & getContext() const</div><div class="ttdoc">Return current context. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00057">CxtStmt.h:57</a></div></div>
|
|
1491
|
-
<div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
1491
|
+
<div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00148">BasicTypes.h:148</a></div></div>
|
|
1492
1492
|
<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>
|
|
1493
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1493
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00498">MHP.h:498</a></div></div>
|
|
1494
1494
|
</div><!-- fragment -->
|
|
1495
1495
|
</div>
|
|
1496
1496
|
</div>
|
|
@@ -1530,13 +1530,13 @@ Private Attributes</h2></td></tr>
|
|
|
1530
1530
|
|
|
1531
1531
|
<p>Whether it is a matched fork join pair. </p>
|
|
1532
1532
|
|
|
1533
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
1534
|
-
<div class="fragment"><div class="line"><a name="
|
|
1535
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ada1e56dfe2d64ea6310142a346c86ed4"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ada1e56dfe2d64ea6310142a346c86ed4">SVF::ForkJoinAnalysis::getJoinedThread</a></div><div class="ttdeci">const Value * getJoinedThread(const Instruction *call)</div><div class="ttdoc">Get joined thread. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1536
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1533
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00381">381</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
1534
|
+
<div class="fragment"><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  {</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a5b087b42340d1a1b2ee37339637709d3">getPTA</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#a6c01f259ad2379a422d7106ce0255eb8">alias</a>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#acd4308b99446c277ccb3407103fe21d0">getForkedThread</a>(forkSite), <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ada1e56dfe2d64ea6310142a346c86ed4">getJoinedThread</a>(joinSite)) && <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4d073da3e5266964dad7422033013219">isSameSCEV</a>(forkSite,joinSite);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a4d073da3e5266964dad7422033013219"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a4d073da3e5266964dad7422033013219">SVF::ForkJoinAnalysis::isSameSCEV</a></div><div class="ttdeci">bool isSameSCEV(const Instruction *forkSite, const Instruction *joinSite)</div><div class="ttdoc">Return true if the fork and join have the same SCEV. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l01043">MHP.cpp:1043</a></div></div>
|
|
1535
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ada1e56dfe2d64ea6310142a346c86ed4"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ada1e56dfe2d64ea6310142a346c86ed4">SVF::ForkJoinAnalysis::getJoinedThread</a></div><div class="ttdeci">const Value * getJoinedThread(const Instruction *call)</div><div class="ttdoc">Get joined thread. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00488">MHP.h:488</a></div></div>
|
|
1536
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00539">MHP.h:539</a></div></div>
|
|
1537
1537
|
<div class="ttc" id="classSVF_1_1TCT_html_a5b087b42340d1a1b2ee37339637709d3"><div class="ttname"><a href="classSVF_1_1TCT.html#a5b087b42340d1a1b2ee37339637709d3">SVF::TCT::getPTA</a></div><div class="ttdeci">PointerAnalysis * getPTA() const</div><div class="ttdoc">Get PTA. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00172">TCT.h:172</a></div></div>
|
|
1538
1538
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a6c01f259ad2379a422d7106ce0255eb8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a6c01f259ad2379a422d7106ce0255eb8">SVF::PointerAnalysis::alias</a></div><div class="ttdeci">virtual AliasResult alias(const Value *V1, const Value *V2)=0</div><div class="ttdoc">Interface exposed to users of our pointer analysis, given Value infos. </div></div>
|
|
1539
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_acd4308b99446c277ccb3407103fe21d0"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#acd4308b99446c277ccb3407103fe21d0">SVF::ForkJoinAnalysis::getForkedThread</a></div><div class="ttdeci">const Value * getForkedThread(const Instruction *call)</div><div class="ttdoc">Get forked thread. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1539
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_acd4308b99446c277ccb3407103fe21d0"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#acd4308b99446c277ccb3407103fe21d0">SVF::ForkJoinAnalysis::getForkedThread</a></div><div class="ttdeci">const Value * getForkedThread(const Instruction *call)</div><div class="ttdoc">Get forked thread. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00483">MHP.h:483</a></div></div>
|
|
1540
1540
|
</div><!-- fragment -->
|
|
1541
1541
|
</div>
|
|
1542
1542
|
</div>
|
|
@@ -1576,9 +1576,9 @@ Private Attributes</h2></td></tr>
|
|
|
1576
1576
|
|
|
1577
1577
|
<p>Whether t1 fully joins t2. </p>
|
|
1578
1578
|
|
|
1579
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
1580
|
-
<div class="fragment"><div class="line"><a name="
|
|
1581
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a3616d6e1649f9e451da0f7a44cffc1e3"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a3616d6e1649f9e451da0f7a44cffc1e3">SVF::ForkJoinAnalysis::partialJoin</a></div><div class="ttdeci">ThreadPairSet partialJoin</div><div class="ttdoc">t1 partially joins t2 along some program path(s) </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1579
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00329">329</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
1580
|
+
<div class="fragment"><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  {</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keywordtype">bool</span> full = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4193a30050195cd9aaafd58511b66ccc">fullJoin</a>.find(std::make_pair(tid1,tid2))!=<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4193a30050195cd9aaafd58511b66ccc">fullJoin</a>.end();</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordtype">bool</span> partial = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a3616d6e1649f9e451da0f7a44cffc1e3">partialJoin</a>.find(std::make_pair(tid1,tid2))!=<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a3616d6e1649f9e451da0f7a44cffc1e3">partialJoin</a>.end();</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordflow">if</span>(full && !partial)</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a4193a30050195cd9aaafd58511b66ccc"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a4193a30050195cd9aaafd58511b66ccc">SVF::ForkJoinAnalysis::fullJoin</a></div><div class="ttdeci">ThreadPairSet fullJoin</div><div class="ttdoc">t1 fully joins t2 along all program path </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00547">MHP.h:547</a></div></div>
|
|
1581
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a3616d6e1649f9e451da0f7a44cffc1e3"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a3616d6e1649f9e451da0f7a44cffc1e3">SVF::ForkJoinAnalysis::partialJoin</a></div><div class="ttdeci">ThreadPairSet partialJoin</div><div class="ttdoc">t1 partially joins t2 along some program path(s) </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00548">MHP.h:548</a></div></div>
|
|
1582
1582
|
</div><!-- fragment -->
|
|
1583
1583
|
</div>
|
|
1584
1584
|
</div>
|
|
@@ -1618,9 +1618,9 @@ Private Attributes</h2></td></tr>
|
|
|
1618
1618
|
|
|
1619
1619
|
<p>Whether thread t1 happens-before thread t2. </p>
|
|
1620
1620
|
|
|
1621
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
1622
|
-
<div class="fragment"><div class="line"><a name="
|
|
1623
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aad3e722ecaa4a39aef0e1cabfa2b8019"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aad3e722ecaa4a39aef0e1cabfa2b8019">SVF::ForkJoinAnalysis::HBPair</a></div><div class="ttdeci">ThreadPairSet HBPair</div><div class="ttdoc">thread happens-before pair </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1621
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00320">320</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
1622
|
+
<div class="fragment"><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  {</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordtype">bool</span> nonhp = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aad3e722ecaa4a39aef0e1cabfa2b8019">HBPair</a>.find(std::make_pair(tid1,tid2))!=<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aad3e722ecaa4a39aef0e1cabfa2b8019">HBPair</a>.end();</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordtype">bool</span> hp = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4ad5c7a21ca994d908d648ca9d9e1833">HPPair</a>.find(std::make_pair(tid1,tid2))!=<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4ad5c7a21ca994d908d648ca9d9e1833">HPPair</a>.end();</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keywordflow">if</span>(nonhp && !hp)</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a4ad5c7a21ca994d908d648ca9d9e1833"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a4ad5c7a21ca994d908d648ca9d9e1833">SVF::ForkJoinAnalysis::HPPair</a></div><div class="ttdeci">ThreadPairSet HPPair</div><div class="ttdoc">threads happen-in-parallel </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00546">MHP.h:546</a></div></div>
|
|
1623
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aad3e722ecaa4a39aef0e1cabfa2b8019"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aad3e722ecaa4a39aef0e1cabfa2b8019">SVF::ForkJoinAnalysis::HBPair</a></div><div class="ttdeci">ThreadPairSet HBPair</div><div class="ttdoc">thread happens-before pair </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00545">MHP.h:545</a></div></div>
|
|
1624
1624
|
</div><!-- fragment -->
|
|
1625
1625
|
</div>
|
|
1626
1626
|
</div>
|
|
@@ -1650,8 +1650,8 @@ Private Attributes</h2></td></tr>
|
|
|
1650
1650
|
|
|
1651
1651
|
<p>Whether a context-sensitive join satisfies symmetric loop pattern. </p>
|
|
1652
1652
|
|
|
1653
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
1654
|
-
<div class="fragment"><div class="line"><a name="
|
|
1653
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00312">312</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
1654
|
+
<div class="fragment"><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  CxtStmtToLoopMap::const_iterator it = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a63da48d338683ec95709a6bd95238707">cxtJoinInLoop</a>.find(cs);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a63da48d338683ec95709a6bd95238707">cxtJoinInLoop</a>.end())</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a63da48d338683ec95709a6bd95238707"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a63da48d338683ec95709a6bd95238707">SVF::ForkJoinAnalysis::cxtJoinInLoop</a></div><div class="ttdeci">CxtStmtToLoopMap cxtJoinInLoop</div><div class="ttdoc">a set of context-sensitive join inside loop </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00544">MHP.h:544</a></div></div>
|
|
1655
1655
|
</div><!-- fragment -->
|
|
1656
1656
|
</div>
|
|
1657
1657
|
</div>
|
|
@@ -1693,7 +1693,7 @@ Private Attributes</h2></td></tr>
|
|
|
1693
1693
|
<p>We assume a pair of fork and join sites are must-alias if they have same <a class="el" href="classSVF_1_1PTASCEV.html">PTASCEV</a> (1) SCEV not inside loop (2) SCEV inside two symmetric loops, then pointers of fork thread and join thread should have same scev start and step. and should have same loop trip count </p>
|
|
1694
1694
|
|
|
1695
1695
|
<p class="definition">Definition at line <a class="el" href="MHP_8cpp_source.html#l01043">1043</a> of file <a class="el" href="MHP_8cpp_source.html">MHP.cpp</a>.</p>
|
|
1696
|
-
<div class="fragment"><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> {</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> </div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PTASCEV.html">PTASCEV</a>& forkse = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4207948054a0f98560922f3f07ada10f">fkjnToPTASCEVMap</a>[forkSite];</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PTASCEV.html">PTASCEV</a>& joinse = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4207948054a0f98560922f3f07ada10f">fkjnToPTASCEVMap</a>[joinSite];</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> </div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  <span class="comment">//if(sameLoopTripCount(forkSite,joinSite) == false)</span></div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  <span class="comment">// return false;</span></div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> </div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  <span class="keywordflow">if</span>(forkse.<a class="code" href="classSVF_1_1PTASCEV.html#ac6636f0c39ef55e2b5f126532bf2d411">inloop</a> && joinse.<a class="code" href="classSVF_1_1PTASCEV.html#ac6636f0c39ef55e2b5f126532bf2d411">inloop</a>)</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  <span class="keywordflow">return</span> forkse.<a class="code" href="classSVF_1_1PTASCEV.html#a0de1531fc72f5aa0bafc59101faae68d">start</a>==joinse.<a class="code" href="classSVF_1_1PTASCEV.html#a0de1531fc72f5aa0bafc59101faae68d">start</a> && forkse.<a class="code" href="classSVF_1_1PTASCEV.html#aead435732fbb492627f746b3d0654ce2">step</a> == joinse.<a class="code" href="classSVF_1_1PTASCEV.html#aead435732fbb492627f746b3d0654ce2">step</a> && forkse.<a class="code" href="classSVF_1_1PTASCEV.html#aa92f2da24c8b6d3548f8b4920a8d157f">tripcount</a> <= joinse.<a class="code" href="classSVF_1_1PTASCEV.html#aa92f2da24c8b6d3548f8b4920a8d157f">tripcount</a>;</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<GetElementPtrInst>(forkse.<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>) && SVFUtil::isa<GetElementPtrInst>(joinse.<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>))</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  <span class="keywordflow">return</span> <a class="code" href="MHP_8cpp.html#a1a6f1ed70075da459ab275eb5c099144">accessSameArrayIndex</a>(SVFUtil::cast<GetElementPtrInst>(forkse.<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>),SVFUtil::cast<GetElementPtrInst>(joinse.<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>));</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<GetElementPtrInst>(forkse.<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>) || SVFUtil::isa<GetElementPtrInst>(joinse.<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>))</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a4207948054a0f98560922f3f07ada10f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a4207948054a0f98560922f3f07ada10f">SVF::ForkJoinAnalysis::fkjnToPTASCEVMap</a></div><div class="ttdeci">forkjoinToPTASCEVMap fkjnToPTASCEVMap</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1696
|
+
<div class="fragment"><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> {</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> </div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PTASCEV.html">PTASCEV</a>& forkse = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4207948054a0f98560922f3f07ada10f">fkjnToPTASCEVMap</a>[forkSite];</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PTASCEV.html">PTASCEV</a>& joinse = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4207948054a0f98560922f3f07ada10f">fkjnToPTASCEVMap</a>[joinSite];</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> </div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  <span class="comment">//if(sameLoopTripCount(forkSite,joinSite) == false)</span></div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  <span class="comment">// return false;</span></div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> </div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  <span class="keywordflow">if</span>(forkse.<a class="code" href="classSVF_1_1PTASCEV.html#ac6636f0c39ef55e2b5f126532bf2d411">inloop</a> && joinse.<a class="code" href="classSVF_1_1PTASCEV.html#ac6636f0c39ef55e2b5f126532bf2d411">inloop</a>)</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  <span class="keywordflow">return</span> forkse.<a class="code" href="classSVF_1_1PTASCEV.html#a0de1531fc72f5aa0bafc59101faae68d">start</a>==joinse.<a class="code" href="classSVF_1_1PTASCEV.html#a0de1531fc72f5aa0bafc59101faae68d">start</a> && forkse.<a class="code" href="classSVF_1_1PTASCEV.html#aead435732fbb492627f746b3d0654ce2">step</a> == joinse.<a class="code" href="classSVF_1_1PTASCEV.html#aead435732fbb492627f746b3d0654ce2">step</a> && forkse.<a class="code" href="classSVF_1_1PTASCEV.html#aa92f2da24c8b6d3548f8b4920a8d157f">tripcount</a> <= joinse.<a class="code" href="classSVF_1_1PTASCEV.html#aa92f2da24c8b6d3548f8b4920a8d157f">tripcount</a>;</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<GetElementPtrInst>(forkse.<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>) && SVFUtil::isa<GetElementPtrInst>(joinse.<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>))</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  <span class="keywordflow">return</span> <a class="code" href="MHP_8cpp.html#a1a6f1ed70075da459ab275eb5c099144">accessSameArrayIndex</a>(SVFUtil::cast<GetElementPtrInst>(forkse.<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>),SVFUtil::cast<GetElementPtrInst>(joinse.<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>));</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<GetElementPtrInst>(forkse.<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>) || SVFUtil::isa<GetElementPtrInst>(joinse.<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>))</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a4207948054a0f98560922f3f07ada10f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a4207948054a0f98560922f3f07ada10f">SVF::ForkJoinAnalysis::fkjnToPTASCEVMap</a></div><div class="ttdeci">forkjoinToPTASCEVMap fkjnToPTASCEVMap</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00550">MHP.h:550</a></div></div>
|
|
1697
1697
|
<div class="ttc" id="classSVF_1_1PTASCEV_html_aa6b49b5cbe5057d779685c9ebe763421"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">SVF::PTASCEV::ptr</a></div><div class="ttdeci">const Value * ptr</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00078">DataFlowUtil.h:78</a></div></div>
|
|
1698
1698
|
<div class="ttc" id="classSVF_1_1PTASCEV_html_aead435732fbb492627f746b3d0654ce2"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#aead435732fbb492627f746b3d0654ce2">SVF::PTASCEV::step</a></div><div class="ttdeci">const Value * step</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00077">DataFlowUtil.h:77</a></div></div>
|
|
1699
1699
|
<div class="ttc" id="classSVF_1_1PTASCEV_html_ac6636f0c39ef55e2b5f126532bf2d411"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#ac6636f0c39ef55e2b5f126532bf2d411">SVF::PTASCEV::inloop</a></div><div class="ttdeci">bool inloop</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00079">DataFlowUtil.h:79</a></div></div>
|
|
@@ -1730,10 +1730,10 @@ Private Attributes</h2></td></tr>
|
|
|
1730
1730
|
|
|
1731
1731
|
<p>Whether it is a fork site. </p>
|
|
1732
1732
|
|
|
1733
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
1734
|
-
<div class="fragment"><div class="line"><a name="
|
|
1733
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00473">473</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
1734
|
+
<div class="fragment"><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  {</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-><a class="code" href="classSVF_1_1ThreadCallGraph.html#adcad8524a53baf256cd45503ec568c10">getThreadAPI</a>()-><a class="code" href="classSVF_1_1ThreadAPI.html#a9da276dca5092d18f4f22d32e5ab6cdf">isTDFork</a>(call);</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  }</div><div class="ttc" id="classSVF_1_1ThreadAPI_html_a9da276dca5092d18f4f22d32e5ab6cdf"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a9da276dca5092d18f4f22d32e5ab6cdf">SVF::ThreadAPI::isTDFork</a></div><div class="ttdeci">bool isTDFork(const Instruction *inst) const</div><div class="ttdoc">Return true if this call create a new thread. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00129">ThreadAPI.h:129</a></div></div>
|
|
1735
1735
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_adcad8524a53baf256cd45503ec568c10"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#adcad8524a53baf256cd45503ec568c10">SVF::ThreadCallGraph::getThreadAPI</a></div><div class="ttdeci">ThreadAPI * getThreadAPI() const</div><div class="ttdoc">Thread API. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00324">ThreadCallGraph.h:324</a></div></div>
|
|
1736
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1736
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00498">MHP.h:498</a></div></div>
|
|
1737
1737
|
</div><!-- fragment -->
|
|
1738
1738
|
</div>
|
|
1739
1739
|
</div>
|
|
@@ -1763,10 +1763,10 @@ Private Attributes</h2></td></tr>
|
|
|
1763
1763
|
|
|
1764
1764
|
<p>Whether it is a join site. </p>
|
|
1765
1765
|
|
|
1766
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
1767
|
-
<div class="fragment"><div class="line"><a name="
|
|
1766
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00478">478</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
1767
|
+
<div class="fragment"><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  {</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-><a class="code" href="classSVF_1_1ThreadCallGraph.html#adcad8524a53baf256cd45503ec568c10">getThreadAPI</a>()-><a class="code" href="classSVF_1_1ThreadAPI.html#a8cc5f9ff6039392ce1471cd830973c44">isTDJoin</a>(call);</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  }</div><div class="ttc" id="classSVF_1_1ThreadCallGraph_html_adcad8524a53baf256cd45503ec568c10"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#adcad8524a53baf256cd45503ec568c10">SVF::ThreadCallGraph::getThreadAPI</a></div><div class="ttdeci">ThreadAPI * getThreadAPI() const</div><div class="ttdoc">Thread API. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00324">ThreadCallGraph.h:324</a></div></div>
|
|
1768
1768
|
<div class="ttc" id="classSVF_1_1ThreadAPI_html_a8cc5f9ff6039392ce1471cd830973c44"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a8cc5f9ff6039392ce1471cd830973c44">SVF::ThreadAPI::isTDJoin</a></div><div class="ttdeci">bool isTDJoin(const Instruction *inst) const</div><div class="ttdoc">Return true if this call wait for a worker thread. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00223">ThreadAPI.h:223</a></div></div>
|
|
1769
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1769
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00498">MHP.h:498</a></div></div>
|
|
1770
1770
|
</div><!-- fragment -->
|
|
1771
1771
|
</div>
|
|
1772
1772
|
</div>
|
|
@@ -1806,11 +1806,11 @@ Private Attributes</h2></td></tr>
|
|
|
1806
1806
|
|
|
1807
1807
|
<p>Initialize TDAlive and TDDead flags. </p>
|
|
1808
1808
|
|
|
1809
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
1810
|
-
<div class="fragment"><div class="line"><a name="
|
|
1811
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a149114898b13e1430c8fbb60978ca4f5"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">SVF::ForkJoinAnalysis::getMarkedFlag</a></div><div class="ttdeci">ValDomain getMarkedFlag(const CxtStmt &cs)</div><div class="ttdoc">Mark thread flags for cxtStmt. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1812
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a7ac37e3399aa6e303a6babe8f455aa87"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a7ac37e3399aa6e303a6babe8f455aa87">SVF::ForkJoinAnalysis::pushToCTSWorkList</a></div><div class="ttdeci">bool pushToCTSWorkList(const CxtStmt &cs)</div><div class="ttdoc">Worklist operations. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1813
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631">SVF::ForkJoinAnalysis::ValDomain</a></div><div class="ttdeci">ValDomain</div><div class="ttdoc">semilattice Empty==>TDDead==>TDAlive </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1809
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00405">405</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
1810
|
+
<div class="fragment"><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631">ValDomain</a> flag_tgr = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">getMarkedFlag</a>(tgr);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aa31b3f3d51b963ccd475e66b77143dba">cxtStmtToAliveFlagMap</a>[tgr] = flag;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keywordflow">if</span>(flag_tgr!=<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">getMarkedFlag</a>(tgr))</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a7ac37e3399aa6e303a6babe8f455aa87">pushToCTSWorkList</a>(tgr);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aa31b3f3d51b963ccd475e66b77143dba"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aa31b3f3d51b963ccd475e66b77143dba">SVF::ForkJoinAnalysis::cxtStmtToAliveFlagMap</a></div><div class="ttdeci">CxtStmtToAliveFlagMap cxtStmtToAliveFlagMap</div><div class="ttdoc">flags for context-sensitive statements </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00540">MHP.h:540</a></div></div>
|
|
1811
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a149114898b13e1430c8fbb60978ca4f5"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">SVF::ForkJoinAnalysis::getMarkedFlag</a></div><div class="ttdeci">ValDomain getMarkedFlag(const CxtStmt &cs)</div><div class="ttdoc">Mark thread flags for cxtStmt. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00393">MHP.h:393</a></div></div>
|
|
1812
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a7ac37e3399aa6e303a6babe8f455aa87"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a7ac37e3399aa6e303a6babe8f455aa87">SVF::ForkJoinAnalysis::pushToCTSWorkList</a></div><div class="ttdeci">bool pushToCTSWorkList(const CxtStmt &cs)</div><div class="ttdoc">Worklist operations. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00445">MHP.h:445</a></div></div>
|
|
1813
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631">SVF::ForkJoinAnalysis::ValDomain</a></div><div class="ttdeci">ValDomain</div><div class="ttdoc">semilattice Empty==>TDDead==>TDAlive </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00277">MHP.h:277</a></div></div>
|
|
1814
1814
|
</div><!-- fragment -->
|
|
1815
1815
|
</div>
|
|
1816
1816
|
</div>
|
|
@@ -1851,14 +1851,14 @@ Private Attributes</h2></td></tr>
|
|
|
1851
1851
|
<p>Transfer function for marking context-sensitive statement. </p>
|
|
1852
1852
|
<p>alive is at the bottom of the semilattice, nothing needs to be done here </p>
|
|
1853
1853
|
|
|
1854
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
1855
|
-
<div class="fragment"><div class="line"><a name="
|
|
1856
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a149114898b13e1430c8fbb60978ca4f5"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">SVF::ForkJoinAnalysis::getMarkedFlag</a></div><div class="ttdeci">ValDomain getMarkedFlag(const CxtStmt &cs)</div><div class="ttdoc">Mark thread flags for cxtStmt. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1857
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a7ac37e3399aa6e303a6babe8f455aa87"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a7ac37e3399aa6e303a6babe8f455aa87">SVF::ForkJoinAnalysis::pushToCTSWorkList</a></div><div class="ttdeci">bool pushToCTSWorkList(const CxtStmt &cs)</div><div class="ttdoc">Worklist operations. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1858
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631a9d940442c782d5a1297102209540182f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a9d940442c782d5a1297102209540182f">SVF::ForkJoinAnalysis::Empty</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1859
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631">SVF::ForkJoinAnalysis::ValDomain</a></div><div class="ttdeci">ValDomain</div><div class="ttdoc">semilattice Empty==>TDDead==>TDAlive </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1860
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4">SVF::ForkJoinAnalysis::TDDead</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1861
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">SVF::ForkJoinAnalysis::TDAlive</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
1854
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00413">413</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
1855
|
+
<div class="fragment"><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631">ValDomain</a> flag_tgr = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">getMarkedFlag</a>(tgr);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631">ValDomain</a> flag_src = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">getMarkedFlag</a>(src);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keywordflow">if</span>(flag_tgr == <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a9d940442c782d5a1297102209540182f">Empty</a>)</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  {</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aa31b3f3d51b963ccd475e66b77143dba">cxtStmtToAliveFlagMap</a>[tgr] = flag_src;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(flag_tgr == <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4">TDDead</a>)</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keywordflow">if</span>(flag_src==<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">TDAlive</a>)</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#aa31b3f3d51b963ccd475e66b77143dba">cxtStmtToAliveFlagMap</a>[tgr] = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">TDAlive</a>;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  }</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  }</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keywordflow">if</span>(flag_tgr!=<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">getMarkedFlag</a>(tgr))</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a7ac37e3399aa6e303a6babe8f455aa87">pushToCTSWorkList</a>(tgr);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_aa31b3f3d51b963ccd475e66b77143dba"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#aa31b3f3d51b963ccd475e66b77143dba">SVF::ForkJoinAnalysis::cxtStmtToAliveFlagMap</a></div><div class="ttdeci">CxtStmtToAliveFlagMap cxtStmtToAliveFlagMap</div><div class="ttdoc">flags for context-sensitive statements </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00540">MHP.h:540</a></div></div>
|
|
1856
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a149114898b13e1430c8fbb60978ca4f5"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">SVF::ForkJoinAnalysis::getMarkedFlag</a></div><div class="ttdeci">ValDomain getMarkedFlag(const CxtStmt &cs)</div><div class="ttdoc">Mark thread flags for cxtStmt. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00393">MHP.h:393</a></div></div>
|
|
1857
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a7ac37e3399aa6e303a6babe8f455aa87"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a7ac37e3399aa6e303a6babe8f455aa87">SVF::ForkJoinAnalysis::pushToCTSWorkList</a></div><div class="ttdeci">bool pushToCTSWorkList(const CxtStmt &cs)</div><div class="ttdoc">Worklist operations. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00445">MHP.h:445</a></div></div>
|
|
1858
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631a9d940442c782d5a1297102209540182f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a9d940442c782d5a1297102209540182f">SVF::ForkJoinAnalysis::Empty</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00279">MHP.h:279</a></div></div>
|
|
1859
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631">SVF::ForkJoinAnalysis::ValDomain</a></div><div class="ttdeci">ValDomain</div><div class="ttdoc">semilattice Empty==>TDDead==>TDAlive </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00277">MHP.h:277</a></div></div>
|
|
1860
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4">SVF::ForkJoinAnalysis::TDDead</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00281">MHP.h:281</a></div></div>
|
|
1861
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">SVF::ForkJoinAnalysis::TDAlive</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00280">MHP.h:280</a></div></div>
|
|
1862
1862
|
</div><!-- fragment -->
|
|
1863
1863
|
</div>
|
|
1864
1864
|
</div>
|
|
@@ -1904,9 +1904,9 @@ Private Attributes</h2></td></tr>
|
|
|
1904
1904
|
|
|
1905
1905
|
<p>Match context. </p>
|
|
1906
1906
|
|
|
1907
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
1908
|
-
<div class="fragment"><div class="line"><a name="
|
|
1909
|
-
<div class="ttc" id="classSVF_1_1TCT_html_a9b6dda84d37afadaf80bc2e26986a52e"><div class="ttname"><a href="classSVF_1_1TCT.html#a9b6dda84d37afadaf80bc2e26986a52e">SVF::TCT::matchCxt</a></div><div class="ttdeci">bool matchCxt(CallStrCxt &cxt, const Instruction *call, const Function *callee)</div><div class="ttdoc">Match context. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#
|
|
1907
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00467">467</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
1908
|
+
<div class="fragment"><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  {</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a9b6dda84d37afadaf80bc2e26986a52e">matchCxt</a>(cxt,call,callee);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00539">MHP.h:539</a></div></div>
|
|
1909
|
+
<div class="ttc" id="classSVF_1_1TCT_html_a9b6dda84d37afadaf80bc2e26986a52e"><div class="ttname"><a href="classSVF_1_1TCT.html#a9b6dda84d37afadaf80bc2e26986a52e">SVF::TCT::matchCxt</a></div><div class="ttdeci">bool matchCxt(CallStrCxt &cxt, const Instruction *call, const Function *callee)</div><div class="ttdoc">Match context. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#l00497">TCT.cpp:497</a></div></div>
|
|
1910
1910
|
</div><!-- fragment -->
|
|
1911
1911
|
</div>
|
|
1912
1912
|
</div>
|
|
@@ -1933,8 +1933,8 @@ Private Attributes</h2></td></tr>
|
|
|
1933
1933
|
</table>
|
|
1934
1934
|
</div><div class="memdoc">
|
|
1935
1935
|
|
|
1936
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
1937
|
-
<div class="fragment"><div class="line"><a name="
|
|
1936
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00449">449</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
1937
|
+
<div class="fragment"><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  CxtStmt ctp = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#acccf53d174cac3275da0d79c89a73916">cxtStmtList</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keywordflow">return</span> ctp;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_acccf53d174cac3275da0d79c89a73916"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#acccf53d174cac3275da0d79c89a73916">SVF::ForkJoinAnalysis::cxtStmtList</a></div><div class="ttdeci">CxtStmtWorkList cxtStmtList</div><div class="ttdoc">context-sensitive statement worklist </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00541">MHP.h:541</a></div></div>
|
|
1938
1938
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00174">WorkList.h:174</a></div></div>
|
|
1939
1939
|
</div><!-- fragment -->
|
|
1940
1940
|
</div>
|
|
@@ -1981,9 +1981,9 @@ Private Attributes</h2></td></tr>
|
|
|
1981
1981
|
|
|
1982
1982
|
<p>Push calling context. </p>
|
|
1983
1983
|
|
|
1984
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
1985
|
-
<div class="fragment"><div class="line"><a name="
|
|
1986
|
-
<div class="ttc" id="classSVF_1_1TCT_html_afc6d7a91cfc98561bcce13425964a39e"><div class="ttname"><a href="classSVF_1_1TCT.html#afc6d7a91cfc98561bcce13425964a39e">SVF::TCT::pushCxt</a></div><div class="ttdeci">void pushCxt(CallStrCxt &cxt, const Instruction *call, const Function *callee)</div><div class="ttdoc">Push calling context. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#
|
|
1984
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00462">462</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
1985
|
+
<div class="fragment"><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  {</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#afc6d7a91cfc98561bcce13425964a39e">pushCxt</a>(cxt,call,callee);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00539">MHP.h:539</a></div></div>
|
|
1986
|
+
<div class="ttc" id="classSVF_1_1TCT_html_afc6d7a91cfc98561bcce13425964a39e"><div class="ttname"><a href="classSVF_1_1TCT.html#afc6d7a91cfc98561bcce13425964a39e">SVF::TCT::pushCxt</a></div><div class="ttdeci">void pushCxt(CallStrCxt &cxt, const Instruction *call, const Function *callee)</div><div class="ttdoc">Push calling context. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#l00475">TCT.cpp:475</a></div></div>
|
|
1987
1987
|
</div><!-- fragment -->
|
|
1988
1988
|
</div>
|
|
1989
1989
|
</div>
|
|
@@ -2013,9 +2013,9 @@ Private Attributes</h2></td></tr>
|
|
|
2013
2013
|
|
|
2014
2014
|
<p>Worklist operations. </p>
|
|
2015
2015
|
|
|
2016
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
2017
|
-
<div class="fragment"><div class="line"><a name="
|
|
2018
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_acccf53d174cac3275da0d79c89a73916"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#acccf53d174cac3275da0d79c89a73916">SVF::ForkJoinAnalysis::cxtStmtList</a></div><div class="ttdeci">CxtStmtWorkList cxtStmtList</div><div class="ttdoc">context-sensitive statement worklist </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
2016
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00445">445</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
2017
|
+
<div class="fragment"><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  {</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#acccf53d174cac3275da0d79c89a73916">cxtStmtList</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(cs);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  }</div><div class="ttc" id="classSVF_1_1FIFOWorkList_html_ad4c6a48b60c870d63049fe7272cc7eb8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(Data data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00159">WorkList.h:159</a></div></div>
|
|
2018
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_acccf53d174cac3275da0d79c89a73916"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#acccf53d174cac3275da0d79c89a73916">SVF::ForkJoinAnalysis::cxtStmtList</a></div><div class="ttdeci">CxtStmtWorkList cxtStmtList</div><div class="ttdoc">context-sensitive statement worklist </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00541">MHP.h:541</a></div></div>
|
|
2019
2019
|
</div><!-- fragment -->
|
|
2020
2020
|
</div>
|
|
2021
2021
|
</div>
|
|
@@ -2057,12 +2057,12 @@ Private Attributes</h2></td></tr>
|
|
|
2057
2057
|
<p>The fork and join have same loop trip count </p>
|
|
2058
2058
|
|
|
2059
2059
|
<p class="definition">Definition at line <a class="el" href="MHP_8cpp_source.html#l01065">1065</a> of file <a class="el" href="MHP_8cpp_source.html">MHP.cpp</a>.</p>
|
|
2060
|
-
<div class="fragment"><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> {</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> </div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>  <a class="code" href="SVF-FE_2BasicTypes_8h.html#a14e646200d8836461877804ee4a203d1">ScalarEvolution</a>* forkSE = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ad3db3e7a2ebe7646675aab16103691e7">getSE</a>(forkSite);</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>  <a class="code" href="SVF-FE_2BasicTypes_8h.html#a14e646200d8836461877804ee4a203d1">ScalarEvolution</a>* joinSE = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ad3db3e7a2ebe7646675aab16103691e7">getSE</a>(joinSite);</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> </div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  <span class="comment">// Get loops</span></div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">Loop</a> *forkSiteLoop = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#add9104a3d7a821e9c2f266ae1810d2e3">getLoop</a>(forkSite);</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">Loop</a> *joinSiteLoop = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#add9104a3d7a821e9c2f266ae1810d2e3">getLoop</a>(joinSite);</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> </div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  <span class="keywordflow">if</span>(forkSiteLoop == <span class="keyword">nullptr</span> || joinSiteLoop == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> </div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  <span class="keyword">const</span> <a class="code" href="SVF-FE_2BasicTypes_8h.html#a926a4429043d19e5b5fb425a31631d12">SCEV</a>* forkLoopCountScev = forkSE->getBackedgeTakenCount(forkSiteLoop);</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  <span class="keyword">const</span> <a class="code" href="SVF-FE_2BasicTypes_8h.html#a926a4429043d19e5b5fb425a31631d12">SCEV</a>* joinLoopCountScev = joinSE->getBackedgeTakenCount(joinSiteLoop);</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> </div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  <span class="keywordflow">if</span>(forkLoopCountScev!=forkSE->getCouldNotCompute())</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  {</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  <span class="keywordflow">if</span>(forkLoopCountScev==joinLoopCountScev)</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  {</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  }</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  }</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
2061
|
-
<div class="ttc" id="classSVF_1_1TCT_html_add9104a3d7a821e9c2f266ae1810d2e3"><div class="ttname"><a href="classSVF_1_1TCT.html#add9104a3d7a821e9c2f266ae1810d2e3">SVF::TCT::getLoop</a></div><div class="ttdeci">const Loop * getLoop(const Instruction *inst)</div><div class="ttdoc">Get loop for an instruction. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#
|
|
2062
|
-
<div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a926a4429043d19e5b5fb425a31631d12"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a926a4429043d19e5b5fb425a31631d12">SCEV</a></div><div class="ttdeci">llvm::SCEV SCEV</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#
|
|
2060
|
+
<div class="fragment"><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> {</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> </div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>  <a class="code" href="SVF-FE_2BasicTypes_8h.html#a14e646200d8836461877804ee4a203d1">ScalarEvolution</a>* forkSE = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ad3db3e7a2ebe7646675aab16103691e7">getSE</a>(forkSite);</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>  <a class="code" href="SVF-FE_2BasicTypes_8h.html#a14e646200d8836461877804ee4a203d1">ScalarEvolution</a>* joinSE = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ad3db3e7a2ebe7646675aab16103691e7">getSE</a>(joinSite);</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> </div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  <span class="comment">// Get loops</span></div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">Loop</a> *forkSiteLoop = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#add9104a3d7a821e9c2f266ae1810d2e3">getLoop</a>(forkSite);</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">Loop</a> *joinSiteLoop = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-><a class="code" href="classSVF_1_1TCT.html#add9104a3d7a821e9c2f266ae1810d2e3">getLoop</a>(joinSite);</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> </div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  <span class="keywordflow">if</span>(forkSiteLoop == <span class="keyword">nullptr</span> || joinSiteLoop == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> </div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  <span class="keyword">const</span> <a class="code" href="SVF-FE_2BasicTypes_8h.html#a926a4429043d19e5b5fb425a31631d12">SCEV</a>* forkLoopCountScev = forkSE->getBackedgeTakenCount(forkSiteLoop);</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  <span class="keyword">const</span> <a class="code" href="SVF-FE_2BasicTypes_8h.html#a926a4429043d19e5b5fb425a31631d12">SCEV</a>* joinLoopCountScev = joinSE->getBackedgeTakenCount(joinSiteLoop);</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> </div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  <span class="keywordflow">if</span>(forkLoopCountScev!=forkSE->getCouldNotCompute())</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  {</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  <span class="keywordflow">if</span>(forkLoopCountScev==joinLoopCountScev)</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  {</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  }</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  }</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> }</div><div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00539">MHP.h:539</a></div></div>
|
|
2061
|
+
<div class="ttc" id="classSVF_1_1TCT_html_add9104a3d7a821e9c2f266ae1810d2e3"><div class="ttname"><a href="classSVF_1_1TCT.html#add9104a3d7a821e9c2f266ae1810d2e3">SVF::TCT::getLoop</a></div><div class="ttdeci">const Loop * getLoop(const Instruction *inst)</div><div class="ttdoc">Get loop for an instruction. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#l00349">TCT.cpp:349</a></div></div>
|
|
2062
|
+
<div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a926a4429043d19e5b5fb425a31631d12"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a926a4429043d19e5b5fb425a31631d12">SCEV</a></div><div class="ttdeci">llvm::SCEV SCEV</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00114">BasicTypes.h:114</a></div></div>
|
|
2063
2063
|
<div class="ttc" id="namespaceSVF_html_abf85e29310b2e4df8925d00a5c081314"><div class="ttname"><a href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">SVF::Loop</a></div><div class="ttdeci">llvm::Loop Loop</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
|
|
2064
|
-
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ad3db3e7a2ebe7646675aab16103691e7"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ad3db3e7a2ebe7646675aab16103691e7">SVF::ForkJoinAnalysis::getSE</a></div><div class="ttdeci">ScalarEvolution * getSE(const Instruction *inst)</div><div class="ttdoc">Get SE for function. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#
|
|
2065
|
-
<div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a14e646200d8836461877804ee4a203d1"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a14e646200d8836461877804ee4a203d1">ScalarEvolution</a></div><div class="ttdeci">llvm::ScalarEvolution ScalarEvolution</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#
|
|
2064
|
+
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ad3db3e7a2ebe7646675aab16103691e7"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ad3db3e7a2ebe7646675aab16103691e7">SVF::ForkJoinAnalysis::getSE</a></div><div class="ttdeci">ScalarEvolution * getSE(const Instruction *inst)</div><div class="ttdoc">Get SE for function. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00353">MHP.h:353</a></div></div>
|
|
2065
|
+
<div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a14e646200d8836461877804ee4a203d1"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a14e646200d8836461877804ee4a203d1">ScalarEvolution</a></div><div class="ttdeci">llvm::ScalarEvolution ScalarEvolution</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00113">BasicTypes.h:113</a></div></div>
|
|
2066
2066
|
</div><!-- fragment -->
|
|
2067
2067
|
</div>
|
|
2068
2068
|
</div>
|
|
@@ -2089,7 +2089,7 @@ Private Attributes</h2></td></tr>
|
|
|
2089
2089
|
|
|
2090
2090
|
<p>a set of context-sensitive join inside loop </p>
|
|
2091
2091
|
|
|
2092
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
2092
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00544">544</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
2093
2093
|
|
|
2094
2094
|
</div>
|
|
2095
2095
|
</div>
|
|
@@ -2115,7 +2115,7 @@ Private Attributes</h2></td></tr>
|
|
|
2115
2115
|
|
|
2116
2116
|
<p>context-sensitive statement worklist </p>
|
|
2117
2117
|
|
|
2118
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
2118
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00541">541</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
2119
2119
|
|
|
2120
2120
|
</div>
|
|
2121
2121
|
</div>
|
|
@@ -2141,7 +2141,7 @@ Private Attributes</h2></td></tr>
|
|
|
2141
2141
|
|
|
2142
2142
|
<p>flags for context-sensitive statements </p>
|
|
2143
2143
|
|
|
2144
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
2144
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00540">540</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
2145
2145
|
|
|
2146
2146
|
</div>
|
|
2147
2147
|
</div>
|
|
@@ -2167,7 +2167,7 @@ Private Attributes</h2></td></tr>
|
|
|
2167
2167
|
|
|
2168
2168
|
<p>maps a context-sensitive join site to directly and indirectly joined thread ids </p>
|
|
2169
2169
|
|
|
2170
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
2170
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00543">543</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
2171
2171
|
|
|
2172
2172
|
</div>
|
|
2173
2173
|
</div>
|
|
@@ -2193,7 +2193,7 @@ Private Attributes</h2></td></tr>
|
|
|
2193
2193
|
|
|
2194
2194
|
<p>maps a context-sensitive join site to directly joined thread ids </p>
|
|
2195
2195
|
|
|
2196
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
2196
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00542">542</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
2197
2197
|
|
|
2198
2198
|
</div>
|
|
2199
2199
|
</div>
|
|
@@ -2217,7 +2217,7 @@ Private Attributes</h2></td></tr>
|
|
|
2217
2217
|
</table>
|
|
2218
2218
|
</div><div class="memdoc">
|
|
2219
2219
|
|
|
2220
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
2220
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00550">550</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
2221
2221
|
|
|
2222
2222
|
</div>
|
|
2223
2223
|
</div>
|
|
@@ -2243,7 +2243,7 @@ Private Attributes</h2></td></tr>
|
|
|
2243
2243
|
|
|
2244
2244
|
<p>t1 fully joins t2 along all program path </p>
|
|
2245
2245
|
|
|
2246
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
2246
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00547">547</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
2247
2247
|
|
|
2248
2248
|
</div>
|
|
2249
2249
|
</div>
|
|
@@ -2269,7 +2269,7 @@ Private Attributes</h2></td></tr>
|
|
|
2269
2269
|
|
|
2270
2270
|
<p>thread happens-before pair </p>
|
|
2271
2271
|
|
|
2272
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
2272
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00545">545</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
2273
2273
|
|
|
2274
2274
|
</div>
|
|
2275
2275
|
</div>
|
|
@@ -2295,7 +2295,7 @@ Private Attributes</h2></td></tr>
|
|
|
2295
2295
|
|
|
2296
2296
|
<p>threads happen-in-parallel </p>
|
|
2297
2297
|
|
|
2298
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
2298
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00546">546</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
2299
2299
|
|
|
2300
2300
|
</div>
|
|
2301
2301
|
</div>
|
|
@@ -2321,7 +2321,7 @@ Private Attributes</h2></td></tr>
|
|
|
2321
2321
|
|
|
2322
2322
|
<p>t1 partially joins t2 along some program path(s) </p>
|
|
2323
2323
|
|
|
2324
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
2324
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00548">548</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
2325
2325
|
|
|
2326
2326
|
</div>
|
|
2327
2327
|
</div>
|
|
@@ -2347,7 +2347,7 @@ Private Attributes</h2></td></tr>
|
|
|
2347
2347
|
|
|
2348
2348
|
<p>PTA control flow info. </p>
|
|
2349
2349
|
|
|
2350
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
2350
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00549">549</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
2351
2351
|
|
|
2352
2352
|
</div>
|
|
2353
2353
|
</div>
|
|
@@ -2371,7 +2371,7 @@ Private Attributes</h2></td></tr>
|
|
|
2371
2371
|
</table>
|
|
2372
2372
|
</div><div class="memdoc">
|
|
2373
2373
|
|
|
2374
|
-
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#
|
|
2374
|
+
<p class="definition">Definition at line <a class="el" href="MHP_8h_source.html#l00539">539</a> of file <a class="el" href="MHP_8h_source.html">MHP.h</a>.</p>
|
|
2375
2375
|
|
|
2376
2376
|
</div>
|
|
2377
2377
|
</div>
|