svf-tools 1.0.819 → 1.0.821

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 (256) hide show
  1. package/SVF-doxygen/html/ICFGBuilder_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +488 -486
  3. package/SVF-doxygen/html/LLVMModule_8h_source.html +14 -14
  4. package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/LLVMUtil_8h_source.html +1 -1
  6. package/SVF-doxygen/html/MTAAnnotator_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/SVFBugReport_8cpp_source.html +81 -69
  8. package/SVF-doxygen/html/SVFBugReport_8h_source.html +135 -121
  9. package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +1 -1
  11. package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +1 -1
  12. package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +2 -2
  13. package/SVF-doxygen/html/classSVF_1_1DoubleFreeChecker.html +1 -1
  14. package/SVF-doxygen/html/classSVF_1_1FileChecker.html +1 -1
  15. package/SVF-doxygen/html/classSVF_1_1ICFGBuilder.html +1 -1
  16. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +470 -468
  17. package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +1 -1
  18. package/SVF-doxygen/html/classSVF_1_1MTAAnnotator.html +1 -1
  19. package/SVF-doxygen/html/classSVF_1_1RaceResultValidator.html +1 -1
  20. package/SVF-doxygen/html/classSVF_1_1SVFBugReport-members.html +9 -5
  21. package/SVF-doxygen/html/classSVF_1_1SVFBugReport.html +307 -161
  22. package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +2 -2
  23. package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +2 -2
  24. package/SVF-doxygen/html/functions_c.html +24 -19
  25. package/SVF-doxygen/html/functions_func_i.html +1 -1
  26. package/SVF-doxygen/html/functions_func_s.html +25 -22
  27. package/SVF-doxygen/html/functions_i.html +1 -1
  28. package/SVF-doxygen/html/functions_l.html +3 -3
  29. package/SVF-doxygen/html/functions_m.html +4 -3
  30. package/SVF-doxygen/html/functions_n.html +4 -4
  31. package/SVF-doxygen/html/functions_o.html +4 -4
  32. package/SVF-doxygen/html/functions_p.html +11 -11
  33. package/SVF-doxygen/html/functions_r.html +4 -6
  34. package/SVF-doxygen/html/functions_s.html +26 -21
  35. package/SVF-doxygen/html/functions_t.html +8 -5
  36. package/SVF-doxygen/html/functions_v.html +6 -6
  37. package/SVF-doxygen/html/functions_vars_c.html +3 -0
  38. package/SVF-doxygen/html/functions_vars_m.html +1 -0
  39. package/SVF-doxygen/html/functions_vars_t.html +3 -0
  40. package/SVF-doxygen/html/functions_w.html +1 -1
  41. package/SVF-doxygen/html/search/all_10.js +324 -324
  42. package/SVF-doxygen/html/search/all_11.js +222 -222
  43. package/SVF-doxygen/html/search/all_12.js +545 -544
  44. package/SVF-doxygen/html/search/all_13.js +192 -191
  45. package/SVF-doxygen/html/search/all_14.js +67 -67
  46. package/SVF-doxygen/html/search/all_15.js +167 -167
  47. package/SVF-doxygen/html/search/all_16.js +63 -63
  48. package/SVF-doxygen/html/search/all_17.js +1 -1
  49. package/SVF-doxygen/html/search/all_18.js +1 -1
  50. package/SVF-doxygen/html/search/all_19.js +11 -11
  51. package/SVF-doxygen/html/search/all_1a.js +172 -172
  52. package/SVF-doxygen/html/search/all_3.js +138 -137
  53. package/SVF-doxygen/html/search/all_4.js +233 -233
  54. package/SVF-doxygen/html/search/all_5.js +119 -119
  55. package/SVF-doxygen/html/search/all_6.js +225 -225
  56. package/SVF-doxygen/html/search/all_7.js +1044 -1044
  57. package/SVF-doxygen/html/search/all_8.js +197 -197
  58. package/SVF-doxygen/html/search/all_9.js +607 -607
  59. package/SVF-doxygen/html/search/all_a.js +46 -46
  60. package/SVF-doxygen/html/search/all_b.js +26 -26
  61. package/SVF-doxygen/html/search/all_c.js +116 -116
  62. package/SVF-doxygen/html/search/all_d.js +196 -196
  63. package/SVF-doxygen/html/search/all_e.js +207 -207
  64. package/SVF-doxygen/html/search/all_f.js +115 -115
  65. package/SVF-doxygen/html/search/classes_0.js +26 -26
  66. package/SVF-doxygen/html/search/classes_1.js +9 -9
  67. package/SVF-doxygen/html/search/classes_10.js +73 -73
  68. package/SVF-doxygen/html/search/classes_11.js +15 -15
  69. package/SVF-doxygen/html/search/classes_12.js +2 -2
  70. package/SVF-doxygen/html/search/classes_13.js +10 -10
  71. package/SVF-doxygen/html/search/classes_14.js +14 -14
  72. package/SVF-doxygen/html/search/classes_15.js +1 -1
  73. package/SVF-doxygen/html/search/classes_2.js +80 -80
  74. package/SVF-doxygen/html/search/classes_3.js +37 -37
  75. package/SVF-doxygen/html/search/classes_4.js +9 -9
  76. package/SVF-doxygen/html/search/classes_5.js +28 -28
  77. package/SVF-doxygen/html/search/classes_6.js +104 -104
  78. package/SVF-doxygen/html/search/classes_7.js +33 -33
  79. package/SVF-doxygen/html/search/classes_8.js +56 -56
  80. package/SVF-doxygen/html/search/classes_9.js +1 -1
  81. package/SVF-doxygen/html/search/classes_a.js +12 -12
  82. package/SVF-doxygen/html/search/classes_b.js +29 -29
  83. package/SVF-doxygen/html/search/classes_c.js +6 -6
  84. package/SVF-doxygen/html/search/classes_d.js +18 -18
  85. package/SVF-doxygen/html/search/classes_e.js +36 -36
  86. package/SVF-doxygen/html/search/classes_f.js +25 -25
  87. package/SVF-doxygen/html/search/defines_0.js +3 -3
  88. package/SVF-doxygen/html/search/defines_1.js +2 -2
  89. package/SVF-doxygen/html/search/defines_2.js +30 -30
  90. package/SVF-doxygen/html/search/defines_3.js +21 -21
  91. package/SVF-doxygen/html/search/defines_4.js +2 -2
  92. package/SVF-doxygen/html/search/defines_5.js +4 -4
  93. package/SVF-doxygen/html/search/defines_6.js +2 -2
  94. package/SVF-doxygen/html/search/defines_7.js +5 -5
  95. package/SVF-doxygen/html/search/defines_8.js +11 -11
  96. package/SVF-doxygen/html/search/defines_9.js +9 -9
  97. package/SVF-doxygen/html/search/defines_a.js +2 -2
  98. package/SVF-doxygen/html/search/defines_b.js +1 -1
  99. package/SVF-doxygen/html/search/defines_c.js +3 -3
  100. package/SVF-doxygen/html/search/defines_d.js +2 -2
  101. package/SVF-doxygen/html/search/defines_e.js +7 -7
  102. package/SVF-doxygen/html/search/defines_f.js +3 -3
  103. package/SVF-doxygen/html/search/enums_0.js +3 -3
  104. package/SVF-doxygen/html/search/enums_1.js +2 -2
  105. package/SVF-doxygen/html/search/enums_10.js +1 -1
  106. package/SVF-doxygen/html/search/enums_11.js +1 -1
  107. package/SVF-doxygen/html/search/enums_2.js +8 -8
  108. package/SVF-doxygen/html/search/enums_3.js +1 -1
  109. package/SVF-doxygen/html/search/enums_4.js +3 -3
  110. package/SVF-doxygen/html/search/enums_5.js +1 -1
  111. package/SVF-doxygen/html/search/enums_6.js +2 -2
  112. package/SVF-doxygen/html/search/enums_7.js +2 -2
  113. package/SVF-doxygen/html/search/enums_8.js +4 -4
  114. package/SVF-doxygen/html/search/enums_9.js +1 -1
  115. package/SVF-doxygen/html/search/enums_a.js +1 -1
  116. package/SVF-doxygen/html/search/enums_b.js +7 -7
  117. package/SVF-doxygen/html/search/enums_c.js +1 -1
  118. package/SVF-doxygen/html/search/enums_d.js +4 -4
  119. package/SVF-doxygen/html/search/enums_e.js +2 -2
  120. package/SVF-doxygen/html/search/enums_f.js +4 -4
  121. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  122. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  123. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  124. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  125. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  126. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  127. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  128. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  129. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  130. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  131. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  132. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  133. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  134. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  135. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  136. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  137. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  138. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  139. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  140. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  141. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  142. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  143. package/SVF-doxygen/html/search/files_0.js +13 -13
  144. package/SVF-doxygen/html/search/files_1.js +7 -7
  145. package/SVF-doxygen/html/search/files_10.js +8 -8
  146. package/SVF-doxygen/html/search/files_11.js +8 -8
  147. package/SVF-doxygen/html/search/files_12.js +2 -2
  148. package/SVF-doxygen/html/search/files_2.js +55 -55
  149. package/SVF-doxygen/html/search/files_3.js +14 -14
  150. package/SVF-doxygen/html/search/files_4.js +5 -5
  151. package/SVF-doxygen/html/search/files_5.js +13 -13
  152. package/SVF-doxygen/html/search/files_6.js +9 -9
  153. package/SVF-doxygen/html/search/files_7.js +14 -14
  154. package/SVF-doxygen/html/search/files_8.js +13 -13
  155. package/SVF-doxygen/html/search/files_9.js +18 -18
  156. package/SVF-doxygen/html/search/files_a.js +3 -3
  157. package/SVF-doxygen/html/search/files_b.js +2 -2
  158. package/SVF-doxygen/html/search/files_c.js +20 -20
  159. package/SVF-doxygen/html/search/files_d.js +4 -4
  160. package/SVF-doxygen/html/search/files_e.js +62 -62
  161. package/SVF-doxygen/html/search/files_f.js +8 -8
  162. package/SVF-doxygen/html/search/functions_0.js +12 -12
  163. package/SVF-doxygen/html/search/functions_1.js +360 -360
  164. package/SVF-doxygen/html/search/functions_10.js +140 -140
  165. package/SVF-doxygen/html/search/functions_11.js +138 -138
  166. package/SVF-doxygen/html/search/functions_12.js +280 -279
  167. package/SVF-doxygen/html/search/functions_13.js +59 -59
  168. package/SVF-doxygen/html/search/functions_14.js +39 -39
  169. package/SVF-doxygen/html/search/functions_15.js +71 -71
  170. package/SVF-doxygen/html/search/functions_16.js +32 -32
  171. package/SVF-doxygen/html/search/functions_17.js +3 -3
  172. package/SVF-doxygen/html/search/functions_18.js +172 -172
  173. package/SVF-doxygen/html/search/functions_2.js +87 -87
  174. package/SVF-doxygen/html/search/functions_3.js +257 -257
  175. package/SVF-doxygen/html/search/functions_4.js +75 -75
  176. package/SVF-doxygen/html/search/functions_5.js +53 -53
  177. package/SVF-doxygen/html/search/functions_6.js +59 -59
  178. package/SVF-doxygen/html/search/functions_7.js +854 -854
  179. package/SVF-doxygen/html/search/functions_8.js +149 -149
  180. package/SVF-doxygen/html/search/functions_9.js +423 -423
  181. package/SVF-doxygen/html/search/functions_a.js +30 -30
  182. package/SVF-doxygen/html/search/functions_b.js +2 -2
  183. package/SVF-doxygen/html/search/functions_c.js +26 -26
  184. package/SVF-doxygen/html/search/functions_d.js +77 -77
  185. package/SVF-doxygen/html/search/functions_e.js +35 -35
  186. package/SVF-doxygen/html/search/functions_f.js +56 -56
  187. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  188. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  189. package/SVF-doxygen/html/search/related_0.js +2 -2
  190. package/SVF-doxygen/html/search/related_1.js +2 -2
  191. package/SVF-doxygen/html/search/related_2.js +2 -2
  192. package/SVF-doxygen/html/search/related_3.js +2 -2
  193. package/SVF-doxygen/html/search/related_4.js +2 -2
  194. package/SVF-doxygen/html/search/related_5.js +1 -1
  195. package/SVF-doxygen/html/search/related_6.js +2 -2
  196. package/SVF-doxygen/html/search/related_7.js +4 -4
  197. package/SVF-doxygen/html/search/related_8.js +2 -2
  198. package/SVF-doxygen/html/search/related_9.js +4 -4
  199. package/SVF-doxygen/html/search/related_a.js +19 -19
  200. package/SVF-doxygen/html/search/related_b.js +4 -4
  201. package/SVF-doxygen/html/search/related_c.js +1 -1
  202. package/SVF-doxygen/html/search/related_d.js +12 -12
  203. package/SVF-doxygen/html/search/related_e.js +2 -2
  204. package/SVF-doxygen/html/search/related_f.js +2 -2
  205. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  206. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  207. package/SVF-doxygen/html/search/typedefs_10.js +61 -61
  208. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  209. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  210. package/SVF-doxygen/html/search/typedefs_13.js +33 -33
  211. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  212. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  213. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  214. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  215. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  216. package/SVF-doxygen/html/search/typedefs_6.js +55 -55
  217. package/SVF-doxygen/html/search/typedefs_7.js +44 -44
  218. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  219. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  220. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  221. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  222. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  223. package/SVF-doxygen/html/search/typedefs_d.js +14 -14
  224. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  225. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  226. package/SVF-doxygen/html/search/variables_0.js +151 -151
  227. package/SVF-doxygen/html/search/variables_1.js +75 -75
  228. package/SVF-doxygen/html/search/variables_10.js +97 -97
  229. package/SVF-doxygen/html/search/variables_11.js +44 -44
  230. package/SVF-doxygen/html/search/variables_12.js +92 -92
  231. package/SVF-doxygen/html/search/variables_13.js +76 -75
  232. package/SVF-doxygen/html/search/variables_14.js +14 -14
  233. package/SVF-doxygen/html/search/variables_15.js +48 -48
  234. package/SVF-doxygen/html/search/variables_16.js +9 -9
  235. package/SVF-doxygen/html/search/variables_17.js +1 -1
  236. package/SVF-doxygen/html/search/variables_18.js +2 -2
  237. package/SVF-doxygen/html/search/variables_2.js +38 -38
  238. package/SVF-doxygen/html/search/variables_3.js +143 -142
  239. package/SVF-doxygen/html/search/variables_4.js +55 -55
  240. package/SVF-doxygen/html/search/variables_5.js +37 -37
  241. package/SVF-doxygen/html/search/variables_6.js +66 -66
  242. package/SVF-doxygen/html/search/variables_7.js +34 -34
  243. package/SVF-doxygen/html/search/variables_8.js +7 -7
  244. package/SVF-doxygen/html/search/variables_9.js +78 -78
  245. package/SVF-doxygen/html/search/variables_a.js +4 -4
  246. package/SVF-doxygen/html/search/variables_b.js +10 -10
  247. package/SVF-doxygen/html/search/variables_c.js +45 -45
  248. package/SVF-doxygen/html/search/variables_d.js +56 -56
  249. package/SVF-doxygen/html/search/variables_e.js +123 -123
  250. package/SVF-doxygen/html/search/variables_f.js +29 -29
  251. package/SVF-doxygen/html/svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  252. package/SVF-doxygen/html/svf_2include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  253. package/package.json +1 -1
  254. package/svf/include/Util/SVFBugReport.h +10 -0
  255. package/svf/lib/Util/SVFBugReport.cpp +46 -32
  256. package/svf-llvm/lib/LLVMModule.cpp +2 -0
