svf-tools 1.0.786 → 1.0.788

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 (299) hide show
  1. package/SVF-doxygen/html/CDGBuilder_8cpp_source.html +128 -122
  2. package/SVF-doxygen/html/CDGBuilder_8h_source.html +5 -5
  3. package/SVF-doxygen/html/CFBasicBlockGBuilder_8cpp.html +92 -0
  4. package/SVF-doxygen/html/CFBasicBlockGBuilder_8cpp_source.html +291 -0
  5. package/SVF-doxygen/html/CFBasicBlockGBuilder_8h.html +98 -0
  6. package/SVF-doxygen/html/CFBasicBlockGBuilder_8h_source.html +154 -0
  7. package/SVF-doxygen/html/CFBasicBlockG_8cpp_source.html +49 -184
  8. package/SVF-doxygen/html/CFBasicBlockG_8h.html +0 -2
  9. package/SVF-doxygen/html/CFBasicBlockG_8h_source.html +509 -506
  10. package/SVF-doxygen/html/CHG_8cpp.html +2 -2
  11. package/SVF-doxygen/html/CHG_8cpp_source.html +3 -3
  12. package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +2 -2
  14. package/SVF-doxygen/html/SVFG_8cpp_source.html +1 -1
  15. package/SVF-doxygen/html/SVFUtil_8cpp_source.html +2 -2
  16. package/SVF-doxygen/html/SVFValue_8cpp_source.html +144 -141
  17. package/SVF-doxygen/html/SVFValue_8h_source.html +9 -9
  18. package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +2 -2
  19. package/SVF-doxygen/html/VFG_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/WTO_8h_source.html +424 -372
  21. package/SVF-doxygen/html/classSVF_1_1CDGBuilder.html +119 -113
  22. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGBuilder-members.html +4 -1
  23. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGBuilder.html +302 -124
  24. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO-members.html +48 -47
  25. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO.html +306 -236
  26. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTOCycle.html +1 -1
  27. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTONode.html +1 -1
  28. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder-members.html +15 -14
  29. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html +90 -44
  30. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO_1_1WTOCycleDepthBuilder.html +26 -26
  31. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGraph-members.html +32 -36
  32. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGraph.html +121 -254
  33. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockNode-members.html +46 -47
  34. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockNode.html +185 -225
  35. package/SVF-doxygen/html/classSVF_1_1CHGraph.html +2 -2
  36. package/SVF-doxygen/html/classSVF_1_1MemSSA.html +1 -1
  37. package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +2 -2
  38. package/SVF-doxygen/html/classSVF_1_1SVFBasicBlock.html +63 -63
  39. package/SVF-doxygen/html/classSVF_1_1SVFFunction.html +28 -28
  40. package/SVF-doxygen/html/classSVF_1_1SVFG.html +1 -1
  41. package/SVF-doxygen/html/classSVF_1_1SVFInstruction.html +4 -4
  42. package/SVF-doxygen/html/classSVF_1_1SVFLoopAndDomInfo.html +25 -22
  43. package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +2 -2
  44. package/SVF-doxygen/html/classSVF_1_1VFG.html +1 -1
  45. package/SVF-doxygen/html/dir_445b24f35a8ddd2effd3d23ee1278e0a.html +2 -0
  46. package/SVF-doxygen/html/dir_fee120689dee99ef16f8bfcaa7a76083.html +2 -0
  47. package/SVF-doxygen/html/files.html +35 -33
  48. package/SVF-doxygen/html/functions.html +3 -4
  49. package/SVF-doxygen/html/functions_a.html +19 -10
  50. package/SVF-doxygen/html/functions_b.html +6 -6
  51. package/SVF-doxygen/html/functions_c.html +29 -29
  52. package/SVF-doxygen/html/functions_func.html +15 -6
  53. package/SVF-doxygen/html/functions_func_b.html +1 -1
  54. package/SVF-doxygen/html/functions_func_c.html +21 -21
  55. package/SVF-doxygen/html/functions_func_g.html +13 -14
  56. package/SVF-doxygen/html/functions_func_h.html +5 -8
  57. package/SVF-doxygen/html/functions_func_i.html +10 -7
  58. package/SVF-doxygen/html/functions_func_s.html +22 -25
  59. package/SVF-doxygen/html/functions_func_t.html +1 -1
  60. package/SVF-doxygen/html/functions_g.html +10 -11
  61. package/SVF-doxygen/html/functions_h.html +3 -6
  62. package/SVF-doxygen/html/functions_i.html +10 -7
  63. package/SVF-doxygen/html/functions_l.html +3 -3
  64. package/SVF-doxygen/html/functions_n.html +4 -4
  65. package/SVF-doxygen/html/functions_o.html +19 -19
  66. package/SVF-doxygen/html/functions_p.html +21 -17
  67. package/SVF-doxygen/html/functions_r.html +1 -1
  68. package/SVF-doxygen/html/functions_s.html +14 -17
  69. package/SVF-doxygen/html/functions_t.html +4 -4
  70. package/SVF-doxygen/html/functions_v.html +3 -3
  71. package/SVF-doxygen/html/functions_vars.html +3 -4
  72. package/SVF-doxygen/html/functions_w.html +7 -7
  73. package/SVF-doxygen/html/namespaceSVF.html +1 -1
  74. package/SVF-doxygen/html/namespaceSVF_1_1SVFUtil.html +2 -2
  75. package/SVF-doxygen/html/search/all_0.js +123 -124
  76. package/SVF-doxygen/html/search/all_1.js +479 -476
  77. package/SVF-doxygen/html/search/all_10.js +324 -324
  78. package/SVF-doxygen/html/search/all_11.js +224 -224
  79. package/SVF-doxygen/html/search/all_12.js +541 -542
  80. package/SVF-doxygen/html/search/all_13.js +190 -190
  81. package/SVF-doxygen/html/search/all_14.js +67 -67
  82. package/SVF-doxygen/html/search/all_15.js +170 -170
  83. package/SVF-doxygen/html/search/all_16.js +63 -63
  84. package/SVF-doxygen/html/search/all_17.js +1 -1
  85. package/SVF-doxygen/html/search/all_18.js +1 -1
  86. package/SVF-doxygen/html/search/all_19.js +11 -11
  87. package/SVF-doxygen/html/search/all_1a.js +172 -172
  88. package/SVF-doxygen/html/search/all_2.js +167 -167
  89. package/SVF-doxygen/html/search/all_3.js +642 -640
  90. package/SVF-doxygen/html/search/all_4.js +233 -233
  91. package/SVF-doxygen/html/search/all_5.js +121 -121
  92. package/SVF-doxygen/html/search/all_6.js +225 -225
  93. package/SVF-doxygen/html/search/all_7.js +1038 -1038
  94. package/SVF-doxygen/html/search/all_8.js +194 -195
  95. package/SVF-doxygen/html/search/all_9.js +608 -607
  96. package/SVF-doxygen/html/search/all_a.js +46 -46
  97. package/SVF-doxygen/html/search/all_b.js +26 -26
  98. package/SVF-doxygen/html/search/all_c.js +116 -116
  99. package/SVF-doxygen/html/search/all_d.js +196 -196
  100. package/SVF-doxygen/html/search/all_e.js +207 -207
  101. package/SVF-doxygen/html/search/all_f.js +116 -116
  102. package/SVF-doxygen/html/search/classes_0.js +26 -26
  103. package/SVF-doxygen/html/search/classes_1.js +9 -9
  104. package/SVF-doxygen/html/search/classes_10.js +73 -73
  105. package/SVF-doxygen/html/search/classes_11.js +15 -15
  106. package/SVF-doxygen/html/search/classes_12.js +2 -2
  107. package/SVF-doxygen/html/search/classes_13.js +10 -10
  108. package/SVF-doxygen/html/search/classes_14.js +14 -14
  109. package/SVF-doxygen/html/search/classes_15.js +1 -1
  110. package/SVF-doxygen/html/search/classes_2.js +80 -80
  111. package/SVF-doxygen/html/search/classes_3.js +37 -37
  112. package/SVF-doxygen/html/search/classes_4.js +9 -9
  113. package/SVF-doxygen/html/search/classes_5.js +28 -28
  114. package/SVF-doxygen/html/search/classes_6.js +104 -104
  115. package/SVF-doxygen/html/search/classes_7.js +33 -33
  116. package/SVF-doxygen/html/search/classes_8.js +56 -56
  117. package/SVF-doxygen/html/search/classes_9.js +1 -1
  118. package/SVF-doxygen/html/search/classes_a.js +12 -12
  119. package/SVF-doxygen/html/search/classes_b.js +29 -29
  120. package/SVF-doxygen/html/search/classes_c.js +6 -6
  121. package/SVF-doxygen/html/search/classes_d.js +18 -18
  122. package/SVF-doxygen/html/search/classes_e.js +36 -36
  123. package/SVF-doxygen/html/search/classes_f.js +25 -25
  124. package/SVF-doxygen/html/search/defines_0.js +3 -3
  125. package/SVF-doxygen/html/search/defines_1.js +2 -2
  126. package/SVF-doxygen/html/search/defines_2.js +30 -30
  127. package/SVF-doxygen/html/search/defines_3.js +21 -21
  128. package/SVF-doxygen/html/search/defines_4.js +2 -2
  129. package/SVF-doxygen/html/search/defines_5.js +4 -4
  130. package/SVF-doxygen/html/search/defines_6.js +2 -2
  131. package/SVF-doxygen/html/search/defines_7.js +5 -5
  132. package/SVF-doxygen/html/search/defines_8.js +11 -11
  133. package/SVF-doxygen/html/search/defines_9.js +9 -9
  134. package/SVF-doxygen/html/search/defines_a.js +2 -2
  135. package/SVF-doxygen/html/search/defines_b.js +1 -1
  136. package/SVF-doxygen/html/search/defines_c.js +3 -3
  137. package/SVF-doxygen/html/search/defines_d.js +2 -2
  138. package/SVF-doxygen/html/search/defines_e.js +7 -7
  139. package/SVF-doxygen/html/search/defines_f.js +3 -3
  140. package/SVF-doxygen/html/search/enums_0.js +3 -3
  141. package/SVF-doxygen/html/search/enums_1.js +2 -2
  142. package/SVF-doxygen/html/search/enums_10.js +1 -1
  143. package/SVF-doxygen/html/search/enums_11.js +1 -1
  144. package/SVF-doxygen/html/search/enums_2.js +8 -8
  145. package/SVF-doxygen/html/search/enums_3.js +1 -1
  146. package/SVF-doxygen/html/search/enums_4.js +3 -3
  147. package/SVF-doxygen/html/search/enums_5.js +1 -1
  148. package/SVF-doxygen/html/search/enums_6.js +2 -2
  149. package/SVF-doxygen/html/search/enums_7.js +2 -2
  150. package/SVF-doxygen/html/search/enums_8.js +4 -4
  151. package/SVF-doxygen/html/search/enums_9.js +1 -1
  152. package/SVF-doxygen/html/search/enums_a.js +1 -1
  153. package/SVF-doxygen/html/search/enums_b.js +7 -7
  154. package/SVF-doxygen/html/search/enums_c.js +1 -1
  155. package/SVF-doxygen/html/search/enums_d.js +4 -4
  156. package/SVF-doxygen/html/search/enums_e.js +2 -2
  157. package/SVF-doxygen/html/search/enums_f.js +4 -4
  158. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  159. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  160. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  161. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  162. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  163. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  164. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  165. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  166. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  167. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  168. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  169. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  170. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  171. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  172. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  173. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  174. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  175. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  176. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  177. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  178. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  179. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  180. package/SVF-doxygen/html/search/files_0.js +13 -13
  181. package/SVF-doxygen/html/search/files_1.js +7 -7
  182. package/SVF-doxygen/html/search/files_10.js +8 -8
  183. package/SVF-doxygen/html/search/files_11.js +8 -8
  184. package/SVF-doxygen/html/search/files_12.js +2 -2
  185. package/SVF-doxygen/html/search/files_2.js +55 -53
  186. package/SVF-doxygen/html/search/files_3.js +14 -14
  187. package/SVF-doxygen/html/search/files_4.js +5 -5
  188. package/SVF-doxygen/html/search/files_5.js +13 -13
  189. package/SVF-doxygen/html/search/files_6.js +9 -9
  190. package/SVF-doxygen/html/search/files_7.js +14 -14
  191. package/SVF-doxygen/html/search/files_8.js +13 -13
  192. package/SVF-doxygen/html/search/files_9.js +18 -18
  193. package/SVF-doxygen/html/search/files_a.js +3 -3
  194. package/SVF-doxygen/html/search/files_b.js +2 -2
  195. package/SVF-doxygen/html/search/files_c.js +20 -20
  196. package/SVF-doxygen/html/search/files_d.js +4 -4
  197. package/SVF-doxygen/html/search/files_e.js +62 -62
  198. package/SVF-doxygen/html/search/files_f.js +8 -8
  199. package/SVF-doxygen/html/search/functions_0.js +12 -12
  200. package/SVF-doxygen/html/search/functions_1.js +359 -356
  201. package/SVF-doxygen/html/search/functions_10.js +140 -140
  202. package/SVF-doxygen/html/search/functions_11.js +138 -138
  203. package/SVF-doxygen/html/search/functions_12.js +276 -277
  204. package/SVF-doxygen/html/search/functions_13.js +58 -58
  205. package/SVF-doxygen/html/search/functions_14.js +39 -39
  206. package/SVF-doxygen/html/search/functions_15.js +71 -71
  207. package/SVF-doxygen/html/search/functions_16.js +32 -32
  208. package/SVF-doxygen/html/search/functions_17.js +3 -3
  209. package/SVF-doxygen/html/search/functions_18.js +172 -172
  210. package/SVF-doxygen/html/search/functions_2.js +86 -86
  211. package/SVF-doxygen/html/search/functions_3.js +257 -257
  212. package/SVF-doxygen/html/search/functions_4.js +75 -75
  213. package/SVF-doxygen/html/search/functions_5.js +53 -53
  214. package/SVF-doxygen/html/search/functions_6.js +59 -59
  215. package/SVF-doxygen/html/search/functions_7.js +849 -849
  216. package/SVF-doxygen/html/search/functions_8.js +146 -147
  217. package/SVF-doxygen/html/search/functions_9.js +426 -425
  218. package/SVF-doxygen/html/search/functions_a.js +30 -30
  219. package/SVF-doxygen/html/search/functions_b.js +2 -2
  220. package/SVF-doxygen/html/search/functions_c.js +26 -26
  221. package/SVF-doxygen/html/search/functions_d.js +77 -77
  222. package/SVF-doxygen/html/search/functions_e.js +35 -35
  223. package/SVF-doxygen/html/search/functions_f.js +56 -56
  224. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  225. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  226. package/SVF-doxygen/html/search/related_0.js +2 -2
  227. package/SVF-doxygen/html/search/related_1.js +2 -2
  228. package/SVF-doxygen/html/search/related_2.js +2 -2
  229. package/SVF-doxygen/html/search/related_3.js +2 -2
  230. package/SVF-doxygen/html/search/related_4.js +2 -2
  231. package/SVF-doxygen/html/search/related_5.js +1 -1
  232. package/SVF-doxygen/html/search/related_6.js +2 -2
  233. package/SVF-doxygen/html/search/related_7.js +4 -4
  234. package/SVF-doxygen/html/search/related_8.js +2 -2
  235. package/SVF-doxygen/html/search/related_9.js +4 -4
  236. package/SVF-doxygen/html/search/related_a.js +19 -19
  237. package/SVF-doxygen/html/search/related_b.js +4 -4
  238. package/SVF-doxygen/html/search/related_c.js +1 -1
  239. package/SVF-doxygen/html/search/related_d.js +11 -11
  240. package/SVF-doxygen/html/search/related_e.js +2 -2
  241. package/SVF-doxygen/html/search/related_f.js +2 -2
  242. package/SVF-doxygen/html/search/typedefs_0.js +18 -18
  243. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  244. package/SVF-doxygen/html/search/typedefs_10.js +61 -61
  245. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  246. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  247. package/SVF-doxygen/html/search/typedefs_13.js +35 -35
  248. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  249. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  250. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  251. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  252. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  253. package/SVF-doxygen/html/search/typedefs_6.js +55 -55
  254. package/SVF-doxygen/html/search/typedefs_7.js +42 -42
  255. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  256. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  257. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  258. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  259. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  260. package/SVF-doxygen/html/search/typedefs_d.js +15 -15
  261. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  262. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  263. package/SVF-doxygen/html/search/variables_0.js +151 -152
  264. package/SVF-doxygen/html/search/variables_1.js +75 -75
  265. package/SVF-doxygen/html/search/variables_10.js +97 -97
  266. package/SVF-doxygen/html/search/variables_11.js +46 -46
  267. package/SVF-doxygen/html/search/variables_12.js +92 -92
  268. package/SVF-doxygen/html/search/variables_13.js +75 -75
  269. package/SVF-doxygen/html/search/variables_14.js +14 -14
  270. package/SVF-doxygen/html/search/variables_15.js +48 -48
  271. package/SVF-doxygen/html/search/variables_16.js +9 -9
  272. package/SVF-doxygen/html/search/variables_17.js +1 -1
  273. package/SVF-doxygen/html/search/variables_18.js +2 -2
  274. package/SVF-doxygen/html/search/variables_2.js +37 -37
  275. package/SVF-doxygen/html/search/variables_3.js +142 -142
  276. package/SVF-doxygen/html/search/variables_4.js +55 -55
  277. package/SVF-doxygen/html/search/variables_5.js +39 -39
  278. package/SVF-doxygen/html/search/variables_6.js +66 -66
  279. package/SVF-doxygen/html/search/variables_7.js +33 -33
  280. package/SVF-doxygen/html/search/variables_8.js +7 -7
  281. package/SVF-doxygen/html/search/variables_9.js +77 -77
  282. package/SVF-doxygen/html/search/variables_a.js +4 -4
  283. package/SVF-doxygen/html/search/variables_b.js +10 -10
  284. package/SVF-doxygen/html/search/variables_c.js +45 -45
  285. package/SVF-doxygen/html/search/variables_d.js +56 -56
  286. package/SVF-doxygen/html/search/variables_e.js +123 -123
  287. package/SVF-doxygen/html/search/variables_f.js +30 -30
  288. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01SVF_1_1CFBasicBlockGraph_01_5_01_4.html +93 -40
  289. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CFBasicBlockNode_01_5_01_4_01_4.html +1 -1
  290. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFBasicBlockGraph_01_5_01_4.html +2 -2
  291. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFBasicBlockNode_01_5_01_4.html +1 -1
  292. package/package.json +1 -1
  293. package/svf/include/AbstractExecution/WTO.h +56 -10
  294. package/svf/include/Graphs/CFBasicBlockG.h +62 -50
  295. package/svf/include/Util/CFBasicBlockGBuilder.h +59 -0
  296. package/svf/lib/Graphs/CFBasicBlockG.cpp +0 -111
  297. package/svf/lib/SVFIR/SVFValue.cpp +2 -0
  298. package/svf/lib/Util/CDGBuilder.cpp +5 -0
  299. package/svf/lib/Util/CFBasicBlockGBuilder.cpp +183 -0
