svf-tools 1.0.618 → 1.0.620
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/Andersen_8h_source.html +4 -3
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CommandLine_8h.html +129 -0
- package/SVF-doxygen/html/html/CommandLine_8h_source.html +132 -0
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +20 -19
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +9 -9
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +21 -20
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +17 -17
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/Options_8cpp.html +1 -0
- package/SVF-doxygen/html/html/Options_8cpp_source.html +123 -119
- package/SVF-doxygen/html/html/Options_8h.html +1 -1
- package/SVF-doxygen/html/html/Options_8h_source.html +124 -120
- package/SVF-doxygen/html/html/PCG_8cpp.html +2 -1
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +13 -12
- package/SVF-doxygen/html/html/PCG_8h_source.html +12 -12
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +4 -3
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +5 -4
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFType_8h.html +2 -2
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +10 -9
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +4 -4
- package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/annotated.html +6 -2
- package/SVF-doxygen/html/html/cfl_8cpp.html +3 -85
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +3 -5
- package/SVF-doxygen/html/html/classOption-members.html +99 -0
- package/SVF-doxygen/html/html/classOption.html +567 -0
- package/SVF-doxygen/html/html/classOption.png +0 -0
- package/SVF-doxygen/html/html/classOptionBase-members.html +95 -0
- package/SVF-doxygen/html/html/classOptionBase.html +823 -0
- package/SVF-doxygen/html/html/classOptionBase.png +0 -0
- package/SVF-doxygen/html/html/classOptionMap-members.html +97 -0
- package/SVF-doxygen/html/html/classOptionMap.html +428 -0
- package/SVF-doxygen/html/html/classOptionMap.png +0 -0
- package/SVF-doxygen/html/html/classOptionMultiple-members.html +97 -0
- package/SVF-doxygen/html/html/classOptionMultiple.html +460 -0
- package/SVF-doxygen/html/html/classOptionMultiple.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +16 -15
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +72 -72
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +36 -35
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +22 -8
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntervalExeState.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +73 -72
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +120 -120
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +613 -613
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +9 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +27 -26
- package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +6 -6
- package/SVF-doxygen/html/html/classes.html +113 -112
- package/SVF-doxygen/html/html/dda_8cpp.html +51 -248
- package/SVF-doxygen/html/html/dda_8cpp_source.html +9 -10
- package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
- package/SVF-doxygen/html/html/files.html +18 -17
- package/SVF-doxygen/html/html/functions_a.html +7 -7
- package/SVF-doxygen/html/html/functions_b.html +9 -6
- package/SVF-doxygen/html/html/functions_c.html +48 -46
- package/SVF-doxygen/html/html/functions_d.html +20 -17
- package/SVF-doxygen/html/html/functions_e.html +6 -3
- package/SVF-doxygen/html/html/functions_f.html +19 -16
- package/SVF-doxygen/html/html/functions_func_b.html +5 -2
- package/SVF-doxygen/html/html/functions_func_c.html +36 -30
- package/SVF-doxygen/html/html/functions_func_e.html +5 -2
- package/SVF-doxygen/html/html/functions_func_f.html +4 -1
- package/SVF-doxygen/html/html/functions_func_g.html +12 -6
- package/SVF-doxygen/html/html/functions_func_i.html +18 -7
- package/SVF-doxygen/html/html/functions_func_n.html +4 -1
- package/SVF-doxygen/html/html/functions_func_o.html +28 -13
- package/SVF-doxygen/html/html/functions_func_p.html +13 -4
- package/SVF-doxygen/html/html/functions_func_s.html +20 -19
- package/SVF-doxygen/html/html/functions_func_u.html +3 -0
- package/SVF-doxygen/html/html/functions_g.html +16 -10
- package/SVF-doxygen/html/html/functions_h.html +1 -1
- package/SVF-doxygen/html/html/functions_i.html +38 -23
- package/SVF-doxygen/html/html/functions_k.html +1 -1
- package/SVF-doxygen/html/html/functions_l.html +7 -7
- package/SVF-doxygen/html/html/functions_m.html +12 -12
- package/SVF-doxygen/html/html/functions_n.html +6 -2
- package/SVF-doxygen/html/html/functions_o.html +46 -25
- package/SVF-doxygen/html/html/functions_p.html +55 -33
- package/SVF-doxygen/html/html/functions_r.html +6 -6
- package/SVF-doxygen/html/html/functions_s.html +30 -29
- package/SVF-doxygen/html/html/functions_t.html +4 -4
- package/SVF-doxygen/html/html/functions_type_o.html +7 -0
- package/SVF-doxygen/html/html/functions_type_p.html +6 -0
- package/SVF-doxygen/html/html/functions_u.html +6 -3
- package/SVF-doxygen/html/html/functions_v.html +10 -8
- package/SVF-doxygen/html/html/functions_vars_a.html +7 -7
- package/SVF-doxygen/html/html/functions_vars_b.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_c.html +12 -12
- package/SVF-doxygen/html/html/functions_vars_d.html +18 -15
- package/SVF-doxygen/html/html/functions_vars_e.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_f.html +6 -6
- package/SVF-doxygen/html/html/functions_vars_g.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_h.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_i.html +10 -6
- package/SVF-doxygen/html/html/functions_vars_k.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_l.html +4 -4
- package/SVF-doxygen/html/html/functions_vars_m.html +11 -11
- package/SVF-doxygen/html/html/functions_vars_n.html +3 -2
- package/SVF-doxygen/html/html/functions_vars_o.html +5 -2
- package/SVF-doxygen/html/html/functions_vars_p.html +28 -21
- package/SVF-doxygen/html/html/functions_vars_r.html +5 -5
- package/SVF-doxygen/html/html/functions_vars_s.html +10 -10
- package/SVF-doxygen/html/html/functions_vars_t.html +4 -4
- package/SVF-doxygen/html/html/functions_vars_u.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_v.html +6 -4
- package/SVF-doxygen/html/html/functions_vars_w.html +3 -3
- package/SVF-doxygen/html/html/functions_w.html +11 -7
- package/SVF-doxygen/html/html/globals_d.html +4 -4
- package/SVF-doxygen/html/html/globals_e.html +6 -6
- package/SVF-doxygen/html/html/globals_f.html +2 -2
- package/SVF-doxygen/html/html/globals_func.html +6 -58
- package/SVF-doxygen/html/html/globals_i.html +4 -12
- package/SVF-doxygen/html/html/globals_l.html +2 -2
- package/SVF-doxygen/html/html/globals_r.html +4 -4
- package/SVF-doxygen/html/html/globals_s.html +0 -4
- package/SVF-doxygen/html/html/globals_type.html +3 -0
- package/SVF-doxygen/html/html/globals_u.html +3 -0
- package/SVF-doxygen/html/html/globals_vars.html +43 -12
- package/SVF-doxygen/html/html/hierarchy.html +197 -182
- package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/menudata.js +1 -2
- package/SVF-doxygen/html/html/mta_8cpp.html +4 -47
- package/SVF-doxygen/html/html/mta_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
- package/SVF-doxygen/html/html/saber_8cpp.html +38 -136
- package/SVF-doxygen/html/html/saber_8cpp_source.html +8 -7
- package/SVF-doxygen/html/html/search/all_1.js +7 -7
- package/SVF-doxygen/html/html/search/all_10.js +31 -26
- package/SVF-doxygen/html/html/search/all_11.js +8 -8
- package/SVF-doxygen/html/html/search/all_12.js +19 -20
- package/SVF-doxygen/html/html/search/all_13.js +7 -7
- package/SVF-doxygen/html/html/search/all_14.js +5 -4
- package/SVF-doxygen/html/html/search/all_15.js +6 -6
- package/SVF-doxygen/html/html/search/all_16.js +4 -4
- package/SVF-doxygen/html/html/search/all_2.js +2 -1
- package/SVF-doxygen/html/html/search/all_3.js +16 -14
- package/SVF-doxygen/html/html/search/all_4.js +18 -17
- package/SVF-doxygen/html/html/search/all_5.js +6 -5
- package/SVF-doxygen/html/html/search/all_6.js +9 -8
- package/SVF-doxygen/html/html/search/all_7.js +4 -2
- package/SVF-doxygen/html/html/search/all_8.js +1 -1
- package/SVF-doxygen/html/html/search/all_9.js +12 -9
- package/SVF-doxygen/html/html/search/all_b.js +2 -2
- package/SVF-doxygen/html/html/search/all_c.js +7 -7
- package/SVF-doxygen/html/html/search/all_d.js +12 -12
- package/SVF-doxygen/html/html/search/all_e.js +4 -3
- package/SVF-doxygen/html/html/search/all_f.js +24 -6
- package/SVF-doxygen/html/html/search/classes_c.js +15 -0
- package/SVF-doxygen/html/html/search/files_2.js +1 -0
- package/SVF-doxygen/html/html/search/functions_1.js +1 -0
- package/SVF-doxygen/html/html/search/functions_10.js +0 -2
- package/SVF-doxygen/html/html/search/functions_11.js +1 -2
- package/SVF-doxygen/html/html/search/functions_13.js +1 -0
- package/SVF-doxygen/html/html/search/functions_2.js +1 -0
- package/SVF-doxygen/html/html/search/functions_3.js +0 -2
- package/SVF-doxygen/html/html/search/functions_4.js +1 -3
- package/SVF-doxygen/html/html/search/functions_5.js +2 -1
- package/SVF-doxygen/html/html/search/functions_6.js +2 -0
- package/SVF-doxygen/html/html/search/functions_8.js +3 -1
- package/SVF-doxygen/html/html/search/functions_b.js +1 -1
- package/SVF-doxygen/html/html/search/functions_d.js +1 -0
- package/SVF-doxygen/html/html/search/functions_e.js +5 -1
- package/SVF-doxygen/html/html/search/functions_f.js +2 -0
- package/SVF-doxygen/html/html/search/typedefs_12.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_7.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_d.js +2 -0
- package/SVF-doxygen/html/html/search/typedefs_e.js +2 -0
- package/SVF-doxygen/html/html/search/variables_1.js +7 -7
- package/SVF-doxygen/html/html/search/variables_10.js +23 -21
- package/SVF-doxygen/html/html/search/variables_11.js +7 -5
- package/SVF-doxygen/html/html/search/variables_12.js +10 -10
- package/SVF-doxygen/html/html/search/variables_13.js +7 -7
- package/SVF-doxygen/html/html/search/variables_14.js +3 -3
- package/SVF-doxygen/html/html/search/variables_15.js +4 -4
- package/SVF-doxygen/html/html/search/variables_16.js +3 -3
- package/SVF-doxygen/html/html/search/variables_2.js +1 -1
- package/SVF-doxygen/html/html/search/variables_3.js +12 -12
- package/SVF-doxygen/html/html/search/variables_4.js +18 -15
- package/SVF-doxygen/html/html/search/variables_5.js +5 -2
- package/SVF-doxygen/html/html/search/variables_6.js +7 -6
- package/SVF-doxygen/html/html/search/variables_7.js +2 -2
- package/SVF-doxygen/html/html/search/variables_8.js +1 -1
- package/SVF-doxygen/html/html/search/variables_9.js +7 -6
- package/SVF-doxygen/html/html/search/variables_b.js +1 -1
- package/SVF-doxygen/html/html/search/variables_c.js +5 -4
- package/SVF-doxygen/html/html/search/variables_d.js +11 -11
- package/SVF-doxygen/html/html/search/variables_e.js +3 -3
- package/SVF-doxygen/html/html/search/variables_f.js +3 -2
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +4 -4
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +4 -4
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +12 -55
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/wpa_8cpp.html +4 -47
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +4 -4
- package/include/Util/CommandLine.h +527 -0
- package/include/Util/Options.h +124 -124
- package/include/WPA/Andersen.h +5 -5
- package/lib/AbstractExecution/SVFIR2ItvExeState.cpp +2 -2
- package/lib/CFL/CFLAlias.cpp +5 -5
- package/lib/CFL/CFLBase.cpp +4 -4
- package/lib/CFL/CFLGraphBuilder.cpp +2 -2
- package/lib/CFL/CFLVF.cpp +5 -5
- package/lib/CMakeLists.txt +8 -4
- package/lib/DDA/ContextDDA.cpp +1 -1
- package/lib/DDA/DDAPass.cpp +14 -13
- package/lib/DDA/FlowDDA.cpp +1 -1
- package/lib/Graphs/ConsG.cpp +10 -10
- package/lib/Graphs/ICFG.cpp +1 -1
- package/lib/Graphs/IRGraph.cpp +2 -2
- package/lib/Graphs/SVFG.cpp +5 -5
- package/lib/Graphs/SVFGOPT.cpp +5 -5
- package/lib/Graphs/VFG.cpp +1 -1
- package/lib/MSSA/MemRegion.cpp +2 -2
- package/lib/MSSA/MemSSA.cpp +4 -4
- package/lib/MSSA/SVFGBuilder.cpp +4 -4
- package/lib/MTA/FSMPTA.cpp +13 -13
- package/lib/MTA/MHP.cpp +1 -1
- package/lib/MTA/MTA.cpp +2 -2
- package/lib/MTA/MTAStat.cpp +1 -1
- package/lib/MTA/PCG.cpp +8 -2
- package/lib/MTA/TCT.cpp +2 -2
- package/lib/MemoryModel/PointerAnalysis.cpp +13 -13
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +13 -13
- package/lib/MemoryModel/PointsTo.cpp +1 -1
- package/lib/SABER/DoubleFreeChecker.cpp +1 -1
- package/lib/SABER/LeakChecker.cpp +1 -1
- package/lib/SABER/SaberCondAllocator.cpp +1 -1
- package/lib/SABER/SrcSnkDDA.cpp +5 -5
- package/lib/SVF-LLVM/CHGBuilder.cpp +1 -1
- package/lib/SVF-LLVM/DCHG.cpp +1 -1
- package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +2 -2
- package/lib/SVF-LLVM/LLVMModule.cpp +10 -4
- package/lib/SVF-LLVM/SVFIRBuilder.cpp +8 -8
- package/lib/SVF-LLVM/SymbolTableBuilder.cpp +5 -5
- package/lib/SVFIR/SVFIR.cpp +4 -4
- package/lib/SVFIR/SVFStatements.cpp +16 -16
- package/lib/SVFIR/SVFVariables.cpp +5 -5
- package/lib/SVFIR/SymbolTableInfo.cpp +6 -6
- package/lib/Util/NodeIDAllocator.cpp +9 -9
- package/lib/Util/Options.cpp +426 -412
- package/lib/Util/SVFStat.cpp +5 -5
- package/lib/Util/SVFUtil.cpp +1 -1
- package/lib/Util/Z3Expr.cpp +2 -2
- package/lib/WPA/Andersen.cpp +13 -13
- package/lib/WPA/AndersenSCD.cpp +3 -3
- package/lib/WPA/FlowSensitive.cpp +8 -8
- package/lib/WPA/TypeAnalysis.cpp +1 -1
- package/lib/WPA/VersionedFlowSensitive.cpp +4 -4
- package/lib/WPA/WPAPass.cpp +10 -9
- package/package.json +1 -1
- package/tools/CFL/cfl.cpp +6 -14
- package/tools/DDA/dda.cpp +39 -29
- package/tools/Example/svf-ex.cpp +5 -8
- package/tools/MTA/LockResultValidator.cpp +2 -2
- package/tools/MTA/MTAAnnotator.cpp +5 -5
- package/tools/MTA/MTAResultValidator.cpp +8 -8
- package/tools/MTA/mta.cpp +5 -8
- package/tools/SABER/saber.cpp +23 -17
- package/tools/WPA/wpa.cpp +6 -9
|
@@ -593,14 +593,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
593
593
|
<p>Reimplemented from <a class="el" href="classSVF_1_1SVFGBuilder.html#ae2d84f7527de200a2f269dc1c056a305">SVF::SVFGBuilder</a>.</p>
|
|
594
594
|
|
|
595
595
|
<p class="definition">Definition at line <a class="el" href="FSMPTA_8cpp_source.html#l00047">47</a> of file <a class="el" href="FSMPTA_8cpp_source.html">FSMPTA.cpp</a>.</p>
|
|
596
|
-
<div class="fragment"><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="classSVF_1_1MemSSA.html">MemSSA</a>* mssa = <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->getMSSA();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->buildSVFG();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTASVFGBuilder.html#a80353cd2e4f7f7f006071b59c2cb3b9b">ADDEDGE_NOEDGE</a> != <a class="code" href="classSVF_1_1Options.html#
|
|
596
|
+
<div class="fragment"><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="classSVF_1_1MemSSA.html">MemSSA</a>* mssa = <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->getMSSA();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->buildSVFG();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTASVFGBuilder.html#a80353cd2e4f7f7f006071b59c2cb3b9b">ADDEDGE_NOEDGE</a> != <a class="code" href="classSVF_1_1Options.html#aac637c9746749320a4ebd6af36212c56">Options::AddModelFlag</a>())</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVFUtil::pasMsg</a>(<span class="stringliteral">"FSMPTA adding edge\n"</span>));</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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">SVFUtil::pasMsg</a>(<span class="stringliteral">"FSMPTA adding edge\n"</span>));</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a1010ef4fc52e312f2b22867a63a5810d">connectMHPEdges</a>(mssa-><a class="code" href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">getPTA</a>());</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">if</span> (mssa-><a class="code" href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">getPTA</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">printStat</a>())</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">svfg</a>->performStat();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> }</div><div class="ttc" id="classSVF_1_1SVFGBuilder_html_af9f454c48ebf26376fca06cdcec0f9cc"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#af9f454c48ebf26376fca06cdcec0f9cc">SVF::SVFGBuilder::svfg</a></div><div class="ttdeci">std::unique_ptr< SVFG > svfg</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00091">SVFGBuilder.h:91</a></div></div>
|
|
597
597
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a80353cd2e4f7f7f006071b59c2cb3b9b"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a80353cd2e4f7f7f006071b59c2cb3b9b">SVF::MTASVFGBuilder::ADDEDGE_NOEDGE</a></div><div class="ttdeci">static const u32_t ADDEDGE_NOEDGE</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00187">FSMPTA.h:187</a></div></div>
|
|
598
598
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a609eea630a8f88fe9eaba15ce7e48738"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(std::string msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00098">SVFUtil.cpp:98</a></div></div>
|
|
599
599
|
<div class="ttc" id="SVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdoc">General debug flag is for each phase of a pass, it is often in a colorful output format. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00422">SVFType.h:422</a></div></div>
|
|
600
600
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a4880571f57542afc50da506dfe273183"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">SVF::PointerAnalysis::printStat</a></div><div class="ttdeci">bool printStat()</div><div class="ttdoc">Whether print statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00362">PointerAnalysis.h:362</a></div></div>
|
|
601
|
-
<div class="ttc" id="classSVF_1_1Options_html_af129d2ff94af3f6830c0678cb4b72371"><div class="ttname"><a href="classSVF_1_1Options.html#af129d2ff94af3f6830c0678cb4b72371">SVF::Options::AddModelFlag</a></div><div class="ttdeci">static const llvm::cl::opt< u32_t > AddModelFlag</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00168">Options.h:168</a></div></div>
|
|
602
601
|
<div class="ttc" id="SVFType_8h_html_a217a1ccdaec1abb103cf6b0373631234"><div class="ttname"><a href="SVFType_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a></div><div class="ttdeci">#define DMTA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00437">SVFType.h:437</a></div></div>
|
|
603
602
|
<div class="ttc" id="classSVF_1_1MemSSA_html"><div class="ttname"><a href="classSVF_1_1MemSSA.html">SVF::MemSSA</a></div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00052">MemSSA.h:52</a></div></div>
|
|
603
|
+
<div class="ttc" id="classSVF_1_1Options_html_aac637c9746749320a4ebd6af36212c56"><div class="ttname"><a href="classSVF_1_1Options.html#aac637c9746749320a4ebd6af36212c56">SVF::Options::AddModelFlag</a></div><div class="ttdeci">static const Option< u32_t > AddModelFlag</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00168">Options.h:168</a></div></div>
|
|
604
604
|
<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>
|
|
605
605
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a1010ef4fc52e312f2b22867a63a5810d"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a1010ef4fc52e312f2b22867a63a5810d">SVF::MTASVFGBuilder::connectMHPEdges</a></div><div class="ttdeci">void connectMHPEdges(PointerAnalysis *pta)</div><div class="ttdoc">Connect MHP indirect value-flow edges for two nodes that may-happen-in-parallel. </div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00706">FSMPTA.cpp:706</a></div></div>
|
|
606
606
|
<div class="ttc" id="classSVF_1_1MemSSA_html_ad40617a1907b9a6b8cc24888ce54a0ac"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">SVF::MemSSA::getPTA</a></div><div class="ttdeci">BVDataPTAImpl * getPTA() const</div><div class="ttdoc">Return PTA. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00308">MemSSA.h:308</a></div></div>
|
|
@@ -672,7 +672,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
672
672
|
<p>todo: we ignore rule 2 and 3. but so far I haven't added intra-thread value flow affected by fork and inter-thread value flow affected by join </p>
|
|
673
673
|
|
|
674
674
|
<p class="definition">Definition at line <a class="el" href="FSMPTA_8cpp_source.html#l00706">706</a> of file <a class="el" href="FSMPTA_8cpp_source.html">FSMPTA.cpp</a>.</p>
|
|
675
|
-
<div class="fragment"><div class="line"><a name="l00707"></a><span class="lineno"> 707</span> {</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <a class="code" href="classSVF_1_1PCG.html">PCG</a>* pcg = <span class="keyword">new</span> <a class="code" href="classSVF_1_1PCG.html">PCG</a>(pta);</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="keywordflow">if</span> ((<a class="code" href="classSVF_1_1MTASVFGBuilder.html#a2be0c1f7cc8872a6f27431b33811cbea">ADDEDGE_NONSPARSE</a>==<a class="code" href="classSVF_1_1Options.html#af129d2ff94af3f6830c0678cb4b72371">Options::AddModelFlag</a>) && <a class="code" href="classSVF_1_1Options.html#af2f66307e1d51947676f622c98ef0762">Options::UsePCG</a>)</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  {</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  pcg-><a class="code" href="classSVF_1_1PCG.html#a50b677ec622247a464cee7f0f45c5a53">analyze</a>();</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  }</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a46d39980440040fc0ca50b3df7eead1a">collectLoadStoreSVFGNodes</a>();</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a13ac51421add3cb242ad823e18938c95">recordedges</a>.clear();</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a1c0de33bba2f05f14140d872c345ab38">edge2pts</a>.clear();</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span> </div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  <span class="keywordflow">for</span> (SVFGNodeSet::const_iterator it1 = <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a772436f5edc7b4bed3a3e8f0e55ac5ce">stnodeSet</a>.begin(), eit1 = <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a772436f5edc7b4bed3a3e8f0e55ac5ce">stnodeSet</a>.end(); it1!=eit1; ++it1)</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  {</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1StmtVFGNode.html">StmtSVFGNode</a>* n1 = SVFUtil::cast<StmtSVFGNode>(*it1);</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* i1 = n1-><a class="code" href="classSVF_1_1StmtVFGNode.html#a3fb14833d95bb3550f904b5e236a5364">getInst</a>();</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span> </div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keywordflow">for</span> (SVFGNodeSet::const_iterator it2 = <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a6dfa9807255258f324557d188adea9b2">ldnodeSet</a>.begin(), eit2 = <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a6dfa9807255258f324557d188adea9b2">ldnodeSet</a>.end(); it2 != eit2; ++it2)</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  {</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1StmtVFGNode.html">StmtSVFGNode</a>* n2 = SVFUtil::cast<StmtSVFGNode>(*it2);</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* i2 = n2-><a class="code" href="classSVF_1_1StmtVFGNode.html#a3fb14833d95bb3550f904b5e236a5364">getInst</a>();</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTASVFGBuilder.html#a2be0c1f7cc8872a6f27431b33811cbea">ADDEDGE_NONSPARSE</a>==<a class="code" href="classSVF_1_1Options.html#af129d2ff94af3f6830c0678cb4b72371">Options::AddModelFlag</a>)</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  {</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#af2f66307e1d51947676f622c98ef0762">Options::UsePCG</a>)</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  {</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keywordflow">if</span> (pcg-><a class="code" href="classSVF_1_1PCG.html#a0c4d2c2648638794a02d890293a2805d">mayHappenInParallel</a>(i1, i2) || <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a73024bf30aa3ec79e5953a7ea1f8feb7">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a15b624924254f5362a3d02fa539a24fb">mayHappenInParallel</a>(i1, i2))</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a82b52f8e70f51353cbd7476a509ff523">handleStoreLoadNonSparse</a>(n1, n2, pta);</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  }</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  {</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a82b52f8e70f51353cbd7476a509ff523">handleStoreLoadNonSparse</a>(n1, n2, pta);</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  }</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  }</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  {</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a24921d1b1d79d7ef0b358be8d7a9e2c4">handleStoreLoad</a>(n1, n2, pta);</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  }</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  }</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span> </div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <span class="keywordflow">for</span> (SVFGNodeSet::const_iterator it2 = <a class="code" href="cJSON_8cpp.html#a2599f74bdbbc1b3fd1ba8db3789a0be7">std::next</a>(it1), eit2 = <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a772436f5edc7b4bed3a3e8f0e55ac5ce">stnodeSet</a>.end(); it2!=eit2; ++it2)</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  {</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1StmtVFGNode.html">StmtSVFGNode</a>* n2 = SVFUtil::cast<StmtSVFGNode>(*it2);</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* i2 = n2-><a class="code" href="classSVF_1_1StmtVFGNode.html#a3fb14833d95bb3550f904b5e236a5364">getInst</a>();</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTASVFGBuilder.html#a2be0c1f7cc8872a6f27431b33811cbea">ADDEDGE_NONSPARSE</a> == <a class="code" href="classSVF_1_1Options.html#af129d2ff94af3f6830c0678cb4b72371">Options::AddModelFlag</a>)</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  {</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#af2f66307e1d51947676f622c98ef0762">Options::UsePCG</a>)</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  {</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <span class="keywordflow">if</span>(pcg-><a class="code" href="classSVF_1_1PCG.html#a0c4d2c2648638794a02d890293a2805d">mayHappenInParallel</a>(i1, i2) || <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a73024bf30aa3ec79e5953a7ea1f8feb7">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a15b624924254f5362a3d02fa539a24fb">mayHappenInParallel</a>(i1, i2))</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a91ff57e51b0650963b4b5541fa0f7056">handleStoreStoreNonSparse</a>(n1, n2, pta);</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  }</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  {</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a91ff57e51b0650963b4b5541fa0f7056">handleStoreStoreNonSparse</a>(n1, n2, pta);</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  }</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  }</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  {</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a29a14309cfa1d7c4454fb1237704e487">handleStoreStore</a>(n1, n2, pta);</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  }</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  }</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  }</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span> </div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a6bec8aed8673d10d65cc3df9fad3383b">Options::ReadPrecisionTDEdge</a> && <a class="code" href="classSVF_1_1MTASVFGBuilder.html#adac31c16b9e84d3bee24ce09a82c467b">ADDEDGE_NORP</a>!=<a class="code" href="classSVF_1_1Options.html#af129d2ff94af3f6830c0678cb4b72371">Options::AddModelFlag</a>)</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  {</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>()<<<span class="stringliteral">"Read precision edge removing \n"</span>);</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>()<<<span class="stringliteral">"Read precision edge removing \n"</span>);</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a5532751632ece036b3d6741908573b36">readPrecision</a>();</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  }</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span> }</div><div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a73024bf30aa3ec79e5953a7ea1f8feb7"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a73024bf30aa3ec79e5953a7ea1f8feb7">SVF::MTASVFGBuilder::mhp</a></div><div class="ttdeci">MHP * mhp</div><div class="ttdoc">MHP class. </div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00170">FSMPTA.h:170</a></div></div>
|
|
675
|
+
<div class="fragment"><div class="line"><a name="l00707"></a><span class="lineno"> 707</span> {</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <a class="code" href="classSVF_1_1PCG.html">PCG</a>* pcg = <span class="keyword">new</span> <a class="code" href="classSVF_1_1PCG.html">PCG</a>(pta);</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="keywordflow">if</span> ((<a class="code" href="classSVF_1_1MTASVFGBuilder.html#a2be0c1f7cc8872a6f27431b33811cbea">ADDEDGE_NONSPARSE</a>==<a class="code" href="classSVF_1_1Options.html#aac637c9746749320a4ebd6af36212c56">Options::AddModelFlag</a>()) && <a class="code" href="classSVF_1_1Options.html#aaa7ca76c841dd19d67796d09c94a9746">Options::UsePCG</a>())</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  {</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  pcg-><a class="code" href="classSVF_1_1PCG.html#a50b677ec622247a464cee7f0f45c5a53">analyze</a>();</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  }</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a46d39980440040fc0ca50b3df7eead1a">collectLoadStoreSVFGNodes</a>();</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a13ac51421add3cb242ad823e18938c95">recordedges</a>.clear();</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a1c0de33bba2f05f14140d872c345ab38">edge2pts</a>.clear();</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span> </div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  <span class="keywordflow">for</span> (SVFGNodeSet::const_iterator it1 = <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a772436f5edc7b4bed3a3e8f0e55ac5ce">stnodeSet</a>.begin(), eit1 = <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a772436f5edc7b4bed3a3e8f0e55ac5ce">stnodeSet</a>.end(); it1!=eit1; ++it1)</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  {</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1StmtVFGNode.html">StmtSVFGNode</a>* n1 = SVFUtil::cast<StmtSVFGNode>(*it1);</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* i1 = n1-><a class="code" href="classSVF_1_1StmtVFGNode.html#a3fb14833d95bb3550f904b5e236a5364">getInst</a>();</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span> </div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keywordflow">for</span> (SVFGNodeSet::const_iterator it2 = <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a6dfa9807255258f324557d188adea9b2">ldnodeSet</a>.begin(), eit2 = <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a6dfa9807255258f324557d188adea9b2">ldnodeSet</a>.end(); it2 != eit2; ++it2)</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  {</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1StmtVFGNode.html">StmtSVFGNode</a>* n2 = SVFUtil::cast<StmtSVFGNode>(*it2);</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* i2 = n2-><a class="code" href="classSVF_1_1StmtVFGNode.html#a3fb14833d95bb3550f904b5e236a5364">getInst</a>();</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTASVFGBuilder.html#a2be0c1f7cc8872a6f27431b33811cbea">ADDEDGE_NONSPARSE</a>==<a class="code" href="classSVF_1_1Options.html#aac637c9746749320a4ebd6af36212c56">Options::AddModelFlag</a>())</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  {</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#aaa7ca76c841dd19d67796d09c94a9746">Options::UsePCG</a>())</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  {</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keywordflow">if</span> (pcg-><a class="code" href="classSVF_1_1PCG.html#a0c4d2c2648638794a02d890293a2805d">mayHappenInParallel</a>(i1, i2) || <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a73024bf30aa3ec79e5953a7ea1f8feb7">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a15b624924254f5362a3d02fa539a24fb">mayHappenInParallel</a>(i1, i2))</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a82b52f8e70f51353cbd7476a509ff523">handleStoreLoadNonSparse</a>(n1, n2, pta);</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  }</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  {</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a82b52f8e70f51353cbd7476a509ff523">handleStoreLoadNonSparse</a>(n1, n2, pta);</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  }</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  }</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  {</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a24921d1b1d79d7ef0b358be8d7a9e2c4">handleStoreLoad</a>(n1, n2, pta);</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  }</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  }</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span> </div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <span class="keywordflow">for</span> (SVFGNodeSet::const_iterator it2 = <a class="code" href="cJSON_8cpp.html#a2599f74bdbbc1b3fd1ba8db3789a0be7">std::next</a>(it1), eit2 = <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a772436f5edc7b4bed3a3e8f0e55ac5ce">stnodeSet</a>.end(); it2!=eit2; ++it2)</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  {</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1StmtVFGNode.html">StmtSVFGNode</a>* n2 = SVFUtil::cast<StmtSVFGNode>(*it2);</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* i2 = n2-><a class="code" href="classSVF_1_1StmtVFGNode.html#a3fb14833d95bb3550f904b5e236a5364">getInst</a>();</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTASVFGBuilder.html#a2be0c1f7cc8872a6f27431b33811cbea">ADDEDGE_NONSPARSE</a> == <a class="code" href="classSVF_1_1Options.html#aac637c9746749320a4ebd6af36212c56">Options::AddModelFlag</a>())</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  {</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#aaa7ca76c841dd19d67796d09c94a9746">Options::UsePCG</a>())</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  {</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <span class="keywordflow">if</span>(pcg-><a class="code" href="classSVF_1_1PCG.html#a0c4d2c2648638794a02d890293a2805d">mayHappenInParallel</a>(i1, i2) || <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a73024bf30aa3ec79e5953a7ea1f8feb7">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a15b624924254f5362a3d02fa539a24fb">mayHappenInParallel</a>(i1, i2))</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a91ff57e51b0650963b4b5541fa0f7056">handleStoreStoreNonSparse</a>(n1, n2, pta);</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  }</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  {</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a91ff57e51b0650963b4b5541fa0f7056">handleStoreStoreNonSparse</a>(n1, n2, pta);</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  }</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  }</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  {</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a29a14309cfa1d7c4454fb1237704e487">handleStoreStore</a>(n1, n2, pta);</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  }</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  }</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  }</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span> </div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a3b6146824333f0da957d37b199978916">Options::ReadPrecisionTDEdge</a>() && <a class="code" href="classSVF_1_1MTASVFGBuilder.html#adac31c16b9e84d3bee24ce09a82c467b">ADDEDGE_NORP</a>!=<a class="code" href="classSVF_1_1Options.html#aac637c9746749320a4ebd6af36212c56">Options::AddModelFlag</a>())</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  {</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>()<<<span class="stringliteral">"Read precision edge removing \n"</span>);</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>()<<<span class="stringliteral">"Read precision edge removing \n"</span>);</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a5532751632ece036b3d6741908573b36">readPrecision</a>();</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  }</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span> }</div><div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a73024bf30aa3ec79e5953a7ea1f8feb7"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a73024bf30aa3ec79e5953a7ea1f8feb7">SVF::MTASVFGBuilder::mhp</a></div><div class="ttdeci">MHP * mhp</div><div class="ttdoc">MHP class. </div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00170">FSMPTA.h:170</a></div></div>
|
|
676
676
|
<div class="ttc" id="classSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00570">SVFValue.h:570</a></div></div>
|
|
677
677
|
<div class="ttc" id="cJSON_8cpp_html_a2599f74bdbbc1b3fd1ba8db3789a0be7"><div class="ttname"><a href="cJSON_8cpp.html#a2599f74bdbbc1b3fd1ba8db3789a0be7">next</a></div><div class="ttdeci">item next</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02224">cJSON.cpp:2224</a></div></div>
|
|
678
678
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a6dfa9807255258f324557d188adea9b2"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a6dfa9807255258f324557d188adea9b2">SVF::MTASVFGBuilder::ldnodeSet</a></div><div class="ttdeci">SVFGNodeSet ldnodeSet</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00167">FSMPTA.h:167</a></div></div>
|
|
@@ -681,24 +681,24 @@ Additional Inherited Members</h2></td></tr>
|
|
|
681
681
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a5532751632ece036b3d6741908573b36"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a5532751632ece036b3d6741908573b36">SVF::MTASVFGBuilder::readPrecision</a></div><div class="ttdeci">void readPrecision()</div><div class="ttdoc">For o, n2-o->n1, n1 and n2 are write. Foreach n3:n1->n3, n2->n3; then remove n2->n1. </div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00658">FSMPTA.cpp:658</a></div></div>
|
|
682
682
|
<div class="ttc" id="SVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdoc">General debug flag is for each phase of a pass, it is often in a colorful output format. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00422">SVFType.h:422</a></div></div>
|
|
683
683
|
<div class="ttc" id="classSVF_1_1MHP_html_a15b624924254f5362a3d02fa539a24fb"><div class="ttname"><a href="classSVF_1_1MHP.html#a15b624924254f5362a3d02fa539a24fb">SVF::MHP::mayHappenInParallel</a></div><div class="ttdeci">virtual bool mayHappenInParallel(const SVFInstruction *i1, const SVFInstruction *i2)</div><div class="ttdoc">Interface to query whether two instructions may happen-in-parallel. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l00602">MHP.cpp:602</a></div></div>
|
|
684
|
-
<div class="ttc" id="
|
|
684
|
+
<div class="ttc" id="classSVF_1_1Options_html_a3b6146824333f0da957d37b199978916"><div class="ttname"><a href="classSVF_1_1Options.html#a3b6146824333f0da957d37b199978916">SVF::Options::ReadPrecisionTDEdge</a></div><div class="ttdeci">static const Option< bool > ReadPrecisionTDEdge</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00167">Options.h:167</a></div></div>
|
|
685
685
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html_a3fb14833d95bb3550f904b5e236a5364"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a3fb14833d95bb3550f904b5e236a5364">SVF::StmtVFGNode::getInst</a></div><div class="ttdeci">const SVFInstruction * getInst() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00185">VFGNode.h:185</a></div></div>
|
|
686
686
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a24921d1b1d79d7ef0b358be8d7a9e2c4"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a24921d1b1d79d7ef0b358be8d7a9e2c4">SVF::MTASVFGBuilder::handleStoreLoad</a></div><div class="ttdeci">void handleStoreLoad(const StmtSVFGNode *n1, const StmtSVFGNode *n2, PointerAnalysis *pta)</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00484">FSMPTA.cpp:484</a></div></div>
|
|
687
|
-
<div class="ttc" id="
|
|
687
|
+
<div class="ttc" id="classSVF_1_1Options_html_aaa7ca76c841dd19d67796d09c94a9746"><div class="ttname"><a href="classSVF_1_1Options.html#aaa7ca76c841dd19d67796d09c94a9746">SVF::Options::UsePCG</a></div><div class="ttdeci">static const Option< bool > UsePCG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00165">Options.h:165</a></div></div>
|
|
688
|
+
<div class="ttc" id="classSVF_1_1PCG_html_a50b677ec622247a464cee7f0f45c5a53"><div class="ttname"><a href="classSVF_1_1PCG.html#a50b677ec622247a464cee7f0f45c5a53">SVF::PCG::analyze</a></div><div class="ttdeci">virtual bool analyze()</div><div class="ttdoc">We start the pass here. </div><div class="ttdef"><b>Definition:</b> <a href="PCG_8cpp_source.html#l00049">PCG.cpp:49</a></div></div>
|
|
688
689
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a91ff57e51b0650963b4b5541fa0f7056"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a91ff57e51b0650963b4b5541fa0f7056">SVF::MTASVFGBuilder::handleStoreStoreNonSparse</a></div><div class="ttdeci">void handleStoreStoreNonSparse(const StmtSVFGNode *n1, const StmtSVFGNode *n2, PointerAnalysis *pta)</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00475">FSMPTA.cpp:475</a></div></div>
|
|
689
690
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_adac31c16b9e84d3bee24ce09a82c467b"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#adac31c16b9e84d3bee24ce09a82c467b">SVF::MTASVFGBuilder::ADDEDGE_NORP</a></div><div class="ttdeci">static const u32_t ADDEDGE_NORP</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00193">FSMPTA.h:193</a></div></div>
|
|
690
691
|
<div class="ttc" id="SVFType_8h_html_a217a1ccdaec1abb103cf6b0373631234"><div class="ttname"><a href="SVFType_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a></div><div class="ttdeci">#define DMTA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00437">SVFType.h:437</a></div></div>
|
|
691
692
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a13ac51421add3cb242ad823e18938c95"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a13ac51421add3cb242ad823e18938c95">SVF::MTASVFGBuilder::recordedges</a></div><div class="ttdeci">Set< NodeIDPair > recordedges</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00173">FSMPTA.h:173</a></div></div>
|
|
692
693
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a2be0c1f7cc8872a6f27431b33811cbea"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a2be0c1f7cc8872a6f27431b33811cbea">SVF::MTASVFGBuilder::ADDEDGE_NONSPARSE</a></div><div class="ttdeci">static const u32_t ADDEDGE_NONSPARSE</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00188">FSMPTA.h:188</a></div></div>
|
|
693
694
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a772436f5edc7b4bed3a3e8f0e55ac5ce"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a772436f5edc7b4bed3a3e8f0e55ac5ce">SVF::MTASVFGBuilder::stnodeSet</a></div><div class="ttdeci">SVFGNodeSet stnodeSet</div><div class="ttdoc">all stores/loads SVFGNodes </div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00166">FSMPTA.h:166</a></div></div>
|
|
694
|
-
<div class="ttc" id="
|
|
695
|
+
<div class="ttc" id="classSVF_1_1Options_html_aac637c9746749320a4ebd6af36212c56"><div class="ttname"><a href="classSVF_1_1Options.html#aac637c9746749320a4ebd6af36212c56">SVF::Options::AddModelFlag</a></div><div class="ttdeci">static const Option< u32_t > AddModelFlag</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00168">Options.h:168</a></div></div>
|
|
696
|
+
<div class="ttc" id="classSVF_1_1PCG_html_a0c4d2c2648638794a02d890293a2805d"><div class="ttname"><a href="classSVF_1_1PCG.html#a0c4d2c2648638794a02d890293a2805d">SVF::PCG::mayHappenInParallel</a></div><div class="ttdeci">virtual bool mayHappenInParallel(const SVFInstruction *i1, const SVFInstruction *i2) const</div><div class="ttdoc">Interface to query whether two function may happen-in-parallel. </div><div class="ttdef"><b>Definition:</b> <a href="PCG_8cpp_source.html#l00083">PCG.cpp:83</a></div></div>
|
|
695
697
|
<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>
|
|
696
698
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a29a14309cfa1d7c4454fb1237704e487"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a29a14309cfa1d7c4454fb1237704e487">SVF::MTASVFGBuilder::handleStoreStore</a></div><div class="ttdeci">void handleStoreStore(const StmtSVFGNode *n1, const StmtSVFGNode *n2, PointerAnalysis *pta)</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00518">FSMPTA.cpp:518</a></div></div>
|
|
697
|
-
<div class="ttc" id="classSVF_1_1Options_html_af2f66307e1d51947676f622c98ef0762"><div class="ttname"><a href="classSVF_1_1Options.html#af2f66307e1d51947676f622c98ef0762">SVF::Options::UsePCG</a></div><div class="ttdeci">static const llvm::cl::opt< bool > UsePCG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00165">Options.h:165</a></div></div>
|
|
698
699
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a1c0de33bba2f05f14140d872c345ab38"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a1c0de33bba2f05f14140d872c345ab38">SVF::MTASVFGBuilder::edge2pts</a></div><div class="ttdeci">Map< NodeIDPair, PointsTo > edge2pts</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00174">FSMPTA.h:174</a></div></div>
|
|
699
700
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html">SVF::StmtVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00116">VFGNode.h:116</a></div></div>
|
|
700
701
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a82b52f8e70f51353cbd7476a509ff523"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a82b52f8e70f51353cbd7476a509ff523">SVF::MTASVFGBuilder::handleStoreLoadNonSparse</a></div><div class="ttdeci">void handleStoreLoadNonSparse(const StmtSVFGNode *n1, const StmtSVFGNode *n2, PointerAnalysis *pta)</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00465">FSMPTA.cpp:465</a></div></div>
|
|
701
|
-
<div class="ttc" id="classSVF_1_1Options_html_a6bec8aed8673d10d65cc3df9fad3383b"><div class="ttname"><a href="classSVF_1_1Options.html#a6bec8aed8673d10d65cc3df9fad3383b">SVF::Options::ReadPrecisionTDEdge</a></div><div class="ttdeci">static const llvm::cl::opt< bool > ReadPrecisionTDEdge</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00167">Options.h:167</a></div></div>
|
|
702
702
|
<div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_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="SVFType_8h_source.html#l00417">SVFType.h:417</a></div></div>
|
|
703
703
|
</div><!-- fragment -->
|
|
704
704
|
</div>
|
|
@@ -876,19 +876,19 @@ Additional Inherited Members</h2></td></tr>
|
|
|
876
876
|
<p>Lock todo: we only consider all cxtstmt of one instruction in one lock span, otherwise we think this instruction is not locked This constrait is too strong. All cxt lock under different cxt cannot be identified. </p>
|
|
877
877
|
|
|
878
878
|
<p class="definition">Definition at line <a class="el" href="FSMPTA_8cpp_source.html#l00484">484</a> of file <a class="el" href="FSMPTA_8cpp_source.html">FSMPTA.cpp</a>.</p>
|
|
879
|
-
<div class="fragment"><div class="line"><a name="l00485"></a><span class="lineno"> 485</span> {</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* i1 = n1-><a class="code" href="classSVF_1_1StmtVFGNode.html#a3fb14833d95bb3550f904b5e236a5364">getInst</a>();</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* i2 = n2-><a class="code" href="classSVF_1_1StmtVFGNode.html#a3fb14833d95bb3550f904b5e236a5364">getInst</a>();</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTASVFGBuilder.html#a21b3ee74434730fc792624d2eae2b168">ADDEDGE_NOMHP</a>!=<a class="code" href="classSVF_1_1Options.html#
|
|
879
|
+
<div class="fragment"><div class="line"><a name="l00485"></a><span class="lineno"> 485</span> {</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* i1 = n1-><a class="code" href="classSVF_1_1StmtVFGNode.html#a3fb14833d95bb3550f904b5e236a5364">getInst</a>();</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* i2 = n2-><a class="code" href="classSVF_1_1StmtVFGNode.html#a3fb14833d95bb3550f904b5e236a5364">getInst</a>();</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTASVFGBuilder.html#a21b3ee74434730fc792624d2eae2b168">ADDEDGE_NOMHP</a>!=<a class="code" href="classSVF_1_1Options.html#aac637c9746749320a4ebd6af36212c56">Options::AddModelFlag</a>() && !<a class="code" href="classSVF_1_1MTASVFGBuilder.html#a73024bf30aa3ec79e5953a7ea1f8feb7">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a15b624924254f5362a3d02fa539a24fb">mayHappenInParallel</a>(i1, i2))</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTASVFGBuilder.html#a9b81d7b2c238d443acadc748c6bd018d">ADDEDGE_NOALIAS</a>!=<a class="code" href="classSVF_1_1Options.html#aac637c9746749320a4ebd6af36212c56">Options::AddModelFlag</a>() && !pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#ae1323233941cdc9b99332e4b954a2217">alias</a>(n1-><a class="code" href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">getPAGDstNodeID</a>(), n2-><a class="code" href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">getPAGSrcNodeID</a>()))</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span> </div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> pts = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">getPts</a>(n1-><a class="code" href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">getPAGDstNodeID</a>());</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  pts &= pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">getPts</a>(n2-><a class="code" href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">getPAGSrcNodeID</a>());</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span> </div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span> </div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTASVFGBuilder.html#a82634524fba304c012980421b35ed8bd">ADDEDGE_NOLOCK</a>!=<a class="code" href="classSVF_1_1Options.html#aac637c9746749320a4ebd6af36212c56">Options::AddModelFlag</a>() && <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a00bf5aaf3095bb271f2cbd3c35749ce2">lockana</a>-><a class="code" href="classSVF_1_1LockAnalysis.html#a213bd0dfeba620498dabcfa4fa3a018c">isProtectedByCommonLock</a>(i1, i2))</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  {</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTASVFGBuilder.html#ac8339229ade604f4205b111bfc99f23f">isTailofSpan</a>(n1) && <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a5c32c2f5038aab15ec2da50c7c99b405">isHeadofSpan</a>(n2))</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a2e654f80c3680cd434fd04932a309a2d">addTDEdges</a>(n1-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), n2-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), pts);</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  }</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  {</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a2e654f80c3680cd434fd04932a309a2d">addTDEdges</a>(n1-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), n2-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), pts);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  }</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span> }</div><div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a73024bf30aa3ec79e5953a7ea1f8feb7"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a73024bf30aa3ec79e5953a7ea1f8feb7">SVF::MTASVFGBuilder::mhp</a></div><div class="ttdeci">MHP * mhp</div><div class="ttdoc">MHP class. </div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00170">FSMPTA.h:170</a></div></div>
|
|
880
880
|
<div class="ttc" id="classSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00570">SVFValue.h:570</a></div></div>
|
|
881
881
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a213bd0dfeba620498dabcfa4fa3a018c"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a213bd0dfeba620498dabcfa4fa3a018c">SVF::LockAnalysis::isProtectedByCommonLock</a></div><div class="ttdeci">bool isProtectedByCommonLock(const SVFInstruction *i1, const SVFInstruction *i2)</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8cpp_source.html#l00556">LockAnalysis.cpp:556</a></div></div>
|
|
882
882
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html_a04986961ad507be9fcf141ab51787da8"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">SVF::StmtVFGNode::getPAGDstNodeID</a></div><div class="ttdeci">NodeID getPAGDstNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00146">VFGNode.h:146</a></div></div>
|
|
883
883
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a4dfb43679e9fa794ebad99b6584c32ec"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">SVF::PointerAnalysis::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID ptr)=0</div><div class="ttdoc">Get points-to targets of a pointer. It needs to be implemented in child class. </div></div>
|
|
884
884
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a21b3ee74434730fc792624d2eae2b168"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a21b3ee74434730fc792624d2eae2b168">SVF::MTASVFGBuilder::ADDEDGE_NOMHP</a></div><div class="ttdeci">static const u32_t ADDEDGE_NOMHP</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00190">FSMPTA.h:190</a></div></div>
|
|
885
885
|
<div class="ttc" id="classSVF_1_1MHP_html_a15b624924254f5362a3d02fa539a24fb"><div class="ttname"><a href="classSVF_1_1MHP.html#a15b624924254f5362a3d02fa539a24fb">SVF::MHP::mayHappenInParallel</a></div><div class="ttdeci">virtual bool mayHappenInParallel(const SVFInstruction *i1, const SVFInstruction *i2)</div><div class="ttdoc">Interface to query whether two instructions may happen-in-parallel. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l00602">MHP.cpp:602</a></div></div>
|
|
886
|
-
<div class="ttc" id="classSVF_1_1Options_html_af129d2ff94af3f6830c0678cb4b72371"><div class="ttname"><a href="classSVF_1_1Options.html#af129d2ff94af3f6830c0678cb4b72371">SVF::Options::AddModelFlag</a></div><div class="ttdeci">static const llvm::cl::opt< u32_t > AddModelFlag</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00168">Options.h:168</a></div></div>
|
|
887
886
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a2e654f80c3680cd434fd04932a309a2d"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a2e654f80c3680cd434fd04932a309a2d">SVF::MTASVFGBuilder::addTDEdges</a></div><div class="ttdeci">SVFGEdge * addTDEdges(NodeID srcId, NodeID dstId, PointsTo &pts)</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00125">FSMPTA.cpp:125</a></div></div>
|
|
888
887
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a9b81d7b2c238d443acadc748c6bd018d"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a9b81d7b2c238d443acadc748c6bd018d">SVF::MTASVFGBuilder::ADDEDGE_NOALIAS</a></div><div class="ttdeci">static const u32_t ADDEDGE_NOALIAS</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00191">FSMPTA.h:191</a></div></div>
|
|
889
888
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html_a3fb14833d95bb3550f904b5e236a5364"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a3fb14833d95bb3550f904b5e236a5364">SVF::StmtVFGNode::getInst</a></div><div class="ttdeci">const SVFInstruction * getInst() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00185">VFGNode.h:185</a></div></div>
|
|
890
889
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a82634524fba304c012980421b35ed8bd"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a82634524fba304c012980421b35ed8bd">SVF::MTASVFGBuilder::ADDEDGE_NOLOCK</a></div><div class="ttdeci">static const u32_t ADDEDGE_NOLOCK</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00192">FSMPTA.h:192</a></div></div>
|
|
891
890
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a00bf5aaf3095bb271f2cbd3c35749ce2"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a00bf5aaf3095bb271f2cbd3c35749ce2">SVF::MTASVFGBuilder::lockana</a></div><div class="ttdeci">LockAnalysis * lockana</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00171">FSMPTA.h:171</a></div></div>
|
|
891
|
+
<div class="ttc" id="classSVF_1_1Options_html_aac637c9746749320a4ebd6af36212c56"><div class="ttname"><a href="classSVF_1_1Options.html#aac637c9746749320a4ebd6af36212c56">SVF::Options::AddModelFlag</a></div><div class="ttdeci">static const Option< u32_t > AddModelFlag</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00168">Options.h:168</a></div></div>
|
|
892
892
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html_a791a01f5d3528f8a8bf19369b5c61c37"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">SVF::StmtVFGNode::getPAGSrcNodeID</a></div><div class="ttdeci">NodeID getPAGSrcNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00141">VFGNode.h:141</a></div></div>
|
|
893
893
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_ac8339229ade604f4205b111bfc99f23f"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#ac8339229ade604f4205b111bfc99f23f">SVF::MTASVFGBuilder::isTailofSpan</a></div><div class="ttdeci">bool isTailofSpan(const StmtSVFGNode *n, LockAnalysis::LockSpan lspan)</div><div class="ttdoc">whether is a last write in the lock span. </div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00285">FSMPTA.cpp:285</a></div></div>
|
|
894
894
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a5c32c2f5038aab15ec2da50c7c99b405"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a5c32c2f5038aab15ec2da50c7c99b405">SVF::MTASVFGBuilder::isHeadofSpan</a></div><div class="ttdeci">bool isHeadofSpan(const StmtSVFGNode *n, LockAnalysis::LockSpan lspan)</div><div class="ttdoc">whether is a first write in the lock span. </div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00201">FSMPTA.cpp:201</a></div></div>
|
|
@@ -1039,19 +1039,19 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1039
1039
|
<p>Lock </p>
|
|
1040
1040
|
|
|
1041
1041
|
<p class="definition">Definition at line <a class="el" href="FSMPTA_8cpp_source.html#l00518">518</a> of file <a class="el" href="FSMPTA_8cpp_source.html">FSMPTA.cpp</a>.</p>
|
|
1042
|
-
<div class="fragment"><div class="line"><a name="l00519"></a><span class="lineno"> 519</span> {</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* i1 = n1-><a class="code" href="classSVF_1_1StmtVFGNode.html#a3fb14833d95bb3550f904b5e236a5364">getInst</a>();</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* i2 = n2-><a class="code" href="classSVF_1_1StmtVFGNode.html#a3fb14833d95bb3550f904b5e236a5364">getInst</a>();</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTASVFGBuilder.html#a21b3ee74434730fc792624d2eae2b168">ADDEDGE_NOMHP</a>!=<a class="code" href="classSVF_1_1Options.html#
|
|
1042
|
+
<div class="fragment"><div class="line"><a name="l00519"></a><span class="lineno"> 519</span> {</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* i1 = n1-><a class="code" href="classSVF_1_1StmtVFGNode.html#a3fb14833d95bb3550f904b5e236a5364">getInst</a>();</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* i2 = n2-><a class="code" href="classSVF_1_1StmtVFGNode.html#a3fb14833d95bb3550f904b5e236a5364">getInst</a>();</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTASVFGBuilder.html#a21b3ee74434730fc792624d2eae2b168">ADDEDGE_NOMHP</a>!=<a class="code" href="classSVF_1_1Options.html#aac637c9746749320a4ebd6af36212c56">Options::AddModelFlag</a>() && !<a class="code" href="classSVF_1_1MTASVFGBuilder.html#a73024bf30aa3ec79e5953a7ea1f8feb7">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a15b624924254f5362a3d02fa539a24fb">mayHappenInParallel</a>(i1, i2))</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTASVFGBuilder.html#a9b81d7b2c238d443acadc748c6bd018d">ADDEDGE_NOALIAS</a>!=<a class="code" href="classSVF_1_1Options.html#aac637c9746749320a4ebd6af36212c56">Options::AddModelFlag</a>() && !pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#ae1323233941cdc9b99332e4b954a2217">alias</a>(n1-><a class="code" href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">getPAGDstNodeID</a>(), n2-><a class="code" href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">getPAGDstNodeID</a>()))</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span> </div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> pts = pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">getPts</a>(n1-><a class="code" href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">getPAGDstNodeID</a>());</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  pts &= pta-><a class="code" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">getPts</a>(n2-><a class="code" href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">getPAGDstNodeID</a>());</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span> </div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTASVFGBuilder.html#a82634524fba304c012980421b35ed8bd">ADDEDGE_NOLOCK</a>!=<a class="code" href="classSVF_1_1Options.html#aac637c9746749320a4ebd6af36212c56">Options::AddModelFlag</a>() && <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a00bf5aaf3095bb271f2cbd3c35749ce2">lockana</a>-><a class="code" href="classSVF_1_1LockAnalysis.html#a213bd0dfeba620498dabcfa4fa3a018c">isProtectedByCommonLock</a>(i1, i2))</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  {</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTASVFGBuilder.html#ac8339229ade604f4205b111bfc99f23f">isTailofSpan</a>(n1) && <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a5c32c2f5038aab15ec2da50c7c99b405">isHeadofSpan</a>(n2))</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a2e654f80c3680cd434fd04932a309a2d">addTDEdges</a>(n1-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), n2-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), pts);</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTASVFGBuilder.html#ac8339229ade604f4205b111bfc99f23f">isTailofSpan</a>(n2) && <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a5c32c2f5038aab15ec2da50c7c99b405">isHeadofSpan</a>(n1))</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a2e654f80c3680cd434fd04932a309a2d">addTDEdges</a>(n2-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), n1-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), pts);</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  }</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  {</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a2e654f80c3680cd434fd04932a309a2d">addTDEdges</a>(n1-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), n2-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), pts);</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a2e654f80c3680cd434fd04932a309a2d">addTDEdges</a>(n2-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), n1-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), pts);</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  }</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span> }</div><div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a73024bf30aa3ec79e5953a7ea1f8feb7"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a73024bf30aa3ec79e5953a7ea1f8feb7">SVF::MTASVFGBuilder::mhp</a></div><div class="ttdeci">MHP * mhp</div><div class="ttdoc">MHP class. </div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00170">FSMPTA.h:170</a></div></div>
|
|
1043
1043
|
<div class="ttc" id="classSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00570">SVFValue.h:570</a></div></div>
|
|
1044
1044
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a213bd0dfeba620498dabcfa4fa3a018c"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a213bd0dfeba620498dabcfa4fa3a018c">SVF::LockAnalysis::isProtectedByCommonLock</a></div><div class="ttdeci">bool isProtectedByCommonLock(const SVFInstruction *i1, const SVFInstruction *i2)</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8cpp_source.html#l00556">LockAnalysis.cpp:556</a></div></div>
|
|
1045
1045
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html_a04986961ad507be9fcf141ab51787da8"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a04986961ad507be9fcf141ab51787da8">SVF::StmtVFGNode::getPAGDstNodeID</a></div><div class="ttdeci">NodeID getPAGDstNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00146">VFGNode.h:146</a></div></div>
|
|
1046
1046
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a4dfb43679e9fa794ebad99b6584c32ec"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">SVF::PointerAnalysis::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID ptr)=0</div><div class="ttdoc">Get points-to targets of a pointer. It needs to be implemented in child class. </div></div>
|
|
1047
1047
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a21b3ee74434730fc792624d2eae2b168"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a21b3ee74434730fc792624d2eae2b168">SVF::MTASVFGBuilder::ADDEDGE_NOMHP</a></div><div class="ttdeci">static const u32_t ADDEDGE_NOMHP</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00190">FSMPTA.h:190</a></div></div>
|
|
1048
1048
|
<div class="ttc" id="classSVF_1_1MHP_html_a15b624924254f5362a3d02fa539a24fb"><div class="ttname"><a href="classSVF_1_1MHP.html#a15b624924254f5362a3d02fa539a24fb">SVF::MHP::mayHappenInParallel</a></div><div class="ttdeci">virtual bool mayHappenInParallel(const SVFInstruction *i1, const SVFInstruction *i2)</div><div class="ttdoc">Interface to query whether two instructions may happen-in-parallel. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l00602">MHP.cpp:602</a></div></div>
|
|
1049
|
-
<div class="ttc" id="classSVF_1_1Options_html_af129d2ff94af3f6830c0678cb4b72371"><div class="ttname"><a href="classSVF_1_1Options.html#af129d2ff94af3f6830c0678cb4b72371">SVF::Options::AddModelFlag</a></div><div class="ttdeci">static const llvm::cl::opt< u32_t > AddModelFlag</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00168">Options.h:168</a></div></div>
|
|
1050
1049
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a2e654f80c3680cd434fd04932a309a2d"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a2e654f80c3680cd434fd04932a309a2d">SVF::MTASVFGBuilder::addTDEdges</a></div><div class="ttdeci">SVFGEdge * addTDEdges(NodeID srcId, NodeID dstId, PointsTo &pts)</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00125">FSMPTA.cpp:125</a></div></div>
|
|
1051
1050
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a9b81d7b2c238d443acadc748c6bd018d"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a9b81d7b2c238d443acadc748c6bd018d">SVF::MTASVFGBuilder::ADDEDGE_NOALIAS</a></div><div class="ttdeci">static const u32_t ADDEDGE_NOALIAS</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00191">FSMPTA.h:191</a></div></div>
|
|
1052
1051
|
<div class="ttc" id="classSVF_1_1StmtVFGNode_html_a3fb14833d95bb3550f904b5e236a5364"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a3fb14833d95bb3550f904b5e236a5364">SVF::StmtVFGNode::getInst</a></div><div class="ttdeci">const SVFInstruction * getInst() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00185">VFGNode.h:185</a></div></div>
|
|
1053
1052
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a82634524fba304c012980421b35ed8bd"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a82634524fba304c012980421b35ed8bd">SVF::MTASVFGBuilder::ADDEDGE_NOLOCK</a></div><div class="ttdeci">static const u32_t ADDEDGE_NOLOCK</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00192">FSMPTA.h:192</a></div></div>
|
|
1054
1053
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a00bf5aaf3095bb271f2cbd3c35749ce2"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a00bf5aaf3095bb271f2cbd3c35749ce2">SVF::MTASVFGBuilder::lockana</a></div><div class="ttdeci">LockAnalysis * lockana</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00171">FSMPTA.h:171</a></div></div>
|
|
1054
|
+
<div class="ttc" id="classSVF_1_1Options_html_aac637c9746749320a4ebd6af36212c56"><div class="ttname"><a href="classSVF_1_1Options.html#aac637c9746749320a4ebd6af36212c56">SVF::Options::AddModelFlag</a></div><div class="ttdeci">static const Option< u32_t > AddModelFlag</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00168">Options.h:168</a></div></div>
|
|
1055
1055
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_ac8339229ade604f4205b111bfc99f23f"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#ac8339229ade604f4205b111bfc99f23f">SVF::MTASVFGBuilder::isTailofSpan</a></div><div class="ttdeci">bool isTailofSpan(const StmtSVFGNode *n, LockAnalysis::LockSpan lspan)</div><div class="ttdoc">whether is a last write in the lock span. </div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00285">FSMPTA.cpp:285</a></div></div>
|
|
1056
1056
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a5c32c2f5038aab15ec2da50c7c99b405"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a5c32c2f5038aab15ec2da50c7c99b405">SVF::MTASVFGBuilder::isHeadofSpan</a></div><div class="ttdeci">bool isHeadofSpan(const StmtSVFGNode *n, LockAnalysis::LockSpan lspan)</div><div class="ttdoc">whether is a first write in the lock span. </div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00201">FSMPTA.cpp:201</a></div></div>
|
|
1057
1057
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00171">GenericGraph.h:171</a></div></div>
|
|
@@ -263,7 +263,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
263
263
|
<p>Iterate every memory access pairs write vs read write vs write </p>
|
|
264
264
|
|
|
265
265
|
<p class="definition">Definition at line <a class="el" href="MTAStat_8cpp_source.html#l00112">112</a> of file <a class="el" href="MTAStat_8cpp_source.html">MTAStat.cpp</a>.</p>
|
|
266
|
-
<div class="fragment"><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#aa78f442ee8d7272e98396fd86dea4993">Options::AllPairMHP</a>)</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>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFInstruction*></a> instSet1;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFInstruction*></a> instSet2;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* mod = mhp-><a class="code" href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">getTCT</a>()-><a class="code" href="classSVF_1_1TCT.html#aabc2c84e951ed9ae64207e379acb3074">getSVFModule</a>();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun : mod-><a class="code" href="classSVF_1_1SVFModule.html#abbaf48d9702ec1f38dc6ae137ca630a1">getFunctionSet</a>())</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVFUtil::isExtCall</a>(fun))</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">if</span>(!mhp-><a class="code" href="classSVF_1_1MHP.html#a90c228214643bb6d37bacffc35b99a3e">isConnectedfromMain</a>(fun))</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFFunction.html#aaec097379a345ab0e80b6a9c50508f48">SVFFunction::const_iterator</a> bit = fun->begin(), ebit = fun->end(); bit != ebit; ++bit)</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>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb = *bit;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFBasicBlock.html#a73b7029f85e3762033f49c953d4b95ca">SVFBasicBlock::const_iterator</a> ii = bb-><a class="code" href="classSVF_1_1SVFBasicBlock.html#ac9cb2f17e42c40ca81b49c8b63a855fc">begin</a>(), eii = bb-><a class="code" href="classSVF_1_1SVFBasicBlock.html#ab65173c2668b80643cb96e8133e5ea0a">end</a>(); ii != eii; ++ii)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst = *ii;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* stmt : pag-><a class="code" href="classSVF_1_1SVFIR.html#a570ad42ad516e3fabb91a3563b618c0b">getSVFStmtList</a>(pag-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(inst)))</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">if</span>(SVFUtil::isa<LoadStmt>(stmt))</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  instSet1.insert(inst);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<StoreStmt>(stmt))</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  instSet1.insert(inst);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  instSet2.insert(inst);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </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>  }</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> </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="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFInstruction*>::const_iterator</a> it1 = instSet1.begin(), eit1 = instSet1.end(); it1!=eit1; ++it1)</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFInstruction*>::const_iterator</a> it2 = instSet2.begin(), eit2 = instSet2.end(); it2!=eit2; ++it2)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  mhp-><a class="code" href="classSVF_1_1MHP.html#a15b624924254f5362a3d02fa539a24fb">mayHappenInParallel</a>(*it1,*it2);</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>  }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>.clear();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>.clear();</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>.clear();</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"TotalMHPQueries"</span>] = mhp-><a class="code" href="classSVF_1_1MHP.html#a26ae18993915d76b704232cded9811c2">numOfTotalQueries</a>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfMHPPairs"</span>] = mhp-><a class="code" href="classSVF_1_1MHP.html#ab8bd382e0c70b0feb2a291ecc4043106">numOfMHPQueries</a>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"TotalLockQueries"</span>] = lsa-><a class="code" href="classSVF_1_1LockAnalysis.html#ad648ad9cda4070f9aec1addef0067627">numOfTotalQueries</a>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfLockedPairs"</span>] = lsa-><a class="code" href="classSVF_1_1LockAnalysis.html#a80c56ebc6b9b594e97b56767f451ff8b">numOfLockedQueries</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfCxtLocks"</span>] = lsa-><a class="code" href="classSVF_1_1LockAnalysis.html#a3df63f936d488166109d73bdcf0437d5">getNumOfCxtLocks</a>();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfNewSVFGEdges"</span>] = <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a019a4597074fdad6e51d936ed4ead0d9">MTASVFGBuilder::numOfNewSVFGEdges</a>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfRemovedEdges"</span>] = <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a0319d1d2e78c79f9943f2e2f65da26ed">MTASVFGBuilder::numOfRemovedSVFGEdges</a>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfRemovedPTS"</span>] = <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a07c3f5fa2e0092dac28521cf901a26cf">MTASVFGBuilder::numOfRemovedPTS</a>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"InterlevAnaTime"</span>] = mhp-><a class="code" href="classSVF_1_1MHP.html#aca306b97c6dcd47a8f407038436473a2">interleavingTime</a>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"LockAnaTime"</span>] = lsa-><a class="code" href="classSVF_1_1LockAnalysis.html#adadee129c04b82576b4ca3c7594cdcb2">lockTime</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"InterlevQueryTime"</span>] = mhp-><a class="code" href="classSVF_1_1MHP.html#ab7d9fe837844197b7acdc0493a50aaa5">interleavingQueriesTime</a>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"LockQueryTime"</span>] = lsa-><a class="code" href="classSVF_1_1LockAnalysis.html#a853ab1a953ddcf76841016a833e43f3d">lockQueriesTime</a>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"MHPAnalysisTime"</span>] = <a class="code" href="classSVF_1_1MTAStat.html#a56411f7e64febab8aab94a4a9207e5d8">MHPTime</a>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"MFSPTATime"</span>] = <a class="code" href="classSVF_1_1MTAStat.html#a030671ec358a93e3c2887f048dcfcce8">FSMPTATime</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\n****MHP Stmt Pairs Statistics****\n"</span>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="classSVF_1_1SVFStat.html#a178fcefed6ffffc78bbe9b23e0e1babe">PTAStat::printStat</a>();</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> }</div><div class="ttc" id="classSVF_1_1SVFBasicBlock_html_ab65173c2668b80643cb96e8133e5ea0a"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ab65173c2668b80643cb96e8133e5ea0a">SVF::SVFBasicBlock::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00522">SVFValue.h:522</a></div></div>
|
|
266
|
+
<div class="fragment"><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#aaa27474452c68545e883d02a334cab70">Options::AllPairMHP</a>())</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>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFInstruction*></a> instSet1;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFInstruction*></a> instSet2;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* mod = mhp-><a class="code" href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">getTCT</a>()-><a class="code" href="classSVF_1_1TCT.html#aabc2c84e951ed9ae64207e379acb3074">getSVFModule</a>();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun : mod-><a class="code" href="classSVF_1_1SVFModule.html#abbaf48d9702ec1f38dc6ae137ca630a1">getFunctionSet</a>())</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVFUtil::isExtCall</a>(fun))</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">if</span>(!mhp-><a class="code" href="classSVF_1_1MHP.html#a90c228214643bb6d37bacffc35b99a3e">isConnectedfromMain</a>(fun))</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFFunction.html#aaec097379a345ab0e80b6a9c50508f48">SVFFunction::const_iterator</a> bit = fun->begin(), ebit = fun->end(); bit != ebit; ++bit)</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>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb = *bit;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFBasicBlock.html#a73b7029f85e3762033f49c953d4b95ca">SVFBasicBlock::const_iterator</a> ii = bb-><a class="code" href="classSVF_1_1SVFBasicBlock.html#ac9cb2f17e42c40ca81b49c8b63a855fc">begin</a>(), eii = bb-><a class="code" href="classSVF_1_1SVFBasicBlock.html#ab65173c2668b80643cb96e8133e5ea0a">end</a>(); ii != eii; ++ii)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst = *ii;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* stmt : pag-><a class="code" href="classSVF_1_1SVFIR.html#a570ad42ad516e3fabb91a3563b618c0b">getSVFStmtList</a>(pag-><a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(inst)))</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">if</span>(SVFUtil::isa<LoadStmt>(stmt))</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  instSet1.insert(inst);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<StoreStmt>(stmt))</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  instSet1.insert(inst);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  instSet2.insert(inst);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </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>  }</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> </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="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFInstruction*>::const_iterator</a> it1 = instSet1.begin(), eit1 = instSet1.end(); it1!=eit1; ++it1)</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFInstruction*>::const_iterator</a> it2 = instSet2.begin(), eit2 = instSet2.end(); it2!=eit2; ++it2)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  mhp-><a class="code" href="classSVF_1_1MHP.html#a15b624924254f5362a3d02fa539a24fb">mayHappenInParallel</a>(*it1,*it2);</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>  }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>.clear();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>.clear();</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>.clear();</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"TotalMHPQueries"</span>] = mhp-><a class="code" href="classSVF_1_1MHP.html#a26ae18993915d76b704232cded9811c2">numOfTotalQueries</a>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfMHPPairs"</span>] = mhp-><a class="code" href="classSVF_1_1MHP.html#ab8bd382e0c70b0feb2a291ecc4043106">numOfMHPQueries</a>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"TotalLockQueries"</span>] = lsa-><a class="code" href="classSVF_1_1LockAnalysis.html#ad648ad9cda4070f9aec1addef0067627">numOfTotalQueries</a>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfLockedPairs"</span>] = lsa-><a class="code" href="classSVF_1_1LockAnalysis.html#a80c56ebc6b9b594e97b56767f451ff8b">numOfLockedQueries</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfCxtLocks"</span>] = lsa-><a class="code" href="classSVF_1_1LockAnalysis.html#a3df63f936d488166109d73bdcf0437d5">getNumOfCxtLocks</a>();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfNewSVFGEdges"</span>] = <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a019a4597074fdad6e51d936ed4ead0d9">MTASVFGBuilder::numOfNewSVFGEdges</a>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfRemovedEdges"</span>] = <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a0319d1d2e78c79f9943f2e2f65da26ed">MTASVFGBuilder::numOfRemovedSVFGEdges</a>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfRemovedPTS"</span>] = <a class="code" href="classSVF_1_1MTASVFGBuilder.html#a07c3f5fa2e0092dac28521cf901a26cf">MTASVFGBuilder::numOfRemovedPTS</a>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"InterlevAnaTime"</span>] = mhp-><a class="code" href="classSVF_1_1MHP.html#aca306b97c6dcd47a8f407038436473a2">interleavingTime</a>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"LockAnaTime"</span>] = lsa-><a class="code" href="classSVF_1_1LockAnalysis.html#adadee129c04b82576b4ca3c7594cdcb2">lockTime</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"InterlevQueryTime"</span>] = mhp-><a class="code" href="classSVF_1_1MHP.html#ab7d9fe837844197b7acdc0493a50aaa5">interleavingQueriesTime</a>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"LockQueryTime"</span>] = lsa-><a class="code" href="classSVF_1_1LockAnalysis.html#a853ab1a953ddcf76841016a833e43f3d">lockQueriesTime</a>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"MHPAnalysisTime"</span>] = <a class="code" href="classSVF_1_1MTAStat.html#a56411f7e64febab8aab94a4a9207e5d8">MHPTime</a>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"MFSPTATime"</span>] = <a class="code" href="classSVF_1_1MTAStat.html#a030671ec358a93e3c2887f048dcfcce8">FSMPTATime</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\n****MHP Stmt Pairs Statistics****\n"</span>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="classSVF_1_1SVFStat.html#a178fcefed6ffffc78bbe9b23e0e1babe">PTAStat::printStat</a>();</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> }</div><div class="ttc" id="classSVF_1_1SVFBasicBlock_html_ab65173c2668b80643cb96e8133e5ea0a"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ab65173c2668b80643cb96e8133e5ea0a">SVF::SVFBasicBlock::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00522">SVFValue.h:522</a></div></div>
|
|
267
267
|
<div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a019a4597074fdad6e51d936ed4ead0d9"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a019a4597074fdad6e51d936ed4ead0d9">SVF::MTASVFGBuilder::numOfNewSVFGEdges</a></div><div class="ttdeci">static u32_t numOfNewSVFGEdges</div><div class="ttdoc">Number of newly added SVFG edges. </div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00120">FSMPTA.h:120</a></div></div>
|
|
268
268
|
<div class="ttc" id="classSVF_1_1SVFFunction_html_aaec097379a345ab0e80b6a9c50508f48"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#aaec097379a345ab0e80b6a9c50508f48">SVF::SVFFunction::const_iterator</a></div><div class="ttdeci">std::vector< const SVFBasicBlock * >::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00262">SVFValue.h:262</a></div></div>
|
|
269
269
|
<div class="ttc" id="classSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00570">SVFValue.h:570</a></div></div>
|
|
@@ -294,7 +294,6 @@ Additional Inherited Members</h2></td></tr>
|
|
|
294
294
|
<div class="ttc" id="classSVF_1_1ICFG_html_a5f2c0aaba07d6fdd63058da0fb60ca8b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">SVF::ICFG::getICFGNode</a></div><div class="ttdeci">ICFGNode * getICFGNode(NodeID id) const</div><div class="ttdoc">Get a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00087">ICFG.h:87</a></div></div>
|
|
295
295
|
<div class="ttc" id="classSVF_1_1MHP_html_a26ae18993915d76b704232cded9811c2"><div class="ttname"><a href="classSVF_1_1MHP.html#a26ae18993915d76b704232cded9811c2">SVF::MHP::numOfTotalQueries</a></div><div class="ttdeci">u32_t numOfTotalQueries</div><div class="ttdoc">Total number of queries. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00277">MHP.h:277</a></div></div>
|
|
296
296
|
<div class="ttc" id="classSVF_1_1MHP_html_a033936547612c54326a604f0ff1e39a6"><div class="ttname"><a href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">SVF::MHP::getTCT</a></div><div class="ttdeci">TCT * getTCT() const</div><div class="ttdoc">Get Thread Creation Tree. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00082">MHP.h:82</a></div></div>
|
|
297
|
-
<div class="ttc" id="classSVF_1_1Options_html_aa78f442ee8d7272e98396fd86dea4993"><div class="ttname"><a href="classSVF_1_1Options.html#aa78f442ee8d7272e98396fd86dea4993">SVF::Options::AllPairMHP</a></div><div class="ttdeci">static const llvm::cl::opt< bool > AllPairMHP</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00189">Options.h:189</a></div></div>
|
|
298
297
|
<div class="ttc" id="classSVF_1_1SVFBasicBlock_html_ac9cb2f17e42c40ca81b49c8b63a855fc"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ac9cb2f17e42c40ca81b49c8b63a855fc">SVF::SVFBasicBlock::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00517">SVFValue.h:517</a></div></div>
|
|
299
298
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_adadee129c04b82576b4ca3c7594cdcb2"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#adadee129c04b82576b4ca3c7594cdcb2">SVF::LockAnalysis::lockTime</a></div><div class="ttdeci">double lockTime</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00511">LockAnalysis.h:511</a></div></div>
|
|
300
299
|
<div class="ttc" id="classSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00471">SVFValue.h:471</a></div></div>
|
|
@@ -302,6 +301,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
302
301
|
<div class="ttc" id="classSVF_1_1SVFBasicBlock_html_a73b7029f85e3762033f49c953d4b95ca"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a73b7029f85e3762033f49c953d4b95ca">SVF::SVFBasicBlock::const_iterator</a></div><div class="ttdeci">std::vector< const SVFInstruction * >::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00476">SVFValue.h:476</a></div></div>
|
|
303
302
|
<div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
304
303
|
<div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00163">SVFIR.h:163</a></div></div>
|
|
304
|
+
<div class="ttc" id="classSVF_1_1Options_html_aaa27474452c68545e883d02a334cab70"><div class="ttname"><a href="classSVF_1_1Options.html#aaa27474452c68545e883d02a334cab70">SVF::Options::AllPairMHP</a></div><div class="ttdeci">static const Option< bool > AllPairMHP</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00189">Options.h:189</a></div></div>
|
|
305
305
|
<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#l00295">SVFUtil.h:295</a></div></div>
|
|
306
306
|
<div class="ttc" id="classSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00047">SVFStatements.h:47</a></div></div>
|
|
307
307
|
</div><!-- fragment -->
|