@@ -1069,71 +1069,71 @@ Friends</h2></td></tr>
1069
1069
 
1070
1070
  <p>Create SVFTypes. </p>
1071
1071
 
1072
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01269">1269</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1073
- <div class="fragment"><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;{</div>
1074
- <div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; assert(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.find(T) == <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.end() &amp;&amp;</div>
1075
- <div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; <span class="stringliteral">&quot;SVFType has been added before&quot;</span>);</div>
1076
- <div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; </div>
1077
- <div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; <span class="comment">// add SVFType&#39;s LLVM byte size iff T isSized(), otherwise byteSize is 0(default value)</span></div>
1078
- <div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> byteSize = 0;</div>
1079
- <div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; <span class="keywordflow">if</span> (T-&gt;isSized())</div>
1080
- <div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; {</div>
1081
- <div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">llvm::DataLayout</a> &amp;DL = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;</div>
1082
- <div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a9fe3fa15a6a0ec25864cb8439a45596e">getMainLLVMModule</a>()-&gt;getDataLayout();</div>
1083
- <div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *mut_T = <span class="keyword">const_cast&lt;</span><a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *<span class="keyword">&gt;</span>(T);</div>
1084
- <div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; byteSize = DL.getTypeAllocSize(mut_T);</div>
1085
- <div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; }</div>
1086
- <div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; </div>
1087
- <div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* svftype;</div>
1088
- <div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;PointerType&gt;(T))</div>
1089
- <div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; {</div>
1090
- <div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; svftype = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>(byteSize);</div>
1091
- <div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; }</div>
1092
- <div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a3d9e7f32dc17fe8d40f8d6a011403b91">IntegerType</a>* intT = SVFUtil::dyn_cast&lt;IntegerType&gt;(T))</div>
1093
- <div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160; {</div>
1094
- <div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; <span class="keyword">auto</span> svfIntT = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFIntegerType.html">SVFIntegerType</a>(byteSize);</div>
1095
- <div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; <span class="keywordtype">unsigned</span> signWidth = intT-&gt;getBitWidth();</div>
1096
- <div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; assert(signWidth &lt; INT16_MAX &amp;&amp; <span class="stringliteral">&quot;Integer width too big&quot;</span>);</div>
1097
- <div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; svfIntT-&gt;setSignAndWidth(intT-&gt;getSignBit() ? -signWidth : signWidth);</div>
1098
- <div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; svftype = svfIntT;</div>
1099
- <div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; }</div>
1100
- <div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">FunctionType</a>* ft = SVFUtil::dyn_cast&lt;FunctionType&gt;(T))</div>
1101
- <div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; svftype = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFFunctionType.html">SVFFunctionType</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ft-&gt;getReturnType()));</div>
1102
- <div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a>* st = SVFUtil::dyn_cast&lt;StructType&gt;(T))</div>
1103
- <div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; {</div>
1104
- <div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; <span class="keyword">auto</span> svfst = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFStructType.html">SVFStructType</a>(byteSize);</div>
1105
- <div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; <span class="keywordflow">if</span> (st-&gt;hasName())</div>
1106
- <div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; svfst-&gt;setName(st-&gt;getName().str());</div>
1107
- <div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; svftype = svfst;</div>
1108
- <div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; }</div>
1109
- <div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> at = SVFUtil::dyn_cast&lt;ArrayType&gt;(T))</div>
1110
- <div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; {</div>
1111
- <div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; <span class="keyword">auto</span> svfat = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFArrayType.html">SVFArrayType</a>(byteSize);</div>
1112
- <div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; svfat-&gt;setNumOfElement(at-&gt;getNumElements());</div>
1113
- <div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; svfat-&gt;setTypeOfElement(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(at-&gt;getElementType()));</div>
1114
- <div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; svftype = svfat;</div>
1115
- <div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; }</div>
1116
- <div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; <span class="keywordflow">else</span></div>
1117
- <div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; {</div>
1118
- <div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>;</div>
1119
- <div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; <span class="keyword">auto</span> ot = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFOtherType.html">SVFOtherType</a>(byteSize, T-&gt;isSingleValueType());</div>
1120
- <div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; llvm::raw_string_ostream(<a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>) &lt;&lt; *T;</div>
1121
- <div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; ot-&gt;setRepr(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(<a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>));</div>
1122
- <div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160; svftype = ot;</div>
1123
- <div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160; }</div>
1124
- <div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160; </div>
1125
- <div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a91083d9504ae5d220b28e0b3e461d4aa">addTypeInfo</a>(svftype);</div>
1126
- <div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>[T] = svftype;</div>
1127
- <div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* pt = SVFUtil::dyn_cast&lt;PointerType&gt;(T))</div>
1128
- <div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; {</div>
1129
- <div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; <span class="comment">//cast svftype to SVFPointerType</span></div>
1130
- <div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>* svfPtrType = SVFUtil::dyn_cast&lt;SVFPointerType&gt;(svftype);</div>
1131
- <div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; assert(svfPtrType &amp;&amp; <span class="stringliteral">&quot;this is not SVFPointerType&quot;</span>);</div>
1132
- <div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; svfPtrType-&gt;<a class="code" href="classSVF_1_1SVFPointerType.html#aaaa79de3df0f6764bfd3d2e487ea7a09">setPtrElementType</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">LLVMUtil::getPtrElementType</a>(pt)));</div>
1133
- <div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; }</div>
1134
- <div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160; </div>
1135
- <div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; <span class="keywordflow">return</span> svftype;</div>
1136
- <div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;}</div>
1072
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01271">1271</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1073
+ <div class="fragment"><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;{</div>
1074
+ <div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; assert(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.find(T) == <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.end() &amp;&amp;</div>
1075
+ <div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; <span class="stringliteral">&quot;SVFType has been added before&quot;</span>);</div>
1076
+ <div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; </div>
1077
+ <div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; <span class="comment">// add SVFType&#39;s LLVM byte size iff T isSized(), otherwise byteSize is 0(default value)</span></div>
1078
+ <div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> byteSize = 0;</div>
1079
+ <div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; <span class="keywordflow">if</span> (T-&gt;isSized())</div>
1080
+ <div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; {</div>
1081
+ <div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">llvm::DataLayout</a> &amp;DL = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;</div>
1082
+ <div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a9fe3fa15a6a0ec25864cb8439a45596e">getMainLLVMModule</a>()-&gt;getDataLayout();</div>
1083
+ <div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *mut_T = <span class="keyword">const_cast&lt;</span><a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *<span class="keyword">&gt;</span>(T);</div>
1084
+ <div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; byteSize = DL.getTypeAllocSize(mut_T);</div>
1085
+ <div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; }</div>
1086
+ <div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; </div>
1087
+ <div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* svftype;</div>
1088
+ <div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;PointerType&gt;(T))</div>
1089
+ <div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; {</div>
1090
+ <div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; svftype = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>(byteSize);</div>
1091
+ <div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160; }</div>
1092
+ <div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a3d9e7f32dc17fe8d40f8d6a011403b91">IntegerType</a>* intT = SVFUtil::dyn_cast&lt;IntegerType&gt;(T))</div>
1093
+ <div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; {</div>
1094
+ <div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; <span class="keyword">auto</span> svfIntT = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFIntegerType.html">SVFIntegerType</a>(byteSize);</div>
1095
+ <div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; <span class="keywordtype">unsigned</span> signWidth = intT-&gt;getBitWidth();</div>
1096
+ <div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; assert(signWidth &lt; INT16_MAX &amp;&amp; <span class="stringliteral">&quot;Integer width too big&quot;</span>);</div>
1097
+ <div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; svfIntT-&gt;setSignAndWidth(intT-&gt;getSignBit() ? -signWidth : signWidth);</div>
1098
+ <div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; svftype = svfIntT;</div>
1099
+ <div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; }</div>
1100
+ <div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">FunctionType</a>* ft = SVFUtil::dyn_cast&lt;FunctionType&gt;(T))</div>
1101
+ <div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; svftype = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFFunctionType.html">SVFFunctionType</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ft-&gt;getReturnType()));</div>
1102
+ <div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a>* st = SVFUtil::dyn_cast&lt;StructType&gt;(T))</div>
1103
+ <div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; {</div>
1104
+ <div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; <span class="keyword">auto</span> svfst = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFStructType.html">SVFStructType</a>(byteSize);</div>
1105
+ <div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; <span class="keywordflow">if</span> (st-&gt;hasName())</div>
1106
+ <div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; svfst-&gt;setName(st-&gt;getName().str());</div>
1107
+ <div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; svftype = svfst;</div>
1108
+ <div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; }</div>
1109
+ <div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> at = SVFUtil::dyn_cast&lt;ArrayType&gt;(T))</div>
1110
+ <div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; {</div>
1111
+ <div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; <span class="keyword">auto</span> svfat = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFArrayType.html">SVFArrayType</a>(byteSize);</div>
1112
+ <div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; svfat-&gt;setNumOfElement(at-&gt;getNumElements());</div>
1113
+ <div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; svfat-&gt;setTypeOfElement(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(at-&gt;getElementType()));</div>
1114
+ <div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; svftype = svfat;</div>
1115
+ <div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; }</div>
1116
+ <div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; <span class="keywordflow">else</span></div>
1117
+ <div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; {</div>
1118
+ <div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>;</div>
1119
+ <div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; <span class="keyword">auto</span> ot = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFOtherType.html">SVFOtherType</a>(byteSize, T-&gt;isSingleValueType());</div>
1120
+ <div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160; llvm::raw_string_ostream(<a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>) &lt;&lt; *T;</div>
1121
+ <div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160; ot-&gt;setRepr(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(<a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>));</div>
1122
+ <div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160; svftype = ot;</div>
1123
+ <div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160; }</div>
1124
+ <div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160; </div>
1125
+ <div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a91083d9504ae5d220b28e0b3e461d4aa">addTypeInfo</a>(svftype);</div>
1126
+ <div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>[T] = svftype;</div>
1127
+ <div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* pt = SVFUtil::dyn_cast&lt;PointerType&gt;(T))</div>
1128
+ <div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; {</div>
1129
+ <div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; <span class="comment">//cast svftype to SVFPointerType</span></div>
1130
+ <div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>* svfPtrType = SVFUtil::dyn_cast&lt;SVFPointerType&gt;(svftype);</div>
1131
+ <div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; assert(svfPtrType &amp;&amp; <span class="stringliteral">&quot;this is not SVFPointerType&quot;</span>);</div>
1132
+ <div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160; svfPtrType-&gt;<a class="code" href="classSVF_1_1SVFPointerType.html#aaaa79de3df0f6764bfd3d2e487ea7a09">setPtrElementType</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">LLVMUtil::getPtrElementType</a>(pt)));</div>
1133
+ <div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; }</div>
1134
+ <div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; </div>
1135
+ <div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; <span class="keywordflow">return</span> svftype;</div>
1136
+ <div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;}</div>
1137
1137
  </div><!-- fragment -->
1138
1138
  </div>
1139
1139
  </div>
@@ -1346,38 +1346,40 @@ Friends</h2></td></tr>
1346
1346
  <div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <span class="comment">// ExtDecl -&gt; ExtDecl in Table 1</span></div>
1347
1347
  <div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; std::vector&lt;const Function*&gt; calledFunctions = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">LLVMUtil::getCalledFunctions</a>(extfun);</div>
1348
1348
  <div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab932917041e1b1d8b461bfef464330fd">ExtFuncsVec</a>.insert(<a class="code" href="classSVF_1_1LLVMModuleSet.html#ab932917041e1b1d8b461bfef464330fd">ExtFuncsVec</a>.end(), calledFunctions.begin(), calledFunctions.end());</div>