@@ -220,14 +220,14 @@ Private Attributes</h2></td></tr>
220
220
  <p>start here </p>
221
221
  <p>Start here </p>
222
222
 
223
- <p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#l00076">76</a> of file <a class="el" href="CDGBuilder_8cpp_source.html">CDGBuilder.cpp</a>.</p>
224
- <div class="fragment"><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div>
225
- <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CDGBuilder.html#abd60cdbb947fe63accc2fea3683b81e4">_controlDG</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a8c8d16036008f87c7811586047599858">getTotalNodeNum</a>() &gt; 0)</div>
226
- <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span>;</div>
227
- <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">PAG</a> *pag = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>();</div>
228
- <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="classSVF_1_1CDGBuilder.html#aa57921c1c3002e7e35cfb6b113cd8031">buildControlDependence</a>(pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">getModule</a>());</div>
229
- <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="classSVF_1_1CDGBuilder.html#ab56c8f3ab29a907d420622dd8e933f0d">buildICFGNodeControlMap</a>();</div>
230
- <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;}</div>
223
+ <p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#l00081">81</a> of file <a class="el" href="CDGBuilder_8cpp_source.html">CDGBuilder.cpp</a>.</p>
224
+ <div class="fragment"><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div>
225
+ <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CDGBuilder.html#abd60cdbb947fe63accc2fea3683b81e4">_controlDG</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a8c8d16036008f87c7811586047599858">getTotalNodeNum</a>() &gt; 0)</div>
226
+ <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span>;</div>
227
+ <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">PAG</a> *pag = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>();</div>
228
+ <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="classSVF_1_1CDGBuilder.html#aa57921c1c3002e7e35cfb6b113cd8031">buildControlDependence</a>(pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">getModule</a>());</div>
229
+ <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="classSVF_1_1CDGBuilder.html#ab56c8f3ab29a907d420622dd8e933f0d">buildICFGNodeControlMap</a>();</div>
230
+ <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div>
231
231
  </div><!-- fragment -->
232
232
  </div>
233
233
  </div>
@@ -256,37 +256,37 @@ Private Attributes</h2></td></tr>
256
256
  </dd>
257
257
  </dl>
258
258
 
259
- <p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#l00120">120</a> of file <a class="el" href="CDGBuilder_8cpp_source.html">CDGBuilder.cpp</a>.</p>
260
- <div class="fragment"><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;{</div>
261
- <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;svfFun: *svfgModule)</div>
262
- <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div>
263
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVFUtil::isExtCall</a>(svfFun)) <span class="keywordflow">continue</span>;</div>
264
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// extract basic block edges to be processed</span></div>
265
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFBasicBlock *, std::vector&lt;const SVFBasicBlock *&gt;</a>&gt; BBS;</div>
266
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="classSVF_1_1CDGBuilder.html#ac0b9dae9bae020608e293b1288bb988b">extractBBS</a>(svfFun, BBS);</div>
267
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
268
- <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: BBS)</div>
269
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div>
270
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *pred = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first;</div>
271
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">// for each bb pair</span></div>
272
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *succ: <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second)</div>
273
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div>
274
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *SVFLCA = <span class="keyword">const_cast&lt;</span><a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<span class="keyword">&gt;</span>(svfFun)-&gt;</div>
275
- <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; getLoopAndDomInfo()-&gt;findNearestCommonPDominator(pred, succ);</div>
276
- <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; std::vector&lt;const SVFBasicBlock *&gt; tgtNodes;</div>
277
- <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span> (SVFLCA == pred) tgtNodes.push_back(SVFLCA);</div>
278
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="comment">// from succ to LCA</span></div>
279
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="classSVF_1_1CDGBuilder.html#a6a7139139b2f0124e1729036490886db">extractNodesBetweenPdomNodes</a>(succ, SVFLCA, tgtNodes);</div>
280
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; </div>
281
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> pos = <a class="code" href="classSVF_1_1CDGBuilder.html#af65f6090142a61d13e1510c771baaeb1">getBBSuccessorBranchID</a>(pred, succ);</div>
282
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *bb: tgtNodes)</div>
283
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div>
284
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="classSVF_1_1CDGBuilder.html#a55d97ecc3c08999d54f11ba051db3abf">updateMap</a>(pred, bb, pos);</div>
285
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div>
286
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
287
- <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div>
288
- <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div>
289
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;}</div>
259
+ <p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#l00125">125</a> of file <a class="el" href="CDGBuilder_8cpp_source.html">CDGBuilder.cpp</a>.</p>
260
+ <div class="fragment"><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;{</div>
261
+ <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;svfFun: *svfgModule)</div>
262
+ <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div>
263
+ <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVFUtil::isExtCall</a>(svfFun)) <span class="keywordflow">continue</span>;</div>
264
+ <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="comment">// extract basic block edges to be processed</span></div>
265
+ <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFBasicBlock *, std::vector&lt;const SVFBasicBlock *&gt;</a>&gt; BBS;</div>
266
+ <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="classSVF_1_1CDGBuilder.html#ac0b9dae9bae020608e293b1288bb988b">extractBBS</a>(svfFun, BBS);</div>
267
+ <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; </div>
268
+ <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: BBS)</div>
269
+ <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div>
270
+ <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *pred = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first;</div>
271
+ <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="comment">// for each bb pair</span></div>
272
+ <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *succ: <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second)</div>
273
+ <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {</div>
274
+ <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *SVFLCA = <span class="keyword">const_cast&lt;</span><a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<span class="keyword">&gt;</span>(svfFun)-&gt;</div>
275
+ <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; getLoopAndDomInfo()-&gt;findNearestCommonPDominator(pred, succ);</div>
276
+ <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; std::vector&lt;const SVFBasicBlock *&gt; tgtNodes;</div>
277
+ <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span> (SVFLCA == pred) tgtNodes.push_back(SVFLCA);</div>
278
+ <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="comment">// from succ to LCA</span></div>
279
+ <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="classSVF_1_1CDGBuilder.html#a6a7139139b2f0124e1729036490886db">extractNodesBetweenPdomNodes</a>(succ, SVFLCA, tgtNodes);</div>
280
+ <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
281
+ <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> pos = <a class="code" href="classSVF_1_1CDGBuilder.html#af65f6090142a61d13e1510c771baaeb1">getBBSuccessorBranchID</a>(pred, succ);</div>
282
+ <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *bb: tgtNodes)</div>
283
+ <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div>
284
+ <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="classSVF_1_1CDGBuilder.html#a55d97ecc3c08999d54f11ba051db3abf">updateMap</a>(pred, bb, pos);</div>
285
+ <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div>
286
+ <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div>
287
+ <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div>
288
+ <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div>
289
+ <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;}</div>
290
290
  </div><!-- fragment -->
