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.
Files changed (502) hide show
  1. package/SVF-doxygen/html/AndersenPWC_8h_source.html +4 -4
  2. package/SVF-doxygen/html/AndersenSCD_8cpp_source.html +2 -2
  3. package/SVF-doxygen/html/AndersenStat_8cpp_source.html +154 -163
  4. package/SVF-doxygen/html/Andersen_8cpp_source.html +2 -2
  5. package/SVF-doxygen/html/Andersen_8h_source.html +13 -13
  6. package/SVF-doxygen/html/CFBasicBlockGWTO_8h.html +109 -0
  7. package/SVF-doxygen/html/CFBasicBlockGWTO_8h_source.html +185 -0
  8. package/SVF-doxygen/html/CFLAlias_8cpp_source.html +2 -2
  9. package/SVF-doxygen/html/CFLAlias_8h_source.html +4 -4
  10. package/SVF-doxygen/html/CFLBase_8cpp_source.html +1 -1
  11. package/SVF-doxygen/html/CFLBase_8h_source.html +1 -1
  12. package/SVF-doxygen/html/CFLSVFGBuilder_8cpp_source.html +2 -2
  13. package/SVF-doxygen/html/CFLStat_8cpp_source.html +2 -2
  14. package/SVF-doxygen/html/CFLVF_8h_source.html +2 -2
  15. package/SVF-doxygen/html/CSC_8h.html +3 -3
  16. package/SVF-doxygen/html/CSC_8h_source.html +5 -5
  17. package/SVF-doxygen/html/ConsGNode_8h_source.html +4 -4
  18. package/SVF-doxygen/html/ContextDDA_8cpp_source.html +14 -14
  19. package/SVF-doxygen/html/ContextDDA_8h_source.html +6 -6
  20. package/SVF-doxygen/html/DDAClient_8cpp_source.html +5 -5
  21. package/SVF-doxygen/html/DDAClient_8h_source.html +1 -1
  22. package/SVF-doxygen/html/DDAPass_8cpp_source.html +7 -7
  23. package/SVF-doxygen/html/DDAPass_8h.html +3 -3
  24. package/SVF-doxygen/html/DDAPass_8h_source.html +4 -4
  25. package/SVF-doxygen/html/DDAStat_8cpp_source.html +10 -10
  26. package/SVF-doxygen/html/DDAStat_8h_source.html +1 -1
  27. package/SVF-doxygen/html/DDAVFSolver_8h.html +2 -2
  28. package/SVF-doxygen/html/DDAVFSolver_8h_source.html +5 -5
  29. package/SVF-doxygen/html/FSMPTA_8cpp_source.html +2 -2
  30. package/SVF-doxygen/html/FSMPTA_8h_source.html +5 -5
  31. package/SVF-doxygen/html/FlowDDA_8h_source.html +11 -11
  32. package/SVF-doxygen/html/FlowSensitiveStat_8cpp_source.html +236 -238
  33. package/SVF-doxygen/html/FlowSensitive_8cpp_source.html +3 -3
  34. package/SVF-doxygen/html/FlowSensitive_8h_source.html +7 -7
  35. package/SVF-doxygen/html/ICFGStat_8h_source.html +1 -1
  36. package/SVF-doxygen/html/ICFGWTO_8h.html +109 -0
  37. package/SVF-doxygen/html/ICFGWTO_8h_source.html +177 -0
  38. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +2 -2
  39. package/SVF-doxygen/html/MTAAnnotator_8cpp_source.html +2 -2
  40. package/SVF-doxygen/html/MTAAnnotator_8h_source.html +1 -1
  41. package/SVF-doxygen/html/MTAStat_8cpp_source.html +3 -3
  42. package/SVF-doxygen/html/MTA_8cpp_source.html +3 -3
  43. package/SVF-doxygen/html/MemRegion_8cpp_source.html +3 -3
  44. package/SVF-doxygen/html/MemRegion_8h.html +3 -3
  45. package/SVF-doxygen/html/MemRegion_8h_source.html +4 -4
  46. package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
  47. package/SVF-doxygen/html/Options_8cpp_source.html +10 -10
  48. package/SVF-doxygen/html/PCG_8h_source.html +4 -4
  49. package/SVF-doxygen/html/PTAStat_8cpp_source.html +99 -87
  50. package/SVF-doxygen/html/PTAStat_8h_source.html +2 -2
  51. package/SVF-doxygen/html/PointerAnalysisImpl_8cpp_source.html +30 -30
  52. package/SVF-doxygen/html/PointerAnalysisImpl_8h_source.html +15 -15
  53. package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +42 -42
  54. package/SVF-doxygen/html/PointerAnalysis_8h.html +5 -5
  55. package/SVF-doxygen/html/PointerAnalysis_8h_source.html +409 -418
  56. package/SVF-doxygen/html/SCC_8h.html +2 -2
  57. package/SVF-doxygen/html/SCC_8h_source.html +2 -2
  58. package/SVF-doxygen/html/SVFGBuilder_8h_source.html +3 -3
  59. package/SVF-doxygen/html/SVFGStat_8cpp_source.html +16 -19
  60. package/SVF-doxygen/html/SVFGStat_8h.html +1 -1
  61. package/SVF-doxygen/html/SVFGStat_8h_source.html +3 -3
  62. package/SVF-doxygen/html/SVFG_8h_source.html +1 -1
  63. package/SVF-doxygen/html/SVFStat_8cpp_source.html +196 -186
  64. package/SVF-doxygen/html/SVFStat_8h_source.html +44 -41
  65. package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +5 -5
  66. package/SVF-doxygen/html/SrcSnkDDA_8cpp_source.html +1 -1
  67. package/SVF-doxygen/html/Steensgaard_8cpp_source.html +2 -2
  68. package/SVF-doxygen/html/Steensgaard_8h_source.html +4 -4
  69. package/SVF-doxygen/html/TCT_8h.html +2 -2
  70. package/SVF-doxygen/html/TCT_8h_source.html +9 -9
  71. package/SVF-doxygen/html/ThreadCallGraph_8cpp_source.html +3 -3
  72. package/SVF-doxygen/html/ThreadCallGraph_8h_source.html +1 -1
  73. package/SVF-doxygen/html/TypeAnalysis_8cpp_source.html +3 -3
  74. package/SVF-doxygen/html/TypeAnalysis_8h_source.html +6 -6
  75. package/SVF-doxygen/html/VFG_8cpp_source.html +3 -3
  76. package/SVF-doxygen/html/VFG_8h_source.html +1 -1
  77. package/SVF-doxygen/html/VersionedFlowSensitiveStat_8cpp_source.html +77 -79
  78. package/SVF-doxygen/html/VersionedFlowSensitive_8cpp_source.html +6 -6
  79. package/SVF-doxygen/html/VersionedFlowSensitive_8h_source.html +4 -4
  80. package/SVF-doxygen/html/WPAPass_8cpp_source.html +12 -12
  81. package/SVF-doxygen/html/WPAPass_8h_source.html +1 -1
  82. package/SVF-doxygen/html/WPAStat_8h_source.html +9 -9
  83. package/SVF-doxygen/html/WTO_8h.html +25 -13
  84. package/SVF-doxygen/html/WTO_8h_source.html +794 -853
  85. package/SVF-doxygen/html/annotated.html +402 -397
  86. package/SVF-doxygen/html/classSVF_1_1Andersen-members.html +121 -123
  87. package/SVF-doxygen/html/classSVF_1_1Andersen.html +11 -17
  88. package/SVF-doxygen/html/classSVF_1_1AndersenBase-members.html +100 -102
  89. package/SVF-doxygen/html/classSVF_1_1AndersenBase.html +11 -17
  90. package/SVF-doxygen/html/classSVF_1_1AndersenSCD-members.html +124 -126
  91. package/SVF-doxygen/html/classSVF_1_1AndersenSCD.html +2 -8
  92. package/SVF-doxygen/html/classSVF_1_1AndersenSFR-members.html +129 -131
  93. package/SVF-doxygen/html/classSVF_1_1AndersenSFR.html +1 -7
  94. package/SVF-doxygen/html/classSVF_1_1AndersenStat-members.html +21 -20
  95. package/SVF-doxygen/html/classSVF_1_1AndersenStat.html +155 -161
  96. package/SVF-doxygen/html/classSVF_1_1AndersenWaveDiff-members.html +122 -124
  97. package/SVF-doxygen/html/classSVF_1_1AndersenWaveDiff.html +2 -8
  98. package/SVF-doxygen/html/classSVF_1_1BVDataPTAImpl-members.html +58 -60
  99. package/SVF-doxygen/html/classSVF_1_1BVDataPTAImpl.html +26 -32
  100. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO-members.html +57 -50
  101. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO.html +203 -1663
  102. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO.png +0 -0
  103. package/SVF-doxygen/html/classSVF_1_1CFLAlias-members.html +78 -80
  104. package/SVF-doxygen/html/classSVF_1_1CFLAlias.html +4 -10
  105. package/SVF-doxygen/html/classSVF_1_1CFLBase-members.html +75 -77
  106. package/SVF-doxygen/html/classSVF_1_1CFLBase.html +1 -7
  107. package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder.html +2 -2
  108. package/SVF-doxygen/html/classSVF_1_1CFLStat-members.html +19 -18
  109. package/SVF-doxygen/html/classSVF_1_1CFLStat.html +5 -2
  110. package/SVF-doxygen/html/classSVF_1_1CFLVF-members.html +77 -79
  111. package/SVF-doxygen/html/classSVF_1_1CFLVF.html +2 -8
  112. package/SVF-doxygen/html/classSVF_1_1CondPTAImpl-members.html +50 -52
  113. package/SVF-doxygen/html/classSVF_1_1CondPTAImpl.html +9 -15
  114. package/SVF-doxygen/html/classSVF_1_1ConstraintNode-members.html +34 -34
  115. package/SVF-doxygen/html/classSVF_1_1ConstraintNode.html +25 -65
  116. package/SVF-doxygen/html/classSVF_1_1ContextDDA-members.html +97 -99
  117. package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +18 -24
  118. package/SVF-doxygen/html/classSVF_1_1DDAClient.html +3 -3
  119. package/SVF-doxygen/html/classSVF_1_1DDAPass.html +6 -6
  120. package/SVF-doxygen/html/classSVF_1_1DDAStat-members.html +18 -17
  121. package/SVF-doxygen/html/classSVF_1_1DDAStat.html +12 -9
  122. package/SVF-doxygen/html/classSVF_1_1DDAVFSolver.html +1 -1
  123. package/SVF-doxygen/html/classSVF_1_1FSMPTA-members.html +140 -142
  124. package/SVF-doxygen/html/classSVF_1_1FSMPTA.html +2 -8
  125. package/SVF-doxygen/html/classSVF_1_1FlowDDA-members.html +102 -104
  126. package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +15 -21
  127. package/SVF-doxygen/html/classSVF_1_1FlowSensitive-members.html +133 -135
  128. package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +18 -24
  129. package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat-members.html +24 -23
  130. package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat.html +241 -240
  131. package/SVF-doxygen/html/classSVF_1_1FunptrDDAClient.html +2 -2
  132. package/SVF-doxygen/html/classSVF_1_1GenericNode.html +9 -10
  133. package/SVF-doxygen/html/classSVF_1_1GenericNode.png +0 -0
  134. package/SVF-doxygen/html/classSVF_1_1ICFGStat-members.html +19 -18
  135. package/SVF-doxygen/html/classSVF_1_1ICFGStat.html +4 -1
  136. package/SVF-doxygen/html/classSVF_1_1ICFGWTO-members.html +140 -0
  137. package/SVF-doxygen/html/classSVF_1_1ICFGWTO.html +379 -0
  138. package/SVF-doxygen/html/classSVF_1_1ICFGWTO.png +0 -0
  139. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +2 -2
  140. package/SVF-doxygen/html/classSVF_1_1MRGenerator.html +3 -3
  141. package/SVF-doxygen/html/classSVF_1_1MTA.html +3 -3
  142. package/SVF-doxygen/html/classSVF_1_1MTAAnnotator.html +2 -2
  143. package/SVF-doxygen/html/classSVF_1_1MTASVFGBuilder.html +1 -1
  144. package/SVF-doxygen/html/classSVF_1_1MTAStat-members.html +20 -19
  145. package/SVF-doxygen/html/classSVF_1_1MTAStat.html +6 -3
  146. package/SVF-doxygen/html/classSVF_1_1MemSSA.html +5 -5
  147. package/SVF-doxygen/html/classSVF_1_1MemSSAStat-members.html +24 -23
  148. package/SVF-doxygen/html/classSVF_1_1MemSSAStat.html +7 -4
  149. package/SVF-doxygen/html/classSVF_1_1PCG.html +3 -3
  150. package/SVF-doxygen/html/classSVF_1_1POCRAlias-members.html +78 -80
  151. package/SVF-doxygen/html/classSVF_1_1POCRAlias.html +0 -6
  152. package/SVF-doxygen/html/classSVF_1_1POCRHybrid-members.html +78 -80
  153. package/SVF-doxygen/html/classSVF_1_1POCRHybrid.html +0 -6
  154. package/SVF-doxygen/html/classSVF_1_1PTAStat-members.html +19 -18
  155. package/SVF-doxygen/html/classSVF_1_1PTAStat.html +100 -85
  156. package/SVF-doxygen/html/classSVF_1_1PointerAnalysis-members.html +34 -36
  157. package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +291 -356
  158. package/SVF-doxygen/html/classSVF_1_1SCCDetection.html +1 -1
  159. package/SVF-doxygen/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +1 -1
  160. package/SVF-doxygen/html/classSVF_1_1SVFGStat-members.html +41 -40
  161. package/SVF-doxygen/html/classSVF_1_1SVFGStat.html +18 -18
  162. package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +1 -1
  163. package/SVF-doxygen/html/classSVF_1_1SVFStat-members.html +13 -12
  164. package/SVF-doxygen/html/classSVF_1_1SVFStat.html +208 -168
  165. package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +5 -5
  166. package/SVF-doxygen/html/classSVF_1_1SrcSnkDDA.html +1 -1
  167. package/SVF-doxygen/html/classSVF_1_1Steensgaard-members.html +109 -111
  168. package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +4 -10
  169. package/SVF-doxygen/html/classSVF_1_1TCT.html +4 -4
  170. package/SVF-doxygen/html/classSVF_1_1ThreadCallGraph.html +2 -2
  171. package/SVF-doxygen/html/classSVF_1_1TypeAnalysis-members.html +103 -105
  172. package/SVF-doxygen/html/classSVF_1_1TypeAnalysis.html +9 -15
  173. package/SVF-doxygen/html/classSVF_1_1VFG.html +2 -2
  174. package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitive-members.html +158 -160
  175. package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitive.html +6 -12
  176. package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitiveStat-members.html +24 -23
  177. package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitiveStat.html +84 -83
  178. package/SVF-doxygen/html/classSVF_1_1WPAPass.html +12 -12
  179. package/SVF-doxygen/html/classSVF_1_1WTO-members.html +137 -0
  180. package/SVF-doxygen/html/classSVF_1_1WTO.html +1998 -0
  181. package/SVF-doxygen/html/classSVF_1_1WTOComponent-members.html +97 -0
  182. package/SVF-doxygen/html/classSVF_1_1WTOComponent.html +515 -0
  183. package/SVF-doxygen/html/classSVF_1_1WTOComponentVisitor-members.html +93 -0
  184. package/SVF-doxygen/html/classSVF_1_1WTOComponentVisitor.html +421 -0
  185. package/SVF-doxygen/html/classSVF_1_1WTOComponentVisitor.png +0 -0
  186. package/SVF-doxygen/html/classSVF_1_1WTOCycle-members.html +98 -0
  187. package/SVF-doxygen/html/classSVF_1_1WTOCycle.html +630 -0
  188. package/SVF-doxygen/html/classSVF_1_1WTOCycleDepth-members.html +24 -23
  189. package/SVF-doxygen/html/classSVF_1_1WTOCycleDepth.html +338 -317
  190. package/SVF-doxygen/html/classSVF_1_1WTONode-members.html +91 -0
  191. package/SVF-doxygen/html/classSVF_1_1WTONode.html +390 -0
  192. package/SVF-doxygen/html/classSVF_1_1WTO_1_1WTOCycleDepthBuilder-members.html +96 -0
  193. package/SVF-doxygen/html/classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html +332 -0
  194. package/SVF-doxygen/html/classSVF_1_1WTO_1_1WTOCycleDepthBuilder.png +0 -0
  195. package/SVF-doxygen/html/classes.html +383 -377
  196. package/SVF-doxygen/html/dir_445b24f35a8ddd2effd3d23ee1278e0a.html +0 -2
  197. package/SVF-doxygen/html/dir_f63327fc9cf9e35b7653a5e341daceab.html +4 -2
  198. package/SVF-doxygen/html/dir_fc0329f850c815763e0c5b05933e8d55.html +4 -0
  199. package/SVF-doxygen/html/files.html +31 -29
  200. package/SVF-doxygen/html/functions.html +18 -30
  201. package/SVF-doxygen/html/functions_a.html +17 -14
  202. package/SVF-doxygen/html/functions_b.html +25 -25
  203. package/SVF-doxygen/html/functions_c.html +37 -51
  204. package/SVF-doxygen/html/functions_e.html +7 -4
  205. package/SVF-doxygen/html/functions_enum.html +2 -2
  206. package/SVF-doxygen/html/functions_eval_c.html +1 -1
  207. package/SVF-doxygen/html/functions_eval_n.html +1 -1
  208. package/SVF-doxygen/html/functions_f.html +26 -21
  209. package/SVF-doxygen/html/functions_func.html +14 -11
  210. package/SVF-doxygen/html/functions_func_b.html +6 -10
  211. package/SVF-doxygen/html/functions_func_c.html +30 -36
  212. package/SVF-doxygen/html/functions_func_e.html +5 -5
  213. package/SVF-doxygen/html/functions_func_f.html +8 -3
  214. package/SVF-doxygen/html/functions_func_g.html +15 -25
  215. package/SVF-doxygen/html/functions_func_h.html +3 -3
  216. package/SVF-doxygen/html/functions_func_i.html +18 -14
  217. package/SVF-doxygen/html/functions_func_n.html +6 -6
  218. package/SVF-doxygen/html/functions_func_o.html +16 -16
  219. package/SVF-doxygen/html/functions_func_p.html +4 -7
  220. package/SVF-doxygen/html/functions_func_s.html +1 -1
  221. package/SVF-doxygen/html/functions_func_t.html +7 -10
  222. package/SVF-doxygen/html/functions_func_v.html +4 -5
  223. package/SVF-doxygen/html/functions_func_w.html +16 -4
  224. package/SVF-doxygen/html/functions_func_~.html +10 -10
  225. package/SVF-doxygen/html/functions_g.html +14 -21
  226. package/SVF-doxygen/html/functions_h.html +9 -6
  227. package/SVF-doxygen/html/functions_i.html +32 -29
  228. package/SVF-doxygen/html/functions_l.html +3 -3
  229. package/SVF-doxygen/html/functions_n.html +25 -23
  230. package/SVF-doxygen/html/functions_o.html +31 -29
  231. package/SVF-doxygen/html/functions_p.html +21 -15
  232. package/SVF-doxygen/html/functions_r.html +1 -1
  233. package/SVF-doxygen/html/functions_rela_o.html +3 -3
  234. package/SVF-doxygen/html/functions_s.html +26 -23
  235. package/SVF-doxygen/html/functions_t.html +14 -20
  236. package/SVF-doxygen/html/functions_type_b.html +4 -0
  237. package/SVF-doxygen/html/functions_type_c.html +3 -9
  238. package/SVF-doxygen/html/functions_type_e.html +3 -0
  239. package/SVF-doxygen/html/functions_type_g.html +3 -0
  240. package/SVF-doxygen/html/functions_type_i.html +7 -8
  241. package/SVF-doxygen/html/functions_type_n.html +13 -9
  242. package/SVF-doxygen/html/functions_type_s.html +3 -0
  243. package/SVF-doxygen/html/functions_type_w.html +19 -6
  244. package/SVF-doxygen/html/functions_v.html +8 -9
  245. package/SVF-doxygen/html/functions_vars.html +18 -30
  246. package/SVF-doxygen/html/functions_vars_h.html +3 -0
  247. package/SVF-doxygen/html/functions_vars_p.html +3 -0
  248. package/SVF-doxygen/html/functions_vars_t.html +0 -3
  249. package/SVF-doxygen/html/functions_vars_w.html +4 -0
  250. package/SVF-doxygen/html/functions_w.html +47 -20
  251. package/SVF-doxygen/html/functions_~.html +10 -10
  252. package/SVF-doxygen/html/hierarchy.html +621 -614
  253. package/SVF-doxygen/html/namespaceSVF.html +127 -7
  254. package/SVF-doxygen/html/namespacemembers_c.html +9 -0
  255. package/SVF-doxygen/html/namespacemembers_i.html +14 -5
  256. package/SVF-doxygen/html/namespacemembers_type_c.html +9 -0
  257. package/SVF-doxygen/html/namespacemembers_type_i.html +9 -0
  258. package/SVF-doxygen/html/search/all_0.js +124 -127
  259. package/SVF-doxygen/html/search/all_1.js +495 -495
  260. package/SVF-doxygen/html/search/all_10.js +325 -325
  261. package/SVF-doxygen/html/search/all_11.js +225 -225
  262. package/SVF-doxygen/html/search/all_12.js +555 -554
  263. package/SVF-doxygen/html/search/all_13.js +201 -203
  264. package/SVF-doxygen/html/search/all_14.js +67 -67
  265. package/SVF-doxygen/html/search/all_15.js +168 -168
  266. package/SVF-doxygen/html/search/all_16.js +73 -63
  267. package/SVF-doxygen/html/search/all_17.js +1 -1
  268. package/SVF-doxygen/html/search/all_18.js +1 -1
  269. package/SVF-doxygen/html/search/all_19.js +11 -11
  270. package/SVF-doxygen/html/search/all_1a.js +175 -175
  271. package/SVF-doxygen/html/search/all_2.js +172 -173
  272. package/SVF-doxygen/html/search/all_3.js +648 -649
  273. package/SVF-doxygen/html/search/all_4.js +230 -230
  274. package/SVF-doxygen/html/search/all_5.js +120 -119
  275. package/SVF-doxygen/html/search/all_6.js +227 -226
  276. package/SVF-doxygen/html/search/all_7.js +1046 -1048
  277. package/SVF-doxygen/html/search/all_8.js +196 -191
  278. package/SVF-doxygen/html/search/all_9.js +579 -574
  279. package/SVF-doxygen/html/search/all_a.js +46 -46
  280. package/SVF-doxygen/html/search/all_b.js +26 -26
  281. package/SVF-doxygen/html/search/all_c.js +115 -115
  282. package/SVF-doxygen/html/search/all_d.js +197 -197
  283. package/SVF-doxygen/html/search/all_e.js +207 -207
  284. package/SVF-doxygen/html/search/all_f.js +116 -116
  285. package/SVF-doxygen/html/search/classes_0.js +26 -26
  286. package/SVF-doxygen/html/search/classes_1.js +9 -9
  287. package/SVF-doxygen/html/search/classes_10.js +74 -74
  288. package/SVF-doxygen/html/search/classes_11.js +14 -15
  289. package/SVF-doxygen/html/search/classes_12.js +2 -2
  290. package/SVF-doxygen/html/search/classes_13.js +10 -10
  291. package/SVF-doxygen/html/search/classes_14.js +20 -14
  292. package/SVF-doxygen/html/search/classes_15.js +1 -1
  293. package/SVF-doxygen/html/search/classes_2.js +78 -81
  294. package/SVF-doxygen/html/search/classes_3.js +37 -37
  295. package/SVF-doxygen/html/search/classes_4.js +9 -9
  296. package/SVF-doxygen/html/search/classes_5.js +28 -28
  297. package/SVF-doxygen/html/search/classes_6.js +104 -104
  298. package/SVF-doxygen/html/search/classes_7.js +38 -34
  299. package/SVF-doxygen/html/search/classes_8.js +58 -57
  300. package/SVF-doxygen/html/search/classes_9.js +1 -1
  301. package/SVF-doxygen/html/search/classes_a.js +12 -12
  302. package/SVF-doxygen/html/search/classes_b.js +29 -29
  303. package/SVF-doxygen/html/search/classes_c.js +6 -6
  304. package/SVF-doxygen/html/search/classes_d.js +18 -18
  305. package/SVF-doxygen/html/search/classes_e.js +36 -36
  306. package/SVF-doxygen/html/search/classes_f.js +25 -25
  307. package/SVF-doxygen/html/search/defines_0.js +3 -3
  308. package/SVF-doxygen/html/search/defines_1.js +2 -2
  309. package/SVF-doxygen/html/search/defines_2.js +30 -30
  310. package/SVF-doxygen/html/search/defines_3.js +20 -20
  311. package/SVF-doxygen/html/search/defines_4.js +2 -2
  312. package/SVF-doxygen/html/search/defines_5.js +4 -4
  313. package/SVF-doxygen/html/search/defines_6.js +2 -2
  314. package/SVF-doxygen/html/search/defines_7.js +5 -5
  315. package/SVF-doxygen/html/search/defines_8.js +11 -11
  316. package/SVF-doxygen/html/search/defines_9.js +9 -9
  317. package/SVF-doxygen/html/search/defines_a.js +2 -2
  318. package/SVF-doxygen/html/search/defines_b.js +1 -1
  319. package/SVF-doxygen/html/search/defines_c.js +3 -3
  320. package/SVF-doxygen/html/search/defines_d.js +2 -2
  321. package/SVF-doxygen/html/search/defines_e.js +7 -7
  322. package/SVF-doxygen/html/search/defines_f.js +3 -3
  323. package/SVF-doxygen/html/search/enums_0.js +3 -3
  324. package/SVF-doxygen/html/search/enums_1.js +2 -2
  325. package/SVF-doxygen/html/search/enums_10.js +1 -1
  326. package/SVF-doxygen/html/search/enums_11.js +1 -1
  327. package/SVF-doxygen/html/search/enums_2.js +8 -8
  328. package/SVF-doxygen/html/search/enums_3.js +1 -1
  329. package/SVF-doxygen/html/search/enums_4.js +3 -3
  330. package/SVF-doxygen/html/search/enums_5.js +1 -1
  331. package/SVF-doxygen/html/search/enums_6.js +2 -2
  332. package/SVF-doxygen/html/search/enums_7.js +2 -2
  333. package/SVF-doxygen/html/search/enums_8.js +4 -4
  334. package/SVF-doxygen/html/search/enums_9.js +1 -1
  335. package/SVF-doxygen/html/search/enums_a.js +1 -1
  336. package/SVF-doxygen/html/search/enums_b.js +7 -7
  337. package/SVF-doxygen/html/search/enums_c.js +1 -1
  338. package/SVF-doxygen/html/search/enums_d.js +4 -4
  339. package/SVF-doxygen/html/search/enums_e.js +2 -2
  340. package/SVF-doxygen/html/search/enums_f.js +4 -4
  341. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  342. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  343. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  344. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  345. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  346. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  347. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  348. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  349. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  350. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  351. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  352. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  353. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  354. package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
  355. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  356. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  357. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  358. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  359. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  360. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  361. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  362. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  363. package/SVF-doxygen/html/search/files_0.js +14 -14
  364. package/SVF-doxygen/html/search/files_1.js +7 -7
  365. package/SVF-doxygen/html/search/files_10.js +8 -8
  366. package/SVF-doxygen/html/search/files_11.js +8 -8
  367. package/SVF-doxygen/html/search/files_12.js +2 -2
  368. package/SVF-doxygen/html/search/files_2.js +58 -57
  369. package/SVF-doxygen/html/search/files_3.js +14 -14
  370. package/SVF-doxygen/html/search/files_4.js +5 -5
  371. package/SVF-doxygen/html/search/files_5.js +13 -13
  372. package/SVF-doxygen/html/search/files_6.js +9 -9
  373. package/SVF-doxygen/html/search/files_7.js +15 -14
  374. package/SVF-doxygen/html/search/files_8.js +13 -13
  375. package/SVF-doxygen/html/search/files_9.js +18 -18
  376. package/SVF-doxygen/html/search/files_a.js +3 -3
  377. package/SVF-doxygen/html/search/files_b.js +2 -2
  378. package/SVF-doxygen/html/search/files_c.js +20 -20
  379. package/SVF-doxygen/html/search/files_d.js +4 -4
  380. package/SVF-doxygen/html/search/files_e.js +62 -62
  381. package/SVF-doxygen/html/search/files_f.js +8 -8
  382. package/SVF-doxygen/html/search/functions_0.js +13 -13
  383. package/SVF-doxygen/html/search/functions_1.js +365 -364
  384. package/SVF-doxygen/html/search/functions_10.js +139 -140
  385. package/SVF-doxygen/html/search/functions_11.js +140 -140
  386. package/SVF-doxygen/html/search/functions_12.js +289 -289
  387. package/SVF-doxygen/html/search/functions_13.js +71 -72
  388. package/SVF-doxygen/html/search/functions_14.js +39 -39
  389. package/SVF-doxygen/html/search/functions_15.js +71 -71
  390. package/SVF-doxygen/html/search/functions_16.js +36 -32
  391. package/SVF-doxygen/html/search/functions_17.js +3 -3
  392. package/SVF-doxygen/html/search/functions_18.js +175 -175
  393. package/SVF-doxygen/html/search/functions_2.js +90 -91
  394. package/SVF-doxygen/html/search/functions_3.js +260 -262
  395. package/SVF-doxygen/html/search/functions_4.js +78 -78
  396. package/SVF-doxygen/html/search/functions_5.js +53 -53
  397. package/SVF-doxygen/html/search/functions_6.js +61 -60
  398. package/SVF-doxygen/html/search/functions_7.js +854 -857
  399. package/SVF-doxygen/html/search/functions_8.js +148 -148
  400. package/SVF-doxygen/html/search/functions_9.js +422 -421
  401. package/SVF-doxygen/html/search/functions_a.js +30 -30
  402. package/SVF-doxygen/html/search/functions_b.js +2 -2
  403. package/SVF-doxygen/html/search/functions_c.js +25 -25
  404. package/SVF-doxygen/html/search/functions_d.js +79 -79
  405. package/SVF-doxygen/html/search/functions_e.js +35 -35
  406. package/SVF-doxygen/html/search/functions_f.js +56 -56
  407. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  408. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  409. package/SVF-doxygen/html/search/related_0.js +2 -2
  410. package/SVF-doxygen/html/search/related_1.js +2 -2
  411. package/SVF-doxygen/html/search/related_2.js +3 -3
  412. package/SVF-doxygen/html/search/related_3.js +2 -2
  413. package/SVF-doxygen/html/search/related_4.js +2 -2
  414. package/SVF-doxygen/html/search/related_5.js +1 -1
  415. package/SVF-doxygen/html/search/related_6.js +2 -2
  416. package/SVF-doxygen/html/search/related_7.js +4 -4
  417. package/SVF-doxygen/html/search/related_8.js +2 -2
  418. package/SVF-doxygen/html/search/related_9.js +4 -4
  419. package/SVF-doxygen/html/search/related_a.js +19 -19
  420. package/SVF-doxygen/html/search/related_b.js +4 -4
  421. package/SVF-doxygen/html/search/related_c.js +2 -2
  422. package/SVF-doxygen/html/search/related_d.js +12 -12
  423. package/SVF-doxygen/html/search/related_e.js +2 -2
  424. package/SVF-doxygen/html/search/related_f.js +2 -2
  425. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  426. package/SVF-doxygen/html/search/typedefs_1.js +27 -26
  427. package/SVF-doxygen/html/search/typedefs_10.js +63 -62
  428. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  429. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  430. package/SVF-doxygen/html/search/typedefs_13.js +33 -33
  431. package/SVF-doxygen/html/search/typedefs_14.js +11 -8
  432. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  433. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  434. package/SVF-doxygen/html/search/typedefs_4.js +18 -17
  435. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  436. package/SVF-doxygen/html/search/typedefs_6.js +57 -56
  437. package/SVF-doxygen/html/search/typedefs_7.js +47 -44
  438. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  439. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  440. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  441. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  442. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  443. package/SVF-doxygen/html/search/typedefs_d.js +14 -14
  444. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  445. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  446. package/SVF-doxygen/html/search/variables_0.js +148 -151
  447. package/SVF-doxygen/html/search/variables_1.js +76 -76
  448. package/SVF-doxygen/html/search/variables_10.js +99 -98
  449. package/SVF-doxygen/html/search/variables_11.js +45 -45
  450. package/SVF-doxygen/html/search/variables_12.js +91 -91
  451. package/SVF-doxygen/html/search/variables_13.js +73 -74
  452. package/SVF-doxygen/html/search/variables_14.js +14 -14
  453. package/SVF-doxygen/html/search/variables_15.js +49 -49
  454. package/SVF-doxygen/html/search/variables_16.js +10 -9
  455. package/SVF-doxygen/html/search/variables_17.js +1 -1
  456. package/SVF-doxygen/html/search/variables_18.js +2 -2
  457. package/SVF-doxygen/html/search/variables_2.js +38 -38
  458. package/SVF-doxygen/html/search/variables_3.js +142 -142
  459. package/SVF-doxygen/html/search/variables_4.js +50 -50
  460. package/SVF-doxygen/html/search/variables_5.js +37 -37
  461. package/SVF-doxygen/html/search/variables_6.js +66 -66
  462. package/SVF-doxygen/html/search/variables_7.js +34 -34
  463. package/SVF-doxygen/html/search/variables_8.js +8 -7
  464. package/SVF-doxygen/html/search/variables_9.js +78 -78
  465. package/SVF-doxygen/html/search/variables_a.js +4 -4
  466. package/SVF-doxygen/html/search/variables_b.js +10 -10
  467. package/SVF-doxygen/html/search/variables_c.js +45 -45
  468. package/SVF-doxygen/html/search/variables_d.js +55 -55
  469. package/SVF-doxygen/html/search/variables_e.js +123 -123
  470. package/SVF-doxygen/html/search/variables_f.js +30 -30
  471. package/SVF-doxygen/html/structSVF_1_1has__edgetype.html +97 -0
  472. package/SVF-doxygen/html/structSVF_1_1has__edgetype.png +0 -0
  473. 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
  474. 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
  475. package/SVF-doxygen/html/structSVF_1_1has__nodetype.html +97 -0
  476. package/SVF-doxygen/html/structSVF_1_1has__nodetype.png +0 -0
  477. 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
  478. 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
  479. package/SVF-doxygen/html/svf-ex_8cpp.html +2 -2
  480. package/SVF-doxygen/html/svf-ex_8cpp_source.html +3 -3
  481. package/package.json +1 -1
  482. package/svf/include/AbstractExecution/CFBasicBlockGWTO.h +83 -0
  483. package/svf/include/AbstractExecution/ICFGWTO.h +78 -0
  484. package/svf/include/DDA/DDAPass.h +2 -2
  485. package/svf/include/DDA/DDAVFSolver.h +2 -2
  486. package/svf/include/Graphs/SVFGStat.h +1 -1
  487. package/svf/include/Graphs/WTO.h +859 -0
  488. package/svf/include/MSSA/MemRegion.h +3 -3
  489. package/svf/include/MTA/TCT.h +2 -2
  490. package/svf/include/MemoryModel/PointerAnalysis.h +5 -14
  491. package/svf/include/Util/SVFStat.h +3 -0
  492. package/svf/include/WPA/CSC.h +3 -3
  493. package/svf/lib/DDA/DDAStat.cpp +2 -2
  494. package/svf/lib/Graphs/SVFGStat.cpp +2 -4
  495. package/svf/lib/MemoryModel/PointerAnalysis.cpp +1 -1
  496. package/svf/lib/Util/PTAStat.cpp +14 -4
  497. package/svf/lib/Util/SVFStat.cpp +13 -3
  498. package/svf/lib/WPA/AndersenStat.cpp +3 -8
  499. package/svf/lib/WPA/FlowSensitiveStat.cpp +1 -2
  500. package/svf/lib/WPA/VersionedFlowSensitiveStat.cpp +1 -2
  501. package/svf/include/AbstractExecution/WTO.h +0 -897
  502. /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 "SVFIR/SVFIR.h"