1349
- <div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; }</div>
1350
- <div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; }</div>
1351
- <div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; }</div>
1352
- <div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; </div>
1353
- <div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* appfunc : funDefs)</div>
1354
- <div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; {</div>
1355
- <div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* owfunc : overwriteExtFuncs)</div>
1356
- <div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; {</div>
1357
- <div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="keywordflow">if</span> (appfunc-&gt;getName().str().compare(owfunc-&gt;getName().str()) == 0)</div>
1358
- <div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; {</div>
1359
- <div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = <span class="keyword">const_cast&lt;</span><a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>*<span class="keyword">&gt;</span>(appfunc);</div>
1360
- <div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mod = fun-&gt;getParent();</div>
1361
- <div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <a class="code" href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">FunctionType</a>* funType = fun-&gt;getFunctionType();</div>
1362
- <div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> funName = fun-&gt;getName().str();</div>
1363
- <div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; <span class="comment">// Replace app function definition with declaration</span></div>
1364
- <div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* declaration = Function::Create(funType, GlobalValue::ExternalLinkage, funName, mod);</div>
1365
- <div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; fun-&gt;replaceAllUsesWith(declaration);</div>
1366
- <div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; fun-&gt;eraseFromParent();</div>
1367
- <div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; declaration-&gt;setName(funName);</div>
1368
- <div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; <span class="comment">// AppDef -&gt; ExtDef in Table 1, AppDef has been changed to AppDecl</span></div>
1369
- <div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">FunDeclToDefMap</a>[declaration] = owfunc;</div>
1370
- <div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="comment">// ExtDef -&gt; AppDef in Table 1</span></div>
1371
- <div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; std::vector&lt;const Function*&gt;&amp; decls = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">FunDefToDeclsMap</a>[owfunc];</div>
1372
- <div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; decls.push_back(declaration);</div>
1373
- <div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; <span class="comment">// Keep all called functions in owfunc</span></div>
1374
- <div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="comment">// ExtDecl -&gt; ExtDecl in Table 1</span></div>
1375
- <div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; std::vector&lt;const Function*&gt; calledFunctions = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">LLVMUtil::getCalledFunctions</a>(owfunc);</div>
1376
- <div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab932917041e1b1d8b461bfef464330fd">ExtFuncsVec</a>.insert(<a class="code" href="classSVF_1_1LLVMModuleSet.html#ab932917041e1b1d8b461bfef464330fd">ExtFuncsVec</a>.end(), calledFunctions.begin(), calledFunctions.end());</div>
1377
- <div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; }</div>
1378
- <div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; }</div>
1379
- <div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; }</div>
1380
- <div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;}</div>
1349
+ <div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; <span class="keywordflow">break</span>;</div>
1350
+ <div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; }</div>
1351
+ <div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; }</div>
1352
+ <div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; }</div>
1353
+ <div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; </div>
1354
+ <div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* appfunc : funDefs)</div>
1355
+ <div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; {</div>
1356
+ <div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* owfunc : overwriteExtFuncs)</div>
1357
+ <div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; {</div>
1358
+ <div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; <span class="keywordflow">if</span> (appfunc-&gt;getName().str().compare(owfunc-&gt;getName().str()) == 0)</div>
1359
+ <div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; {</div>
1360
+ <div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = <span class="keyword">const_cast&lt;</span><a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>*<span class="keyword">&gt;</span>(appfunc);</div>
1361
+ <div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mod = fun-&gt;getParent();</div>
1362
+ <div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <a class="code" href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">FunctionType</a>* funType = fun-&gt;getFunctionType();</div>
1363
+ <div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> funName = fun-&gt;getName().str();</div>
1364
+ <div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; <span class="comment">// Replace app function definition with declaration</span></div>
1365
+ <div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* declaration = Function::Create(funType, GlobalValue::ExternalLinkage, funName, mod);</div>
1366
+ <div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; fun-&gt;replaceAllUsesWith(declaration);</div>
1367
+ <div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; fun-&gt;eraseFromParent();</div>
1368
+ <div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; declaration-&gt;setName(funName);</div>
1369
+ <div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <span class="comment">// AppDef -&gt; ExtDef in Table 1, AppDef has been changed to AppDecl</span></div>
1370
+ <div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">FunDeclToDefMap</a>[declaration] = owfunc;</div>
1371
+ <div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; <span class="comment">// ExtDef -&gt; AppDef in Table 1</span></div>
1372
+ <div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; std::vector&lt;const Function*&gt;&amp; decls = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">FunDefToDeclsMap</a>[owfunc];</div>
1373
+ <div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; decls.push_back(declaration);</div>
1374
+ <div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="comment">// Keep all called functions in owfunc</span></div>
1375
+ <div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; <span class="comment">// ExtDecl -&gt; ExtDecl in Table 1</span></div>
1376
+ <div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; std::vector&lt;const Function*&gt; calledFunctions = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">LLVMUtil::getCalledFunctions</a>(owfunc);</div>
1377
+ <div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab932917041e1b1d8b461bfef464330fd">ExtFuncsVec</a>.insert(<a class="code" href="classSVF_1_1LLVMModuleSet.html#ab932917041e1b1d8b461bfef464330fd">ExtFuncsVec</a>.end(), calledFunctions.begin(), calledFunctions.end());</div>
1378
+ <div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; <span class="keywordflow">break</span>;</div>
1379
+ <div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; }</div>
1380
+ <div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; }</div>
1381
+ <div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; }</div>
1382
+ <div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;}</div>
1381
1383
  </div><!-- fragment -->
1382
1384
  </div>
1383
1385
  </div>
@@ -1404,47 +1406,47 @@ Friends</h2></td></tr>
1404
1406
  </table>
1405
1407
  </div><div class="memdoc">
1406
1408
 
1407
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01004">1004</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1408
- <div class="fragment"><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;{</div>
1409
- <div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;string, Set&lt;GlobalVariable*&gt;</a>&gt; NameToGlobalsMapTy;</div>
1410
- <div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; NameToGlobalsMapTy nameToGlobalsMap;</div>
1411
- <div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &amp;mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div>
1412
- <div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; {</div>
1413
- <div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; <span class="comment">// Collect ctor and dtor functions</span></div>
1414
- <div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>&amp; global : mod.globals())</div>
1415
- <div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; {</div>
1416
- <div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; <span class="keywordflow">if</span> (global.hasPrivateLinkage())</div>
1417
- <div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <span class="keywordflow">continue</span>;</div>
1418
- <div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <span class="keywordtype">string</span> <a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a> = global.getName().str();</div>
1419
- <div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>.empty())</div>
1420
- <div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; <span class="keywordflow">continue</span>;</div>
1421
- <div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; nameToGlobalsMap[<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>)].insert(&amp;global);</div>
1422
- <div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; }</div>
1423
- <div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; }</div>
1424
- <div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; </div>
1425
- <div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; pair : nameToGlobalsMap)</div>
1426
- <div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; {</div>
1427
- <div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> &amp;globals = pair.second;</div>
1428
- <div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; </div>
1429
- <div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> repIt =</div>
1430
- <div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; std::find_if(globals.begin(), globals.end(),</div>
1431
- <div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; [](<a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* g)</div>
1432
- <div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; {</div>
1433
- <div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; return g-&gt;hasInitializer();</div>
1434
- <div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; });</div>
1435
- <div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* rep =</div>
1436
- <div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; repIt != globals.end()</div>
1437
- <div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; ? *repIt</div>
1438
- <div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <span class="comment">// When there is no initializer, just pick the first one.</span></div>
1439
- <div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; : (assert(!globals.empty() &amp;&amp; <span class="stringliteral">&quot;Empty global set&quot;</span>),</div>
1440
- <div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; *globals.begin());</div>
1441
- <div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; </div>
1442
- <div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* cur : globals)</div>
1443
- <div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; {</div>
1444
- <div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae2a1fa0b908cf372c50af90e62c4bf2b">GlobalDefToRepMap</a>[cur] = rep;</div>
1445
- <div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; }</div>
1446
- <div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; }</div>
1447
- <div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;}</div>
1409
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01006">1006</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1410
+ <div class="fragment"><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;{</div>
1411
+ <div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;string, Set&lt;GlobalVariable*&gt;</a>&gt; NameToGlobalsMapTy;</div>
1412
+ <div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; NameToGlobalsMapTy nameToGlobalsMap;</div>
1413
+ <div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &amp;mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div>
1414
+ <div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; {</div>
1415
+ <div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; <span class="comment">// Collect ctor and dtor functions</span></div>
1416
+ <div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>&amp; global : mod.globals())</div>
1417
+ <div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; {</div>
1418
+ <div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <span class="keywordflow">if</span> (global.hasPrivateLinkage())</div>
1419
+ <div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; <span class="keywordflow">continue</span>;</div>
1420
+ <div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; <span class="keywordtype">string</span> <a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a> = global.getName().str();</div>
1421
+ <div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>.empty())</div>
1422
+ <div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <span class="keywordflow">continue</span>;</div>
1423
+ <div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; nameToGlobalsMap[<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>)].insert(&amp;global);</div>
1424
+ <div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; }</div>
1425
+ <div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; }</div>
1426
+ <div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; </div>
1427
+ <div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; pair : nameToGlobalsMap)</div>
1428
+ <div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; {</div>
1429
+ <div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> &amp;globals = pair.second;</div>
1430
+ <div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; </div>
1431
+ <div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> repIt =</div>
1432
+ <div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; std::find_if(globals.begin(), globals.end(),</div>
1433
+ <div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; [](<a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* g)</div>
1434
+ <div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; {</div>
1435
+ <div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; return g-&gt;hasInitializer();</div>
1436
+ <div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; });</div>
1437
+ <div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* rep =</div>
1438
+ <div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; repIt != globals.end()</div>
1439
+ <div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; ? *repIt</div>
1440
+ <div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; <span class="comment">// When there is no initializer, just pick the first one.</span></div>
1441
+ <div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; : (assert(!globals.empty() &amp;&amp; <span class="stringliteral">&quot;Empty global set&quot;</span>),</div>
1442
+ <div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; *globals.begin());</div>
1443
+ <div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; </div>
1444
+ <div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* cur : globals)</div>
1445
+ <div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; {</div>
1446
+ <div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae2a1fa0b908cf372c50af90e62c4bf2b">GlobalDefToRepMap</a>[cur] = rep;</div>
1447
+ <div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; }</div>
1448
+ <div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; }</div>
1449
+ <div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;}</div>
1448
1450
  </div><!-- fragment -->
1449
1451
  </div>
1450
1452
  </div>
@@ -1623,59 +1625,59 @@ Friends</h2></td></tr>
1623
1625
  <p>Array's flatten field infor is the same as its element's flatten infor.</p>
1624
1626
  <p>Flatten arrays, map each array element index <code>i</code> to flattened index <code>(i * nfE * totalElemNum)/outArrayElemNum</code> nfE&gt;1 if the array element is a struct with more than one field.</p>
1625
1627
 
1626
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01338">1338</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1627
- <div class="fragment"><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;{</div>
1628
- <div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160; <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> totalElemNum = ty-&gt;getNumElements();</div>
1629
- <div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* elemTy = ty-&gt;getElementType();</div>
1630
- <div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; <span class="keywordflow">while</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">ArrayType</a>* aty = SVFUtil::dyn_cast&lt;ArrayType&gt;(elemTy))</div>
1631
- <div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160; {</div>
1632
- <div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160; totalElemNum *= aty-&gt;getNumElements();</div>
1633
- <div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; elemTy = aty-&gt;getElementType();</div>
1634
- <div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160; }</div>
1635
- <div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; </div>
1636
- <div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo = <span class="keyword">new</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>(totalElemNum);</div>
1637
- <div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elemSvfType = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(elemTy);</div>
1638
- <div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; </div>
1639
- <div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; <span class="keywordflow">if</span> (totalElemNum == 0)</div>
1640
- <div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; {</div>
1641
- <div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(0, elemSvfType, 0);</div>
1642
- <div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(1, 1);</div>
1643
- <div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemSvfType);</div>
1644
- <div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(elemSvfType);</div>
1645
- <div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1646
- <div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; }</div>
1647
- <div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; </div>
1648
- <div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* elemStInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">collectTypeInfo</a>(elemTy);</div>
1649
- <div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nfF = elemStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0">getNumOfFlattenFields</a>();</div>
1650
- <div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nfE = elemStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">getNumOfFlattenElements</a>();</div>
1651
- <div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0; j &lt; nfF; j++)</div>
1652
- <div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; {</div>
1653
- <div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* fieldTy = elemStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>()[j];</div>
1654
- <div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(fieldTy);</div>
1655
- <div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160; }</div>
1656
- <div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; </div>
1657
- <div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> outArrayElemNum = ty-&gt;getNumElements();</div>
1658
- <div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; outArrayElemNum; ++i)</div>
1659
- <div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160; {</div>
1660
- <div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160; <span class="keyword">auto</span> idx = (i * nfE * totalElemNum) / outArrayElemNum;</div>
1661
- <div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(0, elemSvfType, idx);</div>
1662
- <div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160; }</div>
1663
- <div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160; </div>
1664
- <div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; totalElemNum; ++i)</div>
1665
- <div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; {</div>
1666
- <div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0; j &lt; nfE; ++j)</div>
1667
- <div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; {</div>
1668
- <div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* et = elemStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>()[j];</div>
1669
- <div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(et);</div>
1670
- <div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; }</div>
1671
- <div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; }</div>
1672
- <div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; </div>
1673
- <div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; assert(stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().size() == nfE * totalElemNum &amp;&amp;</div>
1674
- <div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; <span class="stringliteral">&quot;typeForArray size incorrect!!!&quot;</span>);</div>
1675
- <div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(nfF, nfE * totalElemNum);</div>
1676
- <div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; </div>
1677
- <div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1678
- <div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;}</div>
1628
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01340">1340</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1629
+ <div class="fragment"><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;{</div>
1630
+ <div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> totalElemNum = ty-&gt;getNumElements();</div>
1631
+ <div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* elemTy = ty-&gt;getElementType();</div>
1632
+ <div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160; <span class="keywordflow">while</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">ArrayType</a>* aty = SVFUtil::dyn_cast&lt;ArrayType&gt;(elemTy))</div>
1633
+ <div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; {</div>
1634
+ <div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160; totalElemNum *= aty-&gt;getNumElements();</div>
1635
+ <div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; elemTy = aty-&gt;getElementType();</div>
1636
+ <div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; }</div>
1637
+ <div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; </div>
1638
+ <div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo = <span class="keyword">new</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>(totalElemNum);</div>
1639
+ <div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elemSvfType = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(elemTy);</div>
1640
+ <div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; </div>
1641
+ <div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; <span class="keywordflow">if</span> (totalElemNum == 0)</div>
1642
+ <div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; {</div>
1643
+ <div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(0, elemSvfType, 0);</div>
1644
+ <div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(1, 1);</div>
1645
+ <div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemSvfType);</div>
1646
+ <div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(elemSvfType);</div>
1647
+ <div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1648
+ <div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; }</div>
1649
+ <div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; </div>
1650
+ <div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* elemStInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">collectTypeInfo</a>(elemTy);</div>
1651
+ <div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nfF = elemStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0">getNumOfFlattenFields</a>();</div>
1652
+ <div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nfE = elemStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">getNumOfFlattenElements</a>();</div>
1653
+ <div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0; j &lt; nfF; j++)</div>
1654
+ <div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; {</div>
1655
+ <div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* fieldTy = elemStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>()[j];</div>
1656
+ <div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(fieldTy);</div>
1657
+ <div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; }</div>
1658
+ <div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; </div>
1659
+ <div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> outArrayElemNum = ty-&gt;getNumElements();</div>
1660
+ <div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; outArrayElemNum; ++i)</div>
1661
+ <div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160; {</div>
1662
+ <div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160; <span class="keyword">auto</span> idx = (i * nfE * totalElemNum) / outArrayElemNum;</div>
1663
+ <div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(0, elemSvfType, idx);</div>
1664
+ <div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; }</div>
1665
+ <div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; </div>
1666
+ <div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; totalElemNum; ++i)</div>
1667
+ <div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; {</div>
1668
+ <div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0; j &lt; nfE; ++j)</div>
1669
+ <div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; {</div>
1670
+ <div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* et = elemStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>()[j];</div>
1671
+ <div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(et);</div>
1672
+ <div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; }</div>
1673
+ <div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; }</div>
1674
+ <div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; </div>
1675
+ <div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; assert(stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().size() == nfE * totalElemNum &amp;&amp;</div>
1676
+ <div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; <span class="stringliteral">&quot;typeForArray size incorrect!!!&quot;</span>);</div>
1677
+ <div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(nfF, nfE * totalElemNum);</div>
1678
+ <div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; </div>
1679
+ <div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1680
+ <div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;}</div>
1679
1681
  </div><!-- fragment -->
