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
@@ -326,239 +326,238 @@ $(function() {
326
326
  <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; timeStatMap[<span class="stringliteral">&quot;AverageSCCSize&quot;</span>] = (fspta-&gt;numOfSCC == 0) ? 0 :</div>
327
327
  <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; ((<span class="keywordtype">double</span>)fspta-&gt;numOfNodesInSCC / fspta-&gt;numOfSCC);</div>
328
328
  <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; </div>
329
- <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\n****Flow-Sensitive Pointer Analysis Statistics****\n&quot;</span>;</div>
330
- <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a178fcefed6ffffc78bbe9b23e0e1babe">PTAStat::printStat</a>();</div>
331
- <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;}</div>
332
- <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
333
- <div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveStat.html#a36f7be42772b2df6f7594c51b7dc4770"> 271</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a36f7be42772b2df6f7594c51b7dc4770">FlowSensitiveStat::statNullPtr</a>()</div>
334
- <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;{</div>
335
- <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; _NumOfNullPtr = 0;</div>
336
- <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> iter = fspta-&gt;getPAG()-&gt;begin(), eiter = fspta-&gt;getPAG()-&gt;end();</div>
337
- <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; iter != eiter; ++iter)</div>
338
- <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; {</div>
339
- <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> pagNodeId = iter-&gt;first;</div>
340
- <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = iter-&gt;second;</div>
341
- <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>&amp; inComingStore = pagNode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a76964ef7d4842a469d7720881499d8a6">getIncomingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>);</div>
342
- <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>&amp; outGoingLoad = pagNode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a927733580b47be5ffcfced44ba9fd6c3">getOutgoingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>);</div>
343
- <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">if</span> (inComingStore.empty()==<span class="keyword">false</span> || outGoingLoad.empty()==<span class="keyword">false</span>)</div>
344
- <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; {</div>
345
- <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; pts = fspta-&gt;getPts(pagNodeId);</div>
346
- <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span>(fspta-&gt;containBlackHoleNode(pts))</div>
347
- <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; {</div>
348
- <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; _NumOfConstantPtr++;</div>
349
- <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div>
350
- <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">if</span>(fspta-&gt;containConstantNode(pts))</div>
351
- <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; {</div>
352
- <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; _NumOfBlackholePtr++;</div>
353
- <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div>
354
- <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">if</span>(pts.<a class="code" href="classSVF_1_1PointsTo.html#a13746982a11d0cab57e5919d53bfbec8">empty</a>())</div>
355
- <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; {</div>
356
- <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
357
- <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; std::stringstream rawstr(str);</div>
358
- <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">if</span> (!SVFUtil::isa&lt;DummyValVar&gt;(pagNode) &amp;&amp; !SVFUtil::isa&lt;DummyObjVar&gt;(pagNode))</div>
359
- <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; {</div>
360
- <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="comment">// if a pointer is in dead function, we do not care</span></div>
361
- <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">if</span>(pagNode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a3a4b04027aa67278e7b1bb1ef88cf2e6">ptrInUncalledFunction</a>() == <span class="keyword">false</span>)</div>
362
- <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; {</div>
363
- <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; _NumOfNullPtr++;</div>
364
- <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;##Null Pointer : (NodeID &quot;</span> &lt;&lt; pagNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()</div>
365
- <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; &lt;&lt; <span class="stringliteral">&quot;) PtrName:&quot;</span> &lt;&lt; pagNode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>();</div>
366
- <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2e0196e0ce547ab4a483cc6d2646b24">writeWrnMsg</a>(rawstr.str());</div>
367
- <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div>
368
- <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; }</div>
369
- <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">else</span></div>
370
- <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; {</div>
371
- <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; _NumOfNullPtr++;</div>
372
- <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;##Null Pointer : (NodeID &quot;</span> &lt;&lt; pagNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
373
- <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2e0196e0ce547ab4a483cc6d2646b24">writeWrnMsg</a>(rawstr.str());</div>
374
- <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; }</div>
375
- <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; }</div>
376
- <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div>
377
- <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div>
378
- <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;}</div>
379
- <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; </div>
380
- <div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveStat.html#af51e5b90f7bc52e3657a708c7bc5bb75"> 322</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af51e5b90f7bc52e3657a708c7bc5bb75">FlowSensitiveStat::statPtsSize</a>()</div>
381
- <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;{</div>
382
- <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="comment">// TODO: needs to be made to work for persistent.</span></div>
383
- <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;FlowSensitive::MutDFPTDataTy&gt;(fspta-&gt;getPTDataTy()))</div>
384
- <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; {</div>
385
- <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="comment">// stat of IN set</span></div>
386
- <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; statInOutPtsSize(fspta-&gt;getDFInputMap(), IN);</div>
387
- <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="comment">// stat of OUT set</span></div>
388
- <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; statInOutPtsSize(fspta-&gt;getDFOutputMap(), OUT);</div>
389
- <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; }</div>
390
- <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; </div>
391
- <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalValidTopLvlPointers = 0;</div>
392
- <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> topTopLvlPtsSize = 0;</div>
393
- <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> iter = fspta-&gt;getPAG()-&gt;begin(), eiter = fspta-&gt;getPAG()-&gt;end();</div>
394
- <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; iter != eiter; ++iter)</div>
395
- <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {</div>
396
- <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node = iter-&gt;first;</div>
397
- <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">if</span> (fspta-&gt;getPAG()-&gt;isValidTopLevelPtr(iter-&gt;second) == <span class="keyword">false</span>)</div>
398
- <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">continue</span>;</div>
399
- <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> size = fspta-&gt;getPts(node).count();</div>
400
- <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; </div>
401
- <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; totalValidTopLvlPointers++;</div>
402
- <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; topTopLvlPtsSize+=size;</div>
403
- <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; </div>
404
- <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">if</span>(size &gt; _MaxPtsSize) _MaxPtsSize = size;</div>
405
- <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; </div>
406
- <div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">if</span> (size &gt; _MaxTopLvlPtsSize) _MaxTopLvlPtsSize = size;</div>
407
- <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; }</div>
408
- <div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; </div>
409
- <div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">if</span> (totalValidTopLvlPointers != 0)</div>
410
- <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; _AvgTopLvlPtsSize = (double)topTopLvlPtsSize/totalValidTopLvlPointers;</div>
411
- <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; </div>
412
- <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; _TotalPtsSize += topTopLvlPtsSize;</div>
413
- <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalPointer = totalValidTopLvlPointers + _NumOfVarHaveINOUTPts[IN] + _NumOfVarHaveINOUTPts[OUT];</div>
414
- <div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">if</span> (totalPointer != 0)</div>
415
- <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; _AvgPtsSize = (double) _TotalPtsSize / totalPointer;</div>
416
- <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;}</div>
417
- <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; </div>
418
- <div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveStat.html#a8ae7448f6210b6c759a33e6fc8a8cee8"> 361</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a8ae7448f6210b6c759a33e6fc8a8cee8">FlowSensitiveStat::statInOutPtsSize</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a55d45e82ea3d338114e50da877bcfb75">DFInOutMap</a>&amp; data, <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71">ENUM_INOUT</a> inOrOut)</div>
419
- <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;{</div>
420
- <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="comment">// Get number of nodes which have IN/OUT set</span></div>
421
- <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; _NumOfSVFGNodesHaveInOut[inOrOut] = data.size();</div>
422
- <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; </div>
423
- <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> inOutPtsSize = 0;</div>
424
- <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; DFInOutMap::const_iterator it = data.begin();</div>
425
- <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; DFInOutMap::const_iterator eit = data.end();</div>
426
- <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div>
427
- <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div>
428
- <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = fspta-&gt;svfg-&gt;getSVFGNode(it-&gt;first);</div>
429
- <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; </div>
430
- <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="comment">// Count number of SVFG nodes have IN/OUT set.</span></div>
431
- <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;FormalINSVFGNode&gt;(node))</div>
432
- <div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; _NumOfFormalInSVFGNodesHaveInOut[inOrOut]++;</div>
433
- <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;FormalOUTSVFGNode&gt;(node))</div>
434
- <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; _NumOfFormalOutSVFGNodesHaveInOut[inOrOut]++;</div>
435
- <div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ActualINSVFGNode&gt;(node))</div>
436
- <div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; _NumOfActualInSVFGNodesHaveInOut[inOrOut]++;</div>
437
- <div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ActualOUTSVFGNode&gt;(node))</div>
438
- <div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; _NumOfActualOutSVFGNodesHaveInOut[inOrOut]++;</div>
439
- <div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;LoadSVFGNode&gt;(node))</div>
440
- <div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; _NumOfLoadSVFGNodesHaveInOut[inOrOut]++;</div>
441
- <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;StoreSVFGNode&gt;(node))</div>
442
- <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; _NumOfStoreSVFGNodesHaveInOut[inOrOut]++;</div>
443
- <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;MSSAPHISVFGNode&gt;(node))</div>
444
- <div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; _NumOfMSSAPhiSVFGNodesHaveInOut[inOrOut]++;</div>
445
- <div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">else</span></div>
446
- <div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;unexpected node have IN/OUT set&quot;</span>);</div>
447
- <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; </div>
448
- <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="comment">/*-----------------------------------------------------*/</span></div>
449
- <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; </div>
450
- <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="comment">// Count SVFIR nodes and their points-to set size.</span></div>
451
- <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a1b605e86f33e79f7d7cd88dc54f2c19e">PtsMap</a>&amp; cptsMap = it-&gt;second;</div>
452
- <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; PtsMap::const_iterator ptsIt = cptsMap.begin();</div>
453
- <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; PtsMap::const_iterator ptsEit = cptsMap.end();</div>
454
- <div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">for</span> (; ptsIt != ptsEit; ++ptsIt)</div>
455
- <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; {</div>
456
- <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">if</span> (ptsIt-&gt;second.empty())</div>
457
- <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; {</div>
458
- <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; _NumOfVarHaveEmptyINOUTPts[inOrOut]++;</div>
459
- <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">continue</span>;</div>
460
- <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div>
461
- <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; </div>
462
- <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> ptsNum = ptsIt-&gt;second.count(); </div>
463
- <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; </div>
464
- <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="comment">// Only node with non-empty points-to set are counted.</span></div>
465
- <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; _NumOfVarHaveINOUTPts[inOrOut]++;</div>
466
- <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; </div>
467
- <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;FormalINSVFGNode&gt;(node))</div>
468
- <div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; _NumOfVarHaveINOUTPtsInFormalIn[inOrOut]++;</div>
469
- <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;FormalOUTSVFGNode&gt;(node))</div>
470
- <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; _NumOfVarHaveINOUTPtsInFormalOut[inOrOut]++;</div>
471
- <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ActualINSVFGNode&gt;(node))</div>
472
- <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; _NumOfVarHaveINOUTPtsInActualIn[inOrOut]++;</div>
473
- <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ActualOUTSVFGNode&gt;(node))</div>
474
- <div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; _NumOfVarHaveINOUTPtsInActualOut[inOrOut]++;</div>
475
- <div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;LoadSVFGNode&gt;(node))</div>
476
- <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; _NumOfVarHaveINOUTPtsInLoad[inOrOut]++;</div>
477
- <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;StoreSVFGNode&gt;(node))</div>
478
- <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; _NumOfVarHaveINOUTPtsInStore[inOrOut]++;</div>
479
- <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;MSSAPHISVFGNode&gt;(node))</div>
480
- <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; _NumOfVarHaveINOUTPtsInMSSAPhi[inOrOut]++;</div>
481
- <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">else</span></div>
482
- <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;unexpected node have IN/OUT set&quot;</span>);</div>
483
- <div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; </div>
484
- <div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; inOutPtsSize += ptsNum;</div>
485
- <div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; </div>
486
- <div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">if</span> (ptsNum &gt; _MaxInOutPtsSize[inOrOut])</div>
487
- <div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; _MaxInOutPtsSize[inOrOut] = ptsNum;</div>
488
- <div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; </div>
489
- <div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">if</span> (ptsNum &gt; _MaxPtsSize) _MaxPtsSize = ptsNum;</div>
490
- <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div>
491
- <div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div>
492
- <div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; </div>
493
- <div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">if</span> (_NumOfVarHaveINOUTPts[inOrOut] != 0)</div>
494
- <div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; _AvgInOutPtsSize[inOrOut] = (double)inOutPtsSize / _NumOfVarHaveINOUTPts[inOrOut];</div>
495
- <div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; </div>
496
- <div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; _TotalPtsSize += inOutPtsSize;</div>
497
- <div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; </div>
498
- <div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="comment">// How many IN/OUT PTSs could we have *potentially* had?</span></div>
499
- <div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="comment">// l&#39;-o-&gt;l, l&#39;&#39;-o-&gt;l, ..., means there is a possibility of 1 IN PTS.</span></div>
500
- <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="comment">// *p = q &amp;&amp; { o } in pts_ander(p) means there is a possibility of 1 OUT PTS.</span></div>
501
- <div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="comment">// For OUTs at stores, we must also account for WU/SUs.</span></div>
502
- <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a> *svfg = fspta-&gt;svfg;</div>
503
- <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">SVFG::const_iterator</a> it = svfg-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); it != svfg-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); ++it)</div>
504
- <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; {</div>
505
- <div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a> *sn = it-&gt;second;</div>
506
- <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; </div>
507
- <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="comment">// Unique objects coming into s.</span></div>
508
- <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> incomingObjects;</div>
509
- <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a> *e : sn-&gt;<a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>())</div>
510
- <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; {</div>
511
- <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a> *ie = SVFUtil::dyn_cast&lt;IndirectSVFGEdge&gt;(e);</div>
512
- <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">if</span> (!ie) <span class="keywordflow">continue</span>;</div>
513
- <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : ie-&gt;<a class="code" href="classSVF_1_1IndirectSVFGEdge.html#a30aca718d25924f1babdf348bb0ace71">getPointsTo</a>()) incomingObjects.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(o);</div>
514
- <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; }</div>
515
- <div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; </div>
516
- <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; _PotentialNumOfVarHaveINOUTPts[IN] += incomingObjects.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div>
517
- <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; </div>
518
- <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a> *store = SVFUtil::dyn_cast&lt;StoreSVFGNode&gt;(sn))</div>
519
- <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; {</div>
520
- <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a> = store-&gt;getPAGDstNodeID();</div>
521
- <div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="comment">// Reuse incomingObjects; what&#39;s already in there will be propagated forwarded</span></div>
522
- <div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="comment">// as a WU/SU, and what&#39;s not (first defined at the store), will be added.</span></div>
523
- <div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : fspta-&gt;ander-&gt;getPts(<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>)) incomingObjects.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(o);</div>
524
- <div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; </div>
525
- <div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; _PotentialNumOfVarHaveINOUTPts[OUT] += incomingObjects.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div>
526
- <div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; }</div>
527
- <div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; }</div>
528
- <div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;}</div>
529
- <div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; </div>
530
- <div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveStat.html#a81785227a688389c68171a1fbd55fa9b"> 476</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a81785227a688389c68171a1fbd55fa9b">FlowSensitiveStat::statAddrVarPtsSize</a>()</div>
531
- <div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;{</div>
532
- <div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; SVFG::SVFGNodeIDToNodeMapTy::const_iterator it = fspta-&gt;svfg-&gt;begin();</div>
533
- <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; SVFG::SVFGNodeIDToNodeMapTy::const_iterator eit = fspta-&gt;svfg-&gt;end();</div>
534
- <div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div>
535
- <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; {</div>
536
- <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = it-&gt;second;</div>
537
- <div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store = SVFUtil::dyn_cast&lt;StoreSVFGNode&gt;(node))</div>
538
- <div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; {</div>
539
- <div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; calculateAddrVarPts(store-&gt;getPAGDstNodeID(), store);</div>
540
- <div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; }</div>
541
- <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; }</div>
542
- <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;}</div>
543
- <div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; </div>
544
- <div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveStat.html#a04466753c771238c6e1cc57964061dce"> 493</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a04466753c771238c6e1cc57964061dce">FlowSensitiveStat::calculateAddrVarPts</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> pointer, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* svfg_node)</div>
545
- <div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;{</div>
546
- <div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; pts = fspta-&gt;getPts(pointer);</div>
547
- <div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; _NumOfAddrTakeVar += pts.<a class="code" href="classSVF_1_1PointsTo.html#aa0d4ee196b91fce626f3f15bcc5599e4">count</a>();</div>
548
- <div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ptsIt = pts.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>();</div>
549
- <div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ptsEit = pts.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>();</div>
550
- <div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">for</span> (; ptsIt != ptsEit; ++ptsIt)</div>
551
- <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; {</div>
552
- <div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd = *ptsIt;</div>
553
- <div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; </div>
554
- <div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; cpts = fspta-&gt;getDFOutPtsSet(svfg_node, ptd);</div>
555
- <div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; _AvgAddrTakenVarPtsSize += cpts.<a class="code" href="classSVF_1_1PointsTo.html#aa0d4ee196b91fce626f3f15bcc5599e4">count</a>();</div>
556
- <div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">if</span> (cpts.<a class="code" href="classSVF_1_1PointsTo.html#aa0d4ee196b91fce626f3f15bcc5599e4">count</a>() &gt; _MaxAddrTakenVarPts)</div>
557
- <div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; _MaxAddrTakenVarPts = cpts.<a class="code" href="classSVF_1_1PointsTo.html#aa0d4ee196b91fce626f3f15bcc5599e4">count</a>();</div>
558
- <div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; }</div>
559
- <div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;}</div>
329
+ <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="classSVF_1_1SVFStat.html#a178fcefed6ffffc78bbe9b23e0e1babe">PTAStat::printStat</a>(<span class="stringliteral">&quot;Flow-Sensitive Pointer Analysis Statistics&quot;</span>);</div>
330
+ <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;}</div>
331
+ <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; </div>
332
+ <div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveStat.html#a36f7be42772b2df6f7594c51b7dc4770"> 270</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a36f7be42772b2df6f7594c51b7dc4770">FlowSensitiveStat::statNullPtr</a>()</div>
333
+ <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;{</div>
334
+ <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; _NumOfNullPtr = 0;</div>
335
+ <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> iter = fspta-&gt;getPAG()-&gt;begin(), eiter = fspta-&gt;getPAG()-&gt;end();</div>
336
+ <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; iter != eiter; ++iter)</div>
337
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; {</div>
338
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> pagNodeId = iter-&gt;first;</div>
339
+ <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = iter-&gt;second;</div>
340
+ <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>&amp; inComingStore = pagNode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a76964ef7d4842a469d7720881499d8a6">getIncomingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>);</div>
341
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>&amp; outGoingLoad = pagNode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a927733580b47be5ffcfced44ba9fd6c3">getOutgoingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>);</div>
342
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">if</span> (inComingStore.empty()==<span class="keyword">false</span> || outGoingLoad.empty()==<span class="keyword">false</span>)</div>
343
+ <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; {</div>
344
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; pts = fspta-&gt;getPts(pagNodeId);</div>
345
+ <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">if</span>(fspta-&gt;containBlackHoleNode(pts))</div>
346
+ <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; {</div>
347
+ <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; _NumOfConstantPtr++;</div>
348
+ <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; }</div>
349
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">if</span>(fspta-&gt;containConstantNode(pts))</div>
350
+ <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; {</div>
351
+ <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; _NumOfBlackholePtr++;</div>
352
+ <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div>
353
+ <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">if</span>(pts.<a class="code" href="classSVF_1_1PointsTo.html#a13746982a11d0cab57e5919d53bfbec8">empty</a>())</div>
354
+ <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; {</div>
355
+ <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
356
+ <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; std::stringstream rawstr(str);</div>
357
+ <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span> (!SVFUtil::isa&lt;DummyValVar&gt;(pagNode) &amp;&amp; !SVFUtil::isa&lt;DummyObjVar&gt;(pagNode))</div>
358
+ <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div>
359
+ <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="comment">// if a pointer is in dead function, we do not care</span></div>
360
+ <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">if</span>(pagNode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a3a4b04027aa67278e7b1bb1ef88cf2e6">ptrInUncalledFunction</a>() == <span class="keyword">false</span>)</div>
361
+ <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; {</div>
362
+ <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; _NumOfNullPtr++;</div>
363
+ <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;##Null Pointer : (NodeID &quot;</span> &lt;&lt; pagNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()</div>
364
+ <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; &lt;&lt; <span class="stringliteral">&quot;) PtrName:&quot;</span> &lt;&lt; pagNode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>();</div>
365
+ <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2e0196e0ce547ab4a483cc6d2646b24">writeWrnMsg</a>(rawstr.str());</div>
366
+ <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div>
367
+ <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div>
368
+ <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">else</span></div>
369
+ <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; {</div>
370
+ <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; _NumOfNullPtr++;</div>
371
+ <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;##Null Pointer : (NodeID &quot;</span> &lt;&lt; pagNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
372
+ <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2e0196e0ce547ab4a483cc6d2646b24">writeWrnMsg</a>(rawstr.str());</div>
373
+ <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; }</div>
374
+ <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; }</div>
375
+ <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; }</div>
376
+ <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div>
377
+ <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;}</div>
378
+ <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; </div>
379
+ <div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveStat.html#af51e5b90f7bc52e3657a708c7bc5bb75"> 321</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af51e5b90f7bc52e3657a708c7bc5bb75">FlowSensitiveStat::statPtsSize</a>()</div>
380
+ <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;{</div>
381
+ <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="comment">// TODO: needs to be made to work for persistent.</span></div>
382
+ <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;FlowSensitive::MutDFPTDataTy&gt;(fspta-&gt;getPTDataTy()))</div>
383
+ <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {</div>
384
+ <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="comment">// stat of IN set</span></div>
385
+ <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; statInOutPtsSize(fspta-&gt;getDFInputMap(), IN);</div>
386
+ <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="comment">// stat of OUT set</span></div>
387
+ <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; statInOutPtsSize(fspta-&gt;getDFOutputMap(), OUT);</div>
388
+ <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div>
389
+ <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; </div>
390
+ <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalValidTopLvlPointers = 0;</div>
391
+ <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> topTopLvlPtsSize = 0;</div>
392
+ <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> iter = fspta-&gt;getPAG()-&gt;begin(), eiter = fspta-&gt;getPAG()-&gt;end();</div>
393
+ <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; iter != eiter; ++iter)</div>
394
+ <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; {</div>
395
+ <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node = iter-&gt;first;</div>
396
+ <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">if</span> (fspta-&gt;getPAG()-&gt;isValidTopLevelPtr(iter-&gt;second) == <span class="keyword">false</span>)</div>
397
+ <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">continue</span>;</div>
398
+ <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> size = fspta-&gt;getPts(node).count();</div>
399
+ <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; </div>
400
+ <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; totalValidTopLvlPointers++;</div>
401
+ <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; topTopLvlPtsSize+=size;</div>
402
+ <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; </div>
403
+ <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">if</span>(size &gt; _MaxPtsSize) _MaxPtsSize = size;</div>
404
+ <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; </div>
405
+ <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">if</span> (size &gt; _MaxTopLvlPtsSize) _MaxTopLvlPtsSize = size;</div>
406
+ <div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; }</div>
407
+ <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; </div>
408
+ <div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">if</span> (totalValidTopLvlPointers != 0)</div>
409
+ <div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; _AvgTopLvlPtsSize = (double)topTopLvlPtsSize/totalValidTopLvlPointers;</div>
410
+ <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; </div>
411
+ <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; _TotalPtsSize += topTopLvlPtsSize;</div>
412
+ <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalPointer = totalValidTopLvlPointers + _NumOfVarHaveINOUTPts[IN] + _NumOfVarHaveINOUTPts[OUT];</div>
413
+ <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">if</span> (totalPointer != 0)</div>
414
+ <div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; _AvgPtsSize = (double) _TotalPtsSize / totalPointer;</div>
415
+ <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;}</div>
416
+ <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; </div>
417
+ <div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveStat.html#a8ae7448f6210b6c759a33e6fc8a8cee8"> 360</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a8ae7448f6210b6c759a33e6fc8a8cee8">FlowSensitiveStat::statInOutPtsSize</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a55d45e82ea3d338114e50da877bcfb75">DFInOutMap</a>&amp; data, <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71">ENUM_INOUT</a> inOrOut)</div>
418
+ <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;{</div>
419
+ <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="comment">// Get number of nodes which have IN/OUT set</span></div>
420
+ <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; _NumOfSVFGNodesHaveInOut[inOrOut] = data.size();</div>
421
+ <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; </div>
422
+ <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> inOutPtsSize = 0;</div>
423
+ <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; DFInOutMap::const_iterator it = data.begin();</div>
424
+ <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; DFInOutMap::const_iterator eit = data.end();</div>
425
+ <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div>
426
+ <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; {</div>
427
+ <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = fspta-&gt;svfg-&gt;getSVFGNode(it-&gt;first);</div>
428
+ <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; </div>
429
+ <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="comment">// Count number of SVFG nodes have IN/OUT set.</span></div>
430
+ <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;FormalINSVFGNode&gt;(node))</div>
431
+ <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; _NumOfFormalInSVFGNodesHaveInOut[inOrOut]++;</div>
432
+ <div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;FormalOUTSVFGNode&gt;(node))</div>
433
+ <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; _NumOfFormalOutSVFGNodesHaveInOut[inOrOut]++;</div>
434
+ <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ActualINSVFGNode&gt;(node))</div>
435
+ <div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; _NumOfActualInSVFGNodesHaveInOut[inOrOut]++;</div>
436
+ <div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ActualOUTSVFGNode&gt;(node))</div>
437
+ <div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; _NumOfActualOutSVFGNodesHaveInOut[inOrOut]++;</div>
438
+ <div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;LoadSVFGNode&gt;(node))</div>
439
+ <div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; _NumOfLoadSVFGNodesHaveInOut[inOrOut]++;</div>
440
+ <div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;StoreSVFGNode&gt;(node))</div>
441
+ <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; _NumOfStoreSVFGNodesHaveInOut[inOrOut]++;</div>
442
+ <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;MSSAPHISVFGNode&gt;(node))</div>
443
+ <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; _NumOfMSSAPhiSVFGNodesHaveInOut[inOrOut]++;</div>
444
+ <div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">else</span></div>
445
+ <div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;unexpected node have IN/OUT set&quot;</span>);</div>
446
+ <div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; </div>
447
+ <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="comment">/*-----------------------------------------------------*/</span></div>
448
+ <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; </div>
449
+ <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="comment">// Count SVFIR nodes and their points-to set size.</span></div>
450
+ <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a1b605e86f33e79f7d7cd88dc54f2c19e">PtsMap</a>&amp; cptsMap = it-&gt;second;</div>
451
+ <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; PtsMap::const_iterator ptsIt = cptsMap.begin();</div>
452
+ <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; PtsMap::const_iterator ptsEit = cptsMap.end();</div>
453
+ <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">for</span> (; ptsIt != ptsEit; ++ptsIt)</div>
454
+ <div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; {</div>
455
+ <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">if</span> (ptsIt-&gt;second.empty())</div>
456
+ <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; {</div>
457
+ <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; _NumOfVarHaveEmptyINOUTPts[inOrOut]++;</div>
458
+ <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">continue</span>;</div>
459
+ <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; }</div>
460
+ <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; </div>
461
+ <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> ptsNum = ptsIt-&gt;second.count(); </div>
462
+ <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; </div>
463
+ <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="comment">// Only node with non-empty points-to set are counted.</span></div>
464
+ <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; _NumOfVarHaveINOUTPts[inOrOut]++;</div>
465
+ <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; </div>
466
+ <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;FormalINSVFGNode&gt;(node))</div>
467
+ <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; _NumOfVarHaveINOUTPtsInFormalIn[inOrOut]++;</div>
468
+ <div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;FormalOUTSVFGNode&gt;(node))</div>
469
+ <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; _NumOfVarHaveINOUTPtsInFormalOut[inOrOut]++;</div>
470
+ <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ActualINSVFGNode&gt;(node))</div>
471
+ <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; _NumOfVarHaveINOUTPtsInActualIn[inOrOut]++;</div>
472
+ <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ActualOUTSVFGNode&gt;(node))</div>
473
+ <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; _NumOfVarHaveINOUTPtsInActualOut[inOrOut]++;</div>
474
+ <div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;LoadSVFGNode&gt;(node))</div>
475
+ <div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; _NumOfVarHaveINOUTPtsInLoad[inOrOut]++;</div>
476
+ <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;StoreSVFGNode&gt;(node))</div>
477
+ <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; _NumOfVarHaveINOUTPtsInStore[inOrOut]++;</div>
478
+ <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;MSSAPHISVFGNode&gt;(node))</div>
479
+ <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; _NumOfVarHaveINOUTPtsInMSSAPhi[inOrOut]++;</div>
480
+ <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">else</span></div>
481
+ <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;unexpected node have IN/OUT set&quot;</span>);</div>
482
+ <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; </div>
483
+ <div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; inOutPtsSize += ptsNum;</div>
484
+ <div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; </div>
485
+ <div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">if</span> (ptsNum &gt; _MaxInOutPtsSize[inOrOut])</div>
486
+ <div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; _MaxInOutPtsSize[inOrOut] = ptsNum;</div>
487
+ <div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; </div>
488
+ <div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">if</span> (ptsNum &gt; _MaxPtsSize) _MaxPtsSize = ptsNum;</div>
489
+ <div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; }</div>
490
+ <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div>
491
+ <div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; </div>
492
+ <div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">if</span> (_NumOfVarHaveINOUTPts[inOrOut] != 0)</div>
493
+ <div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; _AvgInOutPtsSize[inOrOut] = (double)inOutPtsSize / _NumOfVarHaveINOUTPts[inOrOut];</div>
494
+ <div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; </div>
495
+ <div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; _TotalPtsSize += inOutPtsSize;</div>
496
+ <div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; </div>
497
+ <div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="comment">// How many IN/OUT PTSs could we have *potentially* had?</span></div>
498
+ <div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="comment">// l&#39;-o-&gt;l, l&#39;&#39;-o-&gt;l, ..., means there is a possibility of 1 IN PTS.</span></div>
499
+ <div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="comment">// *p = q &amp;&amp; { o } in pts_ander(p) means there is a possibility of 1 OUT PTS.</span></div>
500
+ <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="comment">// For OUTs at stores, we must also account for WU/SUs.</span></div>
501
+ <div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a> *svfg = fspta-&gt;svfg;</div>
502
+ <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">SVFG::const_iterator</a> it = svfg-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); it != svfg-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); ++it)</div>
503
+ <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; {</div>
504
+ <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a> *sn = it-&gt;second;</div>
505
+ <div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; </div>
506
+ <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="comment">// Unique objects coming into s.</span></div>
507
+ <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> incomingObjects;</div>
508
+ <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a> *e : sn-&gt;<a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>())</div>
509
+ <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; {</div>
510
+ <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a> *ie = SVFUtil::dyn_cast&lt;IndirectSVFGEdge&gt;(e);</div>
511
+ <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">if</span> (!ie) <span class="keywordflow">continue</span>;</div>
512
+ <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : ie-&gt;<a class="code" href="classSVF_1_1IndirectSVFGEdge.html#a30aca718d25924f1babdf348bb0ace71">getPointsTo</a>()) incomingObjects.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(o);</div>
513
+ <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; }</div>
514
+ <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; </div>
515
+ <div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; _PotentialNumOfVarHaveINOUTPts[IN] += incomingObjects.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div>
516
+ <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; </div>
517
+ <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a> *store = SVFUtil::dyn_cast&lt;StoreSVFGNode&gt;(sn))</div>
518
+ <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; {</div>
519
+ <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a> = store-&gt;getPAGDstNodeID();</div>
520
+ <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="comment">// Reuse incomingObjects; what&#39;s already in there will be propagated forwarded</span></div>
521
+ <div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="comment">// as a WU/SU, and what&#39;s not (first defined at the store), will be added.</span></div>
522
+ <div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : fspta-&gt;ander-&gt;getPts(<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>)) incomingObjects.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(o);</div>
523
+ <div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; </div>
524
+ <div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; _PotentialNumOfVarHaveINOUTPts[OUT] += incomingObjects.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div>
525
+ <div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; }</div>
526
+ <div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; }</div>
527
+ <div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;}</div>
528
+ <div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; </div>
529
+ <div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveStat.html#a81785227a688389c68171a1fbd55fa9b"> 475</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a81785227a688389c68171a1fbd55fa9b">FlowSensitiveStat::statAddrVarPtsSize</a>()</div>
530
+ <div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;{</div>
531
+ <div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; SVFG::SVFGNodeIDToNodeMapTy::const_iterator it = fspta-&gt;svfg-&gt;begin();</div>
532
+ <div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; SVFG::SVFGNodeIDToNodeMapTy::const_iterator eit = fspta-&gt;svfg-&gt;end();</div>
533
+ <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div>
534
+ <div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; {</div>
535
+ <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = it-&gt;second;</div>
536
+ <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store = SVFUtil::dyn_cast&lt;StoreSVFGNode&gt;(node))</div>
537
+ <div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; {</div>
538
+ <div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; calculateAddrVarPts(store-&gt;getPAGDstNodeID(), store);</div>
539
+ <div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; }</div>
540
+ <div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; }</div>
541
+ <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;}</div>
542
+ <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; </div>
543
+ <div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveStat.html#a04466753c771238c6e1cc57964061dce"> 492</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a04466753c771238c6e1cc57964061dce">FlowSensitiveStat::calculateAddrVarPts</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> pointer, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* svfg_node)</div>
544
+ <div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;{</div>
545
+ <div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; pts = fspta-&gt;getPts(pointer);</div>
546
+ <div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; _NumOfAddrTakeVar += pts.<a class="code" href="classSVF_1_1PointsTo.html#aa0d4ee196b91fce626f3f15bcc5599e4">count</a>();</div>
547
+ <div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ptsIt = pts.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>();</div>
548
+ <div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ptsEit = pts.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>();</div>
549
+ <div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">for</span> (; ptsIt != ptsEit; ++ptsIt)</div>
550
+ <div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; {</div>
551
+ <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd = *ptsIt;</div>
552
+ <div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; </div>
553
+ <div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; cpts = fspta-&gt;getDFOutPtsSet(svfg_node, ptd);</div>
554
+ <div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; _AvgAddrTakenVarPtsSize += cpts.<a class="code" href="classSVF_1_1PointsTo.html#aa0d4ee196b91fce626f3f15bcc5599e4">count</a>();</div>
555
+ <div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">if</span> (cpts.<a class="code" href="classSVF_1_1PointsTo.html#aa0d4ee196b91fce626f3f15bcc5599e4">count</a>() &gt; _MaxAddrTakenVarPts)</div>
556
+ <div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; _MaxAddrTakenVarPts = cpts.<a class="code" href="classSVF_1_1PointsTo.html#aa0d4ee196b91fce626f3f15bcc5599e4">count</a>();</div>
557
+ <div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; }</div>
558
+ <div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;}</div>
559
+ <div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; </div>
560
560
  <div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; </div>