37
+ #include "Graphs/ICFG.h"
38
38
  #include "Graphs/PTACallGraph.h"
39
- #include "Util/SCC.h"
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
 
@@ -30,10 +30,10 @@
30
30
  #ifndef TCTNodeDetector_H_
31
31
  #define TCTNodeDetector_H_
32
32
 
33
- #include "Util/SCC.h"
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 "SVFIR/SVFIR.h"
37
- #include "MemoryModel/ConditionalPT.h"
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;
@@ -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
  {
@@ -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
- PTNumStatMap["MemoryUsageVmrss"] = _vmrssUsageAfter - _vmrssUsageBefore;
267
- PTNumStatMap["MemoryUsageVmsize"] = _vmsizeUsageAfter - _vmsizeUsageBefore;
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
- SVFUtil::outs() << "\n****SVFG SCC Stat****\n";
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
- SVFUtil::outs() << "\n****SVFG Statistics****\n";
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),typeSystem(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();
@@ -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
- PTNumStatMap["MemoryUsageVmrss"] = _vmrssUsageAfter - _vmrssUsageBefore;
77
- PTNumStatMap["MemoryUsageVmsize"] = _vmsizeUsageAfter - _vmsizeUsageBefore;
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
- SVFStat::printStat("CallGraph Stats");
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
  }
@@ -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
- SVFUtil::outs() << "-------------------------------------------------------\n";
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["TotalValidNode"] = cgNodeNumber;
185
- PTNumStatMap["TotalValidObjNode"] = objNodeNumber;
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
- SVFUtil::outs() << "\n****Flow-Sensitive Pointer Analysis Statistics****\n";
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
- SVFUtil::outs() << "\n****Versioned Flow-Sensitive Pointer Analysis Statistics****\n";
150
- PTAStat::printStat();
149
+ PTAStat::printStat("Versioned Flow-Sensitive Pointer Analysis Statistics");
151
150
  }
152
151
 
153
152
  void VersionedFlowSensitiveStat::versionStat(void)