291
291
  </div>
292
292
  </div>
@@ -308,36 +308,36 @@ Private Attributes</h2></td></tr>
308
308
  <p>build map at icfg node level </p>
309
309
  <p>Build map at <a class="el" href="classSVF_1_1ICFG.html">ICFG</a> node level </p>
310
310
 
311
- <p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#l00176">176</a> of file <a class="el" href="CDGBuilder_8cpp_source.html">CDGBuilder.cpp</a>.</p>
312
- <div class="fragment"><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;{</div>
313
- <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="classSVF_1_1ICFG.html">ICFG</a> *icfg = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>();</div>
314
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;it: <a class="code" href="classSVF_1_1CDGBuilder.html#ab24b985813e362f9470593e615c4c613">_svfcontrolMap</a>)</div>
315
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div>
316
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;it2: it.second)</div>
317
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div>
318
- <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *controllingBB = it2.first;</div>
319
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="comment">// const ICFGNode *controlNode = _bbToNode[it.first].first;</span></div>
320
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="comment">// if(!controlNode) continue;</span></div>
321
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a> *terminator = it.first-&gt;getInstructionList().back();</div>
322
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">if</span> (!terminator) <span class="keywordflow">continue</span>;</div>
323
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *controlNode = icfg-&gt;<a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(terminator);</div>
324
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span> (!controlNode) <span class="keywordflow">continue</span>;</div>
325
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">// controlNode control at pos</span></div>
326
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;inst: *controllingBB)</div>
327
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; {</div>
328
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *controllee = icfg-&gt;<a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(inst);</div>
329
- <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="classSVF_1_1CDGBuilder.html#a0774da5d81fe9e454800c63f2ada4a00">_nodeControlMap</a>[controlNode][controllee].insert(it2.second.begin(), it2.second.end());</div>
330
- <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="classSVF_1_1CDGBuilder.html#ae62cf8bbe09fcccbace46375f5b043f8">_nodeDependentOnMap</a>[controllee][controlNode].insert(it2.second.begin(), it2.second.end());</div>
331
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> pos: it2.second)</div>
332
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div>
333
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="classSVF_1_1CDGBuilder.html#abd60cdbb947fe63accc2fea3683b81e4">_controlDG</a>-&gt;<a class="code" href="classSVF_1_1CDG.html#a71ccf9520bb222dc0779716e213aabf2">addCDGEdgeFromSrcDst</a>(controlNode, controllee,</div>
334
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; SVFUtil::dyn_cast&lt;IntraICFGNode&gt;(controlNode)-&gt;getInst(),</div>
335
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; pos);</div>
336
- <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div>
337
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div>
338
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div>
339
- <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div>
340
- <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;}</div>
311
+ <p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#l00181">181</a> of file <a class="el" href="CDGBuilder_8cpp_source.html">CDGBuilder.cpp</a>.</p>
312
+ <div class="fragment"><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;{</div>
313
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="classSVF_1_1ICFG.html">ICFG</a> *icfg = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>();</div>
314
+ <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;it: <a class="code" href="classSVF_1_1CDGBuilder.html#ab24b985813e362f9470593e615c4c613">_svfcontrolMap</a>)</div>
315
+ <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; {</div>
316
+ <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;it2: it.second)</div>
317
+ <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div>
318
+ <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *controllingBB = it2.first;</div>
319
+ <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="comment">// const ICFGNode *controlNode = _bbToNode[it.first].first;</span></div>
320
+ <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">// if(!controlNode) continue;</span></div>
321
+ <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a> *terminator = it.first-&gt;getInstructionList().back();</div>
322
+ <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">if</span> (!terminator) <span class="keywordflow">continue</span>;</div>
323
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *controlNode = icfg-&gt;<a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(terminator);</div>
324
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">if</span> (!controlNode) <span class="keywordflow">continue</span>;</div>
325
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="comment">// controlNode control at pos</span></div>
326
+ <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;inst: *controllingBB)</div>
327
+ <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div>
328
+ <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *controllee = icfg-&gt;<a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(inst);</div>
329
+ <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="classSVF_1_1CDGBuilder.html#a0774da5d81fe9e454800c63f2ada4a00">_nodeControlMap</a>[controlNode][controllee].insert(it2.second.begin(), it2.second.end());</div>
330
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="classSVF_1_1CDGBuilder.html#ae62cf8bbe09fcccbace46375f5b043f8">_nodeDependentOnMap</a>[controllee][controlNode].insert(it2.second.begin(), it2.second.end());</div>
331
+ <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> pos: it2.second)</div>
332
+ <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div>
333
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="classSVF_1_1CDGBuilder.html#abd60cdbb947fe63accc2fea3683b81e4">_controlDG</a>-&gt;<a class="code" href="classSVF_1_1CDG.html#a71ccf9520bb222dc0779716e213aabf2">addCDGEdgeFromSrcDst</a>(controlNode, controllee,</div>
334
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; SVFUtil::dyn_cast&lt;IntraICFGNode&gt;(controlNode)-&gt;getInst(),</div>
335
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; pos);</div>
336
+ <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div>
337
+ <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div>
338
+ <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div>
339
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div>
340
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;}</div>
341
341
  </div><!-- fragment -->
