svf-tools 1.0.464 → 1.0.467
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/AndersenStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Annotator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/BDDExpr_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/BDDExpr_8h_source.html +1 -1
- package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +6 -6
- package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +4 -4
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +5 -5
- package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/CHG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +21 -20
- package/SVF-doxygen/html/html/CPPUtil_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +4 -4
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/DCHG_8h_source.html +5 -5
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +8 -8
- package/SVF-doxygen/html/html/ExeState_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/ICFG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +9 -9
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +6 -6
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +24 -23
- package/SVF-doxygen/html/html/LLVMUtil_8h.html +2 -0
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +61 -60
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +7 -6
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +4 -4
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp.html +1 -1
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/MHP_8h_source.html +5 -5
- package/SVF-doxygen/html/html/MSSAMuChi_8h.html +7 -1
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +4 -3
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +5 -5
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +6 -6
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/MTA_8h_source.html +2 -2
- 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 +18 -9
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +4 -4
- package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Options_8cpp_source.html +50 -48
- package/SVF-doxygen/html/html/Options_8h_source.html +51 -49
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/PCG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +7 -7
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +15 -14
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +2 -2
- 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 +3 -3
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp.html +86 -0
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +125 -0
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +53 -48
- package/SVF-doxygen/html/html/SVFG_8h_source.html +42 -39
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +53 -52
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +13 -13
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +9 -9
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +35 -34
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +14 -13
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +6 -6
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/TCT_8h_source.html +10 -10
- package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +6 -6
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +77 -77
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +3 -3
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BDDExprManager.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
- package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CondVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +10 -8
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +28 -26
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +101 -49
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +14 -13
- package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +21 -20
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +1 -1
- 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-members.html +91 -88
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +302 -116
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +100 -97
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +18 -12
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +110 -107
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +44 -42
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +19 -18
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +12 -12
- package/SVF-doxygen/html/html/classllvm_1_1generic__bridge__gep__type__iterator.html +3 -3
- package/SVF-doxygen/html/html/dir_1870ebf480d659cc38d2dd7ac3aa8993.html +2 -0
- package/SVF-doxygen/html/html/files.html +4 -3
- package/SVF-doxygen/html/html/functions_c.html +5 -9
- package/SVF-doxygen/html/html/functions_func_g.html +7 -4
- package/SVF-doxygen/html/html/functions_func_r.html +7 -4
- package/SVF-doxygen/html/html/functions_func_w.html +1 -0
- package/SVF-doxygen/html/html/functions_g.html +9 -6
- package/SVF-doxygen/html/html/functions_i.html +3 -3
- package/SVF-doxygen/html/html/functions_l.html +8 -8
- package/SVF-doxygen/html/html/functions_o.html +14 -14
- package/SVF-doxygen/html/html/functions_p.html +10 -14
- package/SVF-doxygen/html/html/functions_r.html +11 -7
- package/SVF-doxygen/html/html/functions_s.html +14 -12
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_r.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_w.html +3 -0
- package/SVF-doxygen/html/html/functions_w.html +4 -0
- package/SVF-doxygen/html/html/globals_s.html +7 -3
- package/SVF-doxygen/html/html/namespaceSVF.html +80 -41
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +233 -199
- package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +38 -36
- package/SVF-doxygen/html/html/namespacemembers_func.html +4 -1
- package/SVF-doxygen/html/html/namespacemembers_g.html +8 -5
- package/SVF-doxygen/html/html/namespacemembers_o.html +1 -1
- package/SVF-doxygen/html/html/search/all_10.js +3 -3
- package/SVF-doxygen/html/html/search/all_12.js +4 -2
- package/SVF-doxygen/html/html/search/all_13.js +10 -9
- package/SVF-doxygen/html/html/search/all_14.js +3 -3
- package/SVF-doxygen/html/html/search/all_16.js +2 -2
- package/SVF-doxygen/html/html/search/all_17.js +2 -1
- package/SVF-doxygen/html/html/search/all_3.js +1 -1
- package/SVF-doxygen/html/html/search/all_7.js +2 -0
- package/SVF-doxygen/html/html/search/all_9.js +1 -1
- package/SVF-doxygen/html/html/search/all_b.js +1 -1
- package/SVF-doxygen/html/html/search/all_c.js +3 -3
- package/SVF-doxygen/html/html/search/all_d.js +2 -2
- package/SVF-doxygen/html/html/search/all_e.js +3 -3
- package/SVF-doxygen/html/html/search/all_f.js +3 -3
- package/SVF-doxygen/html/html/search/files_d.js +1 -0
- package/SVF-doxygen/html/html/search/functions_14.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +2 -0
- package/SVF-doxygen/html/html/search/functions_d.js +1 -1
- package/SVF-doxygen/html/html/search/functions_f.js +1 -0
- package/SVF-doxygen/html/html/search/variables_12.js +1 -0
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_17.js +2 -1
- package/SVF-doxygen/html/html/search/variables_e.js +3 -3
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +3 -3
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +24 -24
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +4 -4
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
- 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/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +3 -3
- package/include/Graphs/SVFG.h +4 -0
- package/include/MSSA/MSSAMuChi.h +1 -0
- package/include/SVF-FE/LLVMUtil.h +11 -1
- package/include/Util/BasicTypes.h +4 -0
- package/include/Util/Options.h +3 -0
- package/lib/Graphs/SVFG.cpp +31 -27
- package/lib/Graphs/SVFGReadWrite.cpp +478 -0
- package/lib/MSSA/MemRegion.cpp +7 -0
- package/lib/MemoryModel/LocationSet.cpp +2 -2
- package/lib/MemoryModel/PointerAnalysis.cpp +1 -1
- package/lib/MemoryModel/SymbolTableInfo.cpp +1 -1
- package/lib/SVF-FE/BreakConstantExpr.cpp +3 -1
- package/lib/SVF-FE/CPPUtil.cpp +2 -2
- package/lib/SVF-FE/LLVMUtil.cpp +2 -2
- package/lib/SVF-FE/SVFIRBuilder.cpp +3 -3
- package/lib/SVF-FE/SymbolTableBuilder.cpp +2 -2
- package/lib/Util/Options.cpp +11 -0
- package/lib/Util/PTAStat.cpp +1 -0
- package/package.json +1 -1
|
@@ -1015,7 +1015,7 @@ Private Attributes</h2></td></tr>
|
|
|
1015
1015
|
|
|
1016
1016
|
<p class="definition">Definition at line <a class="el" href="LockAnalysis_8cpp_source.html#l00041">41</a> of file <a class="el" href="LockAnalysis_8cpp_source.html">LockAnalysis.cpp</a>.</p>
|
|
1017
1017
|
<div class="fragment"><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#aa8683de99ad02fb75b175b0bb54e5f7d">collectLockUnlocksites</a>();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a271506d5032033efae684b0d729f5b3e">buildCandidateFuncSetforLock</a>();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="SVFBasicTypes_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<span class="keywordtype">double</span> lockStart = <a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">PTAStat::getClk</a>(<span class="keyword">true</span>));</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\tIntra-procedural LockAnalysis\n"</span>);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</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">"\tIntra-procedural LockAnalysis\n"</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a8a34f7544f22a87e1caf010c34abda75">analyzeIntraProcedualLock</a>();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\tCollect context-sensitive locks\n"</span>);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</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">"\tCollect context-sensitive locks\n"</span>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#ae03db88ef0ad0da2c31cf1623b32165f">collectCxtLock</a>();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\tInter-procedural LockAnalysis\n"</span>);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</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">"\tInter-procedural LockAnalysis\n"</span>);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a00ccd89eff3fe8fec397df101f927cbe">analyzeLockSpanCxtStmt</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="SVFBasicTypes_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<span class="keywordtype">double</span> lockEnd = <a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">PTAStat::getClk</a>(<span class="keyword">true</span>));</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="SVFBasicTypes_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<a class="code" href="classSVF_1_1LockAnalysis.html#adadee129c04b82576b4ca3c7594cdcb2">lockTime</a> += (lockEnd - lockStart) / <a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a78b3b44f2c0dc94dc1363ca57ee76d66">Options::LockValid</a>)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a935128c9952714fcc98febed491ee85d">validateResults</a>();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> }</div><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>
|
|
1018
|
-
<div class="ttc" id="classSVF_1_1Options_html_a78b3b44f2c0dc94dc1363ca57ee76d66"><div class="ttname"><a href="classSVF_1_1Options.html#a78b3b44f2c0dc94dc1363ca57ee76d66">SVF::Options::LockValid</a></div><div class="ttdeci">static const llvm::cl::opt< bool > LockValid</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#
|
|
1018
|
+
<div class="ttc" id="classSVF_1_1Options_html_a78b3b44f2c0dc94dc1363ca57ee76d66"><div class="ttname"><a href="classSVF_1_1Options.html#a78b3b44f2c0dc94dc1363ca57ee76d66">SVF::Options::LockValid</a></div><div class="ttdeci">static const llvm::cl::opt< bool > LockValid</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00187">Options.h:187</a></div></div>
|
|
1019
1019
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a8a34f7544f22a87e1caf010c34abda75"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a8a34f7544f22a87e1caf010c34abda75">SVF::LockAnalysis::analyzeIntraProcedualLock</a></div><div class="ttdeci">void analyzeIntraProcedualLock()</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8cpp_source.html#l00142">LockAnalysis.cpp:142</a></div></div>
|
|
1020
1020
|
<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>
|
|
1021
1021
|
<div class="ttc" id="SVFBasicTypes_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00181">SVFBasicTypes.h:181</a></div></div>
|
|
@@ -1052,7 +1052,7 @@ Private Attributes</h2></td></tr>
|
|
|
1052
1052
|
<p class="definition">Definition at line <a class="el" href="LockAnalysis_8cpp_source.html#l00142">142</a> of file <a class="el" href="LockAnalysis_8cpp_source.html">LockAnalysis.cpp</a>.</p>
|
|
1053
1053
|
<div class="fragment"><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="comment">// Identify the protected Instructions.</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">for</span> (InstSet::const_iterator it = <a class="code" href="classSVF_1_1LockAnalysis.html#a87c412a54f48e5314454cd1d44ef9b0e">locksites</a>.begin(), ie = <a class="code" href="classSVF_1_1LockAnalysis.html#a87c412a54f48e5314454cd1d44ef9b0e">locksites</a>.end(); it != ie; ++it)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a> *lockSite = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>>(*it);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(lockSite && <span class="stringliteral">"Lock acquire instruction must be CallInst"</span>);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="comment">// Perform forward traversal</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#ae682eb30763f0f52184eb36c95fc3811">InstSet</a> forwardInsts;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#ae682eb30763f0f52184eb36c95fc3811">InstSet</a> backwardInsts;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#ae682eb30763f0f52184eb36c95fc3811">InstSet</a> unlockSet;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordtype">bool</span> forward = <a class="code" href="classSVF_1_1LockAnalysis.html#a6febb0bb12f4983cd54b3bd310ce65d2">intraForwardTraverse</a>(lockSite,unlockSet,forwardInsts);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordtype">bool</span> backward = <a class="code" href="classSVF_1_1LockAnalysis.html#a5f693c893f3701e1e025881f91193d53">intraBackwardTraverse</a>(unlockSet,backwardInsts);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">if</span>(forward && backward)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#ab28428444170091d2c65572263b9f40b">addIntraLock</a>(lockSite,forwardInsts);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(forward && !backward)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a0cc6e4b4ab78f3c54b68fe35adb02957">addCondIntraLock</a>(lockSite,forwardInsts);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> }</div><div class="ttc" id="classSVF_1_1LockAnalysis_html_a87c412a54f48e5314454cd1d44ef9b0e"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a87c412a54f48e5314454cd1d44ef9b0e">SVF::LockAnalysis::locksites</a></div><div class="ttdeci">InstSet locksites</div><div class="ttdoc">Record all visited clps. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00474">LockAnalysis.h:474</a></div></div>
|
|
1054
1054
|
<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>
|
|
1055
|
-
<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#
|
|
1055
|
+
<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>
|
|
1056
1056
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a0cc6e4b4ab78f3c54b68fe35adb02957"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a0cc6e4b4ab78f3c54b68fe35adb02957">SVF::LockAnalysis::addCondIntraLock</a></div><div class="ttdeci">void addCondIntraLock(const Instruction *lockSite, const InstSet &stmts)</div><div class="ttdoc">Add intra-procedural lock. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00099">LockAnalysis.h:99</a></div></div>
|
|
1057
1057
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a6febb0bb12f4983cd54b3bd310ce65d2"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a6febb0bb12f4983cd54b3bd310ce65d2">SVF::LockAnalysis::intraForwardTraverse</a></div><div class="ttdeci">bool intraForwardTraverse(const Instruction *lock, InstSet &unlockset, InstSet &forwardInsts)</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8cpp_source.html#l00170">LockAnalysis.cpp:170</a></div></div>
|
|
1058
1058
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a5f693c893f3701e1e025881f91193d53"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a5f693c893f3701e1e025881f91193d53">SVF::LockAnalysis::intraBackwardTraverse</a></div><div class="ttdeci">bool intraBackwardTraverse(const InstSet &unlockset, InstSet &backwardInsts)</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8cpp_source.html#l00213">LockAnalysis.cpp:213</a></div></div>
|
|
@@ -1089,7 +1089,7 @@ Private Attributes</h2></td></tr>
|
|
|
1089
1089
|
<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>
|
|
1090
1090
|
<div class="ttc" id="classSVF_1_1TCT_html_a692a74188f141ffbdbb859ecae8b07ab"><div class="ttname"><a href="classSVF_1_1TCT.html#a692a74188f141ffbdbb859ecae8b07ab">SVF::TCT::getEntryProcs</a></div><div class="ttdeci">const FunSet & getEntryProcs() const</div><div class="ttdoc">Get marked candidate functions. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00213">TCT.h:213</a></div></div>
|
|
1091
1091
|
<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>
|
|
1092
|
-
<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#
|
|
1092
|
+
<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#l00073">BasicTypes.h:73</a></div></div>
|
|
1093
1093
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a109293f282e9b920b0b13c58026f6f1d"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a109293f282e9b920b0b13c58026f6f1d">SVF::LockAnalysis::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="LockAnalysis_8h_source.html#l00450">LockAnalysis.h:450</a></div></div>
|
|
1094
1094
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a6e34f3138e8ee558bb00d9d808afba16"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a6e34f3138e8ee558bb00d9d808afba16">SVF::LockAnalysis::isTDFork</a></div><div class="ttdeci">bool isTDFork(const Instruction *call)</div><div class="ttdoc">Whether it is a lock site. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00421">LockAnalysis.h:421</a></div></div>
|
|
1095
1095
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a6c918786d065309e8a7b13759f410a09"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a6c918786d065309e8a7b13759f410a09">SVF::LockAnalysis::hasCxtLock</a></div><div class="ttdeci">bool hasCxtLock(const CxtLock &cxtLock) const</div><div class="ttdoc">Get context-sensitive lock. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00138">LockAnalysis.h:138</a></div></div>
|
|
@@ -1138,14 +1138,14 @@ Private Attributes</h2></td></tr>
|
|
|
1138
1138
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ae5b113921530eee6afe58a65d8e5b3a7"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">SVF::GenericNode::InEdgeBegin</a></div><div class="ttdeci">iterator InEdgeBegin()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00214">GenericGraph.h:214</a></div></div>
|
|
1139
1139
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a2c4a69b0f2381142c172b3043943c79d"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">SVF::LockAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdoc">TCT. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00447">LockAnalysis.h:447</a></div></div>
|
|
1140
1140
|
<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>
|
|
1141
|
-
<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#
|
|
1141
|
+
<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#l00070">BasicTypes.h:70</a></div></div>
|
|
1142
1142
|
<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>
|
|
1143
1143
|
<div class="ttc" id="classSVF_1_1GenericNode_html_afe6a7b286d9af4992f41b59612fd2900"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">SVF::GenericNode::InEdgeEnd</a></div><div class="ttdeci">iterator InEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00218">GenericGraph.h:218</a></div></div>
|
|
1144
1144
|
<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>
|
|
1145
1145
|
<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>
|
|
1146
1146
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html">SVF::ThreadCallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00160">ThreadCallGraph.h:160</a></div></div>
|
|
1147
1147
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html">SVF::FIFOWorkList</a></div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00137">WorkList.h:137</a></div></div>
|
|
1148
|
-
<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#
|
|
1148
|
+
<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#l00144">BasicTypes.h:144</a></div></div>
|
|
1149
1149
|
<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>
|
|
1150
1150
|
<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>
|
|
1151
1151
|
<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>
|
|
@@ -1223,7 +1223,7 @@ Private Attributes</h2></td></tr>
|
|
|
1223
1223
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_ad855d1de318766ac305a10bfdae4da82"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#ad855d1de318766ac305a10bfdae4da82">SVF::LockAnalysis::CxtLockProc</a></div><div class="ttdeci">CxtProc CxtLockProc</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00036">LockAnalysis.h:36</a></div></div>
|
|
1224
1224
|
<div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_a750e50a9022451e406c4819979edffa5"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#a750e50a9022451e406c4819979edffa5">SVF::PTACallGraphEdge::directCallsBegin</a></div><div class="ttdeci">CallInstSet::const_iterator directCallsBegin() const</div><div class="ttdoc">Iterators for direct and indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00122">PTACallGraph.h:122</a></div></div>
|
|
1225
1225
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a96a6cfddc8f7115294e8ad49a097b938"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">SVF::LockAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00441">LockAnalysis.h:441</a></div></div>
|
|
1226
|
-
<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#
|
|
1226
|
+
<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#l00144">BasicTypes.h:144</a></div></div>
|
|
1227
1227
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a202de7ad2bea0311e2f75894c030e7a9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVF::SVFUtil::getLLVMCallSite</a></div><div class="ttdeci">CallSite getLLVMCallSite(const Instruction *inst)</div><div class="ttdoc">Return LLVM callsite given a instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00217">SVFUtil.h:217</a></div></div>
|
|
1228
1228
|
<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>
|
|
1229
1229
|
<div class="ttc" id="classSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00210">GenericGraph.h:210</a></div></div>
|
|
@@ -1257,7 +1257,7 @@ Private Attributes</h2></td></tr>
|
|
|
1257
1257
|
<div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a160997c1a0fb1000445d04b89d9c1323"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a160997c1a0fb1000445d04b89d9c1323">inst_iterator</a></div><div class="ttdeci">llvm::inst_iterator inst_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00109">BasicTypes.h:109</a></div></div>
|
|
1258
1258
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a2c4a69b0f2381142c172b3043943c79d"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">SVF::LockAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdoc">TCT. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00447">LockAnalysis.h:447</a></div></div>
|
|
1259
1259
|
<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>
|
|
1260
|
-
<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#
|
|
1260
|
+
<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#l00073">BasicTypes.h:73</a></div></div>
|
|
1261
1261
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html">SVF::ThreadCallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00160">ThreadCallGraph.h:160</a></div></div>
|
|
1262
1262
|
<div class="ttc" id="classSVF_1_1TCT_html_aabc2c84e951ed9ae64207e379acb3074"><div class="ttname"><a href="classSVF_1_1TCT.html#aabc2c84e951ed9ae64207e379acb3074">SVF::TCT::getSVFModule</a></div><div class="ttdeci">SVFModule * getSVFModule() const</div><div class="ttdoc">Get SVFFModule. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00161">TCT.h:161</a></div></div>
|
|
1263
1263
|
<div class="ttc" id="CFLGrammar_8txt_html_acc7b4cf736579c4d83be2316d5a9e5f2"><div class="ttname"><a href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00008">CFLGrammar.txt:8</a></div></div>
|
|
@@ -1595,18 +1595,18 @@ Private Attributes</h2></td></tr>
|
|
|
1595
1595
|
<p>Handle call. </p>
|
|
1596
1596
|
|
|
1597
1597
|
<p class="definition">Definition at line <a class="el" href="LockAnalysis_8cpp_source.html#l00427">427</a> of file <a class="el" href="LockAnalysis_8cpp_source.html">LockAnalysis.cpp</a>.</p>
|
|
1598
|
-
<div class="fragment"><div class="line"><a name="l00428"></a><span class="lineno"> 428</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="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="l00431"></a><span class="lineno"> 431</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="l00432"></a><span class="lineno"> 432</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">getCallICFGNode</a>(call);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()->hasCallGraphEdge(cbn))</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keywordflow">for</span> (PTACallGraph::CallGraphEdgeSet::const_iterator cgIt = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()->getCallEdgeBegin(cbn), ecgIt = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()->getCallEdgeEnd(cbn);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  cgIt != ecgIt; ++cgIt)</div><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>  <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="l00439"></a><span class="lineno"> 439</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="l00440"></a><span class="lineno"> 440</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(svfcallee))</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a7d9fd3ddcadd84969b57491181983b17">pushCxt</a>(newCxt, call, callee);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt, &(callee->getEntryBlock().front()));</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">markCxtStmtFlag</a>(newCts, cts);</div><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>  }</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</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#
|
|
1599
|
-
<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#
|
|
1598
|
+
<div class="fragment"><div class="line"><a name="l00428"></a><span class="lineno"> 428</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="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="l00431"></a><span class="lineno"> 431</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="l00432"></a><span class="lineno"> 432</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">getCallICFGNode</a>(call);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()->hasCallGraphEdge(cbn))</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keywordflow">for</span> (PTACallGraph::CallGraphEdgeSet::const_iterator cgIt = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()->getCallEdgeBegin(cbn), ecgIt = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()->getCallEdgeEnd(cbn);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  cgIt != ecgIt; ++cgIt)</div><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>  <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="l00439"></a><span class="lineno"> 439</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="l00440"></a><span class="lineno"> 440</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(svfcallee))</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a7d9fd3ddcadd84969b57491181983b17">pushCxt</a>(newCxt, call, callee);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt, &(callee->getEntryBlock().front()));</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">markCxtStmtFlag</a>(newCts, cts);</div><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>  }</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</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#l00128">BasicTypes.h:128</a></div></div>
|
|
1599
|
+
<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>
|
|
1600
1600
|
<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>
|
|
1601
1601
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a2c4a69b0f2381142c172b3043943c79d"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">SVF::LockAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdoc">TCT. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00447">LockAnalysis.h:447</a></div></div>
|
|
1602
1602
|
<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>
|
|
1603
1603
|
<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>
|
|
1604
|
-
<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#
|
|
1604
|
+
<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#l00070">BasicTypes.h:70</a></div></div>
|
|
1605
1605
|
<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>
|
|
1606
1606
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a96a6cfddc8f7115294e8ad49a097b938"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">SVF::LockAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00441">LockAnalysis.h:441</a></div></div>
|
|
1607
1607
|
<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>
|
|
1608
1608
|
<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>
|
|
1609
|
-
<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#
|
|
1609
|
+
<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#l00144">BasicTypes.h:144</a></div></div>
|
|
1610
1610
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a7d9fd3ddcadd84969b57491181983b17"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a7d9fd3ddcadd84969b57491181983b17">SVF::LockAnalysis::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="LockAnalysis_8cpp_source.html#l00516">LockAnalysis.cpp:516</a></div></div>
|
|
1611
1611
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a375cb175ec0068bacaa64cf40a49d485"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">SVF::LockAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &tgr, const CxtStmt &src)</div><div class="ttdoc">Mark thread flags for cxtStmt. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00337">LockAnalysis.h:337</a></div></div>
|
|
1612
1612
|
<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>
|
|
@@ -1658,16 +1658,16 @@ Private Attributes</h2></td></tr>
|
|
|
1658
1658
|
|
|
1659
1659
|
<p class="definition">Definition at line <a class="el" href="LockAnalysis_8cpp_source.html#l00306">306</a> of file <a class="el" href="LockAnalysis_8cpp_source.html">LockAnalysis.cpp</a>.</p>
|
|
1660
1660
|
<div class="fragment"><div class="line"><a name="l00307"></a><span class="lineno"> 307</span> {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> </div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> cxt(clp.getContext());</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LockAnalysis.html#a5521de9933ce74d0954a942dfceae772">isTDAcquire</a>(cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>()))</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a177b10a617c275a9c2c2ed5e9b10d78a">addCxtLock</a>(cxt,cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>());</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  }</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcallee = cgEdge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()->getFunction();</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</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="l00318"></a><span class="lineno"> 318</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a7d9fd3ddcadd84969b57491181983b17">pushCxt</a>(cxt, cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>(), callee);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#ad855d1de318766ac305a10bfdae4da82">CxtLockProc</a> newclp(cxt, svfcallee);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LockAnalysis.html#a8a6559c998c0b6f8e851d10ae2ab4171">pushToCTPWorkList</a>(newclp))</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</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">"LockAnalysis Process CallRet old clp --"</span>; clp.dump());</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</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">"LockAnalysis Process CallRet new clp --"</span>; newclp.dump());</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  }</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> }</div><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>
|
|
1661
|
-
<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#
|
|
1662
|
-
<div class="ttc" id="classSVF_1_1CallSite_html_ab36a6a35eea673d4bdca615efc4336b1"><div class="ttname"><a href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">SVF::CallSite::getInstruction</a></div><div class="ttdeci">CallBase * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
1661
|
+
<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#l00128">BasicTypes.h:128</a></div></div>
|
|
1662
|
+
<div class="ttc" id="classSVF_1_1CallSite_html_ab36a6a35eea673d4bdca615efc4336b1"><div class="ttname"><a href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">SVF::CallSite::getInstruction</a></div><div class="ttdeci">CallBase * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00211">BasicTypes.h:211</a></div></div>
|
|
1663
1663
|
<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>
|
|
1664
1664
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00093">GenericGraph.h:93</a></div></div>
|
|
1665
|
-
<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#
|
|
1665
|
+
<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#l00070">BasicTypes.h:70</a></div></div>
|
|
1666
1666
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a8a6559c998c0b6f8e851d10ae2ab4171"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a8a6559c998c0b6f8e851d10ae2ab4171">SVF::LockAnalysis::pushToCTPWorkList</a></div><div class="ttdeci">bool pushToCTPWorkList(const CxtLockProc &clp)</div><div class="ttdoc">WorkList helper functions. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00380">LockAnalysis.h:380</a></div></div>
|
|
1667
1667
|
<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>
|
|
1668
1668
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a177b10a617c275a9c2c2ed5e9b10d78a"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a177b10a617c275a9c2c2ed5e9b10d78a">SVF::LockAnalysis::addCxtLock</a></div><div class="ttdeci">void addCxtLock(const CallStrCxt &cxt, const Instruction *inst)</div><div class="ttdoc">Context-sensitive locks. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00130">LockAnalysis.h:130</a></div></div>
|
|
1669
1669
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_ad855d1de318766ac305a10bfdae4da82"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#ad855d1de318766ac305a10bfdae4da82">SVF::LockAnalysis::CxtLockProc</a></div><div class="ttdeci">CxtProc CxtLockProc</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00036">LockAnalysis.h:36</a></div></div>
|
|
1670
|
-
<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#
|
|
1670
|
+
<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#l00144">BasicTypes.h:144</a></div></div>
|
|
1671
1671
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a7d9fd3ddcadd84969b57491181983b17"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a7d9fd3ddcadd84969b57491181983b17">SVF::LockAnalysis::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="LockAnalysis_8cpp_source.html#l00516">LockAnalysis.cpp:516</a></div></div>
|
|
1672
1672
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a5521de9933ce74d0954a942dfceae772"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a5521de9933ce74d0954a942dfceae772">SVF::LockAnalysis::isTDAcquire</a></div><div class="ttdeci">bool isTDAcquire(const Instruction *call)</div><div class="ttdoc">Whether it is a lock site. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00426">LockAnalysis.h:426</a></div></div>
|
|
1673
1673
|
<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>
|
|
@@ -1701,18 +1701,18 @@ Private Attributes</h2></td></tr>
|
|
|
1701
1701
|
<p>Handle fork. </p>
|
|
1702
1702
|
|
|
1703
1703
|
<p class="definition">Definition at line <a class="el" href="LockAnalysis_8cpp_source.html#l00405">405</a> of file <a class="el" href="LockAnalysis_8cpp_source.html">LockAnalysis.cpp</a>.</p>
|
|
1704
|
-
<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>  <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="l00408"></a><span class="lineno"> 408</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="l00409"></a><span class="lineno"> 409</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">getCallICFGNode</a>(call);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()->hasThreadForkEdge(cbn))</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="keywordflow">for</span> (ThreadCallGraph::ForkEdgeSet::const_iterator cgIt = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()->getForkEdgeBegin(cbn),</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  ecgIt = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()->getForkEdgeEnd(cbn); cgIt != ecgIt; ++cgIt)</div><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>  <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="l00416"></a><span class="lineno"> 416</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="l00417"></a><span class="lineno"> 417</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a7d9fd3ddcadd84969b57491181983b17">pushCxt</a>(newCxt,call,callee);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt, &(callee->getEntryBlock().front()));</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">markCxtStmtFlag</a>(newCts, cts);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  }</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>  <a class="code" href="classSVF_1_1LockAnalysis.html#a711760ebaed0437176f4f9d314e9929c">handleIntra</a>(cts);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</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#
|
|
1705
|
-
<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#
|
|
1704
|
+
<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>  <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="l00408"></a><span class="lineno"> 408</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="l00409"></a><span class="lineno"> 409</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">getCallICFGNode</a>(call);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()->hasThreadForkEdge(cbn))</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="keywordflow">for</span> (ThreadCallGraph::ForkEdgeSet::const_iterator cgIt = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()->getForkEdgeBegin(cbn),</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  ecgIt = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()->getForkEdgeEnd(cbn); cgIt != ecgIt; ++cgIt)</div><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>  <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="l00416"></a><span class="lineno"> 416</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="l00417"></a><span class="lineno"> 417</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a7d9fd3ddcadd84969b57491181983b17">pushCxt</a>(newCxt,call,callee);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt, &(callee->getEntryBlock().front()));</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">markCxtStmtFlag</a>(newCts, cts);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  }</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>  <a class="code" href="classSVF_1_1LockAnalysis.html#a711760ebaed0437176f4f9d314e9929c">handleIntra</a>(cts);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</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#l00128">BasicTypes.h:128</a></div></div>
|
|
1705
|
+
<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>
|
|
1706
1706
|
<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>
|
|
1707
1707
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a2c4a69b0f2381142c172b3043943c79d"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">SVF::LockAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdoc">TCT. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00447">LockAnalysis.h:447</a></div></div>
|
|
1708
1708
|
<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>
|
|
1709
1709
|
<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>
|
|
1710
|
-
<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#
|
|
1710
|
+
<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#l00070">BasicTypes.h:70</a></div></div>
|
|
1711
1711
|
<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>
|
|
1712
1712
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a96a6cfddc8f7115294e8ad49a097b938"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">SVF::LockAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00441">LockAnalysis.h:441</a></div></div>
|
|
1713
1713
|
<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>
|
|
1714
1714
|
<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>
|
|
1715
|
-
<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#
|
|
1715
|
+
<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#l00144">BasicTypes.h:144</a></div></div>
|
|
1716
1716
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a711760ebaed0437176f4f9d314e9929c"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a711760ebaed0437176f4f9d314e9929c">SVF::LockAnalysis::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="LockAnalysis_8cpp_source.html#l00500">LockAnalysis.cpp:500</a></div></div>
|
|
1717
1717
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a7d9fd3ddcadd84969b57491181983b17"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a7d9fd3ddcadd84969b57491181983b17">SVF::LockAnalysis::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="LockAnalysis_8cpp_source.html#l00516">LockAnalysis.cpp:516</a></div></div>
|
|
1718
1718
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a375cb175ec0068bacaa64cf40a49d485"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">SVF::LockAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &tgr, const CxtStmt &src)</div><div class="ttdoc">Mark thread flags for cxtStmt. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00337">LockAnalysis.h:337</a></div></div>
|
|
@@ -1749,7 +1749,7 @@ Private Attributes</h2></td></tr>
|
|
|
1749
1749
|
<div class="fragment"><div class="line"><a name="l00501"></a><span class="lineno"> 501</span> {</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span> </div><div class="line"><a name="l00503"></a><span class="lineno"> 503</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="l00504"></a><span class="lineno"> 504</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="l00505"></a><span class="lineno"> 505</span> </div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#aeb4b15ecc4ba1a0ca8794d304d1895cb">InstVec</a> nextInsts;</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2f9959fa23ab4bdc65ca36fbda8c1b70">getNextInsts</a>(curInst, nextInsts);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="keywordflow">for</span> (InstVec::const_iterator nit = nextInsts.begin(), enit = nextInsts.end(); nit != enit; ++nit)</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  {</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(curCxt, *nit);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">markCxtStmtFlag</a>(newCts, cts);</div><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> }</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2f9959fa23ab4bdc65ca36fbda8c1b70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2f9959fa23ab4bdc65ca36fbda8c1b70">SVF::SVFUtil::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *curInst, std::vector< const Instruction *> &instList)</div><div class="ttdoc">Get the next instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00216">LLVMUtil.cpp:216</a></div></div>
|
|
1750
1750
|
<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>
|
|
1751
1751
|
<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>
|
|
1752
|
-
<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#
|
|
1752
|
+
<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#l00073">BasicTypes.h:73</a></div></div>
|
|
1753
1753
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_aeb4b15ecc4ba1a0ca8794d304d1895cb"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#aeb4b15ecc4ba1a0ca8794d304d1895cb">SVF::LockAnalysis::InstVec</a></div><div class="ttdeci">TCT::InstVec InstVec</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00039">LockAnalysis.h:39</a></div></div>
|
|
1754
1754
|
<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>
|
|
1755
1755
|
<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>
|
|
@@ -1786,13 +1786,13 @@ Private Attributes</h2></td></tr>
|
|
|
1786
1786
|
<p class="definition">Definition at line <a class="el" href="LockAnalysis_8cpp_source.html#l00451">451</a> of file <a class="el" href="LockAnalysis_8cpp_source.html">LockAnalysis.cpp</a>.</p>
|
|
1787
1787
|
<div class="fragment"><div class="line"><a name="l00452"></a><span class="lineno"> 452</span> {</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span> </div><div class="line"><a name="l00454"></a><span class="lineno"> 454</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="l00455"></a><span class="lineno"> 455</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="l00456"></a><span class="lineno"> 456</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svffun = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a21bcc063a406eb8650df42cf5ced68c9">getSVFFun</a>(curInst->getParent()->getParent());</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* curFunNode = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(svffun);</div><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>  <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="l00460"></a><span class="lineno"> 460</span>  {</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <a class="code" href="classSVF_1_1PTACallGraphEdge.html">PTACallGraphEdge</a>* edge = *it;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordflow">if</span> (SVFUtil::isa<ThreadForkEdge>(edge) || SVFUtil::isa<ThreadJoinEdge>(edge))</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keywordflow">for</span> (PTACallGraphEdge::CallInstSet::const_iterator cit = (edge)->directCallsBegin(), ecit = (edge)->directCallsEnd(); cit != ecit;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  ++cit)</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = (*cit)->getCallSite();</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LockAnalysis.html#a3299f1fe234e1d6b4341498575bddcbb">matchCxt</a>(newCxt, inst, 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="l00470"></a><span class="lineno"> 470</span>  {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#aeb4b15ecc4ba1a0ca8794d304d1895cb">InstVec</a> nextInsts;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2f9959fa23ab4bdc65ca36fbda8c1b70">getNextInsts</a>(inst, nextInsts);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keywordflow">for</span> (InstVec::const_iterator nit = nextInsts.begin(), enit = nextInsts.end(); nit != enit; ++nit)</div><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>  <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt, *nit);</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">markCxtStmtFlag</a>(newCts, cts);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  }</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  }</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  }</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="keywordflow">for</span> (PTACallGraphEdge::CallInstSet::const_iterator cit = (edge)->indirectCallsBegin(), ecit = (edge)->indirectCallsEnd();</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  cit != ecit; ++cit)</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  {</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = (*cit)->getCallSite();</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LockAnalysis.html#a3299f1fe234e1d6b4341498575bddcbb">matchCxt</a>(newCxt, inst, 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="l00486"></a><span class="lineno"> 486</span>  {</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#aeb4b15ecc4ba1a0ca8794d304d1895cb">InstVec</a> nextInsts;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2f9959fa23ab4bdc65ca36fbda8c1b70">getNextInsts</a>(inst, nextInsts);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keywordflow">for</span> (InstVec::const_iterator nit = nextInsts.begin(), enit = nextInsts.end(); nit != enit; ++nit)</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  {</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt, *nit);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">markCxtStmtFlag</a>(newCts, cts);</div><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>  }</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  }</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  }</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</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>
|
|
1788
1788
|
<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>
|
|
1789
|
-
<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#
|
|
1789
|
+
<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#l00128">BasicTypes.h:128</a></div></div>
|
|
1790
1790
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2f9959fa23ab4bdc65ca36fbda8c1b70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2f9959fa23ab4bdc65ca36fbda8c1b70">SVF::SVFUtil::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *curInst, std::vector< const Instruction *> &instList)</div><div class="ttdoc">Get the next instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00216">LLVMUtil.cpp:216</a></div></div>
|
|
1791
1791
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a2c4a69b0f2381142c172b3043943c79d"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">SVF::LockAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdoc">TCT. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00447">LockAnalysis.h:447</a></div></div>
|
|
1792
1792
|
<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>
|
|
1793
1793
|
<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>
|
|
1794
1794
|
<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>
|
|
1795
|
-
<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#
|
|
1795
|
+
<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#l00073">BasicTypes.h:73</a></div></div>
|
|
1796
1796
|
<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>
|
|
1797
1797
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a3299f1fe234e1d6b4341498575bddcbb"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a3299f1fe234e1d6b4341498575bddcbb">SVF::LockAnalysis::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="LockAnalysis_8cpp_source.html#l00535">LockAnalysis.cpp:535</a></div></div>
|
|
1798
1798
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_aeb4b15ecc4ba1a0ca8794d304d1895cb"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#aeb4b15ecc4ba1a0ca8794d304d1895cb">SVF::LockAnalysis::InstVec</a></div><div class="ttdeci">TCT::InstVec InstVec</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00039">LockAnalysis.h:39</a></div></div>
|
|
@@ -1801,7 +1801,7 @@ Private Attributes</h2></td></tr>
|
|
|
1801
1801
|
<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>
|
|
1802
1802
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a96a6cfddc8f7115294e8ad49a097b938"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">SVF::LockAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00441">LockAnalysis.h:441</a></div></div>
|
|
1803
1803
|
<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>
|
|
1804
|
-
<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#
|
|
1804
|
+
<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#l00144">BasicTypes.h:144</a></div></div>
|
|
1805
1805
|
<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>
|
|
1806
1806
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a375cb175ec0068bacaa64cf40a49d485"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">SVF::LockAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &tgr, const CxtStmt &src)</div><div class="ttdoc">Mark thread flags for cxtStmt. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00337">LockAnalysis.h:337</a></div></div>
|
|
1807
1807
|
</div><!-- fragment -->
|
|
@@ -2124,8 +2124,8 @@ Private Attributes</h2></td></tr>
|
|
|
2124
2124
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_add9272ead87ca994ee4e08dfa30fa0f4"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#add9272ead87ca994ee4e08dfa30fa0f4">SVF::LockAnalysis::isAliasedLocks</a></div><div class="ttdeci">bool isAliasedLocks(const CxtLock &cl1, const CxtLock &cl2)</div><div class="ttdoc">Return true it a lock matches an unlock. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00324">LockAnalysis.h:324</a></div></div>
|
|
2125
2125
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00269">SVFUtil.cpp:269</a></div></div>
|
|
2126
2126
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7e3a8d6cb1715db9518579fb60181d5b"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7e3a8d6cb1715db9518579fb60181d5b">SVF::SVFUtil::getPrevInsts</a></div><div class="ttdeci">void getPrevInsts(const Instruction *curInst, std::vector< const Instruction *> &instList)</div><div class="ttdoc">Get the previous instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00243">LLVMUtil.cpp:243</a></div></div>
|
|
2127
|
-
<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#
|
|
2128
|
-
<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#
|
|
2127
|
+
<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#l00070">BasicTypes.h:70</a></div></div>
|
|
2128
|
+
<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#l00073">BasicTypes.h:73</a></div></div>
|
|
2129
2129
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_aeb4b15ecc4ba1a0ca8794d304d1895cb"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#aeb4b15ecc4ba1a0ca8794d304d1895cb">SVF::LockAnalysis::InstVec</a></div><div class="ttdeci">TCT::InstVec InstVec</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00039">LockAnalysis.h:39</a></div></div>
|
|
2130
2130
|
<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>
|
|
2131
2131
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a5521de9933ce74d0954a942dfceae772"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a5521de9933ce74d0954a942dfceae772">SVF::LockAnalysis::isTDAcquire</a></div><div class="ttdeci">bool isTDAcquire(const Instruction *call)</div><div class="ttdoc">Whether it is a lock site. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00426">LockAnalysis.h:426</a></div></div>
|
|
@@ -2171,11 +2171,11 @@ Private Attributes</h2></td></tr>
|
|
|
2171
2171
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_add9272ead87ca994ee4e08dfa30fa0f4"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#add9272ead87ca994ee4e08dfa30fa0f4">SVF::LockAnalysis::isAliasedLocks</a></div><div class="ttdeci">bool isAliasedLocks(const CxtLock &cl1, const CxtLock &cl2)</div><div class="ttdoc">Return true it a lock matches an unlock. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00324">LockAnalysis.h:324</a></div></div>
|
|
2172
2172
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00269">SVFUtil.cpp:269</a></div></div>
|
|
2173
2173
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2f9959fa23ab4bdc65ca36fbda8c1b70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2f9959fa23ab4bdc65ca36fbda8c1b70">SVF::SVFUtil::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *curInst, std::vector< const Instruction *> &instList)</div><div class="ttdoc">Get the next instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00216">LLVMUtil.cpp:216</a></div></div>
|
|
2174
|
-
<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#
|
|
2175
|
-
<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#
|
|
2174
|
+
<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#l00070">BasicTypes.h:70</a></div></div>
|
|
2175
|
+
<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#l00073">BasicTypes.h:73</a></div></div>
|
|
2176
2176
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_aeb4b15ecc4ba1a0ca8794d304d1895cb"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#aeb4b15ecc4ba1a0ca8794d304d1895cb">SVF::LockAnalysis::InstVec</a></div><div class="ttdeci">TCT::InstVec InstVec</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00039">LockAnalysis.h:39</a></div></div>
|
|
2177
2177
|
<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>
|
|
2178
|
-
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a3cb226930eeaf558575e09e5b65e0223"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a3cb226930eeaf558575e09e5b65e0223">SVF::SVFUtil::getFunExitBB</a></div><div class="ttdeci">const BasicBlock * getFunExitBB(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
2178
|
+
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a3cb226930eeaf558575e09e5b65e0223"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a3cb226930eeaf558575e09e5b65e0223">SVF::SVFUtil::getFunExitBB</a></div><div class="ttdeci">const BasicBlock * getFunExitBB(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00530">LLVMUtil.h:530</a></div></div>
|
|
2179
2179
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_ae312fa9ddb320674f7bc31e29aa474ed"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#ae312fa9ddb320674f7bc31e29aa474ed">SVF::LockAnalysis::isTDRelease</a></div><div class="ttdeci">bool isTDRelease(const Instruction *call)</div><div class="ttdoc">Whether it is a unlock site. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00431">LockAnalysis.h:431</a></div></div>
|
|
2180
2180
|
<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>
|
|
2181
2181
|
</div><!-- fragment -->
|
|
@@ -2903,11 +2903,11 @@ Private Attributes</h2></td></tr>
|
|
|
2903
2903
|
<p class="definition">Definition at line <a class="el" href="LockAnalysis_8cpp_source.html#l00535">535</a> of file <a class="el" href="LockAnalysis_8cpp_source.html">LockAnalysis.cpp</a>.</p>
|
|
2904
2904
|
<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>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* caller = call->getParent()->getParent();</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcallee = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a21bcc063a406eb8650df42cf5ced68c9">getSVFFun</a>(callee);</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcaller = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a21bcc063a406eb8650df42cf5ced68c9">getSVFFun</a>(caller);</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">getCallICFGNode</a>(call);</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">getCallSiteID</a>(cbn, svfcallee);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span> </div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="comment">// /// handle calling context for candidate functions only</span></div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="comment">// if (isLockCandidateFun(caller) == false)</span></div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="comment">// return true;</span></div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span> </div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="keywordflow">if</span> (cxt.empty())</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span> </div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a95cd490d37f8831edc6910f7ecdf413e">inSameCallGraphSCC</a>(<a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()->getCallGraphNode(svfcaller), <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()->getCallGraphNode(svfcallee)) == <span class="keyword">false</span>)</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keywordflow">if</span> (cxt.back() == csId)</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  cxt.pop_back();</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</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="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-><a class="code" href="classSVF_1_1TCT.html#aa86c4422e17cf00408444f18687d555b">dumpCxt</a>(cxt));</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  }</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span> }</div><div class="ttc" id="classSVF_1_1PTACallGraph_html_a711bd8ad385f8454fbfcd20f134efe1b"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">SVF::PTACallGraph::getCallSiteID</a></div><div class="ttdeci">CallSiteID getCallSiteID(const CallICFGNode *cs, const SVFFunction *callee) const</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00344">PTACallGraph.h:344</a></div></div>
|
|
2905
2905
|
<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>
|
|
2906
|
-
<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#
|
|
2906
|
+
<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#l00128">BasicTypes.h:128</a></div></div>
|
|
2907
2907
|
<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>
|
|
2908
2908
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a2c4a69b0f2381142c172b3043943c79d"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">SVF::LockAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdoc">TCT. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00447">LockAnalysis.h:447</a></div></div>
|
|
2909
2909
|
<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>
|
|
2910
|
-
<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#
|
|
2910
|
+
<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#l00070">BasicTypes.h:70</a></div></div>
|
|
2911
2911
|
<div class="ttc" id="classSVF_1_1TCT_html_a95cd490d37f8831edc6910f7ecdf413e"><div class="ttname"><a href="classSVF_1_1TCT.html#a95cd490d37f8831edc6910f7ecdf413e">SVF::TCT::inSameCallGraphSCC</a></div><div class="ttdeci">bool inSameCallGraphSCC(const PTACallGraphNode *src, const PTACallGraphNode *dst)</div><div class="ttdoc">Whether two functions in the same callgraph scc. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00268">TCT.h:268</a></div></div>
|
|
2912
2912
|
<div class="ttc" id="namespaceSVF_html_a03d88a0302bcd253387690f13f693f64"><div class="ttname"><a href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">SVF::CallSiteID</a></div><div class="ttdeci">unsigned CallSiteID</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00092">SVFBasicTypes.h:92</a></div></div>
|
|
2913
2913
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a96a6cfddc8f7115294e8ad49a097b938"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">SVF::LockAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00441">LockAnalysis.h:441</a></div></div>
|
|
@@ -3047,11 +3047,11 @@ Private Attributes</h2></td></tr>
|
|
|
3047
3047
|
<p class="definition">Definition at line <a class="el" href="LockAnalysis_8cpp_source.html#l00516">516</a> of file <a class="el" href="LockAnalysis_8cpp_source.html">LockAnalysis.cpp</a>.</p>
|
|
3048
3048
|
<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>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* caller = call->getParent()->getParent();</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcallee = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a21bcc063a406eb8650df42cf5ced68c9">getSVFFun</a>(callee);</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcaller = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a21bcc063a406eb8650df42cf5ced68c9">getSVFFun</a>(caller);</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">getCallICFGNode</a>(call);</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">getCallSiteID</a>(cbn, svfcallee);</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span> </div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="comment">// /// handle calling context for candidate functions only</span></div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="comment">// if (isLockCandidateFun(caller) == false)</span></div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="comment">// return;</span></div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span> </div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-><a class="code" href="classSVF_1_1TCT.html#a95cd490d37f8831edc6910f7ecdf413e">inSameCallGraphSCC</a>(<a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()->getCallGraphNode(svfcaller), <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()->getCallGraphNode(svfcallee)) == <span class="keyword">false</span>)</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  {</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-><a class="code" href="classSVF_1_1TCT.html#afc6d7a91cfc98561bcce13425964a39e">pushCxt</a>(cxt,csId);</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</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="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-><a class="code" href="classSVF_1_1TCT.html#aa86c4422e17cf00408444f18687d555b">dumpCxt</a>(cxt));</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  }</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span> }</div><div class="ttc" id="classSVF_1_1PTACallGraph_html_a711bd8ad385f8454fbfcd20f134efe1b"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">SVF::PTACallGraph::getCallSiteID</a></div><div class="ttdeci">CallSiteID getCallSiteID(const CallICFGNode *cs, const SVFFunction *callee) const</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00344">PTACallGraph.h:344</a></div></div>
|
|
3049
3049
|
<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>
|
|
3050
|
-
<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#
|
|
3050
|
+
<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#l00128">BasicTypes.h:128</a></div></div>
|
|
3051
3051
|
<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>
|
|
3052
3052
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a2c4a69b0f2381142c172b3043943c79d"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">SVF::LockAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdoc">TCT. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00447">LockAnalysis.h:447</a></div></div>
|
|
3053
3053
|
<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>
|
|
3054
|
-
<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#
|
|
3054
|
+
<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#l00070">BasicTypes.h:70</a></div></div>
|
|
3055
3055
|
<div class="ttc" id="classSVF_1_1TCT_html_a95cd490d37f8831edc6910f7ecdf413e"><div class="ttname"><a href="classSVF_1_1TCT.html#a95cd490d37f8831edc6910f7ecdf413e">SVF::TCT::inSameCallGraphSCC</a></div><div class="ttdeci">bool inSameCallGraphSCC(const PTACallGraphNode *src, const PTACallGraphNode *dst)</div><div class="ttdoc">Whether two functions in the same callgraph scc. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00268">TCT.h:268</a></div></div>
|
|
3056
3056
|
<div class="ttc" id="namespaceSVF_html_a03d88a0302bcd253387690f13f693f64"><div class="ttname"><a href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">SVF::CallSiteID</a></div><div class="ttdeci">unsigned CallSiteID</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00092">SVFBasicTypes.h:92</a></div></div>
|
|
3057
3057
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a96a6cfddc8f7115294e8ad49a097b938"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">SVF::LockAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00441">LockAnalysis.h:441</a></div></div>
|