svf-tools 1.0.855 → 1.0.857
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/AndersenPWC_8h_source.html +4 -4
- package/SVF-doxygen/html/AndersenSCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/AndersenStat_8cpp_source.html +154 -163
- package/SVF-doxygen/html/Andersen_8cpp_source.html +2 -2
- package/SVF-doxygen/html/Andersen_8h_source.html +13 -13
- package/SVF-doxygen/html/CFBasicBlockGWTO_8h.html +109 -0
- package/SVF-doxygen/html/CFBasicBlockGWTO_8h_source.html +185 -0
- package/SVF-doxygen/html/CFLAlias_8cpp_source.html +2 -2
- package/SVF-doxygen/html/CFLAlias_8h_source.html +4 -4
- package/SVF-doxygen/html/CFLBase_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CFLBase_8h_source.html +1 -1
- package/SVF-doxygen/html/CFLSVFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/CFLStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/CFLVF_8h_source.html +2 -2
- package/SVF-doxygen/html/CSC_8h.html +3 -3
- package/SVF-doxygen/html/CSC_8h_source.html +5 -5
- package/SVF-doxygen/html/ConsGNode_8h_source.html +4 -4
- package/SVF-doxygen/html/ContextDDA_8cpp_source.html +14 -14
- package/SVF-doxygen/html/ContextDDA_8h_source.html +6 -6
- package/SVF-doxygen/html/DDAClient_8cpp_source.html +5 -5
- package/SVF-doxygen/html/DDAClient_8h_source.html +1 -1
- package/SVF-doxygen/html/DDAPass_8cpp_source.html +7 -7
- package/SVF-doxygen/html/DDAPass_8h.html +3 -3
- package/SVF-doxygen/html/DDAPass_8h_source.html +4 -4
- package/SVF-doxygen/html/DDAStat_8cpp_source.html +10 -10
- package/SVF-doxygen/html/DDAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/DDAVFSolver_8h.html +2 -2
- package/SVF-doxygen/html/DDAVFSolver_8h_source.html +5 -5
- package/SVF-doxygen/html/FSMPTA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/FSMPTA_8h_source.html +5 -5
- package/SVF-doxygen/html/FlowDDA_8h_source.html +11 -11
- package/SVF-doxygen/html/FlowSensitiveStat_8cpp_source.html +236 -238
- package/SVF-doxygen/html/FlowSensitive_8cpp_source.html +3 -3
- package/SVF-doxygen/html/FlowSensitive_8h_source.html +7 -7
- package/SVF-doxygen/html/ICFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/ICFGWTO_8h.html +109 -0
- package/SVF-doxygen/html/ICFGWTO_8h_source.html +177 -0
- package/SVF-doxygen/html/LLVMModule_8cpp_source.html +2 -2
- package/SVF-doxygen/html/MTAAnnotator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/MTAAnnotator_8h_source.html +1 -1
- package/SVF-doxygen/html/MTAStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/MTA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/MemRegion_8cpp_source.html +3 -3
- package/SVF-doxygen/html/MemRegion_8h.html +3 -3
- package/SVF-doxygen/html/MemRegion_8h_source.html +4 -4
- package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Options_8cpp_source.html +10 -10
- package/SVF-doxygen/html/PCG_8h_source.html +4 -4
- package/SVF-doxygen/html/PTAStat_8cpp_source.html +99 -87
- package/SVF-doxygen/html/PTAStat_8h_source.html +2 -2
- package/SVF-doxygen/html/PointerAnalysisImpl_8cpp_source.html +30 -30
- package/SVF-doxygen/html/PointerAnalysisImpl_8h_source.html +15 -15
- package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +42 -42
- package/SVF-doxygen/html/PointerAnalysis_8h.html +5 -5
- package/SVF-doxygen/html/PointerAnalysis_8h_source.html +409 -418
- package/SVF-doxygen/html/SCC_8h.html +2 -2
- package/SVF-doxygen/html/SCC_8h_source.html +2 -2
- package/SVF-doxygen/html/SVFGBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/SVFGStat_8cpp_source.html +16 -19
- package/SVF-doxygen/html/SVFGStat_8h.html +1 -1
- package/SVF-doxygen/html/SVFGStat_8h_source.html +3 -3
- package/SVF-doxygen/html/SVFG_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFStat_8cpp_source.html +196 -186
- package/SVF-doxygen/html/SVFStat_8h_source.html +44 -41
- package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/SrcSnkDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Steensgaard_8cpp_source.html +2 -2
- package/SVF-doxygen/html/Steensgaard_8h_source.html +4 -4
- package/SVF-doxygen/html/TCT_8h.html +2 -2
- package/SVF-doxygen/html/TCT_8h_source.html +9 -9
- package/SVF-doxygen/html/ThreadCallGraph_8cpp_source.html +3 -3
- package/SVF-doxygen/html/ThreadCallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/TypeAnalysis_8cpp_source.html +3 -3
- package/SVF-doxygen/html/TypeAnalysis_8h_source.html +6 -6
- package/SVF-doxygen/html/VFG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/VFG_8h_source.html +1 -1
- package/SVF-doxygen/html/VersionedFlowSensitiveStat_8cpp_source.html +77 -79
- package/SVF-doxygen/html/VersionedFlowSensitive_8cpp_source.html +6 -6
- package/SVF-doxygen/html/VersionedFlowSensitive_8h_source.html +4 -4
- package/SVF-doxygen/html/WPAPass_8cpp_source.html +12 -12
- package/SVF-doxygen/html/WPAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/WPAStat_8h_source.html +9 -9
- package/SVF-doxygen/html/WTO_8h.html +25 -13
- package/SVF-doxygen/html/WTO_8h_source.html +794 -853
- package/SVF-doxygen/html/annotated.html +402 -397
- package/SVF-doxygen/html/classSVF_1_1Andersen-members.html +121 -123
- package/SVF-doxygen/html/classSVF_1_1Andersen.html +11 -17
- package/SVF-doxygen/html/classSVF_1_1AndersenBase-members.html +100 -102
- package/SVF-doxygen/html/classSVF_1_1AndersenBase.html +11 -17
- package/SVF-doxygen/html/classSVF_1_1AndersenSCD-members.html +124 -126
- package/SVF-doxygen/html/classSVF_1_1AndersenSCD.html +2 -8
- package/SVF-doxygen/html/classSVF_1_1AndersenSFR-members.html +129 -131
- package/SVF-doxygen/html/classSVF_1_1AndersenSFR.html +1 -7
- package/SVF-doxygen/html/classSVF_1_1AndersenStat-members.html +21 -20
- package/SVF-doxygen/html/classSVF_1_1AndersenStat.html +155 -161
- package/SVF-doxygen/html/classSVF_1_1AndersenWaveDiff-members.html +122 -124
- package/SVF-doxygen/html/classSVF_1_1AndersenWaveDiff.html +2 -8
- package/SVF-doxygen/html/classSVF_1_1BVDataPTAImpl-members.html +58 -60
- package/SVF-doxygen/html/classSVF_1_1BVDataPTAImpl.html +26 -32
- package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO-members.html +57 -50
- package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO.html +203 -1663
- package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1CFLAlias-members.html +78 -80
- package/SVF-doxygen/html/classSVF_1_1CFLAlias.html +4 -10
- package/SVF-doxygen/html/classSVF_1_1CFLBase-members.html +75 -77
- package/SVF-doxygen/html/classSVF_1_1CFLBase.html +1 -7
- package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1CFLStat-members.html +19 -18
- package/SVF-doxygen/html/classSVF_1_1CFLStat.html +5 -2
- package/SVF-doxygen/html/classSVF_1_1CFLVF-members.html +77 -79
- package/SVF-doxygen/html/classSVF_1_1CFLVF.html +2 -8
- package/SVF-doxygen/html/classSVF_1_1CondPTAImpl-members.html +50 -52
- package/SVF-doxygen/html/classSVF_1_1CondPTAImpl.html +9 -15
- package/SVF-doxygen/html/classSVF_1_1ConstraintNode-members.html +34 -34
- package/SVF-doxygen/html/classSVF_1_1ConstraintNode.html +25 -65
- package/SVF-doxygen/html/classSVF_1_1ContextDDA-members.html +97 -99
- package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +18 -24
- package/SVF-doxygen/html/classSVF_1_1DDAClient.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1DDAPass.html +6 -6
- package/SVF-doxygen/html/classSVF_1_1DDAStat-members.html +18 -17
- package/SVF-doxygen/html/classSVF_1_1DDAStat.html +12 -9
- package/SVF-doxygen/html/classSVF_1_1DDAVFSolver.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1FSMPTA-members.html +140 -142
- package/SVF-doxygen/html/classSVF_1_1FSMPTA.html +2 -8
- package/SVF-doxygen/html/classSVF_1_1FlowDDA-members.html +102 -104
- package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +15 -21
- package/SVF-doxygen/html/classSVF_1_1FlowSensitive-members.html +133 -135
- package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +18 -24
- package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat-members.html +24 -23
- package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat.html +241 -240
- package/SVF-doxygen/html/classSVF_1_1FunptrDDAClient.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1GenericNode.html +9 -10
- package/SVF-doxygen/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1ICFGStat-members.html +19 -18
- package/SVF-doxygen/html/classSVF_1_1ICFGStat.html +4 -1
- package/SVF-doxygen/html/classSVF_1_1ICFGWTO-members.html +140 -0
- package/SVF-doxygen/html/classSVF_1_1ICFGWTO.html +379 -0
- package/SVF-doxygen/html/classSVF_1_1ICFGWTO.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1MRGenerator.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1MTA.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1MTAAnnotator.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1MTASVFGBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MTAStat-members.html +20 -19
- package/SVF-doxygen/html/classSVF_1_1MTAStat.html +6 -3
- package/SVF-doxygen/html/classSVF_1_1MemSSA.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1MemSSAStat-members.html +24 -23
- package/SVF-doxygen/html/classSVF_1_1MemSSAStat.html +7 -4
- package/SVF-doxygen/html/classSVF_1_1PCG.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1POCRAlias-members.html +78 -80
- package/SVF-doxygen/html/classSVF_1_1POCRAlias.html +0 -6
- package/SVF-doxygen/html/classSVF_1_1POCRHybrid-members.html +78 -80
- package/SVF-doxygen/html/classSVF_1_1POCRHybrid.html +0 -6
- package/SVF-doxygen/html/classSVF_1_1PTAStat-members.html +19 -18
- package/SVF-doxygen/html/classSVF_1_1PTAStat.html +100 -85
- package/SVF-doxygen/html/classSVF_1_1PointerAnalysis-members.html +34 -36
- package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +291 -356
- package/SVF-doxygen/html/classSVF_1_1SCCDetection.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFGStat-members.html +41 -40
- package/SVF-doxygen/html/classSVF_1_1SVFGStat.html +18 -18
- package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFStat-members.html +13 -12
- package/SVF-doxygen/html/classSVF_1_1SVFStat.html +208 -168
- package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1SrcSnkDDA.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1Steensgaard-members.html +109 -111
- package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +4 -10
- package/SVF-doxygen/html/classSVF_1_1TCT.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1ThreadCallGraph.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1TypeAnalysis-members.html +103 -105
- package/SVF-doxygen/html/classSVF_1_1TypeAnalysis.html +9 -15
- package/SVF-doxygen/html/classSVF_1_1VFG.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitive-members.html +158 -160
- package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitive.html +6 -12
- package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitiveStat-members.html +24 -23
- package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitiveStat.html +84 -83
- package/SVF-doxygen/html/classSVF_1_1WPAPass.html +12 -12
- package/SVF-doxygen/html/classSVF_1_1WTO-members.html +137 -0
- package/SVF-doxygen/html/classSVF_1_1WTO.html +1998 -0
- package/SVF-doxygen/html/classSVF_1_1WTOComponent-members.html +97 -0
- package/SVF-doxygen/html/classSVF_1_1WTOComponent.html +515 -0
- package/SVF-doxygen/html/classSVF_1_1WTOComponentVisitor-members.html +93 -0
- package/SVF-doxygen/html/classSVF_1_1WTOComponentVisitor.html +421 -0
- package/SVF-doxygen/html/classSVF_1_1WTOComponentVisitor.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1WTOCycle-members.html +98 -0
- package/SVF-doxygen/html/classSVF_1_1WTOCycle.html +630 -0
- package/SVF-doxygen/html/classSVF_1_1WTOCycleDepth-members.html +24 -23
- package/SVF-doxygen/html/classSVF_1_1WTOCycleDepth.html +338 -317
- package/SVF-doxygen/html/classSVF_1_1WTONode-members.html +91 -0
- package/SVF-doxygen/html/classSVF_1_1WTONode.html +390 -0
- package/SVF-doxygen/html/classSVF_1_1WTO_1_1WTOCycleDepthBuilder-members.html +96 -0
- package/SVF-doxygen/html/classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html +332 -0
- package/SVF-doxygen/html/classSVF_1_1WTO_1_1WTOCycleDepthBuilder.png +0 -0
- package/SVF-doxygen/html/classes.html +383 -377
- package/SVF-doxygen/html/dir_445b24f35a8ddd2effd3d23ee1278e0a.html +0 -2
- package/SVF-doxygen/html/dir_f63327fc9cf9e35b7653a5e341daceab.html +4 -2
- package/SVF-doxygen/html/dir_fc0329f850c815763e0c5b05933e8d55.html +4 -0
- package/SVF-doxygen/html/files.html +31 -29
- package/SVF-doxygen/html/functions.html +18 -30
- package/SVF-doxygen/html/functions_a.html +17 -14
- package/SVF-doxygen/html/functions_b.html +25 -25
- package/SVF-doxygen/html/functions_c.html +37 -51
- package/SVF-doxygen/html/functions_e.html +7 -4
- package/SVF-doxygen/html/functions_enum.html +2 -2
- package/SVF-doxygen/html/functions_eval_c.html +1 -1
- package/SVF-doxygen/html/functions_eval_n.html +1 -1
- package/SVF-doxygen/html/functions_f.html +26 -21
- package/SVF-doxygen/html/functions_func.html +14 -11
- package/SVF-doxygen/html/functions_func_b.html +6 -10
- package/SVF-doxygen/html/functions_func_c.html +30 -36
- package/SVF-doxygen/html/functions_func_e.html +5 -5
- package/SVF-doxygen/html/functions_func_f.html +8 -3
- package/SVF-doxygen/html/functions_func_g.html +15 -25
- package/SVF-doxygen/html/functions_func_h.html +3 -3
- package/SVF-doxygen/html/functions_func_i.html +18 -14
- package/SVF-doxygen/html/functions_func_n.html +6 -6
- package/SVF-doxygen/html/functions_func_o.html +16 -16
- package/SVF-doxygen/html/functions_func_p.html +4 -7
- package/SVF-doxygen/html/functions_func_s.html +1 -1
- package/SVF-doxygen/html/functions_func_t.html +7 -10
- package/SVF-doxygen/html/functions_func_v.html +4 -5
- package/SVF-doxygen/html/functions_func_w.html +16 -4
- package/SVF-doxygen/html/functions_func_~.html +10 -10
- package/SVF-doxygen/html/functions_g.html +14 -21
- package/SVF-doxygen/html/functions_h.html +9 -6
- package/SVF-doxygen/html/functions_i.html +32 -29
- package/SVF-doxygen/html/functions_l.html +3 -3
- package/SVF-doxygen/html/functions_n.html +25 -23
- package/SVF-doxygen/html/functions_o.html +31 -29
- package/SVF-doxygen/html/functions_p.html +21 -15
- package/SVF-doxygen/html/functions_r.html +1 -1
- package/SVF-doxygen/html/functions_rela_o.html +3 -3
- package/SVF-doxygen/html/functions_s.html +26 -23
- package/SVF-doxygen/html/functions_t.html +14 -20
- package/SVF-doxygen/html/functions_type_b.html +4 -0
- package/SVF-doxygen/html/functions_type_c.html +3 -9
- package/SVF-doxygen/html/functions_type_e.html +3 -0
- package/SVF-doxygen/html/functions_type_g.html +3 -0
- package/SVF-doxygen/html/functions_type_i.html +7 -8
- package/SVF-doxygen/html/functions_type_n.html +13 -9
- package/SVF-doxygen/html/functions_type_s.html +3 -0
- package/SVF-doxygen/html/functions_type_w.html +19 -6
- package/SVF-doxygen/html/functions_v.html +8 -9
- package/SVF-doxygen/html/functions_vars.html +18 -30
- package/SVF-doxygen/html/functions_vars_h.html +3 -0
- package/SVF-doxygen/html/functions_vars_p.html +3 -0
- package/SVF-doxygen/html/functions_vars_t.html +0 -3
- package/SVF-doxygen/html/functions_vars_w.html +4 -0
- package/SVF-doxygen/html/functions_w.html +47 -20
- package/SVF-doxygen/html/functions_~.html +10 -10
- package/SVF-doxygen/html/hierarchy.html +621 -614
- package/SVF-doxygen/html/namespaceSVF.html +127 -7
- package/SVF-doxygen/html/namespacemembers_c.html +9 -0
- package/SVF-doxygen/html/namespacemembers_i.html +14 -5
- package/SVF-doxygen/html/namespacemembers_type_c.html +9 -0
- package/SVF-doxygen/html/namespacemembers_type_i.html +9 -0
- package/SVF-doxygen/html/search/all_0.js +124 -127
- package/SVF-doxygen/html/search/all_1.js +495 -495
- package/SVF-doxygen/html/search/all_10.js +325 -325
- package/SVF-doxygen/html/search/all_11.js +225 -225
- package/SVF-doxygen/html/search/all_12.js +555 -554
- package/SVF-doxygen/html/search/all_13.js +201 -203
- package/SVF-doxygen/html/search/all_14.js +67 -67
- package/SVF-doxygen/html/search/all_15.js +168 -168
- package/SVF-doxygen/html/search/all_16.js +73 -63
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +11 -11
- package/SVF-doxygen/html/search/all_1a.js +175 -175
- package/SVF-doxygen/html/search/all_2.js +172 -173
- package/SVF-doxygen/html/search/all_3.js +648 -649
- package/SVF-doxygen/html/search/all_4.js +230 -230
- package/SVF-doxygen/html/search/all_5.js +120 -119
- package/SVF-doxygen/html/search/all_6.js +227 -226
- package/SVF-doxygen/html/search/all_7.js +1046 -1048
- package/SVF-doxygen/html/search/all_8.js +196 -191
- package/SVF-doxygen/html/search/all_9.js +579 -574
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/search/all_c.js +115 -115
- package/SVF-doxygen/html/search/all_d.js +197 -197
- package/SVF-doxygen/html/search/all_e.js +207 -207
- package/SVF-doxygen/html/search/all_f.js +116 -116
- package/SVF-doxygen/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/search/classes_10.js +74 -74
- package/SVF-doxygen/html/search/classes_11.js +14 -15
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +20 -14
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +78 -81
- package/SVF-doxygen/html/search/classes_3.js +37 -37
- package/SVF-doxygen/html/search/classes_4.js +9 -9
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +104 -104
- package/SVF-doxygen/html/search/classes_7.js +38 -34
- package/SVF-doxygen/html/search/classes_8.js +58 -57
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/search/defines_4.js +2 -2
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +7 -7
- package/SVF-doxygen/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
- package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/search/files_0.js +14 -14
- package/SVF-doxygen/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +58 -57
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/search/files_7.js +15 -14
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +13 -13
- package/SVF-doxygen/html/search/functions_1.js +365 -364
- package/SVF-doxygen/html/search/functions_10.js +139 -140
- package/SVF-doxygen/html/search/functions_11.js +140 -140
- package/SVF-doxygen/html/search/functions_12.js +289 -289
- package/SVF-doxygen/html/search/functions_13.js +71 -72
- package/SVF-doxygen/html/search/functions_14.js +39 -39
- package/SVF-doxygen/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/search/functions_16.js +36 -32
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +175 -175
- package/SVF-doxygen/html/search/functions_2.js +90 -91
- package/SVF-doxygen/html/search/functions_3.js +260 -262
- package/SVF-doxygen/html/search/functions_4.js +78 -78
- package/SVF-doxygen/html/search/functions_5.js +53 -53
- package/SVF-doxygen/html/search/functions_6.js +61 -60
- package/SVF-doxygen/html/search/functions_7.js +854 -857
- package/SVF-doxygen/html/search/functions_8.js +148 -148
- package/SVF-doxygen/html/search/functions_9.js +422 -421
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +25 -25
- package/SVF-doxygen/html/search/functions_d.js +79 -79
- package/SVF-doxygen/html/search/functions_e.js +35 -35
- package/SVF-doxygen/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +3 -3
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +2 -2
- package/SVF-doxygen/html/search/related_d.js +12 -12
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +19 -19
- package/SVF-doxygen/html/search/typedefs_1.js +27 -26
- package/SVF-doxygen/html/search/typedefs_10.js +63 -62
- package/SVF-doxygen/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/search/typedefs_13.js +33 -33
- package/SVF-doxygen/html/search/typedefs_14.js +11 -8
- package/SVF-doxygen/html/search/typedefs_2.js +129 -129
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +18 -17
- package/SVF-doxygen/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/search/typedefs_6.js +57 -56
- package/SVF-doxygen/html/search/typedefs_7.js +47 -44
- package/SVF-doxygen/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/search/typedefs_d.js +14 -14
- package/SVF-doxygen/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/search/variables_0.js +148 -151
- package/SVF-doxygen/html/search/variables_1.js +76 -76
- package/SVF-doxygen/html/search/variables_10.js +99 -98
- package/SVF-doxygen/html/search/variables_11.js +45 -45
- package/SVF-doxygen/html/search/variables_12.js +91 -91
- package/SVF-doxygen/html/search/variables_13.js +73 -74
- package/SVF-doxygen/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/search/variables_15.js +49 -49
- package/SVF-doxygen/html/search/variables_16.js +10 -9
- package/SVF-doxygen/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/search/variables_2.js +38 -38
- package/SVF-doxygen/html/search/variables_3.js +142 -142
- package/SVF-doxygen/html/search/variables_4.js +50 -50
- package/SVF-doxygen/html/search/variables_5.js +37 -37
- package/SVF-doxygen/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/search/variables_7.js +34 -34
- package/SVF-doxygen/html/search/variables_8.js +8 -7
- package/SVF-doxygen/html/search/variables_9.js +78 -78
- package/SVF-doxygen/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/search/variables_d.js +55 -55
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +30 -30
- package/SVF-doxygen/html/structSVF_1_1has__edgetype.html +97 -0
- package/SVF-doxygen/html/structSVF_1_1has__edgetype.png +0 -0
- package/SVF-doxygen/html/structSVF_1_1has__edgetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1EdgeType_01_4_01_4.html +97 -0
- package/SVF-doxygen/html/structSVF_1_1has__edgetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1EdgeType_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/structSVF_1_1has__nodetype.html +97 -0
- package/SVF-doxygen/html/structSVF_1_1has__nodetype.png +0 -0
- package/SVF-doxygen/html/structSVF_1_1has__nodetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1NodeType_01_4_01_4.html +97 -0
- package/SVF-doxygen/html/structSVF_1_1has__nodetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1NodeType_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/svf-ex_8cpp.html +2 -2
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +3 -3
- package/package.json +1 -1
- package/svf/include/AbstractExecution/CFBasicBlockGWTO.h +83 -0
- package/svf/include/AbstractExecution/ICFGWTO.h +78 -0
- package/svf/include/DDA/DDAPass.h +2 -2
- package/svf/include/DDA/DDAVFSolver.h +2 -2
- package/svf/include/Graphs/SVFGStat.h +1 -1
- package/svf/include/Graphs/WTO.h +859 -0
- package/svf/include/MSSA/MemRegion.h +3 -3
- package/svf/include/MTA/TCT.h +2 -2
- package/svf/include/MemoryModel/PointerAnalysis.h +5 -14
- package/svf/include/Util/SVFStat.h +3 -0
- package/svf/include/WPA/CSC.h +3 -3
- package/svf/lib/DDA/DDAStat.cpp +2 -2
- package/svf/lib/Graphs/SVFGStat.cpp +2 -4
- package/svf/lib/MemoryModel/PointerAnalysis.cpp +1 -1
- package/svf/lib/Util/PTAStat.cpp +14 -4
- package/svf/lib/Util/SVFStat.cpp +13 -3
- package/svf/lib/WPA/AndersenStat.cpp +3 -8
- package/svf/lib/WPA/FlowSensitiveStat.cpp +1 -2
- package/svf/lib/WPA/VersionedFlowSensitiveStat.cpp +1 -2
- package/svf/include/AbstractExecution/WTO.h +0 -897
- /package/svf/include/{Util → Graphs}/SCC.h +0 -0
|
@@ -34,11 +34,11 @@
|
|
|
34
34
|
#ifndef MEMORYREGION_H_
|
|
35
35
|
#define MEMORYREGION_H_
|
|
36
36
|
|
|
37
|
-
#include "
|
|
37
|
+
#include "Graphs/ICFG.h"
|
|
38
38
|
#include "Graphs/PTACallGraph.h"
|
|
39
|
-
#include "
|
|
39
|
+
#include "Graphs/SCC.h"
|
|
40
|
+
#include "SVFIR/SVFIR.h"
|
|
40
41
|
#include "Util/WorkList.h"
|
|
41
|
-
#include "Graphs/ICFG.h"
|
|
42
42
|
|
|
43
43
|
#include <set>
|
|
44
44
|
|
package/svf/include/MTA/TCT.h
CHANGED
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
#ifndef TCTNodeDetector_H_
|
|
31
31
|
#define TCTNodeDetector_H_
|
|
32
32
|
|
|
33
|
-
#include "
|
|
34
|
-
#include "Util/SVFUtil.h"
|
|
33
|
+
#include "Graphs/SCC.h"
|
|
35
34
|
#include "Graphs/ThreadCallGraph.h"
|
|
36
35
|
#include "Util/CxtStmt.h"
|
|
36
|
+
#include "Util/SVFUtil.h"
|
|
37
37
|
#include <set>
|
|
38
38
|
#include <vector>
|
|
39
39
|
|
|
@@ -33,22 +33,21 @@
|
|
|
33
33
|
#include <unistd.h>
|
|
34
34
|
#include <signal.h>
|
|
35
35
|
|
|
36
|
-
#include "
|
|
37
|
-
#include "
|
|
36
|
+
#include "Graphs/CHG.h"
|
|
37
|
+
#include "Graphs/PTACallGraph.h"
|
|
38
|
+
#include "Graphs/SCC.h"
|
|
38
39
|
#include "MemoryModel/AbstractPointsToDS.h"
|
|
40
|
+
#include "MemoryModel/ConditionalPT.h"
|
|
39
41
|
#include "MemoryModel/MutablePointsToDS.h"
|
|
40
42
|
#include "MemoryModel/PersistentPointsToDS.h"
|
|
41
|
-
#include "Graphs/PTACallGraph.h"
|
|
42
|
-
#include "Graphs/CHG.h"
|
|
43
|
-
#include "Util/SCC.h"
|
|
44
43
|
#include "MemoryModel/PointsTo.h"
|
|
44
|
+
#include "SVFIR/SVFIR.h"
|
|
45
45
|
|
|
46
46
|
namespace SVF
|
|
47
47
|
{
|
|
48
48
|
|
|
49
49
|
class CommonCHGraph;
|
|
50
50
|
|
|
51
|
-
class TypeSystem;
|
|
52
51
|
class SVFModule;
|
|
53
52
|
class ICFG;
|
|
54
53
|
class PTAStat;
|
|
@@ -156,8 +155,6 @@ protected:
|
|
|
156
155
|
ICFG* icfg;
|
|
157
156
|
/// CHGraph
|
|
158
157
|
CommonCHGraph *chgraph;
|
|
159
|
-
/// TypeSystem
|
|
160
|
-
TypeSystem *typeSystem;
|
|
161
158
|
|
|
162
159
|
public:
|
|
163
160
|
/// Get ICFG
|
|
@@ -433,12 +430,6 @@ public:
|
|
|
433
430
|
virtual void resolveCPPIndCalls(const CallICFGNode* cs,
|
|
434
431
|
const PointsTo& target,
|
|
435
432
|
CallEdgeMap& newEdges);
|
|
436
|
-
|
|
437
|
-
/// get TypeSystem
|
|
438
|
-
const TypeSystem *getTypeSystem() const
|
|
439
|
-
{
|
|
440
|
-
return typeSystem;
|
|
441
|
-
}
|
|
442
433
|
};
|
|
443
434
|
|
|
444
435
|
} // End namespace SVF
|
|
@@ -70,6 +70,9 @@ public:
|
|
|
70
70
|
/// Default call for getClk is unmarked, while MarkedClocksOnly is false by default.
|
|
71
71
|
static double getClk(bool mark = false);
|
|
72
72
|
|
|
73
|
+
/// SVF's general statistics are only printed once even if you run multiple anayses
|
|
74
|
+
static bool printGeneralStats;
|
|
75
|
+
|
|
73
76
|
NUMStatMap generalNumMap;
|
|
74
77
|
NUMStatMap PTNumStatMap;
|
|
75
78
|
TIMEStatMap timeStatMap;
|
package/svf/include/WPA/CSC.h
CHANGED
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
#ifndef PROJECT_CSC_H
|
|
31
31
|
#define PROJECT_CSC_H
|
|
32
32
|
|
|
33
|
-
#include "Util/SCC.h"
|
|
34
|
-
#include "SVFIR/SVFValue.h" // for NodeBS
|
|
35
33
|
#include "Graphs/ConsG.h"
|
|
34
|
+
#include "Graphs/SCC.h"
|
|
35
|
+
#include "SVFIR/SVFValue.h" // for NodeBS
|
|
36
36
|
#include "Util/WorkList.h"
|
|
37
37
|
#include <limits.h>
|
|
38
|
-
#include <stack>
|
|
39
38
|
#include <map>
|
|
39
|
+
#include <stack>
|
|
40
40
|
|
|
41
41
|
namespace SVF
|
|
42
42
|
{
|
package/svf/lib/DDA/DDAStat.cpp
CHANGED
|
@@ -263,8 +263,8 @@ void DDAStat::performStat()
|
|
|
263
263
|
PTNumStatMap["NumOfMustAA"] = _TotalNumOfMustAliases;
|
|
264
264
|
PTNumStatMap["NumOfInfePath"] = _TotalNumOfInfeasiblePath;
|
|
265
265
|
PTNumStatMap["NumOfStore"] = SVFIR::getPAG()->getPTASVFStmtSet(SVFStmt::Store).size();
|
|
266
|
-
|
|
267
|
-
|
|
266
|
+
timeStatMap["MemoryUsageVmrss"] = _vmrssUsageAfter - _vmrssUsageBefore;
|
|
267
|
+
timeStatMap["MemoryUsageVmsize"] = _vmsizeUsageAfter - _vmsizeUsageBefore;
|
|
268
268
|
|
|
269
269
|
printStat();
|
|
270
270
|
}
|
|
@@ -490,8 +490,7 @@ void SVFGStat::performSCCStat(SVFGEdgeSet insensitiveCalRetEdges)
|
|
|
490
490
|
PTNumStatMap["InsenRetEdge"] = insensitiveRetEdge;
|
|
491
491
|
|
|
492
492
|
|
|
493
|
-
|
|
494
|
-
PTAStat::printStat();
|
|
493
|
+
PTAStat::printStat("SVFG SCC Stat");
|
|
495
494
|
|
|
496
495
|
delete svfgSCC;
|
|
497
496
|
|
|
@@ -499,6 +498,5 @@ void SVFGStat::performSCCStat(SVFGEdgeSet insensitiveCalRetEdges)
|
|
|
499
498
|
|
|
500
499
|
void SVFGStat::printStat(string str)
|
|
501
500
|
{
|
|
502
|
-
|
|
503
|
-
PTAStat::printStat(str);
|
|
501
|
+
PTAStat::printStat("SVFG Statistics");
|
|
504
502
|
}
|
|
@@ -68,7 +68,7 @@ const std::string PointerAnalysis::aliasTestFailNoAliasMangled = "_Z20EXPECTEDF
|
|
|
68
68
|
* Constructor
|
|
69
69
|
*/
|
|
70
70
|
PointerAnalysis::PointerAnalysis(SVFIR* p, PTATY ty, bool alias_check) :
|
|
71
|
-
svfMod(nullptr),ptaTy(ty),stat(nullptr),ptaCallGraph(nullptr),callGraphSCC(nullptr),icfg(nullptr),chgraph(nullptr)
|
|
71
|
+
svfMod(nullptr),ptaTy(ty),stat(nullptr),ptaCallGraph(nullptr),callGraphSCC(nullptr),icfg(nullptr),chgraph(nullptr)
|
|
72
72
|
{
|
|
73
73
|
pag = p;
|
|
74
74
|
OnTheFlyIterBudgetForStat = Options::StatBudget();
|
package/svf/lib/Util/PTAStat.cpp
CHANGED
|
@@ -51,10 +51,11 @@ PTAStat::PTAStat(PointerAnalysis* p) : SVFStat(),
|
|
|
51
51
|
|
|
52
52
|
void PTAStat::performStat()
|
|
53
53
|
{
|
|
54
|
-
callgraphStat();
|
|
55
54
|
|
|
56
55
|
SVFStat::performStat();
|
|
57
56
|
|
|
57
|
+
callgraphStat();
|
|
58
|
+
|
|
58
59
|
SVFIR* pag = SVFIR::getPAG();
|
|
59
60
|
for(SVFIR::iterator it = pag->begin(), eit = pag->end(); it!=eit; ++it)
|
|
60
61
|
{
|
|
@@ -73,8 +74,8 @@ void PTAStat::performStat()
|
|
|
73
74
|
u32_t vmsize = 0;
|
|
74
75
|
SVFUtil::getMemoryUsageKB(&vmrss, &vmsize);
|
|
75
76
|
setMemUsageAfter(vmrss, vmsize);
|
|
76
|
-
|
|
77
|
-
|
|
77
|
+
timeStatMap["MemoryUsageVmrss"] = _vmrssUsageAfter - _vmrssUsageBefore;
|
|
78
|
+
timeStatMap["MemoryUsageVmsize"] = _vmsizeUsageAfter - _vmsizeUsageBefore;
|
|
78
79
|
}
|
|
79
80
|
|
|
80
81
|
void PTAStat::callgraphStat()
|
|
@@ -128,7 +129,16 @@ void PTAStat::callgraphStat()
|
|
|
128
129
|
PTNumStatMap["TotalEdge"] = totalEdge;
|
|
129
130
|
PTNumStatMap["CalRetPairInCycle"] = edgeInCycle;
|
|
130
131
|
|
|
131
|
-
|
|
132
|
+
if(pta->getAnalysisTy() >= PointerAnalysis::PTATY::Andersen_BASE && pta->getAnalysisTy() <= PointerAnalysis::PTATY::Steensgaard_WPA)
|
|
133
|
+
SVFStat::printStat("CallGraph Stats (Andersen analysis)");
|
|
134
|
+
else if(pta->getAnalysisTy() >= PointerAnalysis::PTATY::FSDATAFLOW_WPA && pta->getAnalysisTy() <= PointerAnalysis::PTATY::FSCS_WPA)
|
|
135
|
+
SVFStat::printStat("CallGraph Stats (Flow-sensitive analysis)");
|
|
136
|
+
else if(pta->getAnalysisTy() >= PointerAnalysis::PTATY::CFLFICI_WPA && pta->getAnalysisTy() <= PointerAnalysis::PTATY::CFLFSCS_WPA)
|
|
137
|
+
SVFStat::printStat("CallGraph Stats (CFL-R analysis)");
|
|
138
|
+
else if(pta->getAnalysisTy() >= PointerAnalysis::PTATY::FieldS_DDA && pta->getAnalysisTy() <= PointerAnalysis::PTATY::Cxt_DDA)
|
|
139
|
+
SVFStat::printStat("CallGraph Stats (DDA analysis)");
|
|
140
|
+
else
|
|
141
|
+
SVFStat::printStat("CallGraph Stats");
|
|
132
142
|
|
|
133
143
|
delete callgraphSCC;
|
|
134
144
|
}
|
package/svf/lib/Util/SVFStat.cpp
CHANGED
|
@@ -36,7 +36,7 @@ using namespace std;
|
|
|
36
36
|
double SVFStat::timeOfBuildingLLVMModule = 0;
|
|
37
37
|
double SVFStat::timeOfBuildingSVFIR = 0;
|
|
38
38
|
double SVFStat::timeOfBuildingSymbolTable = 0;
|
|
39
|
-
|
|
39
|
+
bool SVFStat::printGeneralStats = true;
|
|
40
40
|
|
|
41
41
|
SVFStat::SVFStat() : startTime(0), endTime(0)
|
|
42
42
|
{
|
|
@@ -77,23 +77,28 @@ void SVFStat::printStat(string statname)
|
|
|
77
77
|
SVFUtil::outs() << "################ (program : " << moduleName << ")###############\n";
|
|
78
78
|
SVFUtil::outs().flags(std::ios::left);
|
|
79
79
|
unsigned field_width = 20;
|
|
80
|
+
|
|
80
81
|
for(NUMStatMap::iterator it = generalNumMap.begin(), eit = generalNumMap.end(); it!=eit; ++it)
|
|
81
82
|
{
|
|
82
83
|
// format out put with width 20 space
|
|
83
84
|
std::cout << std::setw(field_width) << it->first << it->second << "\n";
|
|
84
85
|
}
|
|
85
|
-
|
|
86
|
+
|
|
87
|
+
if(!timeStatMap.empty())
|
|
88
|
+
SVFUtil::outs() << "----------------Time and memory stats--------------------\n";
|
|
86
89
|
for(TIMEStatMap::iterator it = timeStatMap.begin(), eit = timeStatMap.end(); it!=eit; ++it)
|
|
87
90
|
{
|
|
88
91
|
// format out put with width 20 space
|
|
89
92
|
SVFUtil::outs() << std::setw(field_width) << it->first << it->second << "\n";
|
|
90
93
|
}
|
|
94
|
+
|
|
95
|
+
if(!PTNumStatMap.empty())
|
|
96
|
+
SVFUtil::outs() << "----------------Numbers stats----------------------------\n";
|
|
91
97
|
for(NUMStatMap::iterator it = PTNumStatMap.begin(), eit = PTNumStatMap.end(); it!=eit; ++it)
|
|
92
98
|
{
|
|
93
99
|
// format out put with width 20 space
|
|
94
100
|
SVFUtil::outs() << std::setw(field_width) << it->first << it->second << "\n";
|
|
95
101
|
}
|
|
96
|
-
|
|
97
102
|
SVFUtil::outs() << "#######################################################" << std::endl;
|
|
98
103
|
SVFUtil::outs().flush();
|
|
99
104
|
generalNumMap.clear();
|
|
@@ -104,6 +109,10 @@ void SVFStat::printStat(string statname)
|
|
|
104
109
|
void SVFStat::performStat()
|
|
105
110
|
{
|
|
106
111
|
|
|
112
|
+
/// SVF's general statistics are only printed once even if you run multiple anayses
|
|
113
|
+
if(printGeneralStats == false)
|
|
114
|
+
return;
|
|
115
|
+
|
|
107
116
|
SVFIR* pag = SVFIR::getPAG();
|
|
108
117
|
u32_t numOfFunction = 0;
|
|
109
118
|
u32_t numOfGlobal = 0;
|
|
@@ -199,6 +208,7 @@ void SVFStat::performStat()
|
|
|
199
208
|
|
|
200
209
|
printStat("General Stats");
|
|
201
210
|
|
|
211
|
+
printGeneralStats = false;
|
|
202
212
|
}
|
|
203
213
|
|
|
204
214
|
|
|
@@ -181,8 +181,8 @@ void AndersenStat::constraintGraphStat()
|
|
|
181
181
|
|
|
182
182
|
|
|
183
183
|
PTNumStatMap["NumOfCGNode"] = totalNodeNumber;
|
|
184
|
-
PTNumStatMap["
|
|
185
|
-
PTNumStatMap["
|
|
184
|
+
PTNumStatMap["NumOfValidNode"] = cgNodeNumber;
|
|
185
|
+
PTNumStatMap["NumOfValidObjNode"] = objNodeNumber;
|
|
186
186
|
PTNumStatMap["NumOfCGEdge"] = consCG->getLoadCGEdges().size() + consCG->getStoreCGEdges().size()
|
|
187
187
|
+ numOfCopys + numOfGeps;
|
|
188
188
|
PTNumStatMap["NumOfAddrs"] = consCG->getAddrCGEdges().size();
|
|
@@ -196,15 +196,13 @@ void AndersenStat::constraintGraphStat()
|
|
|
196
196
|
PTNumStatMap["MaxOutLoadEdge"] = loadmaxOut;
|
|
197
197
|
PTNumStatMap["MaxInStoreEdge"] = storemaxIn;
|
|
198
198
|
PTNumStatMap["MaxOutStoreEdge"] = storemaxOut;
|
|
199
|
-
PTNumStatMap["AvgIn/OutStoreEdge"] = storeavgIn;
|
|
200
199
|
PTNumStatMap["MaxInAddrEdge"] = addrmaxIn;
|
|
201
200
|
PTNumStatMap["MaxOutAddrEdge"] = addrmaxOut;
|
|
201
|
+
timeStatMap["AvgIn/OutStoreEdge"] = storeavgIn;
|
|
202
202
|
timeStatMap["AvgIn/OutCopyEdge"] = copyavgIn;
|
|
203
203
|
timeStatMap["AvgIn/OutLoadEdge"] = loadavgIn;
|
|
204
204
|
timeStatMap["AvgIn/OutAddrEdge"] = addravgIn;
|
|
205
205
|
timeStatMap["AvgIn/OutEdge"] = avgIn;
|
|
206
|
-
|
|
207
|
-
PTAStat::printStat("Constraint Graph Stats");
|
|
208
206
|
}
|
|
209
207
|
/*!
|
|
210
208
|
* Stat null pointers
|
|
@@ -352,9 +350,6 @@ void AndersenStat::performStat()
|
|
|
352
350
|
PTNumStatMap["PointsToConstPtr"] = _NumOfConstantPtr;
|
|
353
351
|
PTNumStatMap["PointsToBlkPtr"] = _NumOfBlackholePtr;
|
|
354
352
|
|
|
355
|
-
PTNumStatMap["MemoryUsageVmrss"] = _vmrssUsageAfter - _vmrssUsageBefore;
|
|
356
|
-
PTNumStatMap["MemoryUsageVmsize"] = _vmsizeUsageAfter - _vmsizeUsageBefore;
|
|
357
|
-
|
|
358
353
|
PTAStat::printStat("Andersen Pointer Analysis Stats");
|
|
359
354
|
}
|
|
360
355
|
|
|
@@ -264,8 +264,7 @@ void FlowSensitiveStat::performStat()
|
|
|
264
264
|
timeStatMap["AverageSCCSize"] = (fspta->numOfSCC == 0) ? 0 :
|
|
265
265
|
((double)fspta->numOfNodesInSCC / fspta->numOfSCC);
|
|
266
266
|
|
|
267
|
-
|
|
268
|
-
PTAStat::printStat();
|
|
267
|
+
PTAStat::printStat("Flow-Sensitive Pointer Analysis Statistics");
|
|
269
268
|
}
|
|
270
269
|
|
|
271
270
|
void FlowSensitiveStat::statNullPtr()
|
|
@@ -146,8 +146,7 @@ void VersionedFlowSensitiveStat::performStat()
|
|
|
146
146
|
timeStatMap["AverageSCCSize"] = (vfspta->numOfSCC == 0) ? 0 :
|
|
147
147
|
((double)vfspta->numOfNodesInSCC / vfspta->numOfSCC);
|
|
148
148
|
|
|
149
|
-
|
|
150
|
-
PTAStat::printStat();
|
|
149
|
+
PTAStat::printStat("Versioned Flow-Sensitive Pointer Analysis Statistics");
|
|
151
150
|
}
|
|
152
151
|
|
|
153
152
|
void VersionedFlowSensitiveStat::versionStat(void)
|