342
342
  </div>
343
343
  </div>
@@ -456,18 +456,18 @@ Private Attributes</h2></td></tr>
456
456
  </dd>
457
457
  </dl>
458
458
 
459
- <p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#l00159">159</a> of file <a class="el" href="CDGBuilder_8cpp_source.html">CDGBuilder.cpp</a>.</p>
460
- <div class="fragment"><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div>
461
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;bb: *func)</div>
462
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div>
463
- <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;succ: bb-&gt;getSuccessors())</div>
464
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div>
465
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span> (func-&gt;postDominate(succ, bb))</div>
466
- <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">continue</span>;</div>
467
- <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; res[bb].push_back(succ);</div>
468
- <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div>
469
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div>
470
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;}</div>
459
+ <p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#l00164">164</a> of file <a class="el" href="CDGBuilder_8cpp_source.html">CDGBuilder.cpp</a>.</p>
460
+ <div class="fragment"><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;{</div>
461
+ <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;bb: *func)</div>
462
+ <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; {</div>
463
+ <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;succ: bb-&gt;getSuccessors())</div>
464
+ <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; {</div>
465
+ <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span> (func-&gt;postDominate(succ, bb))</div>
466
+ <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">continue</span>;</div>
467
+ <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; res[bb].push_back(succ);</div>
468
+ <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div>
469
+ <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div>
470
+ <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;}</div>
471
471
  </div><!-- fragment -->