1680
1682
  </div>
1681
1683
  </div>
@@ -1707,18 +1709,18 @@ Friends</h2></td></tr>
1707
1709
  <p>Collect simple type (non-aggregate) info </p>
1708
1710
  <p>Only one field</p>
1709
1711
 
1710
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01458">1458</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1711
- <div class="fragment"><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;{</div>
1712
- <div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo = <span class="keyword">new</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>(1);</div>
1713
- <div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160; <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* svfType = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ty);</div>
1714
- <div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(0, svfType, 0);</div>
1715
- <div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160; </div>
1716
- <div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(svfType);</div>
1717
- <div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(svfType);</div>
1718
- <div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(1,1);</div>
1719
- <div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160; </div>
1720
- <div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1721
- <div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;}</div>
1712
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01460">1460</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1713
+ <div class="fragment"><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;{</div>
1714
+ <div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo = <span class="keyword">new</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>(1);</div>
1715
+ <div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160; <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* svfType = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ty);</div>
1716
+ <div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(0, svfType, 0);</div>
1717
+ <div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; </div>
1718
+ <div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(svfType);</div>
1719
+ <div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(svfType);</div>
1720
+ <div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(1,1);</div>
1721
+ <div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160; </div>
1722
+ <div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1723
+ <div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;}</div>
1722
1724
  </div><!-- fragment -->
1723
1725
  </div>
1724
1726
  </div>
@@ -1760,56 +1762,56 @@ Friends</h2></td></tr>
1760
1762
  <p>Fill in struct_info for T. Given a Struct type, we recursively extend and record its fields and types. </p>
1761
1763
  <p>The struct info should not be processed before</p>
1762
1764
 
1763
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01401">1401</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1764
- <div class="fragment"><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;{</div>
1765
- <div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo = <span class="keyword">new</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>(1);</div>
1766
- <div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160; </div>
1767
- <div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160; <span class="comment">// Number of fields after flattening the struct</span></div>
1768
- <div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160; numFields = 0;</div>
1769
- <div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; <span class="comment">// The offset when considering array stride info</span></div>
1770
- <div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> strideOffset = 0;</div>
1771
- <div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* elemTy : structTy-&gt;elements())</div>
1772
- <div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; {</div>
1773
- <div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elemSvfTy = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(elemTy);</div>
1774
- <div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160; <span class="comment">// offset with int_32 (s32_t) is large enough and won&#39;t overflow</span></div>
1775
- <div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(numFields, elemSvfTy, strideOffset);</div>
1776
- <div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160; </div>
1777
- <div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;StructType, ArrayType&gt;(elemTy))</div>
1778
- <div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; {</div>
1779
- <div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* subStInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">collectTypeInfo</a>(elemTy);</div>
1780
- <div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nfF = subStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0">getNumOfFlattenFields</a>();</div>
1781
- <div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nfE = subStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">getNumOfFlattenElements</a>();</div>
1782
- <div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160; <span class="comment">// Copy ST&#39;s info, whose element 0 is the size of ST itself.</span></div>
1783
- <div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0; j &lt; nfF; ++j)</div>
1784
- <div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; {</div>
1785
- <div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elemTy = subStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>()[j];</div>
1786
- <div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemTy);</div>
1787
- <div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160; }</div>
1788
- <div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160; numFields += nfF;</div>
1789
- <div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160; strideOffset += nfE;</div>
1790
- <div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> tpj = 0; tpj &lt; nfE; ++tpj)</div>
1791
- <div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; {</div>
1792
- <div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty = subStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>()[tpj];</div>
1793
- <div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(ty);</div>
1794
- <div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; }</div>
1795
- <div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; </div>
1796
- <div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160; }</div>
1797
- <div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160; <span class="keywordflow">else</span></div>
1798
- <div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160; {</div>
1799
- <div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160; <span class="comment">// Simple type</span></div>
1800
- <div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160; numFields += 1;</div>
1801
- <div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160; strideOffset += 1;</div>
1802
- <div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemSvfTy);</div>
1803
- <div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(elemSvfTy);</div>
1804
- <div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160; }</div>
1805
- <div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; }</div>
1806
- <div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160; </div>
1807
- <div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; assert(stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().size() == strideOffset &amp;&amp;</div>
1808
- <div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160; <span class="stringliteral">&quot;typeForStruct size incorrect!&quot;</span>);</div>
1809
- <div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(numFields,strideOffset);</div>
1810
- <div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160; </div>
1811
- <div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1812
- <div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;}</div>
1765
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01403">1403</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1766
+ <div class="fragment"><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;{</div>
1767
+ <div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo = <span class="keyword">new</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>(1);</div>
1768
+ <div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160; </div>
1769
+ <div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; <span class="comment">// Number of fields after flattening the struct</span></div>
1770
+ <div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; numFields = 0;</div>
1771
+ <div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160; <span class="comment">// The offset when considering array stride info</span></div>
1772
+ <div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> strideOffset = 0;</div>
1773
+ <div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* elemTy : structTy-&gt;elements())</div>
1774
+ <div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160; {</div>
1775
+ <div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elemSvfTy = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(elemTy);</div>
1776
+ <div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160; <span class="comment">// offset with int_32 (s32_t) is large enough and won&#39;t overflow</span></div>
1777
+ <div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(numFields, elemSvfTy, strideOffset);</div>
1778
+ <div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; </div>
1779
+ <div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;StructType, ArrayType&gt;(elemTy))</div>
1780
+ <div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; {</div>
1781
+ <div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* subStInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">collectTypeInfo</a>(elemTy);</div>
1782
+ <div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nfF = subStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0">getNumOfFlattenFields</a>();</div>
1783
+ <div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nfE = subStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">getNumOfFlattenElements</a>();</div>
1784
+ <div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; <span class="comment">// Copy ST&#39;s info, whose element 0 is the size of ST itself.</span></div>
1785
+ <div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0; j &lt; nfF; ++j)</div>
1786
+ <div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160; {</div>
1787
+ <div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elemTy = subStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>()[j];</div>
1788
+ <div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemTy);</div>
1789
+ <div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160; }</div>
1790
+ <div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160; numFields += nfF;</div>
1791
+ <div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; strideOffset += nfE;</div>
1792
+ <div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> tpj = 0; tpj &lt; nfE; ++tpj)</div>
1793
+ <div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; {</div>
1794
+ <div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty = subStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>()[tpj];</div>
1795
+ <div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(ty);</div>
1796
+ <div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160; }</div>
1797
+ <div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160; </div>
1798
+ <div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160; }</div>
1799
+ <div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160; <span class="keywordflow">else</span></div>
1800
+ <div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160; {</div>
1801
+ <div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160; <span class="comment">// Simple type</span></div>
1802
+ <div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160; numFields += 1;</div>
1803
+ <div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160; strideOffset += 1;</div>
1804
+ <div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemSvfTy);</div>
1805
+ <div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(elemSvfTy);</div>
1806
+ <div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160; }</div>
1807
+ <div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; }</div>
1808
+ <div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160; </div>
1809
+ <div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; assert(stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().size() == strideOffset &amp;&amp;</div>
1810
+ <div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160; <span class="stringliteral">&quot;typeForStruct size incorrect!&quot;</span>);</div>
1811
+ <div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(numFields,strideOffset);</div>
1812
+ <div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160; </div>
1813
+ <div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1814
+ <div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;}</div>
1813
1815
  </div><!-- fragment -->
1814
1816
  </div>
1815
1817
  </div>
@@ -1839,37 +1841,37 @@ Friends</h2></td></tr>
1839
1841
 
1840
1842
  <p>Collect a type info. </p>
1841
1843
 
1842
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01237">1237</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1843
- <div class="fragment"><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;{</div>
1844
- <div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; Type2TypeInfoMap::iterator tit = <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.find(T);</div>
1845
- <div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160; <span class="keywordflow">if</span> (tit != <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.end())</div>
1846
- <div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; {</div>
1847
- <div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; <span class="keywordflow">return</span> tit-&gt;second;</div>
1848
- <div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; }</div>
1849
- <div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; <span class="comment">// No such StInfo for T, create it now.</span></div>
1850
- <div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo;</div>
1851
- <div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">ArrayType</a>* aty = SVFUtil::dyn_cast&lt;ArrayType&gt;(T))</div>
1852
- <div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; {</div>
1853
- <div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29">collectArrayInfo</a>(aty);</div>
1854
- <div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; }</div>
1855
- <div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a>* sty = SVFUtil::dyn_cast&lt;StructType&gt;(T))</div>
1856
- <div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; {</div>
1857
- <div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nf;</div>
1858
- <div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258">collectStructInfo</a>(sty, nf);</div>
1859
- <div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; <span class="keywordflow">if</span> (nf &gt; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a>)</div>
1860
- <div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; {</div>
1861
- <div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a0c1143eff451edf8ea47d4487a8d3a55">maxStruct</a> = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(sty);</div>
1862
- <div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a> = nf;</div>
1863
- <div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; }</div>
1864
- <div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; }</div>
1865
- <div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; <span class="keywordflow">else</span></div>
1866
- <div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; {</div>
1867
- <div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2">collectSimpleTypeInfo</a>(T);</div>
1868
- <div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; }</div>
1869
- <div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.emplace(T, stInfo);</div>
1870
- <div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a72be32d606db86090067159de44e01ec">addStInfo</a>(stInfo);</div>
1871
- <div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1872
- <div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;}</div>
1844
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01239">1239</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1845
+ <div class="fragment"><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;{</div>
1846
+ <div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; Type2TypeInfoMap::iterator tit = <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.find(T);</div>
1847
+ <div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; <span class="keywordflow">if</span> (tit != <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.end())</div>
1848
+ <div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; {</div>
1849
+ <div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; <span class="keywordflow">return</span> tit-&gt;second;</div>
1850
+ <div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; }</div>
1851
+ <div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; <span class="comment">// No such StInfo for T, create it now.</span></div>
1852
+ <div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo;</div>
1853
+ <div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">ArrayType</a>* aty = SVFUtil::dyn_cast&lt;ArrayType&gt;(T))</div>
1854
+ <div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; {</div>
1855
+ <div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29">collectArrayInfo</a>(aty);</div>
1856
+ <div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; }</div>
1857
+ <div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a>* sty = SVFUtil::dyn_cast&lt;StructType&gt;(T))</div>
1858
+ <div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; {</div>
1859
+ <div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nf;</div>
1860
+ <div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258">collectStructInfo</a>(sty, nf);</div>
1861
+ <div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; <span class="keywordflow">if</span> (nf &gt; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a>)</div>
1862
+ <div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; {</div>
1863
+ <div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a0c1143eff451edf8ea47d4487a8d3a55">maxStruct</a> = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(sty);</div>
1864
+ <div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a> = nf;</div>
1865
+ <div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; }</div>
1866
+ <div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; }</div>
1867
+ <div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; <span class="keywordflow">else</span></div>
1868
+ <div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; {</div>
1869
+ <div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2">collectSimpleTypeInfo</a>(T);</div>
1870
+ <div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; }</div>
1871
+ <div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.emplace(T, stInfo);</div>
1872
+ <div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a72be32d606db86090067159de44e01ec">addStInfo</a>(stInfo);</div>
1873
+ <div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1874
+ <div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;}</div>
1873
1875
  </div><!-- fragment -->
1874
1876
  </div>
1875
1877
  </div>
@@ -2075,30 +2077,30 @@ Friends</h2></td></tr>
2075
2077
  </table>
2076
2078
  </div><div class="memdoc">
2077
2079
 