561
- <div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; </div>
562
561
  </div><!-- fragment --></div><!-- contents -->
563
562
  <div class="ttc" id="aclassSVF_1_1SVFValue_html_a2401b022638769f59f86ab424a189b6e"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">SVF::SVFValue::getName</a></div><div class="ttdeci">const std::string &amp; getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00243">SVFValue.h:243</a></div></div>
564
563
  <div class="ttc" id="aclassSVF_1_1SVFG_html"><div class="ttname"><a href="classSVF_1_1SVFG.html">SVF::SVFG</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00065">SVFG.h:65</a></div></div>
@@ -568,17 +567,17 @@ $(function() {
568
567
  <div class="ttc" id="aclassSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00384">GenericGraph.h:384</a></div></div>
569
568
  <div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00097">SVFType.h:97</a></div></div>
570
569
  <div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
571
- <div class="ttc" id="aclassSVF_1_1FlowSensitiveStat_html_a8ae7448f6210b6c759a33e6fc8a8cee8"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a8ae7448f6210b6c759a33e6fc8a8cee8">SVF::FlowSensitiveStat::statInOutPtsSize</a></div><div class="ttdeci">void statInOutPtsSize(const DFInOutMap &amp;data, ENUM_INOUT inOrOut)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#l00361">FlowSensitiveStat.cpp:361</a></div></div>
570
+ <div class="ttc" id="aclassSVF_1_1FlowSensitiveStat_html_a8ae7448f6210b6c759a33e6fc8a8cee8"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a8ae7448f6210b6c759a33e6fc8a8cee8">SVF::FlowSensitiveStat::statInOutPtsSize</a></div><div class="ttdeci">void statInOutPtsSize(const DFInOutMap &amp;data, ENUM_INOUT inOrOut)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#l00360">FlowSensitiveStat.cpp:360</a></div></div>
572
571
  <div class="ttc" id="aclassSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00747">SparseBitVector.h:747</a></div></div>
573
572
  <div class="ttc" id="aSVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00604">SVFType.h:604</a></div></div>
574
573
  <div class="ttc" id="aclassSVF_1_1IndirectSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1IndirectSVFGEdge.html">SVF::IndirectSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00042">SVFGEdge.h:42</a></div></div>
575
574
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a3bbaafd80dfcae6ccc82c3d8b9d303ea"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3bbaafd80dfcae6ccc82c3d8b9d303ea">SVF::SVFIR::getFieldObjNodeNum</a></div><div class="ttdeci">u32_t getFieldObjNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00325">SVFIR.h:325</a></div></div>
576
- <div class="ttc" id="aclassSVF_1_1FlowSensitiveStat_html_a04466753c771238c6e1cc57964061dce"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a04466753c771238c6e1cc57964061dce">SVF::FlowSensitiveStat::calculateAddrVarPts</a></div><div class="ttdeci">void calculateAddrVarPts(NodeID pointer, const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#l00493">FlowSensitiveStat.cpp:493</a></div></div>
575
+ <div class="ttc" id="aclassSVF_1_1FlowSensitiveStat_html_a04466753c771238c6e1cc57964061dce"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a04466753c771238c6e1cc57964061dce">SVF::FlowSensitiveStat::calculateAddrVarPts</a></div><div class="ttdeci">void calculateAddrVarPts(NodeID pointer, const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#l00492">FlowSensitiveStat.cpp:492</a></div></div>
577
576
  <div class="ttc" id="aclassSVF_1_1PointsTo_html_aa0d4ee196b91fce626f3f15bcc5599e4"><div class="ttname"><a href="classSVF_1_1PointsTo.html#aa0d4ee196b91fce626f3f15bcc5599e4">SVF::PointsTo::count</a></div><div class="ttdeci">u32_t count() const</div><div class="ttdoc">Returns number of elements.</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00111">PointsTo.cpp:111</a></div></div>
578
577
  <div class="ttc" id="aclassSVF_1_1SVFVar_html_ac2db6304ea5526fb446ae882983beeb0"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">SVF::SVFVar::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const</div><div class="ttdoc">Get/has methods of the components.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00094">SVFVariables.h:94</a></div></div>
579
578
  <div class="ttc" id="aclassSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00459">SparseBitVector.h:459</a></div></div>
580
579
  <div class="ttc" id="aclassSVF_1_1SVFStmt_html_a8cd7b6c6fd8b030b1421d95a086359f4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVF::SVFStmt::SVFStmtSetTy</a></div><div class="ttdeci">GenericNode&lt; SVFVar, SVFStmt &gt;::GEdgeSetTy SVFStmtSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00217">SVFStatements.h:217</a></div></div>
581
- <div class="ttc" id="aclassSVF_1_1FlowSensitiveStat_html_a81785227a688389c68171a1fbd55fa9b"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a81785227a688389c68171a1fbd55fa9b">SVF::FlowSensitiveStat::statAddrVarPtsSize</a></div><div class="ttdeci">void statAddrVarPtsSize()</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#l00476">FlowSensitiveStat.cpp:476</a></div></div>
580
+ <div class="ttc" id="aclassSVF_1_1FlowSensitiveStat_html_a81785227a688389c68171a1fbd55fa9b"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a81785227a688389c68171a1fbd55fa9b">SVF::FlowSensitiveStat::statAddrVarPtsSize</a></div><div class="ttdeci">void statAddrVarPtsSize()</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#l00475">FlowSensitiveStat.cpp:475</a></div></div>
582
581
  <div class="ttc" id="aclassSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00412">SymbolTableInfo.h:412</a></div></div>
583
582
  <div class="ttc" id="aclassSVF_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#l00180">GenericGraph.h:180</a></div></div>
584
583
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a8a24e0bf9f95fc1519d4013e0e82dec9"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a8a24e0bf9f95fc1519d4013e0e82dec9">SVF::SVFIR::getFieldValNodeNum</a></div><div class="ttdeci">u32_t getFieldValNodeNum() const</div><div class="ttdoc">Node and edge statistics.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00321">SVFIR.h:321</a></div></div>
@@ -586,7 +585,7 @@ $(function() {
586
585
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_a0212f3fe2f37363e8060f292c8cf7668"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a0212f3fe2f37363e8060f292c8cf7668">SVF::IRGraph::getValueNodeNum</a></div><div class="ttdeci">u32_t getValueNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00187">IRGraph.h:187</a></div></div>
587
586
  <div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
588
587
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00114">SVFIR.h:114</a></div></div>
589
- <div class="ttc" id="aclassSVF_1_1FlowSensitiveStat_html_a36f7be42772b2df6f7594c51b7dc4770"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a36f7be42772b2df6f7594c51b7dc4770">SVF::FlowSensitiveStat::statNullPtr</a></div><div class="ttdeci">void statNullPtr()</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#l00271">FlowSensitiveStat.cpp:271</a></div></div>
588
+ <div class="ttc" id="aclassSVF_1_1FlowSensitiveStat_html_a36f7be42772b2df6f7594c51b7dc4770"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a36f7be42772b2df6f7594c51b7dc4770">SVF::FlowSensitiveStat::statNullPtr</a></div><div class="ttdeci">void statNullPtr()</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#l00270">FlowSensitiveStat.cpp:270</a></div></div>
590
589
  <div class="ttc" id="aclassSVF_1_1SVFStat_html_a178fcefed6ffffc78bbe9b23e0e1babe"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a178fcefed6ffffc78bbe9b23e0e1babe">SVF::SVFStat::printStat</a></div><div class="ttdeci">virtual void printStat(std::string str=&quot;&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00066">SVFStat.cpp:66</a></div></div>
591
590
  <div class="ttc" id="aclassSVF_1_1FlowSensitiveStat_html_ab4c205136b22a13b54ceb48135730d23"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#ab4c205136b22a13b54ceb48135730d23">SVF::FlowSensitiveStat::clearStat</a></div><div class="ttdeci">void clearStat()</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#l00041">FlowSensitiveStat.cpp:41</a></div></div>
592
591
  <div class="ttc" id="aclassSVF_1_1FlowSensitiveStat_html_a55d45e82ea3d338114e50da877bcfb75"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a55d45e82ea3d338114e50da877bcfb75">SVF::FlowSensitiveStat::DFInOutMap</a></div><div class="ttdeci">FlowSensitive::DFInOutMap DFInOutMap</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00088">WPAStat.h:88</a></div></div>
@@ -595,10 +594,9 @@ $(function() {
595
594
  <div class="ttc" id="aclassSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
596
595
  <div class="ttc" id="aclassSVF_1_1GenericNode_html_afc8b5f86d7795b6a0dfc0687d942d79b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">SVF::GenericNode::getInEdges</a></div><div class="ttdeci">const GEdgeSetTy &amp; getInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00197">GenericGraph.h:197</a></div></div>
597
596
  <div class="ttc" id="aFlowSensitive_8h_html"><div class="ttname"><a href="FlowSensitive_8h.html">FlowSensitive.h</a></div></div>
598
- <div class="ttc" id="aclassSVF_1_1FlowSensitiveStat_html_af51e5b90f7bc52e3657a708c7bc5bb75"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#af51e5b90f7bc52e3657a708c7bc5bb75">SVF::FlowSensitiveStat::statPtsSize</a></div><div class="ttdeci">void statPtsSize()</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#l00322">FlowSensitiveStat.cpp:322</a></div></div>
597
+ <div class="ttc" id="aclassSVF_1_1FlowSensitiveStat_html_af51e5b90f7bc52e3657a708c7bc5bb75"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#af51e5b90f7bc52e3657a708c7bc5bb75">SVF::FlowSensitiveStat::statPtsSize</a></div><div class="ttdeci">void statPtsSize()</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#l00321">FlowSensitiveStat.cpp:321</a></div></div>
599
598
  <div class="ttc" id="aclassSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00380">GenericGraph.h:380</a></div></div>
600
599
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_a82528aff779ccf8f723f57507dd2d991"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a82528aff779ccf8f723f57507dd2d991">SVF::IRGraph::getObjectNodeNum</a></div><div class="ttdeci">u32_t getObjectNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00191">IRGraph.h:191</a></div></div>
601
- <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
602
600
  <div class="ttc" id="aclassSVF_1_1SVFVar_html_a927733580b47be5ffcfced44ba9fd6c3"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a927733580b47be5ffcfced44ba9fd6c3">SVF::SVFVar::getOutgoingEdges</a></div><div class="ttdeci">SVFStmt::SVFStmtSetTy &amp; getOutgoingEdges(SVFStmt::PEDGEK kind)</div><div class="ttdoc">Get outgoing SVFIR statements (edges)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00153">SVFVariables.h:153</a></div></div>
603
601
  <div class="ttc" id="aclassSVF_1_1FlowSensitiveStat_html_ab11996ab5606f51c977b9b1385c13d71"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71">SVF::FlowSensitiveStat::ENUM_INOUT</a></div><div class="ttdeci">ENUM_INOUT</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00105">WPAStat.h:105</a></div></div>
604
602
  <div class="ttc" id="anamespaceSVF_html_ad11fe2412b2182365a662ff0e4639b48"><div class="ttname"><a href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SVF::SymID</a></div><div class="ttdeci">unsigned SymID</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00058">SVFType.h:58</a></div></div>