472
472
  </div>
473
473
  </div>
@@ -523,11 +523,16 @@ Private Attributes</h2></td></tr>
523
523
 
524
524
  <p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#l00064">64</a> of file <a class="el" href="CDGBuilder_8cpp_source.html">CDGBuilder.cpp</a>.</p>
525
525
  <div class="fragment"><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;{</div>
526
- <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span> (succ == LCA) <span class="keywordflow">return</span>;</div>
527
- <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; std::vector&lt;const SVFBasicBlock *&gt; path;</div>
528
- <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html">SVFLoopAndDomInfo</a> *ld = <span class="keyword">const_cast&lt;</span><a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<span class="keyword">&gt;</span>(LCA-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#aeaa9b2b4e802d9e6bed138eaf3186d09">getFunction</a>())-&gt;getLoopAndDomInfo();</div>
529
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1CDGBuilder.html#a6efa510f946ea8befebbc94bed241395">dfsNodesBetweenPdomNodes</a>(LCA, succ, path, tgtNodes, ld);</div>
530
- <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;}</div>
526
+ <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span> (LCA == <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
527
+ <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div>
528
+ <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; tgtNodes.push_back(succ);</div>
529
+ <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span>;</div>
530
+ <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div>
531
+ <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span> (succ == LCA) <span class="keywordflow">return</span>;</div>
532
+ <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; std::vector&lt;const SVFBasicBlock *&gt; path;</div>
533
+ <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html">SVFLoopAndDomInfo</a> *ld = <span class="keyword">const_cast&lt;</span><a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<span class="keyword">&gt;</span>(LCA-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#aeaa9b2b4e802d9e6bed138eaf3186d09">getFunction</a>())-&gt;getLoopAndDomInfo();</div>
534
+ <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="classSVF_1_1CDGBuilder.html#a6efa510f946ea8befebbc94bed241395">dfsNodesBetweenPdomNodes</a>(LCA, succ, path, tgtNodes, ld);</div>
535
+ <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;}</div>
531
536
  </div><!-- fragment -->
