svf-tools 1.0.573 → 1.0.574
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 +1 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +5 -5
- 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/BreakConstantExpr_8cpp.html +2 -2
- package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +4 -4
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +18 -18
- 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 -21
- package/SVF-doxygen/html/html/CPPUtil_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
- 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 +1 -1
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +4 -4
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +22 -22
- package/SVF-doxygen/html/html/DCHG_8h_source.html +9 -9
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +1 -1
- 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 +10 -10
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExeState_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +8 -8
- 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 +10 -10
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +22 -20
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +13 -13
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +23 -23
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +16 -16
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +4 -4
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/MHP_8h_source.html +6 -6
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +5 -5
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +16 -16
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +7 -7
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MTA_8h_source.html +5 -5
- 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 +8 -8
- 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 +2 -2
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/PCG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
- 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 +13 -13
- 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 +7 -7
- package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +8 -0
- package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +84 -81
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +49 -52
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +45 -45
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +10 -10
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +2 -2
- 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 +12 -12
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +10 -10
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
- 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/SaberCondAllocator_8cpp_source.html +28 -30
- package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +43 -47
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +34 -36
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +8 -8
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/TCT_8h_source.html +11 -11
- 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/Util_2BasicTypes_8h.html +0 -7
- package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +93 -94
- 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/VersionedFlowSensitive_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +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 +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +1 -1
- 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_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 +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +35 -35
- 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 +4 -4
- 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-members.html +18 -21
- package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +37 -120
- 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 +6 -6
- 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 +57 -57
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.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_1DoubleFreeChecker.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_1ExtAPI.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +22 -22
- 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 +3 -3
- 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 +13 -13
- 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 +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +8 -8
- 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_1LLVMLoopAnalysis.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +58 -56
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +3 -3
- 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 +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +10 -10
- 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 +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +20 -20
- 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 +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +9 -9
- 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-members.html +22 -17
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +279 -111
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +92 -98
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator-members.html +27 -28
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +118 -153
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
- 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 +48 -50
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +30 -30
- 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 +3 -3
- 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_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 +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +1 -1
- package/SVF-doxygen/html/html/classllvm_1_1generic__bridge__gep__type__iterator.html +3 -3
- package/SVF-doxygen/html/html/functions_a.html +7 -13
- package/SVF-doxygen/html/html/functions_b.html +7 -4
- package/SVF-doxygen/html/html/functions_func.html +10 -13
- package/SVF-doxygen/html/html/functions_func_g.html +14 -11
- package/SVF-doxygen/html/html/functions_func_h.html +5 -2
- package/SVF-doxygen/html/html/functions_func_i.html +5 -2
- package/SVF-doxygen/html/html/functions_func_s.html +11 -11
- package/SVF-doxygen/html/html/functions_g.html +16 -13
- package/SVF-doxygen/html/html/functions_h.html +6 -3
- package/SVF-doxygen/html/html/functions_i.html +10 -7
- package/SVF-doxygen/html/html/functions_l.html +3 -3
- package/SVF-doxygen/html/html/functions_m.html +1 -1
- package/SVF-doxygen/html/html/functions_o.html +15 -15
- package/SVF-doxygen/html/html/functions_p.html +8 -12
- package/SVF-doxygen/html/html/functions_s.html +6 -6
- package/SVF-doxygen/html/html/functions_t.html +7 -7
- package/SVF-doxygen/html/html/functions_type.html +0 -3
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/functions_vars_b.html +3 -0
- package/SVF-doxygen/html/html/functions_w.html +11 -11
- package/SVF-doxygen/html/html/namespaceSVF.html +123 -120
- package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +47 -47
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +19 -19
- package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +40 -40
- package/SVF-doxygen/html/html/search/all_1.js +1 -3
- package/SVF-doxygen/html/html/search/all_10.js +6 -6
- package/SVF-doxygen/html/html/search/all_11.js +2 -2
- package/SVF-doxygen/html/html/search/all_12.js +9 -9
- package/SVF-doxygen/html/html/search/all_13.js +4 -4
- package/SVF-doxygen/html/html/search/all_15.js +3 -3
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_2.js +1 -0
- package/SVF-doxygen/html/html/search/all_7.js +2 -1
- package/SVF-doxygen/html/html/search/all_8.js +1 -0
- package/SVF-doxygen/html/html/search/all_9.js +1 -0
- 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 +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +1 -1
- package/SVF-doxygen/html/html/search/all_f.js +2 -2
- package/SVF-doxygen/html/html/search/functions_0.js +1 -2
- package/SVF-doxygen/html/html/search/functions_11.js +2 -2
- package/SVF-doxygen/html/html/search/functions_6.js +2 -1
- package/SVF-doxygen/html/html/search/functions_7.js +1 -0
- package/SVF-doxygen/html/html/search/functions_8.js +1 -0
- package/SVF-doxygen/html/html/search/typedefs_0.js +0 -1
- package/SVF-doxygen/html/html/search/variables_13.js +1 -1
- package/SVF-doxygen/html/html/search/variables_2.js +1 -0
- package/SVF-doxygen/html/html/search/variables_c.js +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter_3_01T_00_018_01_4.html +1 -1
- 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_01PTACallGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +4 -4
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +4 -4
- 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/SABER/SaberCondAllocator.h +0 -7
- package/include/SVF-FE/BasicTypes.h +7 -0
- package/include/Util/BasicTypes.h +52 -17
- package/lib/SABER/SaberCondAllocator.cpp +7 -9
- package/lib/SVF-FE/LLVMModule.cpp +8 -0
- package/lib/SVF-FE/SVFIRBuilder.cpp +2 -2
- package/lib/SVF-FE/SymbolTableBuilder.cpp +2 -2
- package/package.json +1 -1
|
@@ -73,16 +73,16 @@ $(function() {
|
|
|
73
73
|
<div class="ttc" id="classSVF_1_1MSSACHI_html_a245d8ee9e81ba4fe6f41533baf471331"><div class="ttname"><a href="classSVF_1_1MSSACHI.html#a245d8ee9e81ba4fe6f41533baf471331">SVF::MSSACHI::setOpVer</a></div><div class="ttdeci">void setOpVer(MRVer *v)</div><div class="ttdoc">Set operand ver. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00414">MSSAMuChi.h:414</a></div></div>
|
|
74
74
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a37dca8a7d155de4870358146d219b5e5"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a37dca8a7d155de4870358146d219b5e5">SVF::MemSSA::timeOfGeneratingMemRegions</a></div><div class="ttdeci">static double timeOfGeneratingMemRegions</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00107">MemSSA.h:107</a></div></div>
|
|
75
75
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a4f3c4374ba4b06a819721a8e05efe221"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a4f3c4374ba4b06a819721a8e05efe221">SVF::MemSSA::buildMemSSA</a></div><div class="ttdeci">virtual void buildMemSSA(const SVFFunction &fun)</div><div class="ttdoc">We start from here. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00079">MemSSA.cpp:79</a></div></div>
|
|
76
|
-
<div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
76
|
+
<div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00070">BasicTypes.h:70</a></div></div>
|
|
77
77
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a16114eb55775f6ee812c1648dcaede0c"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a16114eb55775f6ee812c1648dcaede0c">SVF::MemSSA::SSARename</a></div><div class="ttdeci">virtual void SSARename(const SVFFunction &fun)</div><div class="ttdoc">SSA rename for a function. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00251">MemSSA.cpp:251</a></div></div>
|
|
78
78
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a3d6096aeb4155444b532b02bb8559113"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a3d6096aeb4155444b532b02bb8559113">SVF::MemSSA::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Release the memory. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00371">MemSSA.cpp:371</a></div></div>
|
|
79
|
-
<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#
|
|
79
|
+
<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#l00115">BasicTypes.h:115</a></div></div>
|
|
80
80
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a6bd57451370f5f4c92ce212be4cddd15"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a6bd57451370f5f4c92ce212be4cddd15">SVF::MemSSA::MemSSA</a></div><div class="ttdeci">MemSSA(BVDataPTAImpl *p, bool ptrOnlyMSSA)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00046">MemSSA.cpp:46</a></div></div>
|
|
81
81
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00106">SVFIR.h:106</a></div></div>
|
|
82
82
|
<div class="ttc" id="classSVF_1_1Options_html_a4ac0e6b77fc9ccc18b269268b3cd046d"><div class="ttname"><a href="classSVF_1_1Options.html#a4ac0e6b77fc9ccc18b269268b3cd046d">SVF::Options::MSSAFun</a></div><div class="ttdeci">static const llvm::cl::opt< std ::string > MSSAFun</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00152">Options.h:152</a></div></div>
|
|
83
83
|
<div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00110">SVFBasicTypes.h:110</a></div></div>
|
|
84
84
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a4d4f7039c2972e671dc15b8c75abad14"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a4d4f7039c2972e671dc15b8c75abad14">SVF::MemSSA::BBToMRSetMap</a></div><div class="ttdeci">Map< const BasicBlock *, MRSet > BBToMRSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00094">MemSSA.h:94</a></div></div>
|
|
85
|
-
<div class="ttc" id="namespaceSVF_html_a3436a988bf80c021cd8022fb445b66d5"><div class="ttname"><a href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">SVF::succ_const_iterator</a></div><div class="ttdeci">llvm::succ_const_iterator succ_const_iterator</div><div class="ttdoc">LLVM Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
85
|
+
<div class="ttc" id="namespaceSVF_html_a3436a988bf80c021cd8022fb445b66d5"><div class="ttname"><a href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">SVF::succ_const_iterator</a></div><div class="ttdeci">llvm::succ_const_iterator succ_const_iterator</div><div class="ttdoc">LLVM Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00107">BasicTypes.h:107</a></div></div>
|
|
86
86
|
<div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
|
|
87
87
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a077caa1b10ab84d101d79fc7ea50db2d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVF::SVFUtil::writeWrnMsg</a></div><div class="ttdeci">void writeWrnMsg(std::string msg)</div><div class="ttdoc">Writes a message run through wrnMsg. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00067">SVFUtil.cpp:67</a></div></div>
|
|
88
88
|
<div class="ttc" id="classSVF_1_1MSSADEF_html"><div class="ttname"><a href="classSVF_1_1MSSADEF.html">SVF::MSSADEF</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00325">MSSAMuChi.h:325</a></div></div>
|
|
@@ -98,11 +98,11 @@ $(function() {
|
|
|
98
98
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_ac72d668bed7ee23a203a330dc6ee4d9a"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ac72d668bed7ee23a203a330dc6ee4d9a">SVF::SymbolTableInfo::isReturn</a></div><div class="ttdeci">static bool isReturn(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00334">SymbolTableInfo.cpp:334</a></div></div>
|
|
99
99
|
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00105">SVFBasicTypes.h:105</a></div></div>
|
|
100
100
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a89c40c8fad70f3aead6531261e5a3cc3"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a89c40c8fad70f3aead6531261e5a3cc3">SVF::MemSSA::performStat</a></div><div class="ttdeci">void performStat()</div><div class="ttdoc">Perform statistics. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00454">MemSSA.cpp:454</a></div></div>
|
|
101
|
-
<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#
|
|
101
|
+
<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#l00072">BasicTypes.h:72</a></div></div>
|
|
102
102
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a81bba824495a882b49e687683954b112"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">SVF::MemSSA::MUSet</a></div><div class="ttdeci">Set< MU * > MUSet</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00070">MemSSA.h:70</a></div></div>
|
|
103
103
|
<div class="ttc" id="namespaceSVFUtil_html"><div class="ttname"><a href="namespaceSVFUtil.html">SVFUtil</a></div></div>
|
|
104
104
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a66e693af7b37e4e58b4834898d6a34fa"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a66e693af7b37e4e58b4834898d6a34fa">SVF::MemSSA::BBList</a></div><div class="ttdeci">std::vector< const BasicBlock * > BBList</div><div class="ttdoc">For phi insertion. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00093">MemSSA.h:93</a></div></div>
|
|
105
|
-
<div class="ttc" id="classSVF_1_1SVFFunction_html_a97b0ad9fd31d7982f44a839605566347"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a97b0ad9fd31d7982f44a839605566347">SVF::SVFFunction::isNotRetFunction</a></div><div class="ttdeci">bool isNotRetFunction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
105
|
+
<div class="ttc" id="classSVF_1_1SVFFunction_html_a97b0ad9fd31d7982f44a839605566347"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a97b0ad9fd31d7982f44a839605566347">SVF::SVFFunction::isNotRetFunction</a></div><div class="ttdeci">bool isNotRetFunction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00259">BasicTypes.h:259</a></div></div>
|
|
106
106
|
<div class="ttc" id="classSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00378">SVFStatements.h:378</a></div></div>
|
|
107
107
|
<div class="ttc" id="classSVF_1_1MSSADEF_html_a343eb4c9515dfbbbdadaacf5500e5f05"><div class="ttname"><a href="classSVF_1_1MSSADEF.html#a343eb4c9515dfbbbdadaacf5500e5f05">SVF::MSSADEF::setResVer</a></div><div class="ttdeci">void setResVer(MRVer *v)</div><div class="ttdoc">Set result operand ver. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00366">MSSAMuChi.h:366</a></div></div>
|
|
108
108
|
<div class="ttc" id="classSVF_1_1Options_html_a74b821736a04f89adb79d6fd5369cdc3"><div class="ttname"><a href="classSVF_1_1Options.html#a74b821736a04f89adb79d6fd5369cdc3">SVF::Options::MemPar</a></div><div class="ttdeci">static const llvm::cl::opt< MemSSA::MemPartition > MemPar</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00154">Options.h:154</a></div></div>
|
|
@@ -112,10 +112,10 @@ $(function() {
|
|
|
112
112
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a271c20725d49dd65b95c062938ffde4c"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a271c20725d49dd65b95c062938ffde4c">SVF::MemSSA::SSARenameBB</a></div><div class="ttdeci">virtual void SSARenameBB(const BasicBlock &bb)</div><div class="ttdoc">SSA rename for a basic block. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00264">MemSSA.cpp:264</a></div></div>
|
|
113
113
|
<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>
|
|
114
114
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a9bb6512999cbf9c7c03153be77c8af20"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a9bb6512999cbf9c7c03153be77c8af20">SVF::MemSSA::getBBPhiNum</a></div><div class="ttdeci">u32_t getBBPhiNum() const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00565">MemSSA.cpp:565</a></div></div>
|
|
115
|
-
<div class="ttc" id="classSVF_1_1SVFFunction_html_a18b638221f5b7618f10b0f6ff4310fd4"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a18b638221f5b7618f10b0f6ff4310fd4">SVF::SVFFunction::getReachableBBs</a></div><div class="ttdeci">const std::vector< const BasicBlock * > & getReachableBBs() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
115
|
+
<div class="ttc" id="classSVF_1_1SVFFunction_html_a18b638221f5b7618f10b0f6ff4310fd4"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a18b638221f5b7618f10b0f6ff4310fd4">SVF::SVFFunction::getReachableBBs</a></div><div class="ttdeci">const std::vector< const BasicBlock * > & getReachableBBs() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00172">BasicTypes.h:172</a></div></div>
|
|
116
116
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00390">SVFUtil.cpp:390</a></div></div>
|
|
117
117
|
<div class="ttc" id="SVFBasicTypes_8h_html_a385e9d80a013723304b329454d32e8b1"><div class="ttname"><a href="SVFBasicTypes_8h.html#a385e9d80a013723304b329454d32e8b1">DMSSA</a></div><div class="ttdeci">#define DMSSA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00171">SVFBasicTypes.h:171</a></div></div>
|
|
118
|
-
<div class="ttc" id="classSVF_1_1SVFFunction_html_abee75ed6f0e1625fb9fe2d5518e0c94c"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#abee75ed6f0e1625fb9fe2d5518e0c94c">SVF::SVFFunction::getDomFrontierMap</a></div><div class="ttdeci">const Map< const BasicBlock *, Set< const BasicBlock * > > & getDomFrontierMap() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
118
|
+
<div class="ttc" id="classSVF_1_1SVFFunction_html_abee75ed6f0e1625fb9fe2d5518e0c94c"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#abee75ed6f0e1625fb9fe2d5518e0c94c">SVF::SVFFunction::getDomFrontierMap</a></div><div class="ttdeci">const Map< const BasicBlock *, Set< const BasicBlock * > > & getDomFrontierMap() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00202">BasicTypes.h:202</a></div></div>
|
|
119
119
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a2c65795ca63a53c833f5ac17a752b6dc"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a2c65795ca63a53c833f5ac17a752b6dc">SVF::MemSSA::getCallSiteChiNum</a></div><div class="ttdeci">u32_t getCallSiteChiNum() const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00548">MemSSA.cpp:548</a></div></div>
|
|
120
120
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a93ac673b885633849fa484938405ca75"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">SVF::SVFUtil::isHeapAllocExtCall</a></div><div class="ttdeci">bool isHeapAllocExtCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00507">SVFUtil.h:507</a></div></div>
|
|
121
121
|
<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#l00182">SVFBasicTypes.h:182</a></div></div>
|
|
@@ -124,13 +124,13 @@ $(function() {
|
|
|
124
124
|
<div class="ttc" id="classSVF_1_1DistinctMRG_html"><div class="ttname"><a href="classSVF_1_1DistinctMRG.html">SVF::DistinctMRG</a></div><div class="ttdef"><b>Definition:</b> <a href="MemPartition_8h_source.html#l00047">MemPartition.h:47</a></div></div>
|
|
125
125
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a9e8c5b85957485635d0f72c2f48bb8b5"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a9e8c5b85957485635d0f72c2f48bb8b5">SVF::MemSSA::getCallSiteMuNum</a></div><div class="ttdeci">u32_t getCallSiteMuNum() const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00531">MemSSA.cpp:531</a></div></div>
|
|
126
126
|
<div class="ttc" id="Options_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
127
|
-
<div class="ttc" id="classSVF_1_1SVFFunction_html_a52358a4814f16dc8db4d62f92968f70e"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a52358a4814f16dc8db4d62f92968f70e">SVF::SVFFunction::getDomTreeMap</a></div><div class="ttdeci">Map< const BasicBlock *, Set< const BasicBlock * > > & getDomTreeMap()</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
127
|
+
<div class="ttc" id="classSVF_1_1SVFFunction_html_a52358a4814f16dc8db4d62f92968f70e"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a52358a4814f16dc8db4d62f92968f70e">SVF::SVFFunction::getDomTreeMap</a></div><div class="ttdeci">Map< const BasicBlock *, Set< const BasicBlock * > > & getDomTreeMap()</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00244">BasicTypes.h:244</a></div></div>
|
|
128
128
|
<div class="ttc" id="classSVF_1_1SVFValue_html_a2409c01221b9a6632655cee43d1b35e4"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">SVF::SVFValue::getName</a></div><div class="ttdeci">const std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00253">SVFBasicTypes.h:253</a></div></div>
|
|
129
129
|
<div class="ttc" id="classSVF_1_1MemSSA_html_aa8c45b455e6fc60cab955534c3e50bfa"><div class="ttname"><a href="classSVF_1_1MemSSA.html#aa8c45b455e6fc60cab955534c3e50bfa">SVF::MemSSA::getStoreChiNum</a></div><div class="ttdeci">u32_t getStoreChiNum() const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00480">MemSSA.cpp:480</a></div></div>
|
|
130
130
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a97ccd5e0b9ab6144415e26bdf95cbabd"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a97ccd5e0b9ab6144415e26bdf95cbabd">SVF::MemSSA::timeOfSSARenaming</a></div><div class="ttdeci">static double timeOfSSARenaming</div><div class="ttdoc">Time for SSA rename. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00110">MemSSA.h:110</a></div></div>
|
|
131
131
|
<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>
|
|
132
132
|
<div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00070">LLVMModule.h:70</a></div></div>
|
|
133
|
-
<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#
|
|
133
|
+
<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#l00141">BasicTypes.h:141</a></div></div>
|
|
134
134
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_aa502880f6a0786ea21f348e74f956af4"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#aa502880f6a0786ea21f348e74f956af4">SVF::SymbolTableInfo::getBBPredecessorPos</a></div><div class="ttdeci">static const u32_t getBBPredecessorPos(const BasicBlock *BB, const BasicBlock *Pred)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00372">SymbolTableInfo.cpp:372</a></div></div>
|
|
135
135
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a695adf83e8c40b9628b1866053f68033"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a695adf83e8c40b9628b1866053f68033">SVF::MemSSA::createMUCHI</a></div><div class="ttdeci">virtual void createMUCHI(const SVFFunction &fun)</div><div class="ttdoc">Create mu chi for candidate regions in a function. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00114">MemSSA.cpp:114</a></div></div>
|
|
136
136
|
<div class="ttc" id="classSVF_1_1MemSSAStat_html"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html">SVF::MemSSAStat</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00048">SVFGStat.h:48</a></div></div>
|
|
@@ -82,7 +82,7 @@ $(function() {
|
|
|
82
82
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a4f3c4374ba4b06a819721a8e05efe221"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a4f3c4374ba4b06a819721a8e05efe221">SVF::MemSSA::buildMemSSA</a></div><div class="ttdeci">virtual void buildMemSSA(const SVFFunction &fun)</div><div class="ttdoc">We start from here. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00079">MemSSA.cpp:79</a></div></div>
|
|
83
83
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a7c0bb1406f0e583c38e522ca06dfa73a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a7c0bb1406f0e583c38e522ca06dfa73a">SVF::MemSSA::collectRegDefs</a></div><div class="ttdeci">void collectRegDefs(const BasicBlock *bb, const MemRegion *mr)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00178">MemSSA.h:178</a></div></div>
|
|
84
84
|
<div class="ttc" id="classSVF_1_1MemSSA_html_acf840b71b67cabe831f01f2d358f27fa"><div class="ttname"><a href="classSVF_1_1MemSSA.html#acf840b71b67cabe831f01f2d358f27fa">SVF::MemSSA::usedRegs</a></div><div class="ttdeci">MRSet usedRegs</div><div class="ttdoc">The following three set are used for prune SSA phi insertion. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00150">MemSSA.h:150</a></div></div>
|
|
85
|
-
<div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
85
|
+
<div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00070">BasicTypes.h:70</a></div></div>
|
|
86
86
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a8032c530b44e264544881d53d2fac390"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390">SVF::MemSSA::collectRegUses</a></div><div class="ttdeci">void collectRegUses(const MemRegion *mr)</div><div class="ttdoc">Collect region uses and region defs according to mus/chis, in order to insert phis. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00173">MemSSA.h:173</a></div></div>
|
|
87
87
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a6bc360d2604ae4a0af74530b263b10d9"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6bc360d2604ae4a0af74530b263b10d9">SVF::SVFIR::SVFStmtList</a></div><div class="ttdeci">std::vector< const SVFStmt * > SVFStmtList</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00056">SVFIR.h:56</a></div></div>
|
|
88
88
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a16114eb55775f6ee812c1648dcaede0c"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a16114eb55775f6ee812c1648dcaede0c">SVF::MemSSA::SSARename</a></div><div class="ttdeci">virtual void SSARename(const SVFFunction &fun)</div><div class="ttdoc">SSA rename for a function. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00251">MemSSA.cpp:251</a></div></div>
|
|
@@ -90,7 +90,7 @@ $(function() {
|
|
|
90
90
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a3d6096aeb4155444b532b02bb8559113"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a3d6096aeb4155444b532b02bb8559113">SVF::MemSSA::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Release the memory. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00371">MemSSA.cpp:371</a></div></div>
|
|
91
91
|
<div class="ttc" id="classSVF_1_1StoreCHI_html"><div class="ttname"><a href="classSVF_1_1StoreCHI.html">SVF::StoreCHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00461">MSSAMuChi.h:461</a></div></div>
|
|
92
92
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a7be50dd82679b45a8c400f5a12056a25"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a7be50dd82679b45a8c400f5a12056a25">SVF::MemSSA::CALLMU</a></div><div class="ttdeci">CallMU< Condition > CALLMU</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00062">MemSSA.h:62</a></div></div>
|
|
93
|
-
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
93
|
+
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00115">BasicTypes.h:115</a></div></div>
|
|
94
94
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a4fc930040ec54eb60629da18fb6a4d04"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a4fc930040ec54eb60629da18fb6a4d04">SVF::MemSSA::stat</a></div><div class="ttdeci">MemSSAStat * stat</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00123">MemSSA.h:123</a></div></div>
|
|
95
95
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a964f3fe39ece9a7b8b2033428b75a274"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a964f3fe39ece9a7b8b2033428b75a274">SVF::MemSSA::getPHISet</a></div><div class="ttdeci">PHISet & getPHISet(const BasicBlock *bb)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00395">MemSSA.h:395</a></div></div>
|
|
96
96
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a6bd57451370f5f4c92ce212be4cddd15"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a6bd57451370f5f4c92ce212be4cddd15">SVF::MemSSA::MemSSA</a></div><div class="ttdeci">MemSSA(BVDataPTAImpl *p, bool ptrOnlyMSSA)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00046">MemSSA.cpp:46</a></div></div>
|
|
@@ -69,7 +69,7 @@ $(function() {
|
|
|
69
69
|
<a href="PCG_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===- PCG.cpp -- Procedure creation graph-------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * PCG.cpp</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * Created on: Jun 24, 2015</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Author: Yulei Sui, Peng Di</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="Options_8h.html">Util/Options.h</a>"</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="PCG_8h.html">MTA/PCG.h</a>"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="SVFUtil_8h.html">Util/SVFUtil.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="SVF-FE_2BasicTypes_8h.html">SVF-FE/BasicTypes.h</a>"</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVFUtil.html">SVFUtil</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">//=====================================================//</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment"></span><span class="comment">//static llvm::cl::opt<bool> TDPrint("print-td", llvm::cl::init(true), llvm::cl::desc("Print Thread Analysis Results"));</span></div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classSVF_1_1PCG.html#a50b677ec622247a464cee7f0f45c5a53"> 44</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PCG.html#a50b677ec622247a464cee7f0f45c5a53">PCG::analyze</a>()</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> {</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>  <span class="comment">//callgraph = new PTACallGraph(mod);</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#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">"Starting MHP analysis\n"</span>));</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  initFromThreadAPI(mod);</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>  inferFromCallGraph();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="comment">//interferenceAnalysis();</span></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>  <span class="comment">//if (Options::TDPrint) {</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="comment">//printResults();</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">//tdAPI->performAPIStat(mod);</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">//}</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1PCG.html#a4cab54d7273424c8b26376d8daf15e06"> 64</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PCG.html#a4cab54d7273424c8b26376d8daf15e06">PCG::mayHappenInParallelBetweenFunctions</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun1, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun2)<span class="keyword"> const</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword"></span>{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="comment">// if neither of functions are spawnees, then they won't happen in parallel</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">if</span> (isSpawneeFun(fun1) == <span class="keyword">false</span> && isSpawneeFun(fun2) == <span class="keyword">false</span>)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">// if there exit one of the function are not spawner, spawnee or follower, then they won't happen in parallel</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">if</span> (isSpawnerFun(fun1) == <span class="keyword">false</span> && isSpawneeFun(fun1) == <span class="keyword">false</span> && isFollowerFun(fun1) == <span class="keyword">false</span>)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">if</span> (isSpawnerFun(fun2) == <span class="keyword">false</span> && isSpawneeFun(fun2) == <span class="keyword">false</span> && isFollowerFun(fun2) == <span class="keyword">false</span>)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSVF_1_1PCG.html#a0a1d0abba4f0775a5d1e9b13aad2f2d0"> 78</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PCG.html#a0a1d0abba4f0775a5d1e9b13aad2f2d0">PCG::mayHappenInParallel</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* i1, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* i2)<span class="keyword"> const</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword"></span>{</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun1 = i1->getParent()->getParent();</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun2 = i2->getParent()->getParent();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">return</span> mayHappenInParallelBetweenFunctions(fun1, fun2);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1PCG.html#a23752f0a9fe4f01698808d0a50ccc896"> 91</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PCG.html#a23752f0a9fe4f01698808d0a50ccc896">PCG::initFromThreadAPI</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* module)</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#afcf2978f32e15127fb093405dc17d7f1">SVFModule::const_iterator</a> fi = module-><a class="code" href="classSVF_1_1SVFModule.html#a5486697889c6cca4f9f426650defc255">begin</a>(), efi = module-><a class="code" href="classSVF_1_1SVFModule.html#a58d03edb6ff85f4943135478f113df31">end</a>(); fi != efi; ++fi)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = (*fi)->getLLVMFun();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a255af6ff30782cb9a548feadb0fe7d6b">inst_iterator</a> II = inst_begin((*fi)->getLLVMFun()), E = inst_end((*fi)->getLLVMFun()); II != E; ++II)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = &*II;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">if</span> (tdAPI->isTDFork(inst))</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* forkVal = tdAPI->getForkedFun(inst);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* forkFun = <a class="code" href="namespaceSVF_1_1SVFUtil.html#ad98299033577f1e7f4e9bc73dff3b253">getLLVMFunction</a>(forkVal))</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  addSpawnsite(inst);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  spawners.insert(fun);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  spawnees.insert(forkFun);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(<span class="stringliteral">"pthread create"</span>);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVFUtil::value2String</a>(inst) << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(<span class="stringliteral">"invoke spawnee indirectly"</span>);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classSVF_1_1PCG.html#adff1702e1b0a902de7ded742846fe137"> 127</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PCG.html#adff1702e1b0a902de7ded742846fe137">PCG::inferFromCallGraph</a>()</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  collectSpawners();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  collectSpawnees();</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  collectFollowers();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classSVF_1_1PCG.html#aef06745128e4e99c8e3bab226a337041"> 140</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PCG.html#aef06745128e4e99c8e3bab226a337041">PCG::collectSpawners</a>()</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="classSVF_1_1FIFOWorkList.html">FunWorkList</a> worklist;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">for</span> (FunSet::iterator it = spawners.begin(), eit = spawners.end(); it != eit; ++it)</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(*it);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</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="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svffun = getSVFFun(fun);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* funNode = callgraph->getCallGraphNode(svffun);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PTACallGraphNode.html#adf17f5699c9f40ffc8837e813e3af3ec">PTACallGraphNode::const_iterator</a> it = funNode-><a class="code" href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">InEdgeBegin</a>(), eit = funNode-><a class="code" href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">InEdgeEnd</a>(); it != eit;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  ++it)</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classSVF_1_1PTACallGraphEdge.html">PTACallGraphEdge</a>* callEdge = (*it);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* caller = callEdge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()->getFunction()->getLLVMFun();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">if</span> (isSpawnerFun(caller) == <span class="keyword">false</span>)</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(caller);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  addSpawnerFun(caller);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">for</span> (PTACallGraphEdge::CallInstSet::const_iterator dit = callEdge-><a class="code" href="classSVF_1_1PTACallGraphEdge.html#a750e50a9022451e406c4819979edffa5">directCallsBegin</a>(), deit =</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  callEdge-><a class="code" href="classSVF_1_1PTACallGraphEdge.html#acc4fcacefdc9be9a214dfcc455fe7970">directCallsEnd</a>(); dit != deit; ++dit)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  addSpawnsite((*dit)->getCallSite());</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">for</span> (PTACallGraphEdge::CallInstSet::const_iterator dit = callEdge-><a class="code" href="classSVF_1_1PTACallGraphEdge.html#afbdb582d20ab953b2de1f3efacb74679">indirectCallsBegin</a>(), deit =</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  callEdge-><a class="code" href="classSVF_1_1PTACallGraphEdge.html#a494bc8bacca5ca8d266286f3fb303495">indirectCallsEnd</a>(); dit != deit; ++dit)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  addSpawnsite((*dit)->getCallSite());</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classSVF_1_1PCG.html#a8cff88e2a6cee5f655e491f9f2967460"> 182</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PCG.html#a8cff88e2a6cee5f655e491f9f2967460">PCG::collectSpawnees</a>()</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="classSVF_1_1FIFOWorkList.html">FunWorkList</a> worklist;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">for</span> (FunSet::iterator it = spawnees.begin(), eit = spawnees.end(); it != eit; ++it)</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(*it);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svffun = getSVFFun(fun);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* funNode = callgraph->getCallGraphNode(svffun);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PTACallGraphNode.html#adf17f5699c9f40ffc8837e813e3af3ec">PTACallGraphNode::const_iterator</a> it = funNode-><a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit = funNode-><a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  ++it)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* caller = (*it)->getDstNode()-><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="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">if</span> (isSpawneeFun(caller) == <span class="keyword">false</span>)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(caller);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  addSpawneeFun(caller);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classSVF_1_1PCG.html#ae5ee8cf8cfe42854407190f30f3b6c1b"> 213</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PCG.html#ae5ee8cf8cfe42854407190f30f3b6c1b">PCG::identifyFollowers</a>()</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">for</span> (CallInstSet::const_iterator sit = spawnSitesBegin(), esit = spawnSitesEnd(); sit != esit; ++sit)</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = *sit;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="classSVF_1_1FIFOWorkList.html">BBWorkList</a> bb_worklist;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const BasicBlock*></a> visitedBBs;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  bb_worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(inst->getParent());</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">while</span> (!bb_worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = bb_worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">for</span> (BasicBlock::const_iterator it = bb->begin(), eit = bb->end(); it != eit; ++it)</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = &*it;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="comment">// mark the callee of this callsite as follower</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="comment">// if this is an call/invoke instruction but not a spawn site</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">if</span> ((<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVFUtil::isCallSite</a>(inst)) && !isSpawnsite(inst))</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = getCallICFGNode(inst);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">if</span> (callgraph->hasCallGraphEdge(cbn))</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">for</span> (PTACallGraph::CallGraphEdgeSet::const_iterator cgIt = callgraph->getCallEdgeBegin(cbn),</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  ecgIt = callgraph->getCallEdgeEnd(cbn); cgIt != ecgIt; ++cgIt)</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PTACallGraphEdge.html">PTACallGraphEdge</a>* edge = *cgIt;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  addFollowerFun(edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()->getFunction()->getLLVMFun());</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  }</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  }</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  }</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">succ_const_iterator</a> succ_it = succ_begin(bb); succ_it != succ_end(bb); succ_it++)</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  {</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succ_bb = *succ_it;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordflow">if</span> (visitedBBs.count(succ_bb) == 0)</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  {</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  visitedBBs.insert(succ_bb);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  bb_worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(succ_bb);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  }</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span> }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div><div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="classSVF_1_1PCG.html#a075370a557f111219530e166df745c15"> 262</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PCG.html#a075370a557f111219530e166df745c15">PCG::collectFollowers</a>()</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  identifyFollowers();</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <a class="code" href="classSVF_1_1FIFOWorkList.html">FunWorkList</a> worklist;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordflow">for</span> (FunSet::iterator it = followers.begin(), eit = followers.end(); it != eit; ++it)</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(*it);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svffun = getSVFFun(fun);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* funNode = callgraph->getCallGraphNode(svffun);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PTACallGraphNode.html#adf17f5699c9f40ffc8837e813e3af3ec">PTACallGraphNode::const_iterator</a> it = funNode-><a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit = funNode-><a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  ++it)</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* caller = (*it)->getDstNode()-><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="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">if</span> (isFollowerFun(caller) == <span class="keyword">false</span>)</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(caller);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  addFollowerFun(caller);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> }</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div><div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="classSVF_1_1PCG.html#a057887f3d5fd3b9b414e573b3f9f4548"> 300</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PCG.html#a057887f3d5fd3b9b414e573b3f9f4548">PCG::interferenceAnalysis</a>()</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span> {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="comment">// DBOUT(DMTA, outs() << pasMsg("Starting Race Detection\n"));</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="classSVF_1_1PCG.html#aca2efdefda1f95a6450eca4a781cbefa">PCG::FunVec</a> worklist;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#afcf2978f32e15127fb093405dc17d7f1">SVFModule::const_iterator</a> <a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a> = mod->begin(), E = mod->end(); <a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a> != E; ++<a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>)</div><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>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = *<a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(fun))</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  worklist.push_back(fun-><a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</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> </div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">while</span> (!worklist.empty())</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="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun1 = worklist.back();</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  worklist.pop_back();</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span> </div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordtype">bool</span> ismhpfun = <span class="keyword">false</span>;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">for</span> (PCG::FunVec::iterator it = worklist.begin(), eit = worklist.end(); it != eit; ++it)</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  {</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun2 = *it;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">if</span> (mayHappenInParallelBetweenFunctions(fun1, fun2))</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  {</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  ismhpfun = <span class="keyword">true</span>;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  mhpfuns.insert(fun2);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  }</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  }</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">if</span> (ismhpfun)</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  {</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  mhpfuns.insert(fun1);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  }</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  }</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> }</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="classSVF_1_1PCG.html#ab8a16eb34da91f2b7cd5a456653b1da0"> 339</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PCG.html#ab8a16eb34da91f2b7cd5a456653b1da0">PCG::printResults</a>()</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> {</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  printTDFuns();</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> }</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="classSVF_1_1PCG.html#af8af0a2a2159261bf05abe226c43006e"> 348</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PCG.html#af8af0a2a2159261bf05abe226c43006e">PCG::printTDFuns</a>()</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> {</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span> </div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#afcf2978f32e15127fb093405dc17d7f1">SVFModule::const_iterator</a> fi = mod->begin(), efi = mod->end(); fi != efi; ++fi)</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = (*fi)->getLLVMFun();</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keywordflow">if</span> (fun->isDeclaration())</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> isSpawner = isSpawnerFun(fun) ? <span class="stringliteral">" SPAWNER "</span> : <span class="stringliteral">""</span>;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> isSpawnee = isSpawneeFun(fun) ? <span class="stringliteral">" CHILDREN "</span> : <span class="stringliteral">""</span>;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> isFollower = isFollowerFun(fun) ? <span class="stringliteral">" FOLLOWER "</span> : <span class="stringliteral">""</span>;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << fun->getName().str() << <span class="stringliteral">" ["</span> << isSpawner << isSpawnee << isFollower << <span class="stringliteral">"]\n"</span>;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  }</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span> }</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2e08ce822223842fa6a73fd659b1a526"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00196">SVFUtil.h:196</a></div></div>
|
|
70
70
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ad98299033577f1e7f4e9bc73dff3b253"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ad98299033577f1e7f4e9bc73dff3b253">SVF::SVFUtil::getLLVMFunction</a></div><div class="ttdeci">const Function * getLLVMFunction(const Value *val)</div><div class="ttdoc">Return LLVM function if this value is. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00468">SVFUtil.h:468</a></div></div>
|
|
71
71
|
<div class="ttc" id="classSVF_1_1PCG_html_a8cff88e2a6cee5f655e491f9f2967460"><div class="ttname"><a href="classSVF_1_1PCG.html#a8cff88e2a6cee5f655e491f9f2967460">SVF::PCG::collectSpawnees</a></div><div class="ttdeci">void collectSpawnees()</div><div class="ttdef"><b>Definition:</b> <a href="PCG_8cpp_source.html#l00182">PCG.cpp:182</a></div></div>
|
|
72
|
-
<div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
72
|
+
<div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00070">BasicTypes.h:70</a></div></div>
|
|
73
73
|
<div class="ttc" id="classSVF_1_1PCG_html_a4cab54d7273424c8b26376d8daf15e06"><div class="ttname"><a href="classSVF_1_1PCG.html#a4cab54d7273424c8b26376d8daf15e06">SVF::PCG::mayHappenInParallelBetweenFunctions</a></div><div class="ttdeci">bool mayHappenInParallelBetweenFunctions(const Function *fun1, const Function *fun2) const</div><div class="ttdef"><b>Definition:</b> <a href="PCG_8cpp_source.html#l00064">PCG.cpp:64</a></div></div>
|
|
74
74
|
<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#l00175">SVFBasicTypes.h:175</a></div></div>
|
|
75
75
|
<div class="ttc" id="classSVF_1_1PCG_html_adff1702e1b0a902de7ded742846fe137"><div class="ttname"><a href="classSVF_1_1PCG.html#adff1702e1b0a902de7ded742846fe137">SVF::PCG::inferFromCallGraph</a></div><div class="ttdeci">void inferFromCallGraph()</div><div class="ttdoc">Infer spawner spawnee and followers sets by traversing on callGraph. </div><div class="ttdef"><b>Definition:</b> <a href="PCG_8cpp_source.html#l00127">PCG.cpp:127</a></div></div>
|
|
@@ -78,12 +78,12 @@ $(function() {
|
|
|
78
78
|
<div class="ttc" id="classSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00206">GenericGraph.h:206</a></div></div>
|
|
79
79
|
<div class="ttc" id="classSVF_1_1PCG_html_ae5ee8cf8cfe42854407190f30f3b6c1b"><div class="ttname"><a href="classSVF_1_1PCG.html#ae5ee8cf8cfe42854407190f30f3b6c1b">SVF::PCG::identifyFollowers</a></div><div class="ttdeci">void identifyFollowers()</div><div class="ttdef"><b>Definition:</b> <a href="PCG_8cpp_source.html#l00213">PCG.cpp:213</a></div></div>
|
|
80
80
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00145">WorkList.h:145</a></div></div>
|
|
81
|
-
<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#
|
|
81
|
+
<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#l00115">BasicTypes.h:115</a></div></div>
|
|
82
82
|
<div class="ttc" id="SVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
|
|
83
83
|
<div class="ttc" id="classSVF_1_1PCG_html_a075370a557f111219530e166df745c15"><div class="ttname"><a href="classSVF_1_1PCG.html#a075370a557f111219530e166df745c15">SVF::PCG::collectFollowers</a></div><div class="ttdeci">void collectFollowers()</div><div class="ttdef"><b>Definition:</b> <a href="PCG_8cpp_source.html#l00262">PCG.cpp:262</a></div></div>
|
|
84
84
|
<div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
|
|
85
85
|
<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>
|
|
86
|
-
<div class="ttc" id="namespaceSVF_html_a3436a988bf80c021cd8022fb445b66d5"><div class="ttname"><a href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">SVF::succ_const_iterator</a></div><div class="ttdeci">llvm::succ_const_iterator succ_const_iterator</div><div class="ttdoc">LLVM Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
86
|
+
<div class="ttc" id="namespaceSVF_html_a3436a988bf80c021cd8022fb445b66d5"><div class="ttname"><a href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">SVF::succ_const_iterator</a></div><div class="ttdeci">llvm::succ_const_iterator succ_const_iterator</div><div class="ttdoc">LLVM Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00107">BasicTypes.h:107</a></div></div>
|
|
87
87
|
<div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_a494bc8bacca5ca8d266286f3fb303495"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#a494bc8bacca5ca8d266286f3fb303495">SVF::PTACallGraphEdge::indirectCallsEnd</a></div><div class="ttdeci">CallInstSet::const_iterator indirectCallsEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00135">PTACallGraph.h:135</a></div></div>
|
|
88
88
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a077caa1b10ab84d101d79fc7ea50db2d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVF::SVFUtil::writeWrnMsg</a></div><div class="ttdeci">void writeWrnMsg(std::string msg)</div><div class="ttdoc">Writes a message run through wrnMsg. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00067">SVFUtil.cpp:67</a></div></div>
|
|
89
89
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00158">WorkList.h:158</a></div></div>
|
|
@@ -91,9 +91,9 @@ $(function() {
|
|
|
91
91
|
<div class="ttc" id="classSVF_1_1PCG_html_ab8a16eb34da91f2b7cd5a456653b1da0"><div class="ttname"><a href="classSVF_1_1PCG.html#ab8a16eb34da91f2b7cd5a456653b1da0">SVF::PCG::printResults</a></div><div class="ttdeci">void printResults()</div><div class="ttdoc">Print analysis results. </div><div class="ttdef"><b>Definition:</b> <a href="PCG_8cpp_source.html#l00339">PCG.cpp:339</a></div></div>
|
|
92
92
|
<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>
|
|
93
93
|
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00105">SVFBasicTypes.h:105</a></div></div>
|
|
94
|
-
<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#
|
|
94
|
+
<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#l00069">BasicTypes.h:69</a></div></div>
|
|
95
95
|
<div class="ttc" id="SVF-FE_2BasicTypes_8h_html"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html">BasicTypes.h</a></div></div>
|
|
96
|
-
<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#
|
|
96
|
+
<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#l00072">BasicTypes.h:72</a></div></div>
|
|
97
97
|
<div class="ttc" id="namespaceSVFUtil_html"><div class="ttname"><a href="namespaceSVFUtil.html">SVFUtil</a></div></div>
|
|
98
98
|
<div class="ttc" id="classSVF_1_1PCG_html_aca2efdefda1f95a6450eca4a781cbefa"><div class="ttname"><a href="classSVF_1_1PCG.html#aca2efdefda1f95a6450eca4a781cbefa">SVF::PCG::FunVec</a></div><div class="ttdeci">std::vector< const Function * > FunVec</div><div class="ttdef"><b>Definition:</b> <a href="PCG_8h_source.html#l00055">PCG.h:55</a></div></div>
|
|
99
99
|
<div class="ttc" id="classSVF_1_1PCG_html_a23752f0a9fe4f01698808d0a50ccc896"><div class="ttname"><a href="classSVF_1_1PCG.html#a23752f0a9fe4f01698808d0a50ccc896">SVF::PCG::initFromThreadAPI</a></div><div class="ttdeci">void initFromThreadAPI(SVFModule *module)</div><div class="ttdoc">Initialize spawner and spawnee sets with threadAPI. </div><div class="ttdef"><b>Definition:</b> <a href="PCG_8cpp_source.html#l00091">PCG.cpp:91</a></div></div>
|
|
@@ -112,7 +112,7 @@ $(function() {
|
|
|
112
112
|
<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>
|
|
113
113
|
<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>
|
|
114
114
|
<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>
|
|
115
|
-
<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#
|
|
115
|
+
<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#l00141">BasicTypes.h:141</a></div></div>
|
|
116
116
|
<div class="ttc" id="PCG_8h_html"><div class="ttname"><a href="PCG_8h.html">PCG.h</a></div></div>
|
|
117
117
|
<div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
|
|
118
118
|
<div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
|
|
@@ -121,11 +121,11 @@ $(function() {
|
|
|
121
121
|
<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>
|
|
122
122
|
<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>
|
|
123
123
|
<div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_afbdb582d20ab953b2de1f3efacb74679"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#afbdb582d20ab953b2de1f3efacb74679">SVF::PTACallGraphEdge::indirectCallsBegin</a></div><div class="ttdeci">CallInstSet::const_iterator indirectCallsBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00131">PTACallGraph.h:131</a></div></div>
|
|
124
|
-
<div class="ttc" id="namespaceSVF_html_a255af6ff30782cb9a548feadb0fe7d6b"><div class="ttname"><a href="namespaceSVF.html#a255af6ff30782cb9a548feadb0fe7d6b">SVF::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#
|
|
124
|
+
<div class="ttc" id="namespaceSVF_html_a255af6ff30782cb9a548feadb0fe7d6b"><div class="ttname"><a href="namespaceSVF.html#a255af6ff30782cb9a548feadb0fe7d6b">SVF::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#l00178">BasicTypes.h:178</a></div></div>
|
|
125
125
|
<div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
126
126
|
<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#l00155">SVFBasicTypes.h:155</a></div></div>
|
|
127
127
|
<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#l00167">WorkList.h:167</a></div></div>
|
|
128
|
-
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
128
|
+
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00071">BasicTypes.h:71</a></div></div>
|
|
129
129
|
<div class="ttc" id="classSVF_1_1SVFModule_html_afcf2978f32e15127fb093405dc17d7f1"><div class="ttname"><a href="classSVF_1_1SVFModule.html#afcf2978f32e15127fb093405dc17d7f1">SVF::SVFModule::const_iterator</a></div><div class="ttdeci">FunctionSetType::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00052">SVFModule.h:52</a></div></div>
|
|
130
130
|
<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="SVFUtil_8h_source.html#l00346">SVFUtil.h:346</a></div></div>
|
|
131
131
|
</div><!-- fragment --></div><!-- contents -->
|
|
@@ -80,7 +80,7 @@ $(function() {
|
|
|
80
80
|
<div class="ttc" id="classSVF_1_1PCG_html"><div class="ttname"><a href="classSVF_1_1PCG.html">SVF::PCG</a></div><div class="ttdef"><b>Definition:</b> <a href="PCG_8h_source.html#l00050">PCG.h:50</a></div></div>
|
|
81
81
|
<div class="ttc" id="classSVF_1_1PCG_html_ae5ee8cf8cfe42854407190f30f3b6c1b"><div class="ttname"><a href="classSVF_1_1PCG.html#ae5ee8cf8cfe42854407190f30f3b6c1b">SVF::PCG::identifyFollowers</a></div><div class="ttdeci">void identifyFollowers()</div><div class="ttdef"><b>Definition:</b> <a href="PCG_8cpp_source.html#l00213">PCG.cpp:213</a></div></div>
|
|
82
82
|
<div class="ttc" id="classSVF_1_1PCG_html_a11c45407138211987e5143d81ccceb95"><div class="ttname"><a href="classSVF_1_1PCG.html#a11c45407138211987e5143d81ccceb95">SVF::PCG::addSpawnerFun</a></div><div class="ttdeci">bool addSpawnerFun(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="PCG_8h_source.html#l00087">PCG.h:87</a></div></div>
|
|
83
|
-
<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#
|
|
83
|
+
<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#l00115">BasicTypes.h:115</a></div></div>
|
|
84
84
|
<div class="ttc" id="classSVF_1_1PCG_html_a2a7319200ec2ec07e8b7976b4a876da8"><div class="ttname"><a href="classSVF_1_1PCG.html#a2a7319200ec2ec07e8b7976b4a876da8">SVF::PCG::spawnSitesBegin</a></div><div class="ttdeci">CallInstSet::const_iterator spawnSitesBegin() const</div><div class="ttdoc">Spawn sites iterators. </div><div class="ttdef"><b>Definition:</b> <a href="PCG_8h_source.html#l00120">PCG.h:120</a></div></div>
|
|
85
85
|
<div class="ttc" id="classSVF_1_1PCG_html_a985b0c790c582d15e6242950ac66f574"><div class="ttname"><a href="classSVF_1_1PCG.html#a985b0c790c582d15e6242950ac66f574">SVF::PCG::mod</a></div><div class="ttdeci">SVFModule * mod</div><div class="ttdef"><b>Definition:</b> <a href="PCG_8h_source.html#l00066">PCG.h:66</a></div></div>
|
|
86
86
|
<div class="ttc" id="classSVF_1_1PCG_html_a482925e80c66f258e0fb863ee6948081"><div class="ttname"><a href="classSVF_1_1PCG.html#a482925e80c66f258e0fb863ee6948081">SVF::PCG::PCG</a></div><div class="ttdeci">PCG(PointerAnalysis *an)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="PCG_8h_source.html#l00133">PCG.h:133</a></div></div>
|
|
@@ -106,9 +106,9 @@ $(function() {
|
|
|
106
106
|
<div class="ttc" id="classSVF_1_1PCG_html_a13bfb66d3c02157cd3bebad1f829d704"><div class="ttname"><a href="classSVF_1_1PCG.html#a13bfb66d3c02157cd3bebad1f829d704">SVF::PCG::isSpawnerFun</a></div><div class="ttdeci">bool isSpawnerFun(const Function *fun) const</div><div class="ttdoc">Add/Get methods for thread properties of a procedure. </div><div class="ttdef"><b>Definition:</b> <a href="PCG_8h_source.html#l00075">PCG.h:75</a></div></div>
|
|
107
107
|
<div class="ttc" id="classSVF_1_1PCG_html_aa3d0ccb72cf83c7227dc975d71865f7d"><div class="ttname"><a href="classSVF_1_1PCG.html#aa3d0ccb72cf83c7227dc975d71865f7d">SVF::PCG::followersBegin</a></div><div class="ttdeci">FunSet::const_iterator followersBegin(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="PCG_8h_source.html#l00211">PCG.h:211</a></div></div>
|
|
108
108
|
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00105">SVFBasicTypes.h:105</a></div></div>
|
|
109
|
-
<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#
|
|
109
|
+
<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#l00069">BasicTypes.h:69</a></div></div>
|
|
110
110
|
<div class="ttc" id="classSVF_1_1PCG_html_a4aee985ede8e6ed6dd92574494101df9"><div class="ttname"><a href="classSVF_1_1PCG.html#a4aee985ede8e6ed6dd92574494101df9">SVF::PCG::getSpawnees</a></div><div class="ttdeci">const FunSet & getSpawnees() const</div><div class="ttdef"><b>Definition:</b> <a href="PCG_8h_source.html#l00183">PCG.h:183</a></div></div>
|
|
111
|
-
<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#
|
|
111
|
+
<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#l00072">BasicTypes.h:72</a></div></div>
|
|
112
112
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html">SVF::PTACallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00218">PTACallGraph.h:218</a></div></div>
|
|
113
113
|
<div class="ttc" id="classSVF_1_1PCG_html_a776beaeae8b6058f1f9c314a77e32083"><div class="ttname"><a href="classSVF_1_1PCG.html#a776beaeae8b6058f1f9c314a77e32083">SVF::PCG::spawneesBegin</a></div><div class="ttdeci">FunSet::const_iterator spawneesBegin(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="PCG_8h_source.html#l00203">PCG.h:203</a></div></div>
|
|
114
114
|
<div class="ttc" id="classSVF_1_1PCG_html_aca2efdefda1f95a6450eca4a781cbefa"><div class="ttname"><a href="classSVF_1_1PCG.html#aca2efdefda1f95a6450eca4a781cbefa">SVF::PCG::FunVec</a></div><div class="ttdeci">std::vector< const Function * > FunVec</div><div class="ttdef"><b>Definition:</b> <a href="PCG_8h_source.html#l00055">PCG.h:55</a></div></div>
|
|
@@ -87,7 +87,7 @@ $(function() {
|
|
|
87
87
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a841be22581a7896d8924564e7199f62b"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a841be22581a7896d8924564e7199f62b">SVF::PTACallGraph::dump</a></div><div class="ttdeci">void dump(const std::string &filename)</div><div class="ttdoc">Dump the graph. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00316">PTACallGraph.cpp:316</a></div></div>
|
|
88
88
|
<div class="ttc" id="classSVF_1_1PTACallGraphNode_html_ae549769b86088c7c03e416549694ef52"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html#ae549769b86088c7c03e416549694ef52">SVF::PTACallGraphNode::isReachableFromProgEntry</a></div><div class="ttdeci">bool isReachableFromProgEntry() const</div><div class="ttdoc">Return TRUE if this function can be reached from main. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00079">PTACallGraph.cpp:79</a></div></div>
|
|
89
89
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
|
|
90
|
-
<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#
|
|
90
|
+
<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#l00115">BasicTypes.h:115</a></div></div>
|
|
91
91
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2c97c2b79b795465490512e267a9309b"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">SVF::SVFUtil::isProgEntryFunction</a></div><div class="ttdeci">bool isProgEntryFunction(const SVFFunction *fun)</div><div class="ttdoc">Program entry function e.g. main. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00399">SVFUtil.h:399</a></div></div>
|
|
92
92
|
<div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_a27979e812ced26f114369b46e1536b02"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#a27979e812ced26f114369b46e1536b02">SVF::PTACallGraphEdge::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00058">PTACallGraph.cpp:58</a></div></div>
|
|
93
93
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_aa03df6b1ebf7f8356a47fa074d3f91a4"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#aa03df6b1ebf7f8356a47fa074d3f91a4">SVF::PTACallGraph::isReachableBetweenFunctions</a></div><div class="ttdeci">bool isReachableBetweenFunctions(const SVFFunction *srcFn, const SVFFunction *dstFn) const</div><div class="ttdoc">Whether its reachable between two functions. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00285">PTACallGraph.cpp:285</a></div></div>
|
|
@@ -111,7 +111,7 @@ $(function() {
|
|
|
111
111
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a75ffe4f24d59ad42601b7550aa988187"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a75ffe4f24d59ad42601b7550aa988187">SVF::PTACallGraph::csToIdMap</a></div><div class="ttdeci">static CallSiteToIdMap csToIdMap</div><div class="ttdoc">Call site information. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00245">PTACallGraph.h:245</a></div></div>
|
|
112
112
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html">SVF::PTACallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00218">PTACallGraph.h:218</a></div></div>
|
|
113
113
|
<div class="ttc" id="namespaceSVFUtil_html"><div class="ttname"><a href="namespaceSVFUtil.html">SVFUtil</a></div></div>
|
|
114
|
-
<div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
114
|
+
<div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00078">BasicTypes.h:78</a></div></div>
|
|
115
115
|
<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>
|
|
116
116
|
<div class="ttc" id="classllvm_1_1GraphPrinter_html_af6ed328e74882d2b5e2b4039cb836928"><div class="ttname"><a href="classllvm_1_1GraphPrinter.html#af6ed328e74882d2b5e2b4039cb836928">llvm::GraphPrinter::WriteGraphToFile</a></div><div class="ttdeci">static void WriteGraphToFile(SVF::OutStream &O, const std::string &GraphName, const GraphType &GT, bool simple=false)</div><div class="ttdef"><b>Definition:</b> <a href="GraphPrinter_8h_source.html#l00058">GraphPrinter.h:58</a></div></div>
|
|
117
117
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a9a4b0c6672288b9201ab254b4c49548d"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a9a4b0c6672288b9201ab254b4c49548d">SVF::PTACallGraph::getIndCallSitesInvokingCallee</a></div><div class="ttdeci">void getIndCallSitesInvokingCallee(const SVFFunction *callee, PTACallGraphEdge::CallInstSet &csSet)</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00248">PTACallGraph.cpp:248</a></div></div>
|
|
@@ -83,7 +83,7 @@ $(function() {
|
|
|
83
83
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_ad49fa2a288945f6910deb11acdf6a42d"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">SVF::PTACallGraph::getIndCallMap</a></div><div class="ttdeci">CallEdgeMap & getIndCallMap()</div><div class="ttdoc">Get callees from an indirect callsite. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00280">PTACallGraph.h:280</a></div></div>
|
|
84
84
|
<div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_a2f3e4b61225c4ca37b0f70e3edc61920"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#a2f3e4b61225c4ca37b0f70e3edc61920">SVF::PTACallGraphEdge::directCalls</a></div><div class="ttdeci">CallInstSet directCalls</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00063">PTACallGraph.h:63</a></div></div>
|
|
85
85
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a5f5a5ec7e707a21994d301cc07d32a5a"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">SVF::PTACallGraph::FunctionSet</a></div><div class="ttdeci">Set< const SVFFunction * > FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00228">PTACallGraph.h:228</a></div></div>
|
|
86
|
-
<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#
|
|
86
|
+
<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#l00115">BasicTypes.h:115</a></div></div>
|
|
87
87
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_ae3ee76be0e959a736c868dc7e0128077"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#ae3ee76be0e959a736c868dc7e0128077">SVF::PTACallGraph::getCallGraphNode</a></div><div class="ttdeci">PTACallGraphNode * getCallGraphNode(const SVFFunction *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00319">PTACallGraph.h:319</a></div></div>
|
|
88
88
|
<div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_a8c46ccaa41f6792ca4a31a56548a554a"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#a8c46ccaa41f6792ca4a31a56548a554a">SVF::PTACallGraphEdge::isDirectCallEdge</a></div><div class="ttdeci">bool isDirectCallEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00087">PTACallGraph.h:87</a></div></div>
|
|
89
89
|
<div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_a27979e812ced26f114369b46e1536b02"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#a27979e812ced26f114369b46e1536b02">SVF::PTACallGraphEdge::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00058">PTACallGraph.cpp:58</a></div></div>
|
|
@@ -195,7 +195,7 @@ $(function() {
|
|
|
195
195
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a20c0c65af266ac876cb722aee6e87101"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a20c0c65af266ac876cb722aee6e87101">SVF::SVFIR::getGepObjVar</a></div><div class="ttdeci">NodeID getGepObjVar(const MemObj *obj, const LocationSet &ls)</div><div class="ttdoc">Get a field SVFIR Object node according to base mem obj and offset. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00426">SVFIR.cpp:426</a></div></div>
|
|
196
196
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85acc2e7cbdd04a614a3b6189d2f01042f3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85acc2e7cbdd04a614a3b6189d2f01042f3">SVF::PointerAnalysis::TypeCPP_WPA</a></div><div class="ttdoc">Type-based analysis for C++. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00080">PointerAnalysis.h:80</a></div></div>
|
|
197
197
|
<div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
198
|
-
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
198
|
+
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00071">BasicTypes.h:71</a></div></div>
|
|
199
199
|
<div class="ttc" id="classSVF_1_1PointsTo_html_a8f741cdffbf3c5fe0f602cdca677dee6"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">SVF::PointsTo::end</a></div><div class="ttdeci">const_iterator end(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00132">PointsTo.h:132</a></div></div>
|
|
200
200
|
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aa534e475fa34fa322c567bc376a3da70"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aa534e475fa34fa322c567bc376a3da70">SVF::BVDataPTAImpl::updateCallGraph</a></div><div class="ttdeci">virtual bool updateCallGraph(const CallSiteToFunPtrMap &)</div><div class="ttdoc">Update callgraph. This should be implemented by its subclass. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00172">PointerAnalysisImpl.h:172</a></div></div>
|
|
201
201
|
<div class="ttc" id="namespaceSVF_html_a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">SVF::NoAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00198">SVFBasicTypes.h:198</a></div></div>
|