2078
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01047">1047</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
2079
- <div class="fragment"><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;{</div>
2080
- <div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>&amp; mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div>
2081
- <div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; {</div>
2082
- <div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> moduleName = mod.getName().str();</div>
2083
- <div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> OutputFilename;</div>
2084
- <div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; std::size_t pos = moduleName.rfind(<span class="charliteral">&#39;.&#39;</span>);</div>
2085
- <div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; <span class="keywordflow">if</span> (pos != std::string::npos)</div>
2086
- <div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; OutputFilename = moduleName.substr(0, pos) + suffix;</div>
2087
- <div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; <span class="keywordflow">else</span></div>
2088
- <div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; OutputFilename = moduleName + suffix;</div>
2089
- <div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; </div>
2090
- <div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; std::error_code EC;</div>
2091
- <div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; <a class="code" href="namespaceSVF.html#a1c7c7ac12791c0ae386283c0a4f127ba">raw_fd_ostream</a> OS(OutputFilename.c_str(), EC, llvm::sys::fs::OF_None);</div>
2092
- <div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; </div>
2093
- <div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;<span class="preprocessor">#if (LLVM_VERSION_MAJOR &gt;= 7)</span></div>
2094
- <div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; WriteBitcodeToFile(mod, OS);</div>
2095
- <div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;<span class="preprocessor">#else</span></div>
2096
- <div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; WriteBitcodeToFile(&amp;mod, OS);</div>
2097
- <div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;<span class="preprocessor">#endif</span></div>
2098
- <div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; </div>
2099
- <div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; OS.flush();</div>
2100
- <div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; }</div>
2101
- <div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;}</div>
2080
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01049">1049</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
2081
+ <div class="fragment"><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;{</div>
2082
+ <div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>&amp; mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div>
2083
+ <div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; {</div>
2084
+ <div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> moduleName = mod.getName().str();</div>
2085
+ <div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> OutputFilename;</div>
2086
+ <div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; std::size_t pos = moduleName.rfind(<span class="charliteral">&#39;.&#39;</span>);</div>
2087
+ <div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; <span class="keywordflow">if</span> (pos != std::string::npos)</div>
2088
+ <div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; OutputFilename = moduleName.substr(0, pos) + suffix;</div>
2089
+ <div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; <span class="keywordflow">else</span></div>
2090
+ <div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; OutputFilename = moduleName + suffix;</div>
2091
+ <div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; </div>
2092
+ <div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; std::error_code EC;</div>
2093
+ <div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; <a class="code" href="namespaceSVF.html#a1c7c7ac12791c0ae386283c0a4f127ba">raw_fd_ostream</a> OS(OutputFilename.c_str(), EC, llvm::sys::fs::OF_None);</div>
2094
+ <div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; </div>
2095
+ <div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;<span class="preprocessor">#if (LLVM_VERSION_MAJOR &gt;= 7)</span></div>
2096
+ <div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; WriteBitcodeToFile(mod, OS);</div>
2097
+ <div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;<span class="preprocessor">#else</span></div>
2098
+ <div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; WriteBitcodeToFile(&amp;mod, OS);</div>
2099
+ <div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;<span class="preprocessor">#endif</span></div>
2100
+ <div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; </div>
2101
+ <div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; OS.flush();</div>
2102
+ <div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; }</div>
2103
+ <div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;}</div>
2102
2104
  </div><!-- fragment -->
2103
2105
  </div>
2104
2106
  </div>
@@ -2462,16 +2464,16 @@ Friends</h2></td></tr>
2462
2464
 
2463
2465
  <p>Get LLVM Type. </p>
2464
2466
 
2465
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01203">1203</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
2466
- <div class="fragment"><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;{</div>
2467
- <div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; <span class="keywordflow">for</span>(LLVMType2SVFTypeMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.begin(), eit = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.end(); it!=eit; ++it)</div>
2468
- <div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; {</div>
2469
- <div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; <span class="keywordflow">if</span> (it-&gt;second == T)</div>
2470
- <div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; <span class="keywordflow">return</span> it-&gt;first;</div>
2471
- <div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; }</div>
2472
- <div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;can&#39;t find the corresponding LLVM Type&quot;</span>);</div>
2473
- <div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; abort();</div>
2474
- <div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;}</div>
2467
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01205">1205</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
2468
+ <div class="fragment"><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;{</div>
2469
+ <div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; <span class="keywordflow">for</span>(LLVMType2SVFTypeMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.begin(), eit = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.end(); it!=eit; ++it)</div>
2470
+ <div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; {</div>
2471
+ <div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; <span class="keywordflow">if</span> (it-&gt;second == T)</div>
2472
+ <div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; <span class="keywordflow">return</span> it-&gt;first;</div>
2473
+ <div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; }</div>
2474
+ <div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;can&#39;t find the corresponding LLVM Type&quot;</span>);</div>
2475
+ <div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; abort();</div>
2476
+ <div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;}</div>
2475
2477
  </div><!-- fragment -->
2476
2478
  </div>
2477
2479
  </div>
@@ -2647,21 +2649,21 @@ Friends</h2></td></tr>
2647
2649
  </table>
2648
2650
  </div><div class="memdoc">
2649
2651
 
2650
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01145">1145</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
2651
- <div class="fragment"><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;{</div>
2652
- <div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; LLVMConst2SVFConstMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.find(oc);</div>
2653
- <div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.end())</div>
2654
- <div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; {</div>
2655
- <div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
2656
- <div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; }</div>
2657
- <div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <span class="keywordflow">else</span></div>
2658
- <div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; {</div>
2659
- <div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <a class="code" href="classSVF_1_1SVFConstant.html">SVFConstant</a>* svfoc = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstant.html">SVFConstant</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(oc-&gt;getType()));</div>
2660
- <div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#ae64d24569942d7c4b18d2198be4839f3">addConstant</a>(svfoc);</div>
2661
- <div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5badf03aeb1ebda02bc186bbb58a892a">addOtherConstantMap</a>(oc,svfoc);</div>
2662
- <div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; <span class="keywordflow">return</span> svfoc;</div>
2663
- <div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; }</div>
2664
- <div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;}</div>
2652
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01147">1147</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
2653
+ <div class="fragment"><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;{</div>
2654
+ <div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; LLVMConst2SVFConstMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.find(oc);</div>
2655
+ <div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.end())</div>
2656
+ <div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; {</div>
2657
+ <div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
2658
+ <div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; }</div>
2659
+ <div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <span class="keywordflow">else</span></div>
2660
+ <div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; {</div>
2661
+ <div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; <a class="code" href="classSVF_1_1SVFConstant.html">SVFConstant</a>* svfoc = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstant.html">SVFConstant</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(oc-&gt;getType()));</div>
2662
+ <div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#ae64d24569942d7c4b18d2198be4839f3">addConstant</a>(svfoc);</div>
2663
+ <div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5badf03aeb1ebda02bc186bbb58a892a">addOtherConstantMap</a>(oc,svfoc);</div>
2664
+ <div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; <span class="keywordflow">return</span> svfoc;</div>
2665
+ <div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; }</div>
2666
+ <div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;}</div>
2665
2667
  </div><!-- fragment -->
2666
2668
  </div>
2667
2669
  </div>
@@ -2748,49 +2750,49 @@ Friends</h2></td></tr>
2748
2750
  </div><div class="memdoc">
2749
2751
  <p>bitwidth == 1 : cint has value from getZExtValue() because <code>bool true</code> will be translated to -1 using sign extension (i.e., getSExtValue). bitwidth &lt;=64 1 : cint has value from getSExtValue() bitwidth &gt;64 1 : cint has value 0 because it represents an invalid int</p>
2750
2752
 
2751
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01098">1098</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
2752
- <div class="fragment"><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;{</div>
2753
- <div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; LLVMConst2SVFConstMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.find(cd);</div>
2754
- <div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.end())</div>
2755
- <div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; {</div>
2756
- <div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; assert(SVFUtil::isa&lt;SVFConstantData&gt;(it-&gt;second) &amp;&amp; <span class="stringliteral">&quot;not a SVFConstantData type!&quot;</span>);</div>
2757
- <div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; <span class="keywordflow">return</span> SVFUtil::cast&lt;SVFConstantData&gt;(it-&gt;second);</div>
2758
- <div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; }</div>
2759
- <div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; <span class="keywordflow">else</span></div>
2760
- <div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; {</div>
2761
- <div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; <a class="code" href="classSVF_1_1SVFConstantData.html">SVFConstantData</a>* svfcd = <span class="keyword">nullptr</span>;</div>
2762
- <div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>* cint = SVFUtil::dyn_cast&lt;ConstantInt&gt;(cd))</div>
2763
- <div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; {</div>
2764
- <div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; <span class="keywordflow">if</span>(cint-&gt;getBitWidth() == 1)</div>
2765
- <div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cint-&gt;getType()), cint-&gt;getZExtValue(), cint-&gt;getZExtValue());</div>
2766
- <div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(cint-&gt;getBitWidth() &lt;= 64 &amp;&amp; cint-&gt;getBitWidth() &gt; 1)</div>
2767
- <div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cint-&gt;getType()), cint-&gt;getZExtValue(), cint-&gt;getSExtValue());</div>
2768
- <div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <span class="keywordflow">else</span></div>
2769
- <div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cint-&gt;getType()), 0, 0);</div>
2770
- <div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; }</div>
2771
- <div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad49e4222ba46d9490b87a80df8b46800">ConstantFP</a>* cfp = SVFUtil::dyn_cast&lt;ConstantFP&gt;(cd))</div>
2772
- <div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; {</div>
2773
- <div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <span class="keywordtype">double</span> dval = 0;</div>
2774
- <div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; <span class="comment">// TODO: Why only double is considered? What about float?</span></div>
2775
- <div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <span class="keywordflow">if</span>(cfp-&gt;isNormalFP() &amp;&amp; (&amp;cfp-&gt;getValueAPF().getSemantics()== &amp;llvm::APFloatBase::IEEEdouble()))</div>
2776
- <div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; dval = cfp-&gt;getValueAPF().convertToDouble();</div>
2777
- <div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantFP.html">SVFConstantFP</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cd-&gt;getType()), dval);</div>
2778
- <div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; }</div>
2779
- <div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;ConstantPointerNull&gt;(cd))</div>
2780
- <div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantNullPtr.html">SVFConstantNullPtr</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cd-&gt;getType()));</div>
2781
- <div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;UndefValue&gt;(cd))</div>
2782
- <div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFBlackHoleValue.html">SVFBlackHoleValue</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cd-&gt;getType()));</div>
2783
- <div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; <span class="keywordflow">else</span></div>
2784
- <div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantData.html">SVFConstantData</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cd-&gt;getType()));</div>
2785
- <div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; </div>
2786
- <div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; <span class="keywordflow">if</span> (cd-&gt;hasName())</div>
2787
- <div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; svfcd-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName</a>(cd-&gt;getName().str());</div>
2788
- <div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; </div>
2789
- <div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#ae64d24569942d7c4b18d2198be4839f3">addConstant</a>(svfcd);</div>
2790
- <div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#af4bd487b3b6efe55bf869b869f5e8a80">addConstantDataMap</a>(cd,svfcd);</div>
2791
- <div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <span class="keywordflow">return</span> svfcd;</div>
2792
- <div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; }</div>
2793
- <div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;}</div>
2753
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01100">1100</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
2754
+ <div class="fragment"><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;{</div>
2755
+ <div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; LLVMConst2SVFConstMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.find(cd);</div>
2756
+ <div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.end())</div>
2757
+ <div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; {</div>
2758
+ <div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; assert(SVFUtil::isa&lt;SVFConstantData&gt;(it-&gt;second) &amp;&amp; <span class="stringliteral">&quot;not a SVFConstantData type!&quot;</span>);</div>
2759
+ <div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; <span class="keywordflow">return</span> SVFUtil::cast&lt;SVFConstantData&gt;(it-&gt;second);</div>
2760
+ <div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; }</div>
2761
+ <div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; <span class="keywordflow">else</span></div>
2762
+ <div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; {</div>
2763
+ <div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; <a class="code" href="classSVF_1_1SVFConstantData.html">SVFConstantData</a>* svfcd = <span class="keyword">nullptr</span>;</div>
2764
+ <div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>* cint = SVFUtil::dyn_cast&lt;ConstantInt&gt;(cd))</div>
2765
+ <div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; {</div>
2766
+ <div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; <span class="keywordflow">if</span>(cint-&gt;getBitWidth() == 1)</div>
2767
+ <div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cint-&gt;getType()), cint-&gt;getZExtValue(), cint-&gt;getZExtValue());</div>
2768
+ <div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(cint-&gt;getBitWidth() &lt;= 64 &amp;&amp; cint-&gt;getBitWidth() &gt; 1)</div>
2769
+ <div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cint-&gt;getType()), cint-&gt;getZExtValue(), cint-&gt;getSExtValue());</div>
2770
+ <div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; <span class="keywordflow">else</span></div>
2771
+ <div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cint-&gt;getType()), 0, 0);</div>
2772
+ <div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; }</div>
2773
+ <div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad49e4222ba46d9490b87a80df8b46800">ConstantFP</a>* cfp = SVFUtil::dyn_cast&lt;ConstantFP&gt;(cd))</div>
2774
+ <div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; {</div>
2775
+ <div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <span class="keywordtype">double</span> dval = 0;</div>
2776
+ <div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; <span class="comment">// TODO: Why only double is considered? What about float?</span></div>
2777
+ <div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; <span class="keywordflow">if</span>(cfp-&gt;isNormalFP() &amp;&amp; (&amp;cfp-&gt;getValueAPF().getSemantics()== &amp;llvm::APFloatBase::IEEEdouble()))</div>
2778
+ <div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; dval = cfp-&gt;getValueAPF().convertToDouble();</div>
2779
+ <div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantFP.html">SVFConstantFP</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cd-&gt;getType()), dval);</div>
2780
+ <div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; }</div>
2781
+ <div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;ConstantPointerNull&gt;(cd))</div>
2782
+ <div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantNullPtr.html">SVFConstantNullPtr</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cd-&gt;getType()));</div>
2783
+ <div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;UndefValue&gt;(cd))</div>
2784
+ <div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFBlackHoleValue.html">SVFBlackHoleValue</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cd-&gt;getType()));</div>
2785
+ <div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <span class="keywordflow">else</span></div>
2786
+ <div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantData.html">SVFConstantData</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cd-&gt;getType()));</div>
2787
+ <div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; </div>
2788
+ <div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; <span class="keywordflow">if</span> (cd-&gt;hasName())</div>
2789
+ <div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; svfcd-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName</a>(cd-&gt;getName().str());</div>
2790
+ <div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; </div>
2791
+ <div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#ae64d24569942d7c4b18d2198be4839f3">addConstant</a>(svfcd);</div>
2792
+ <div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#af4bd487b3b6efe55bf869b869f5e8a80">addConstantDataMap</a>(cd,svfcd);</div>
2793
+ <div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <span class="keywordflow">return</span> svfcd;</div>
2794
+ <div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; }</div>
2795
+ <div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;}</div>
2794
2796
  </div><!-- fragment -->
2795
2797
  </div>
2796
2798
  </div>
@@ -2984,24 +2986,24 @@ Friends</h2></td></tr>
2984
2986
  </table>
2985
2987
  </div><div class="memdoc">
2986
2988
 