532
537
  </div>
533
538
  </div>
@@ -565,29 +570,29 @@ Private Attributes</h2></td></tr>
565
570
  </table>
566
571
  </div><div class="memdoc">
567
572
 
568
- <p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#l00086">86</a> of file <a class="el" href="CDGBuilder_8cpp_source.html">CDGBuilder.cpp</a>.</p>
569
- <div class="fragment"><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div>
570
- <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="classSVF_1_1ICFG.html">ICFG</a> *icfg = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>();</div>
571
- <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *pred = icfg-&gt;<a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(BB-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">getTerminator</a>());</div>
572
- <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> *edge = <span class="keyword">nullptr</span>;</div>
573
- <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;inst: Succ-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#a8cb9cc170c9693b9bfe9a0f7a65a618e">getInstructionList</a>())</div>
574
- <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div>
575
- <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> *e = icfg-&gt;<a class="code" href="classSVF_1_1ICFG.html#a5dd4ac55123501c47c628adcf27e2475">getICFGEdge</a>(pred, icfg-&gt;<a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(inst), ICFGEdge::ICFGEdgeK::IntraCF))</div>
576
- <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div>
577
- <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; edge = e;</div>
578
- <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">break</span>;</div>
579
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div>
580
- <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div>
581
- <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a> *intraEdge = SVFUtil::dyn_cast&lt;IntraCFGEdge&gt;(edge))</div>
582
- <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div>
583
- <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> intraEdge-&gt;getSuccessorCondValue();</div>
584
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div>
585
- <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">else</span></div>
586
- <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div>
587
- <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;not intra edge?&quot;</span>);</div>
588
- <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; abort();</div>
573
+ <p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#l00091">91</a> of file <a class="el" href="CDGBuilder_8cpp_source.html">CDGBuilder.cpp</a>.</p>
574
+ <div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;{</div>
575
+ <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="classSVF_1_1ICFG.html">ICFG</a> *icfg = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>();</div>
576
+ <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *pred = icfg-&gt;<a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(BB-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">getTerminator</a>());</div>
577
+ <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> *edge = <span class="keyword">nullptr</span>;</div>
578
+ <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;inst: Succ-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#a8cb9cc170c9693b9bfe9a0f7a65a618e">getInstructionList</a>())</div>
579
+ <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div>
580
+ <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> *e = icfg-&gt;<a class="code" href="classSVF_1_1ICFG.html#a5dd4ac55123501c47c628adcf27e2475">getICFGEdge</a>(pred, icfg-&gt;<a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(inst), ICFGEdge::ICFGEdgeK::IntraCF))</div>
581
+ <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div>
582
+ <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; edge = e;</div>
583
+ <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">break</span>;</div>
584
+ <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div>
585
+ <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
586
+ <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a> *intraEdge = SVFUtil::dyn_cast&lt;IntraCFGEdge&gt;(edge))</div>
587
+ <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div>
588
+ <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> intraEdge-&gt;getSuccessorCondValue();</div>
589
589
  <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div>
590
- <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;}</div>
590
+ <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">else</span></div>
591
+ <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div>
592
+ <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;not intra edge?&quot;</span>);</div>
593
+ <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; abort();</div>
594
+ <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div>
595
+ <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div>
591
596
  </div><!-- fragment -->
592
597
  </div>
593
598
  </div>
@@ -782,7 +787,7 @@ Private Attributes</h2></td></tr>
782
787
  <div class="ttc" id="aclassSVF_1_1CDGBuilder_html_a0774da5d81fe9e454800c63f2ada4a00"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#a0774da5d81fe9e454800c63f2ada4a00">SVF::CDGBuilder::_nodeControlMap</a></div><div class="ttdeci">Map&lt; const ICFGNode *, Map&lt; const ICFGNode *, Set&lt; s32_t &gt; &gt; &gt; _nodeControlMap</div><div class="ttdoc">map an ICFG node to its controlling ICFG nodes (position, set of Nodes)</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8h_source.html#l00101">CDGBuilder.h:101</a></div></div>
783
788
  <div class="ttc" id="aclassSVF_1_1CDGBuilder_html_ab24b985813e362f9470593e615c4c613"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#ab24b985813e362f9470593e615c4c613">SVF::CDGBuilder::_svfcontrolMap</a></div><div class="ttdeci">Map&lt; const SVFBasicBlock *, Map&lt; const SVFBasicBlock *, Set&lt; s32_t &gt; &gt; &gt; _svfcontrolMap</div><div class="ttdoc">map a basicblock to its controlling BBs (position, set of BBs)</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8h_source.html#l00099">CDGBuilder.h:99</a></div></div>
784
789
  <div class="ttc" id="aclassSVF_1_1CDG_html_aadc90afbdeff9aae0365cde7b96ae9bc"><div class="ttname"><a href="classSVF_1_1CDG.html#aadc90afbdeff9aae0365cde7b96ae9bc">SVF::CDG::getCDG</a></div><div class="ttdeci">static CDG * getCDG()</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="CDG_8h_source.html#l00149">CDG.h:149</a></div></div>