2987
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01161">1161</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
2988
- <div class="fragment"><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;{</div>
2989
- <div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; LLVMValue2SVFOtherValueMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#ac3e70bd338be3a54330be5dc10321eb3">LLVMValue2SVFOtherValue</a>.find(ov);</div>
2990
- <div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#ac3e70bd338be3a54330be5dc10321eb3">LLVMValue2SVFOtherValue</a>.end())</div>
2991
- <div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; {</div>
2992
- <div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
2993
- <div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; }</div>
2994
- <div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; <span class="keywordflow">else</span></div>
2995
- <div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; {</div>
2996
- <div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; <a class="code" href="classSVF_1_1SVFOtherValue.html">SVFOtherValue</a>* svfov =</div>
2997
- <div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; SVFUtil::isa&lt;MetadataAsValue&gt;(ov)</div>
2998
- <div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; ? <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFMetadataAsValue.html">SVFMetadataAsValue</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ov-&gt;getType()))</div>
2999
- <div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; : new <a class="code" href="classSVF_1_1SVFOtherValue.html">SVFOtherValue</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ov-&gt;getType()));</div>
3000
- <div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a48d7f0643bb228701dcabb88ef541fca">addOtherValue</a>(svfov);</div>
3001
- <div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a023ea6f179433fa4d007c98ddc38e3c5">addOtherValueMap</a>(ov,svfov);</div>
3002
- <div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; <span class="keywordflow">return</span> svfov;</div>
3003
- <div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; }</div>
3004
- <div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;}</div>
2989
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01163">1163</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
2990
+ <div class="fragment"><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;{</div>
2991
+ <div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; LLVMValue2SVFOtherValueMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#ac3e70bd338be3a54330be5dc10321eb3">LLVMValue2SVFOtherValue</a>.find(ov);</div>
2992
+ <div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#ac3e70bd338be3a54330be5dc10321eb3">LLVMValue2SVFOtherValue</a>.end())</div>
2993
+ <div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; {</div>
2994
+ <div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
2995
+ <div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; }</div>
2996
+ <div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; <span class="keywordflow">else</span></div>
2997
+ <div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; {</div>
2998
+ <div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; <a class="code" href="classSVF_1_1SVFOtherValue.html">SVFOtherValue</a>* svfov =</div>
2999
+ <div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; SVFUtil::isa&lt;MetadataAsValue&gt;(ov)</div>
3000
+ <div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; ? <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFMetadataAsValue.html">SVFMetadataAsValue</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ov-&gt;getType()))</div>
3001
+ <div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; : new <a class="code" href="classSVF_1_1SVFOtherValue.html">SVFOtherValue</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ov-&gt;getType()));</div>
3002
+ <div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a48d7f0643bb228701dcabb88ef541fca">addOtherValue</a>(svfov);</div>
3003
+ <div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a023ea6f179433fa4d007c98ddc38e3c5">addOtherValueMap</a>(ov,svfov);</div>
3004
+ <div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; <span class="keywordflow">return</span> svfov;</div>
3005
+ <div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; }</div>
3006
+ <div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;}</div>
3005
3007
  </div><!-- fragment -->
3006
3008
  </div>
3007
3009
  </div>
@@ -3025,20 +3027,20 @@ Friends</h2></td></tr>
3025
3027
  <p>Get or create <a class="el" href="classSVF_1_1SVFType.html">SVFType</a> and typeinfo </p>
3026
3028
  <p>TODO: set the void* to every element for now (imprecise) For example, [getPointerTo(): char -&mdash;&gt; i8*] [getPointerTo(): int -&mdash;&gt; i8*] [getPointerTo(): struct -&mdash;&gt; i8*]</p>
3027
3029
 
3028
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01217">1217</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
3029
- <div class="fragment"><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;{</div>
3030
- <div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; assert(T &amp;&amp; <span class="stringliteral">&quot;SVFType should not be null&quot;</span>);</div>
3031
- <div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; LLVMType2SVFTypeMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.find(T);</div>
3032
- <div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; <span class="keywordflow">if</span> (it != <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.end())</div>
3033
- <div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
3034
- <div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; </div>
3035
- <div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* svfType = <a class="code" href="classSVF_1_1LLVMModuleSet.html#aab7b08db9252ef7e21e54d019f44b073">addSVFTypeInfo</a>(T);</div>
3036
- <div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stinfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">collectTypeInfo</a>(T);</div>
3037
- <div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; svfType-&gt;<a class="code" href="classSVF_1_1SVFType.html#aef5999ada62dac3cc946d832ac66948c">setTypeInfo</a>(stinfo);</div>
3038
- <div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* ptrTy = PointerType::getInt8PtrTy(<a class="code" href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">getContext</a>());</div>
3039
- <div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; svfType-&gt;<a class="code" href="classSVF_1_1SVFType.html#a3ddabbd763acaaca28cacbabe5bc7f3b">setPointerTo</a>(SVFUtil::cast&lt;SVFPointerType&gt;(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ptrTy)));</div>
3040
- <div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; <span class="keywordflow">return</span> svfType;</div>
3041
- <div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;}</div>
3030
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01219">1219</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
3031
+ <div class="fragment"><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;{</div>
3032
+ <div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; assert(T &amp;&amp; <span class="stringliteral">&quot;SVFType should not be null&quot;</span>);</div>
3033
+ <div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; LLVMType2SVFTypeMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.find(T);</div>
3034
+ <div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; <span class="keywordflow">if</span> (it != <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.end())</div>
3035
+ <div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
3036
+ <div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; </div>
3037
+ <div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* svfType = <a class="code" href="classSVF_1_1LLVMModuleSet.html#aab7b08db9252ef7e21e54d019f44b073">addSVFTypeInfo</a>(T);</div>
3038
+ <div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stinfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">collectTypeInfo</a>(T);</div>
3039
+ <div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; svfType-&gt;<a class="code" href="classSVF_1_1SVFType.html#aef5999ada62dac3cc946d832ac66948c">setTypeInfo</a>(stinfo);</div>
3040
+ <div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* ptrTy = PointerType::getInt8PtrTy(<a class="code" href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">getContext</a>());</div>
3041
+ <div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; svfType-&gt;<a class="code" href="classSVF_1_1SVFType.html#a3ddabbd763acaaca28cacbabe5bc7f3b">setPointerTo</a>(SVFUtil::cast&lt;SVFPointerType&gt;(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ptrTy)));</div>
3042
+ <div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; <span class="keywordflow">return</span> svfType;</div>
3043
+ <div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;}</div>
3042
3044
  </div><!-- fragment -->
3043
3045
  </div>
3044
3046
  </div>
@@ -3058,28 +3060,28 @@ Friends</h2></td></tr>
3058
3060
  </table>
3059
3061
  </div><div class="memdoc">
3060
3062
 
3061
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01180">1180</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
3062
- <div class="fragment"><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;{</div>
3063
- <div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = SVFUtil::dyn_cast&lt;Function&gt;(value))</div>
3064
- <div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(fun);</div>
3065
- <div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = SVFUtil::dyn_cast&lt;BasicBlock&gt;(value))</div>
3066
- <div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab0c0f321b6bfbfab2e4ff06d81920ab9">getSVFBasicBlock</a>(bb);</div>
3067
- <div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = SVFUtil::dyn_cast&lt;Instruction&gt;(value))</div>
3068
- <div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">getSVFInstruction</a>(inst);</div>
3069
- <div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* arg = SVFUtil::dyn_cast&lt;Argument&gt;(value))</div>
3070
- <div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ad3f66b40ad360003845253f452d6a711">getSVFArgument</a>(arg);</div>
3071
- <div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>* cons = SVFUtil::dyn_cast&lt;Constant&gt;(value))</div>
3072
- <div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; {</div>
3073
- <div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7332f8059ea95472dcc231de884a5768">ConstantData</a>* cd = SVFUtil::dyn_cast&lt;ConstantData&gt;(cons))</div>
3074
- <div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727">getSVFConstantData</a>(cd);</div>
3075
- <div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a67f3f86344f028cacfbeb08caaf7bb0f">GlobalValue</a>* glob = SVFUtil::dyn_cast&lt;GlobalValue&gt;(cons))</div>
3076
- <div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a3cbba2eb702a3481478b2590dfffa352">getSVFGlobalValue</a>(glob);</div>
3077
- <div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; <span class="keywordflow">else</span></div>
3078
- <div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc">getOtherSVFConstant</a>(cons);</div>
3079
- <div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; }</div>
3080
- <div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; <span class="keywordflow">else</span></div>
3081
- <div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965">getSVFOtherValue</a>(value);</div>
3082
- <div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;}</div>
3063
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01182">1182</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
3064
+ <div class="fragment"><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;{</div>
3065
+ <div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = SVFUtil::dyn_cast&lt;Function&gt;(value))</div>
3066
+ <div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(fun);</div>
3067
+ <div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = SVFUtil::dyn_cast&lt;BasicBlock&gt;(value))</div>
3068
+ <div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab0c0f321b6bfbfab2e4ff06d81920ab9">getSVFBasicBlock</a>(bb);</div>
3069
+ <div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = SVFUtil::dyn_cast&lt;Instruction&gt;(value))</div>
3070
+ <div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">getSVFInstruction</a>(inst);</div>
3071
+ <div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* arg = SVFUtil::dyn_cast&lt;Argument&gt;(value))</div>
3072
+ <div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ad3f66b40ad360003845253f452d6a711">getSVFArgument</a>(arg);</div>
3073
+ <div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>* cons = SVFUtil::dyn_cast&lt;Constant&gt;(value))</div>
3074
+ <div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; {</div>
3075
+ <div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7332f8059ea95472dcc231de884a5768">ConstantData</a>* cd = SVFUtil::dyn_cast&lt;ConstantData&gt;(cons))</div>
3076
+ <div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727">getSVFConstantData</a>(cd);</div>
3077
+ <div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a67f3f86344f028cacfbeb08caaf7bb0f">GlobalValue</a>* glob = SVFUtil::dyn_cast&lt;GlobalValue&gt;(cons))</div>
3078
+ <div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a3cbba2eb702a3481478b2590dfffa352">getSVFGlobalValue</a>(glob);</div>
3079
+ <div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; <span class="keywordflow">else</span></div>
3080
+ <div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc">getOtherSVFConstant</a>(cons);</div>
3081
+ <div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; }</div>
3082
+ <div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; <span class="keywordflow">else</span></div>
3083
+ <div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965">getSVFOtherValue</a>(value);</div>
3084
+ <div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;}</div>
3083
3085
  </div><!-- fragment -->
3084
3086
  </div>
3085
3087
  </div>
@@ -3770,31 +3772,31 @@ Friends</h2></td></tr>
3770
3772
  </table>
3771
3773
  </div><div class="memdoc">
3772
3774
 
3773
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01072">1072</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
3774
- <div class="fragment"><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;{</div>
3775
- <div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a7f8e61cf5d838d7a2e862bc6955f16be">SVFValue2LLVMValue</a>[svfvalue] = val;</div>
3776
- <div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; </div>
3777
- <div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07c785d931cef3c61e3dab4c615770be">LLVMUtil::isPtrInUncalledFunction</a>(val))</div>
3778
- <div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; svfvalue-&gt;setPtrInUncalledFunction();</div>
3779
- <div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">LLVMUtil::isConstDataOrAggData</a>(val))</div>
3780
- <div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; svfvalue-&gt;setConstDataOrAggData();</div>
3781
- <div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; </div>
3782
- <div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a>* glob = SVFUtil::dyn_cast&lt;SVFGlobalValue&gt;(svfvalue))</div>
3783
- <div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; {</div>
3784
- <div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* llvmVal = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">LLVMUtil::getGlobalRep</a>(val);</div>
3785
- <div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; assert(SVFUtil::isa&lt;GlobalValue&gt;(llvmVal) &amp;&amp; <span class="stringliteral">&quot;not a GlobalValue?&quot;</span>);</div>
3786
- <div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; glob-&gt;setDefGlobalForMultipleModule(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a3cbba2eb702a3481478b2590dfffa352">getSVFGlobalValue</a>(SVFUtil::cast&lt;GlobalValue&gt;(llvmVal)));</div>
3787
- <div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; }</div>
3788
- <div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svffun = SVFUtil::dyn_cast&lt;SVFFunction&gt;(svfvalue))</div>
3789
- <div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; {</div>
3790
- <div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = SVFUtil::cast&lt;Function&gt;(val);</div>
3791
- <div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; svffun-&gt;setIsNotRet(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a651b6a1cf3665277d2241220bb145aed">LLVMUtil::functionDoesNotRet</a>(func));</div>
3792
- <div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; svffun-&gt;setIsUncalledFunction(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">LLVMUtil::isUncalledFunction</a>(func));</div>
3793
- <div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; svffun-&gt;setDefFunForMultipleModule(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">LLVMUtil::getDefFunForMultipleModule</a>(func)));</div>
3794
- <div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; }</div>
3795
- <div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; </div>
3796
- <div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; svfvalue-&gt;setSourceLoc(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">LLVMUtil::getSourceLoc</a>(val));</div>
3797
- <div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;}</div>
3775
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01074">1074</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
3776
+ <div class="fragment"><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;{</div>
3777
+ <div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a7f8e61cf5d838d7a2e862bc6955f16be">SVFValue2LLVMValue</a>[svfvalue] = val;</div>
3778
+ <div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; </div>
3779
+ <div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07c785d931cef3c61e3dab4c615770be">LLVMUtil::isPtrInUncalledFunction</a>(val))</div>
3780
+ <div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; svfvalue-&gt;setPtrInUncalledFunction();</div>
3781
+ <div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">LLVMUtil::isConstDataOrAggData</a>(val))</div>
3782
+ <div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; svfvalue-&gt;setConstDataOrAggData();</div>
3783
+ <div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; </div>
3784
+ <div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a>* glob = SVFUtil::dyn_cast&lt;SVFGlobalValue&gt;(svfvalue))</div>
3785
+ <div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; {</div>
3786
+ <div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* llvmVal = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">LLVMUtil::getGlobalRep</a>(val);</div>
3787
+ <div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; assert(SVFUtil::isa&lt;GlobalValue&gt;(llvmVal) &amp;&amp; <span class="stringliteral">&quot;not a GlobalValue?&quot;</span>);</div>
3788
+ <div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; glob-&gt;setDefGlobalForMultipleModule(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a3cbba2eb702a3481478b2590dfffa352">getSVFGlobalValue</a>(SVFUtil::cast&lt;GlobalValue&gt;(llvmVal)));</div>
3789
+ <div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; }</div>
3790
+ <div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svffun = SVFUtil::dyn_cast&lt;SVFFunction&gt;(svfvalue))</div>
3791
+ <div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; {</div>
3792
+ <div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = SVFUtil::cast&lt;Function&gt;(val);</div>
3793
+ <div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; svffun-&gt;setIsNotRet(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a651b6a1cf3665277d2241220bb145aed">LLVMUtil::functionDoesNotRet</a>(func));</div>
3794
+ <div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; svffun-&gt;setIsUncalledFunction(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">LLVMUtil::isUncalledFunction</a>(func));</div>
3795
+ <div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; svffun-&gt;setDefFunForMultipleModule(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">LLVMUtil::getDefFunForMultipleModule</a>(func)));</div>
3796
+ <div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; }</div>
3797
+ <div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; </div>
3798
+ <div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; svfvalue-&gt;setSourceLoc(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">LLVMUtil::getSourceLoc</a>(val));</div>
3799
+ <div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;}</div>
3798
3800
  </div><!-- fragment -->
3799
3801
  </div>
3800
3802
  </div>
@@ -4325,7 +4327,7 @@ Friends</h2></td></tr>
4325
4327
  <div class="ttc" id="anamespaceSVF_html_a827d09974dc7bf0849f96823cc2fee89"><div class="ttname"><a href="namespaceSVF.html#a827d09974dc7bf0849f96823cc2fee89">SVF::DomTreeNode</a></div><div class="ttdeci">llvm::DomTreeNode DomTreeNode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00132">BasicTypes.h:132</a></div></div>
4326
4328
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_af2c555af91679d9e6d3009547ee11486"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">SVF::LLVMModuleSet::Type2TypeInfo</a></div><div class="ttdeci">Type2TypeInfoMap Type2TypeInfo</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00091">LLVMModule.h:91</a></div></div>
4327
4329
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ae265a7f3cc7367d62013e0f15cf3d233"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">SVF::LLVMModuleSet::getModuleNum</a></div><div class="ttdeci">u32_t getModuleNum() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00125">LLVMModule.h:125</a></div></div>
4328
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aaab03cb6ff665bc008c67b866ba81e47"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aaab03cb6ff665bc008c67b866ba81e47">SVF::LLVMModuleSet::buildGlobalDefToRepMap</a></div><div class="ttdeci">void buildGlobalDefToRepMap()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01004">LLVMModule.cpp:1004</a></div></div>
4330
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aaab03cb6ff665bc008c67b866ba81e47"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aaab03cb6ff665bc008c67b866ba81e47">SVF::LLVMModuleSet::buildGlobalDefToRepMap</a></div><div class="ttdeci">void buildGlobalDefToRepMap()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01006">LLVMModule.cpp:1006</a></div></div>
4329
4331
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8e4add30bd0ce00d3f2aa2e31c64fef8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">SVF::LLVMUtil::getSourceLoc</a></div><div class="ttdeci">const std::string getSourceLoc(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00679">LLVMUtil.cpp:679</a></div></div>
4330
4332
  <div class="ttc" id="aLLVMModule_8cpp_html_a9fd6e28e6ed93f65a20a348ab0646320"><div class="ttname"><a href="LLVMModule_8cpp.html#a9fd6e28e6ed93f65a20a348ab0646320">SVF_GLOBAL_DTORS</a></div><div class="ttdeci">#define SVF_GLOBAL_DTORS</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00069">LLVMModule.cpp:69</a></div></div>
4331
4333
  <div class="ttc" id="aclassSVF_1_1SVFType_html_aef5999ada62dac3cc946d832ac66948c"><div class="ttname"><a href="classSVF_1_1SVFType.html#aef5999ada62dac3cc946d832ac66948c">SVF::SVFType::setTypeInfo</a></div><div class="ttdeci">void setTypeInfo(StInfo *ti)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00304">SVFType.h:304</a></div></div>
@@ -4335,7 +4337,7 @@ Friends</h2></td></tr>
4335
4337
  <div class="ttc" id="anamespaceSVF_html_aecbb42b8e9d17fa0189c50dda9fd5fdd"><div class="ttname"><a href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">SVF::DominatorTree</a></div><div class="ttdeci">llvm::DominatorTree DominatorTree</div><div class="ttdoc">LLVM Dominators.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00131">BasicTypes.h:131</a></div></div>
4336
4338
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a0c1143eff451edf8ea47d4487a8d3a55"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a0c1143eff451edf8ea47d4487a8d3a55">SVF::SymbolTableInfo::maxStruct</a></div><div class="ttdeci">const SVFType * maxStruct</div><div class="ttdoc">The struct type with the most fields.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00340">SymbolTableInfo.h:340</a></div></div>
4337
4339
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a9fd7f0170bffa7c1b927cdb0de98fd15"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a9fd7f0170bffa7c1b927cdb0de98fd15">SVF::LLVMModuleSet::LLVMFunc2SVFFunc</a></div><div class="ttdeci">LLVMFun2SVFFunMap LLVMFunc2SVFFunc</div><div class="ttdoc">Map an LLVM Function to an SVF Function.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00083">LLVMModule.h:83</a></div></div>
4338
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aab7b08db9252ef7e21e54d019f44b073"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aab7b08db9252ef7e21e54d019f44b073">SVF::LLVMModuleSet::addSVFTypeInfo</a></div><div class="ttdeci">SVFType * addSVFTypeInfo(const Type *t)</div><div class="ttdoc">Create SVFTypes.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01269">LLVMModule.cpp:1269</a></div></div>
4340
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aab7b08db9252ef7e21e54d019f44b073"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aab7b08db9252ef7e21e54d019f44b073">SVF::LLVMModuleSet::addSVFTypeInfo</a></div><div class="ttdeci">SVFType * addSVFTypeInfo(const Type *t)</div><div class="ttdoc">Create SVFTypes.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01271">LLVMModule.cpp:1271</a></div></div>
4339
4341
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_ac1b15d8f9c2499add8dbc889ae5cab65"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ac1b15d8f9c2499add8dbc889ae5cab65">SVF::SVFBasicBlock::addInstruction</a></div><div class="ttdeci">void addInstruction(const SVFInstruction *inst)</div><div class="ttdoc">Function where this BasicBlock is.</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00541">SVFValue.h:541</a></div></div>
4340
4342
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a4091b12bdfe4423d8114612a199bc480"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a4091b12bdfe4423d8114612a199bc480">SVF::LLVMModuleSet::getLLVMModules</a></div><div class="ttdeci">const std::vector&lt; std::reference_wrapper&lt; Module &gt; &gt; &amp; getLLVMModules() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00130">LLVMModule.h:130</a></div></div>
4341
4343
  <div class="ttc" id="anamespaceSVF_html_a94824519e439aeef1568d415b6f7331c"><div class="ttname"><a href="namespaceSVF.html#a94824519e439aeef1568d415b6f7331c">SVF::IRBuilder</a></div><div class="ttdeci">llvm::IRBuilder IRBuilder</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00072">BasicTypes.h:72</a></div></div>
@@ -4355,7 +4357,7 @@ Friends</h2></td></tr>
4355
4357
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a6e670254385050b9a5e612f881b07b9c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a6e670254385050b9a5e612f881b07b9c">SVF::LLVMModuleSet::getDefinition</a></div><div class="ttdeci">const Function * getDefinition(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00277">LLVMModule.h:277</a></div></div>
4356
4358
  <div class="ttc" id="anamespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00084">BasicTypes.h:84</a></div></div>
4357
4359
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ab932917041e1b1d8b461bfef464330fd"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ab932917041e1b1d8b461bfef464330fd">SVF::LLVMModuleSet::ExtFuncsVec</a></div><div class="ttdeci">FunctionSetType ExtFuncsVec</div><div class="ttdoc">Record some &quot;sse_&quot; function declarations used in other ext function definition, e....</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00079">LLVMModule.h:79</a></div></div>
4358
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_af37b9976b282c875cac7bb1777da635c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#af37b9976b282c875cac7bb1777da635c">SVF::LLVMModuleSet::dumpModulesToFile</a></div><div class="ttdeci">void dumpModulesToFile(const std::string &amp;suffix)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01047">LLVMModule.cpp:1047</a></div></div>
4360
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_af37b9976b282c875cac7bb1777da635c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#af37b9976b282c875cac7bb1777da635c">SVF::LLVMModuleSet::dumpModulesToFile</a></div><div class="ttdeci">void dumpModulesToFile(const std::string &amp;suffix)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01049">LLVMModule.cpp:1049</a></div></div>
4359
4361
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ad3f66b40ad360003845253f452d6a711"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ad3f66b40ad360003845253f452d6a711">SVF::LLVMModuleSet::getSVFArgument</a></div><div class="ttdeci">SVFArgument * getSVFArgument(const Argument *arg) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00220">LLVMModule.h:220</a></div></div>
4360
4362
  <div class="ttc" id="aclassSVF_1_1SVFValue_html_a8325774df9d65d78ef6a66fef59b9a97"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">SVF::SVFValue::setName</a></div><div class="ttdeci">void setName(const std::string &amp;n)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00247">SVFValue.h:247</a></div></div>
4361
4363
  <div class="ttc" id="anamespaceSVF_html_a3d9e7f32dc17fe8d40f8d6a011403b91"><div class="ttname"><a href="namespaceSVF.html#a3d9e7f32dc17fe8d40f8d6a011403b91">SVF::IntegerType</a></div><div class="ttdeci">llvm::IntegerType IntegerType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00095">BasicTypes.h:95</a></div></div>
@@ -4368,17 +4370,17 @@ Friends</h2></td></tr>
4368
4370
  <div class="ttc" id="aclassSVF_1_1SVFModule_html_a7af3076a26060090377d1f74293560fe"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a7af3076a26060090377d1f74293560fe">SVF::SVFModule::setPagFromTXT</a></div><div class="ttdeci">static void setPagFromTXT(const std::string &amp;txt)</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00083">SVFModule.h:83</a></div></div>
4369
4371
  <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>
4370
4372
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a3eaadb33cd21d0bd868526b5ddb051d9"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a3eaadb33cd21d0bd868526b5ddb051d9">SVF::LLVMModuleSet::addBasicBlockMap</a></div><div class="ttdeci">void addBasicBlockMap(const BasicBlock *bb, SVFBasicBlock *svfBB)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00154">LLVMModule.h:154</a></div></div>
4371
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a0ef17c1d5e6a95c597d2334ea577a965"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965">SVF::LLVMModuleSet::getSVFOtherValue</a></div><div class="ttdeci">SVFOtherValue * getSVFOtherValue(const Value *ov)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01161">LLVMModule.cpp:1161</a></div></div>
4373
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a0ef17c1d5e6a95c597d2334ea577a965"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965">SVF::LLVMModuleSet::getSVFOtherValue</a></div><div class="ttdeci">SVFOtherValue * getSVFOtherValue(const Value *ov)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01163">LLVMModule.cpp:1163</a></div></div>
4372
4374
  <div class="ttc" id="aclassSVF_1_1StInfo_html_a518c82138fcadc6634980566c1c0f762"><div class="ttname"><a href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">SVF::StInfo::getNumOfFlattenElements</a></div><div class="ttdeci">u32_t getNumOfFlattenElements() const</div><div class="ttdoc">Return number of elements after flattening (including array elements)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00225">SVFType.h:225</a></div></div>
4373
4375
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2c61d741afbcfa853b505cd391f29f9b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">SVF::LLVMUtil::isUncalledFunction</a></div><div class="ttdeci">bool isUncalledFunction(const Function *fun)</div><div class="ttdoc">whether this is a function without any possible caller?</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00154">LLVMUtil.cpp:154</a></div></div>
4374
4376
  <div class="ttc" id="aclassSVF_1_1SVFConstantData_html"><div class="ttname"><a href="classSVF_1_1SVFConstantData.html">SVF::SVFConstantData</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00932">SVFValue.h:932</a></div></div>
4375
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a5f0bd932f3129a9c565f3a09711f7b99"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">SVF::LLVMModuleSet::getSVFType</a></div><div class="ttdeci">SVFType * getSVFType(const Type *T)</div><div class="ttdoc">Get or create SVFType and typeinfo.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01217">LLVMModule.cpp:1217</a></div></div>
4377
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a5f0bd932f3129a9c565f3a09711f7b99"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">SVF::LLVMModuleSet::getSVFType</a></div><div class="ttdeci">SVFType * getSVFType(const Type *T)</div><div class="ttdoc">Get or create SVFType and typeinfo.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01219">LLVMModule.cpp:1219</a></div></div>
4376
4378
  <div class="ttc" id="aclassSVF_1_1SVFModule_html_a0bc5a63d8c10da51766007cf40b095e5"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a0bc5a63d8c10da51766007cf40b095e5">SVF::SVFModule::addGlobalSet</a></div><div class="ttdeci">void addGlobalSet(SVFGlobalValue *glob)</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00110">SVFModule.h:110</a></div></div>
4377
4379
  <div class="ttc" id="aclassSVF_1_1SVFMetadataAsValue_html"><div class="ttname"><a href="classSVF_1_1SVFMetadataAsValue.html">SVF::SVFMetadataAsValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01086">SVFValue.h:1086</a></div></div>
4378
4380
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a4b94c96898dbbc71bc1cee04786cf3dc"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">SVF::LLVMModuleSet::LLVMConst2SVFConst</a></div><div class="ttdeci">LLVMConst2SVFConstMap LLVMConst2SVFConst</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00087">LLVMModule.h:87</a></div></div>
4379
4381
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a2f8e91c075d90be66412a079fe73e936"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a></div><div class="ttdeci">static void releaseLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00108">LLVMModule.h:108</a></div></div>
4380
4382
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a50fc24901350df9db890ba16a9b87e33"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">SVF::LLVMModuleSet::getSVFFunction</a></div><div class="ttdeci">SVFFunction * getSVFFunction(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00199">LLVMModule.h:199</a></div></div>
4381
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a946d1251501c7e0e33a9210838951258"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258">SVF::LLVMModuleSet::collectStructInfo</a></div><div class="ttdeci">StInfo * collectStructInfo(const StructType *structTy, u32_t &amp;numFields)</div><div class="ttdoc">Collect the struct info and set the number of fields after flattening.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01401">LLVMModule.cpp:1401</a></div></div>
4383
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a946d1251501c7e0e33a9210838951258"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258">SVF::LLVMModuleSet::collectStructInfo</a></div><div class="ttdeci">StInfo * collectStructInfo(const StructType *structTy, u32_t &amp;numFields)</div><div class="ttdoc">Collect the struct info and set the number of fields after flattening.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01403">LLVMModule.cpp:1403</a></div></div>
4382
4384
  <div class="ttc" id="anamespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdoc">LLVM Basic classes.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00080">BasicTypes.h:80</a></div></div>
4383
4385
  <div class="ttc" id="aclassSVF_1_1SVFModule_html_ae64d24569942d7c4b18d2198be4839f3"><div class="ttname"><a href="classSVF_1_1SVFModule.html#ae64d24569942d7c4b18d2198be4839f3">SVF::SVFModule::addConstant</a></div><div class="ttdeci">void addConstant(SVFConstant *cd)</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00120">SVFModule.h:120</a></div></div>
4384
4386
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8afb7ab3ee4632e78d546e549110e74c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8afb7ab3ee4632e78d546e549110e74c">SVF::LLVMModuleSet::getModule</a></div><div class="ttdeci">Module * getModule(u32_t idx) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00135">LLVMModule.h:135</a></div></div>
@@ -4452,7 +4454,7 @@ Friends</h2></td></tr>
4452
4454
  <div class="ttc" id="aclassSVF_1_1SVFGlobalValue_html"><div class="ttname"><a href="classSVF_1_1SVFGlobalValue.html">SVF::SVFGlobalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00851">SVFValue.h:851</a></div></div>
4453
4455
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ad06a92bf8bc556de742e0ffdf79ffafe"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ad06a92bf8bc556de742e0ffdf79ffafe">SVF::LLVMModuleSet::cxts</a></div><div class="ttdeci">std::unique_ptr&lt; LLVMContext &gt; cxts</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00070">LLVMModule.h:70</a></div></div>
4454
4456
  <div class="ttc" id="aclassSVF_1_1SVFModule_html_a1357c876eccedd58b3abe68875b3a570"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a1357c876eccedd58b3abe68875b3a570">SVF::SVFModule::pagReadFromTXT</a></div><div class="ttdeci">static bool pagReadFromTXT()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00098">SVFModule.h:98</a></div></div>
4455
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a52853bd34a394882c6fd0fc73739c9f2"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2">SVF::LLVMModuleSet::collectSimpleTypeInfo</a></div><div class="ttdeci">StInfo * collectSimpleTypeInfo(const Type *T)</div><div class="ttdoc">Collect simple type (non-aggregate) info.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01458">LLVMModule.cpp:1458</a></div></div>
4457
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a52853bd34a394882c6fd0fc73739c9f2"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2">SVF::LLVMModuleSet::collectSimpleTypeInfo</a></div><div class="ttdeci">StInfo * collectSimpleTypeInfo(const Type *T)</div><div class="ttdoc">Collect simple type (non-aggregate) info.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01460">LLVMModule.cpp:1460</a></div></div>
4456
4458
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ae365189769640adb919a23c36978e5e2"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae365189769640adb919a23c36978e5e2">SVF::LLVMModuleSet::owned_modules</a></div><div class="ttdeci">std::vector&lt; std::unique_ptr&lt; Module &gt; &gt; owned_modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00071">LLVMModule.h:71</a></div></div>
4457
4459
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a66f51cd41e93ad055c4a0c2874e73fae"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a66f51cd41e93ad055c4a0c2874e73fae">SVF::SVFBasicBlock::getSuccessors</a></div><div class="ttdeci">const std::vector&lt; const SVFBasicBlock * &gt; &amp; getSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00607">SVFValue.h:607</a></div></div>
4458
4460
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a43832e93a42ae43d44b0cc160981678f"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">SVF::LLVMModuleSet::svfModule</a></div><div class="ttdeci">SVFModule * svfModule</div><div class="ttdoc">Borrowed from singleton SVFModule::svfModule.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00069">LLVMModule.h:69</a></div></div>
@@ -4471,7 +4473,7 @@ Friends</h2></td></tr>
4471
4473
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a428bd75b33fab60988d8758090712f29"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a428bd75b33fab60988d8758090712f29">SVF::LLVMUtil::isArgOfUncalledFunction</a></div><div class="ttdeci">bool isArgOfUncalledFunction(const Value *val)</div><div class="ttdoc">Return true if the argument in a function does not have a caller.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00201">LLVMUtil.h:201</a></div></div>
4472
4474
  <div class="ttc" id="aclassSVF_1_1SVFCallInst_html_ac979b49b449b97b2a23f195cb107ec77"><div class="ttname"><a href="classSVF_1_1SVFCallInst.html#ac979b49b449b97b2a23f195cb107ec77">SVF::SVFCallInst::addArgument</a></div><div class="ttdeci">void addArgument(const SVFValue *a)</div><div class="ttdoc">attributes to be set only through Module builders e.g., LLVMModule</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00708">SVFValue.h:708</a></div></div>
4473
4475
  <div class="ttc" id="anamespaceSVF_html_ab34383ee87cd45eb485fa29db482ffef"><div class="ttname"><a href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">SVF::PostDominatorTree</a></div><div class="ttdeci">llvm::PostDominatorTree PostDominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00134">BasicTypes.h:134</a></div></div>
4474
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aa8de934358332505d4805db137d8ec29"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29">SVF::LLVMModuleSet::collectArrayInfo</a></div><div class="ttdeci">StInfo * collectArrayInfo(const ArrayType *T)</div><div class="ttdoc">Collect the array info.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01338">LLVMModule.cpp:1338</a></div></div>
4476
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aa8de934358332505d4805db137d8ec29"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29">SVF::LLVMModuleSet::collectArrayInfo</a></div><div class="ttdeci">StInfo * collectArrayInfo(const ArrayType *T)</div><div class="ttdoc">Collect the array info.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01340">LLVMModule.cpp:1340</a></div></div>
4475
4477
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a4ca8c4678a7fefe26372fc1f4b2880fd"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a4ca8c4678a7fefe26372fc1f4b2880fd">SVF::LLVMModuleSet::createSVFDataStructure</a></div><div class="ttdeci">void createSVFDataStructure()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00153">LLVMModule.cpp:153</a></div></div>
4476
4478
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a7f8e61cf5d838d7a2e862bc6955f16be"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a7f8e61cf5d838d7a2e862bc6955f16be">SVF::LLVMModuleSet::SVFValue2LLVMValue</a></div><div class="ttdeci">SVFValue2LLVMValueMap SVFValue2LLVMValue</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00089">LLVMModule.h:89</a></div></div>
4477
4479
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a72502f7f536418621485e90ab98c2016"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">SVF::SVFUtil::move</a></div><div class="ttdeci">constexpr std::remove_reference&lt; T &gt;::type &amp;&amp; move(T &amp;&amp;t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00621">SVFUtil.h:621</a></div></div>
@@ -4491,13 +4493,13 @@ Friends</h2></td></tr>
4491
4493
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ac6a5540354696f4c9170e0a5832ba70e"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac6a5540354696f4c9170e0a5832ba70e">SVF::LLVMModuleSet::initSVFFunction</a></div><div class="ttdeci">void initSVFFunction()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00288">LLVMModule.cpp:288</a></div></div>
4492
4494
  <div class="ttc" id="anamespaceSVF_html_a3436a988bf80c021cd8022fb445b66d5"><div class="ttname"><a href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">SVF::succ_const_iterator</a></div><div class="ttdeci">llvm::succ_const_iterator succ_const_iterator</div><div class="ttdoc">LLVM Iterators.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00273">BasicTypes.h:273</a></div></div>
4493
4495
  <div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html">SVF::SymbolTableBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8h_source.html#l00042">SymbolTableBuilder.h:42</a></div></div>
4494
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a25821b0feeb3b08e00ec9d444520b727"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727">SVF::LLVMModuleSet::getSVFConstantData</a></div><div class="ttdeci">SVFConstantData * getSVFConstantData(const ConstantData *cd)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01098">LLVMModule.cpp:1098</a></div></div>
4496
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a25821b0feeb3b08e00ec9d444520b727"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727">SVF::LLVMModuleSet::getSVFConstantData</a></div><div class="ttdeci">SVFConstantData * getSVFConstantData(const ConstantData *cd)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01100">LLVMModule.cpp:1100</a></div></div>
4495
4497
  <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>
4496
4498
  <div class="ttc" id="aclassSVF_1_1SVFIntegerType_html"><div class="ttname"><a href="classSVF_1_1SVFIntegerType.html">SVF::SVFIntegerType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00383">SVFType.h:383</a></div></div>
4497
4499
  <div class="ttc" id="aclassSVF_1_1SVFStat_html_ae89293bc063bdc74a988e9c37c70321e"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ae89293bc063bdc74a988e9c37c70321e">SVF::SVFStat::timeOfBuildingSymbolTable</a></div><div class="ttdeci">static double timeOfBuildingSymbolTable</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00091">SVFStat.h:91</a></div></div>
4498
4500
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a3d34fcdfc98add848a34fd5259c11eb2"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">SVF::LLVMUtil::getDefFunForMultipleModule</a></div><div class="ttdeci">const Function * getDefFunForMultipleModule(const Function *fun)</div><div class="ttdoc">Get the definition of a function across multiple modules.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00057">LLVMUtil.h:57</a></div></div>
4499
4501
  <div class="ttc" id="aclassSVF_1_1SVFType_html_a3ddabbd763acaaca28cacbabe5bc7f3b"><div class="ttname"><a href="classSVF_1_1SVFType.html#a3ddabbd763acaaca28cacbabe5bc7f3b">SVF::SVFType::setPointerTo</a></div><div class="ttdeci">void setPointerTo(const SVFPointerType *ty)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00292">SVFType.h:292</a></div></div>
4500
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a74256f36f0fdc242df9729906c34efbc"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc">SVF::LLVMModuleSet::getOtherSVFConstant</a></div><div class="ttdeci">SVFConstant * getOtherSVFConstant(const Constant *oc)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01145">LLVMModule.cpp:1145</a></div></div>
4502
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a74256f36f0fdc242df9729906c34efbc"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc">SVF::LLVMModuleSet::getOtherSVFConstant</a></div><div class="ttdeci">SVFConstant * getOtherSVFConstant(const Constant *oc)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01147">LLVMModule.cpp:1147</a></div></div>
4501
4503
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html">SVF::LLVMModuleSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00044">LLVMModule.h:44</a></div></div>
4502
4504
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a0d5031bd11b6372803082111ec2cb4f6"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a0d5031bd11b6372803082111ec2cb4f6">SVF::SVFFunction::addBasicBlock</a></div><div class="ttdeci">void addBasicBlock(const SVFBasicBlock *bb)</div><div class="ttdoc">a 'single' basic block having no successors and containing return instruction in a function</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00327">SVFValue.h:327</a></div></div>
4503
4505
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ae74f307b6f96950ceedb2c375ef1c3a3"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">SVF::LLVMModuleSet::getSVFInstruction</a></div><div class="ttdeci">SVFInstruction * getSVFInstruction(const Instruction *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00213">LLVMModule.h:213</a></div></div>
@@ -4510,13 +4512,13 @@ Friends</h2></td></tr>
4510
4512
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9bd6f54920929e5ad35102ba2f2223da"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9bd6f54920929e5ad35102ba2f2223da">SVF::LLVMUtil::getFunReachableBBs</a></div><div class="ttdeci">void getFunReachableBBs(const Function *svfFun, std::vector&lt; const SVFBasicBlock * &gt; &amp;bbs)</div><div class="ttdoc">Get reachable basic block from function entry.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00069">LLVMUtil.cpp:69</a></div></div>
4511
4513
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a38f8fdd93ef7222f408cbbb2a98a1cd5"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a38f8fdd93ef7222f408cbbb2a98a1cd5">SVF::SVFBasicBlock::addPredBasicBlock</a></div><div class="ttdeci">void addPredBasicBlock(const SVFBasicBlock *pred)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00551">SVFValue.h:551</a></div></div>
4512
4514
  <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>
4513
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a7d61f479f52e1dc71a4ae7a4d62f3b6a"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a7d61f479f52e1dc71a4ae7a4d62f3b6a">SVF::LLVMModuleSet::setValueAttr</a></div><div class="ttdeci">void setValueAttr(const Value *val, SVFValue *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01072">LLVMModule.cpp:1072</a></div></div>
4515
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a7d61f479f52e1dc71a4ae7a4d62f3b6a"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a7d61f479f52e1dc71a4ae7a4d62f3b6a">SVF::LLVMModuleSet::setValueAttr</a></div><div class="ttdeci">void setValueAttr(const Value *val, SVFValue *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01074">LLVMModule.cpp:1074</a></div></div>
4514
4516
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_ad478ac88bc07cf4d6d0ad3517b2c4ab3"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#ad478ac88bc07cf4d6d0ad3517b2c4ab3">SVF::SVFLoopAndDomInfo::BBSet</a></div><div class="ttdeci">Set&lt; const SVFBasicBlock * &gt; BBSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00055">SVFValue.h:55</a></div></div>
4515
4517
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a4c94a6c02fb89c1a1604c87414956acd"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4c94a6c02fb89c1a1604c87414956acd">SVF::LLVMUtil::getPrevInsts</a></div><div class="ttdeci">void getPrevInsts(const Instruction *curInst, std::vector&lt; const SVFInstruction * &gt; &amp;instList)</div><div class="ttdoc">Get the previous instructions following control flow.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00316">LLVMUtil.cpp:316</a></div></div>
4516
4518
  <div class="ttc" id="aSVFFileSystem_8cpp_html_ab25baccb41e3b67ef0bfdaa1336c9649"><div class="ttname"><a href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a></div><div class="ttdeci">#define F(f)</div></div>
4517
4519
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a374cbaa780f540cb4b4ccac562a82632"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a374cbaa780f540cb4b4ccac562a82632">SVF::SVFFunction::exitBlock</a></div><div class="ttdeci">SVFBasicBlock * exitBlock</div><div class="ttdoc">annotations of this function</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00323">SVFValue.h:323</a></div></div>
4518
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01180">LLVMModule.cpp:1180</a></div></div>
4519
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a1f6cc76c996a0577b20b8cedd83fff92"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">SVF::LLVMModuleSet::collectTypeInfo</a></div><div class="ttdeci">StInfo * collectTypeInfo(const Type *ty)</div><div class="ttdoc">Collect a type info.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01237">LLVMModule.cpp:1237</a></div></div>
4520
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01182">LLVMModule.cpp:1182</a></div></div>
4521
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a1f6cc76c996a0577b20b8cedd83fff92"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">SVF::LLVMModuleSet::collectTypeInfo</a></div><div class="ttdeci">StInfo * collectTypeInfo(const Type *ty)</div><div class="ttdoc">Collect a type info.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01239">LLVMModule.cpp:1239</a></div></div>
4520
4522
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a067661e0049314779a44c9600420820f"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">SVF::LLVMModuleSet::LLVMType2SVFType</a></div><div class="ttdeci">LLVMType2SVFTypeMap LLVMType2SVFType</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00090">LLVMModule.h:90</a></div></div>
4521
4523
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a4638a12f5481dff947b59cf8353e619b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4638a12f5481dff947b59cf8353e619b">SVF::LLVMUtil::isIntrinsicFun</a></div><div class="ttdeci">bool isIntrinsicFun(const Function *func)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00202">LLVMUtil.cpp:202</a></div></div>
4522
4524
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8b5f24c873db1f6a0614d1dac48bb4bb"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8b5f24c873db1f6a0614d1dac48bb4bb">SVF::LLVMModuleSet::prePassSchedule</a></div><div class="ttdeci">void prePassSchedule()</div><div class="ttdoc">Invoke llvm passes to modify module.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00447">LLVMModule.cpp:447</a></div></div>