785
- <div class="ttc" id="aclassSVF_1_1CDGBuilder_html_af65f6090142a61d13e1510c771baaeb1"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#af65f6090142a61d13e1510c771baaeb1">SVF::CDGBuilder::getBBSuccessorBranchID</a></div><div class="ttdeci">s64_t getBBSuccessorBranchID(const SVFBasicBlock *BB, const SVFBasicBlock *Succ)</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00086">CDGBuilder.cpp:86</a></div></div>
790
+ <div class="ttc" id="aclassSVF_1_1CDGBuilder_html_af65f6090142a61d13e1510c771baaeb1"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#af65f6090142a61d13e1510c771baaeb1">SVF::CDGBuilder::getBBSuccessorBranchID</a></div><div class="ttdeci">s64_t getBBSuccessorBranchID(const SVFBasicBlock *BB, const SVFBasicBlock *Succ)</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00091">CDGBuilder.cpp:91</a></div></div>
786
791
  <div class="ttc" id="aclassSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
787
792
  <div class="ttc" id="aclassSVF_1_1CDGBuilder_html_ae62cf8bbe09fcccbace46375f5b043f8"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#ae62cf8bbe09fcccbace46375f5b043f8">SVF::CDGBuilder::_nodeDependentOnMap</a></div><div class="ttdeci">Map&lt; const ICFGNode *, Map&lt; const ICFGNode *, Set&lt; s32_t &gt; &gt; &gt; _nodeDependentOnMap</div><div class="ttdoc">map an ICFG node to its dependent on ICFG nodes (position, set of Nodes)</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8h_source.html#l00102">CDGBuilder.h:102</a></div></div>
788
793
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00517">SVFValue.h:517</a></div></div>
@@ -790,18 +795,19 @@ Private Attributes</h2></td></tr>
790
795
  <div class="ttc" id="aclassSVF_1_1CDGBuilder_html_a6a7139139b2f0124e1729036490886db"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#a6a7139139b2f0124e1729036490886db">SVF::CDGBuilder::extractNodesBetweenPdomNodes</a></div><div class="ttdeci">void extractNodesBetweenPdomNodes(const SVFBasicBlock *succ, const SVFBasicBlock *LCA, std::vector&lt; const SVFBasicBlock * &gt; &amp;tgtNodes)</div><div class="ttdoc">extract nodes between two nodes in pdom tree</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00064">CDGBuilder.cpp:64</a></div></div>
791
796
  <div class="ttc" id="aclassSVF_1_1CDGBuilder_html_a243ef2e6fa014ab5814a2200f92cc93e"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#a243ef2e6fa014ab5814a2200f92cc93e">SVF::CDGBuilder::_svfdependentOnMap</a></div><div class="ttdeci">Map&lt; const SVFBasicBlock *, Map&lt; const SVFBasicBlock *, Set&lt; s32_t &gt; &gt; &gt; _svfdependentOnMap</div><div class="ttdoc">map a basicblock to its dependent on BBs (position, set of BBs)</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8h_source.html#l00100">CDGBuilder.h:100</a></div></div>
792
797
  <div class="ttc" id="aclassSVF_1_1ICFG_html_a5f2c0aaba07d6fdd63058da0fb60ca8b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">SVF::ICFG::getICFGNode</a></div><div class="ttdeci">ICFGNode * getICFGNode(NodeID id) const</div><div class="ttdoc">Get a ICFG node.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00088">ICFG.h:88</a></div></div>
793
- <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a10707086ce21999f415c479706abbd38"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">SVF::SVFBasicBlock::getTerminator</a></div><div class="ttdeci">const SVFInstruction * getTerminator() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00223">SVFValue.cpp:223</a></div></div>
798
+ <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a10707086ce21999f415c479706abbd38"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">SVF::SVFBasicBlock::getTerminator</a></div><div class="ttdeci">const SVFInstruction * getTerminator() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00225">SVFValue.cpp:225</a></div></div>
794
799
  <div class="ttc" id="aclassSVF_1_1IntraCFGEdge_html"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html">SVF::IntraCFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00113">ICFGEdge.h:113</a></div></div>
795
- <div class="ttc" id="aclassSVF_1_1CDGBuilder_html_ab56c8f3ab29a907d420622dd8e933f0d"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#ab56c8f3ab29a907d420622dd8e933f0d">SVF::CDGBuilder::buildICFGNodeControlMap</a></div><div class="ttdeci">void buildICFGNodeControlMap()</div><div class="ttdoc">build map at icfg node level</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00176">CDGBuilder.cpp:176</a></div></div>
800
+ <div class="ttc" id="aclassSVF_1_1CDGBuilder_html_ab56c8f3ab29a907d420622dd8e933f0d"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#ab56c8f3ab29a907d420622dd8e933f0d">SVF::CDGBuilder::buildICFGNodeControlMap</a></div><div class="ttdeci">void buildICFGNodeControlMap()</div><div class="ttdoc">build map at icfg node level</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00181">CDGBuilder.cpp:181</a></div></div>
796
801
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
797
802
  <div class="ttc" id="aclassSVF_1_1CDGBuilder_html_a55d97ecc3c08999d54f11ba051db3abf"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#a55d97ecc3c08999d54f11ba051db3abf">SVF::CDGBuilder::updateMap</a></div><div class="ttdeci">void updateMap(const SVFBasicBlock *pred, const SVFBasicBlock *bb, s32_t pos)</div><div class="ttdoc">update map</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8h_source.html#l00090">CDGBuilder.h:90</a></div></div>
798
- <div class="ttc" id="aclassSVF_1_1CDGBuilder_html_aa57921c1c3002e7e35cfb6b113cd8031"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#aa57921c1c3002e7e35cfb6b113cd8031">SVF::CDGBuilder::buildControlDependence</a></div><div class="ttdeci">void buildControlDependence(const SVFModule *svfgModule)</div><div class="ttdoc">build control dependence for each function</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00120">CDGBuilder.cpp:120</a></div></div>
803
+ <div class="ttc" id="aclassSVF_1_1CDGBuilder_html_aa57921c1c3002e7e35cfb6b113cd8031"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#aa57921c1c3002e7e35cfb6b113cd8031">SVF::CDGBuilder::buildControlDependence</a></div><div class="ttdeci">void buildControlDependence(const SVFModule *svfgModule)</div><div class="ttdoc">build control dependence for each function</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00125">CDGBuilder.cpp:125</a></div></div>
799
804
  <div class="ttc" id="aclassSVF_1_1CDGBuilder_html_abd60cdbb947fe63accc2fea3683b81e4"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#abd60cdbb947fe63accc2fea3683b81e4">SVF::CDGBuilder::_controlDG</a></div><div class="ttdeci">CDG * _controlDG</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8h_source.html#l00098">CDGBuilder.h:98</a></div></div>
800
805
  <div class="ttc" id="anamespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00052">SVFType.h:52</a></div></div>
801
806
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00309">SVFUtil.h:309</a></div></div>
802
807
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_abda052b73e869ed6d7c139ad1528da11"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00170">SVFIR.h:170</a></div></div>
803
808
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_ad6e18f520f6b559f2304002792f6b701"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">SVF::SVFIR::getModule</a></div><div class="ttdeci">SVFModule * getModule()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00160">SVFIR.h:160</a></div></div>
804
809
  <div class="ttc" id="aclassSVF_1_1GenericGraph_html_a8c8d16036008f87c7811586047599858"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a8c8d16036008f87c7811586047599858">SVF::GenericGraph::getTotalNodeNum</a></div><div class="ttdeci">u32_t getTotalNodeNum() const</div><div class="ttdoc">Get total number of node/edge.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00433">GenericGraph.h:433</a></div></div>
810
+ <div class="ttc" id="acJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
805
811
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a8cb9cc170c9693b9bfe9a0f7a65a618e"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a8cb9cc170c9693b9bfe9a0f7a65a618e">SVF::SVFBasicBlock::getInstructionList</a></div><div class="ttdeci">const std::vector&lt; const SVFInstruction * &gt; &amp; getInstructionList() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00562">SVFValue.h:562</a></div></div>
806
812
  <div class="ttc" id="aclassSVF_1_1ICFG_html"><div class="ttname"><a href="classSVF_1_1ICFG.html">SVF::ICFG</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00047">ICFG.h:47</a></div></div>
807
813
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_ad07f95e790b5c3a50c864155aa20a083"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#ad07f95e790b5c3a50c864155aa20a083">SVF::SVFLoopAndDomInfo::getPostDomTreeMap</a></div><div class="ttdeci">const Map&lt; const SVFBasicBlock *, BBSet &gt; &amp; getPostDomTreeMap() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00108">SVFValue.h:108</a></div></div>
@@ -812,7 +818,7 @@ Private Attributes</h2></td></tr>
812
818
  <div class="ttc" id="aclassSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00620">SVFValue.h:620</a></div></div>
813
819
  <div class="ttc" id="anamespaceSVF_html_ad781b0b14e89773e774072b280658ef3"><div class="ttname"><a href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">SVF::s64_t</a></div><div class="ttdeci">signed long long s64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00054">SVFType.h:54</a></div></div>
814
820
  <div class="ttc" id="anamespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00102">SVFType.h:102</a></div></div>
815
- <div class="ttc" id="aclassSVF_1_1CDGBuilder_html_ac0b9dae9bae020608e293b1288bb988b"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#ac0b9dae9bae020608e293b1288bb988b">SVF::CDGBuilder::extractBBS</a></div><div class="ttdeci">static void extractBBS(const SVFFunction *func, Map&lt; const SVFBasicBlock *, std::vector&lt; const SVFBasicBlock * &gt;&gt; &amp;res)</div><div class="ttdoc">extract basic block edges to be processed</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00159">CDGBuilder.cpp:159</a></div></div>
821
+ <div class="ttc" id="aclassSVF_1_1CDGBuilder_html_ac0b9dae9bae020608e293b1288bb988b"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#ac0b9dae9bae020608e293b1288bb988b">SVF::CDGBuilder::extractBBS</a></div><div class="ttdeci">static void extractBBS(const SVFFunction *func, Map&lt; const SVFBasicBlock *, std::vector&lt; const SVFBasicBlock * &gt;&gt; &amp;res)</div><div class="ttdoc">extract basic block edges to be processed</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00164">CDGBuilder.cpp:164</a></div></div>
816
822
  <!-- start footer part -->
817
823
  <hr class="footer"/><address class="footer"><small>
818
824
  Generated by &#160;<a href="http://www.doxygen.org/index.html">
@@ -73,10 +73,13 @@ $(function() {
73
73
  <p>This is the complete list of members for <a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html">SVF::CFBasicBlockGBuilder</a>, including all inherited members.</p>
74
74
  <table class="directory">
75
75
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html#a4a298a45e54cbaf41cdf44aeea1a63f3">_CFBasicBlockG</a></td><td class="entry"><a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html">SVF::CFBasicBlockGBuilder</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
76
- <tr><td class="entry"><a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html#a9c830d44805689071793420deff5af1a">build</a>(SVFModule *module)</td><td class="entry"><a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html">SVF::CFBasicBlockGBuilder</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
76
+ <tr><td class="entry"><a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html#a2c9f8c120522e31124364f485e873608">addInterBBEdge</a>(ICFG *icfg, Map&lt; const SVFBasicBlock *, std::vector&lt; CFBasicBlockNode * &gt;&gt; &amp;bbToNodes)</td><td class="entry"><a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html">SVF::CFBasicBlockGBuilder</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
77
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html#a2a72cd05458304eaae145532448cf913">addInterProceduralEdge</a>(ICFG *icfg, Map&lt; const SVFBasicBlock *, std::vector&lt; CFBasicBlockNode * &gt;&gt; &amp;bbToNodes)</td><td class="entry"><a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html">SVF::CFBasicBlockGBuilder</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
78
+ <tr><td class="entry"><a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html#ae6c8497f1cd2e3ca63b899ea11757b31">addIntraBBEdge</a>(ICFG *icfg, Map&lt; const SVFBasicBlock *, std::vector&lt; CFBasicBlockNode * &gt;&gt; &amp;bbToNodes)</td><td class="entry"><a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html">SVF::CFBasicBlockGBuilder</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
77
79
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html#a25f0496187622b156bafc49f34fffeaf">build</a>(ICFG *icfg)</td><td class="entry"><a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html">SVF::CFBasicBlockGBuilder</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
78
80
  <tr><td class="entry"><a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html#a61d70fb0d2181df3c90152e9226db947">CFBasicBlockGBuilder</a>()</td><td class="entry"><a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html">SVF::CFBasicBlockGBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
79
81
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html#a879d8affb9b113c9d2d976cdd31b60f1">getCFBasicBlockGraph</a>()</td><td class="entry"><a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html">SVF::CFBasicBlockGBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
82
+ <tr><td class="entry"><a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html#a43c0cba051306acc6440f60165b835e6">initCFBasicBlockGNodes</a>(ICFG *icfg, Map&lt; const SVFBasicBlock *, std::vector&lt; CFBasicBlockNode * &gt;&gt; &amp;bbToNodes)</td><td class="entry"><a class="el" href="classSVF_1_1CFBasicBlockGBuilder.html">SVF::CFBasicBlockGBuilder</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
80
83
  </table></div><!-- contents -->
81
84
  <!-- start footer part -->
82
85
  <hr class="footer"/><address class="footer"><small>