svf-tools 1.0.774 → 1.0.776

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 (313) hide show
  1. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +9 -9
  4. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
  6. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
  7. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +585 -576
  11. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +147 -164
  12. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +706 -633
  13. package/SVF-doxygen/html/html/LLVMUtil_8h.html +7 -2
  14. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +172 -174
  15. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/html/SVFIR2ConsExeState_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +6 -6
  23. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +2 -2
  24. package/SVF-doxygen/html/html/SVFIRExtAPI_8cpp_source.html +2 -2
  25. package/SVF-doxygen/html/html/SVFLoop_8h_source.html +3 -3
  26. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/html/SVFValue_8h_source.html +1 -1
  28. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  29. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
  31. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
  32. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  33. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  34. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  35. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
  36. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
  37. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  38. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  39. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  40. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +1 -1
  41. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +9 -9
  42. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  43. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  44. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  45. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  46. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  47. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
  48. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
  49. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +1 -1
  50. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +2 -2
  51. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +1 -1
  52. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  53. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +1 -1
  54. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  55. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  56. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  57. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  58. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +1 -1
  59. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  60. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  61. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  62. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  63. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  64. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +658 -665
  65. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +1 -1
  66. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  67. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
  68. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +1 -1
  69. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +1 -1
  70. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +1 -1
  71. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  72. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +1 -1
  73. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  74. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  75. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  76. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +1 -1
  77. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +1 -1
  78. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  79. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  80. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +1 -1
  81. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +9 -9
  82. package/SVF-doxygen/html/html/classSVF_1_1SVFLoop.html +3 -3
  83. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +23 -23
  84. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  85. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +1 -1
  86. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  87. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +7 -7
  88. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +1 -1
  89. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  90. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  91. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  92. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  93. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  94. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +717 -617
  95. package/SVF-doxygen/html/html/namespacemembers_func_i.html +4 -1
  96. package/SVF-doxygen/html/html/namespacemembers_func_r.html +6 -3
  97. package/SVF-doxygen/html/html/namespacemembers_i.html +6 -3
  98. package/SVF-doxygen/html/html/namespacemembers_r.html +5 -2
  99. package/SVF-doxygen/html/html/search/all_10.js +324 -324
  100. package/SVF-doxygen/html/html/search/all_11.js +218 -217
  101. package/SVF-doxygen/html/html/search/all_12.js +541 -541
  102. package/SVF-doxygen/html/html/search/all_13.js +190 -190
  103. package/SVF-doxygen/html/html/search/all_14.js +66 -66
  104. package/SVF-doxygen/html/html/search/all_15.js +170 -170
  105. package/SVF-doxygen/html/html/search/all_16.js +63 -63
  106. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  107. package/SVF-doxygen/html/html/search/all_18.js +1 -1
  108. package/SVF-doxygen/html/html/search/all_19.js +11 -11
  109. package/SVF-doxygen/html/html/search/all_1a.js +169 -169
  110. package/SVF-doxygen/html/html/search/all_9.js +34 -33
  111. package/SVF-doxygen/html/html/search/all_a.js +46 -46
  112. package/SVF-doxygen/html/html/search/all_b.js +26 -26
  113. package/SVF-doxygen/html/html/search/all_c.js +116 -116
  114. package/SVF-doxygen/html/html/search/all_d.js +196 -196
  115. package/SVF-doxygen/html/html/search/all_e.js +206 -206
  116. package/SVF-doxygen/html/html/search/all_f.js +116 -116
  117. package/SVF-doxygen/html/html/search/classes_0.js +26 -26
  118. package/SVF-doxygen/html/html/search/classes_1.js +9 -9
  119. package/SVF-doxygen/html/html/search/classes_10.js +73 -73
  120. package/SVF-doxygen/html/html/search/classes_11.js +15 -15
  121. package/SVF-doxygen/html/html/search/classes_12.js +2 -2
  122. package/SVF-doxygen/html/html/search/classes_13.js +10 -10
  123. package/SVF-doxygen/html/html/search/classes_14.js +14 -14
  124. package/SVF-doxygen/html/html/search/classes_15.js +1 -1
  125. package/SVF-doxygen/html/html/search/classes_2.js +76 -76
  126. package/SVF-doxygen/html/html/search/classes_3.js +35 -35
  127. package/SVF-doxygen/html/html/search/classes_4.js +8 -8
  128. package/SVF-doxygen/html/html/search/classes_5.js +28 -28
  129. package/SVF-doxygen/html/html/search/classes_6.js +98 -98
  130. package/SVF-doxygen/html/html/search/classes_7.js +33 -33
  131. package/SVF-doxygen/html/html/search/classes_8.js +56 -56
  132. package/SVF-doxygen/html/html/search/classes_9.js +1 -1
  133. package/SVF-doxygen/html/html/search/classes_a.js +12 -12
  134. package/SVF-doxygen/html/html/search/classes_b.js +29 -29
  135. package/SVF-doxygen/html/html/search/classes_c.js +6 -6
  136. package/SVF-doxygen/html/html/search/classes_d.js +18 -18
  137. package/SVF-doxygen/html/html/search/classes_e.js +36 -36
  138. package/SVF-doxygen/html/html/search/classes_f.js +25 -25
  139. package/SVF-doxygen/html/html/search/defines_0.js +3 -3
  140. package/SVF-doxygen/html/html/search/defines_1.js +2 -2
  141. package/SVF-doxygen/html/html/search/defines_2.js +30 -30
  142. package/SVF-doxygen/html/html/search/defines_3.js +20 -20
  143. package/SVF-doxygen/html/html/search/defines_4.js +3 -3
  144. package/SVF-doxygen/html/html/search/defines_5.js +4 -4
  145. package/SVF-doxygen/html/html/search/defines_6.js +2 -2
  146. package/SVF-doxygen/html/html/search/defines_7.js +5 -5
  147. package/SVF-doxygen/html/html/search/defines_8.js +11 -11
  148. package/SVF-doxygen/html/html/search/defines_9.js +9 -9
  149. package/SVF-doxygen/html/html/search/defines_a.js +2 -2
  150. package/SVF-doxygen/html/html/search/defines_b.js +1 -1
  151. package/SVF-doxygen/html/html/search/defines_c.js +3 -3
  152. package/SVF-doxygen/html/html/search/defines_d.js +2 -2
  153. package/SVF-doxygen/html/html/search/defines_e.js +7 -7
  154. package/SVF-doxygen/html/html/search/defines_f.js +3 -3
  155. package/SVF-doxygen/html/html/search/enums_0.js +3 -3
  156. package/SVF-doxygen/html/html/search/enums_1.js +2 -2
  157. package/SVF-doxygen/html/html/search/enums_10.js +1 -1
  158. package/SVF-doxygen/html/html/search/enums_11.js +1 -1
  159. package/SVF-doxygen/html/html/search/enums_2.js +8 -8
  160. package/SVF-doxygen/html/html/search/enums_3.js +1 -1
  161. package/SVF-doxygen/html/html/search/enums_4.js +3 -3
  162. package/SVF-doxygen/html/html/search/enums_5.js +1 -1
  163. package/SVF-doxygen/html/html/search/enums_6.js +2 -2
  164. package/SVF-doxygen/html/html/search/enums_7.js +2 -2
  165. package/SVF-doxygen/html/html/search/enums_8.js +4 -4
  166. package/SVF-doxygen/html/html/search/enums_9.js +1 -1
  167. package/SVF-doxygen/html/html/search/enums_a.js +1 -1
  168. package/SVF-doxygen/html/html/search/enums_b.js +7 -7
  169. package/SVF-doxygen/html/html/search/enums_c.js +1 -1
  170. package/SVF-doxygen/html/html/search/enums_d.js +4 -4
  171. package/SVF-doxygen/html/html/search/enums_e.js +2 -2
  172. package/SVF-doxygen/html/html/search/enums_f.js +4 -4
  173. package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
  174. package/SVF-doxygen/html/html/search/enumvalues_1.js +14 -14
  175. package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
  176. package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
  177. package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
  178. package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
  179. package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
  180. package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
  181. package/SVF-doxygen/html/html/search/enumvalues_2.js +36 -36
  182. package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
  183. package/SVF-doxygen/html/html/search/enumvalues_4.js +2 -2
  184. package/SVF-doxygen/html/html/search/enumvalues_5.js +47 -47
  185. package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
  186. package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
  187. package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
  188. package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
  189. package/SVF-doxygen/html/html/search/enumvalues_a.js +15 -15
  190. package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
  191. package/SVF-doxygen/html/html/search/enumvalues_c.js +5 -5
  192. package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -18
  193. package/SVF-doxygen/html/html/search/enumvalues_e.js +9 -9
  194. package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
  195. package/SVF-doxygen/html/html/search/files_0.js +13 -13
  196. package/SVF-doxygen/html/html/search/files_1.js +7 -7
  197. package/SVF-doxygen/html/html/search/files_10.js +8 -8
  198. package/SVF-doxygen/html/html/search/files_11.js +8 -8
  199. package/SVF-doxygen/html/html/search/files_12.js +2 -2
  200. package/SVF-doxygen/html/html/search/files_2.js +49 -49
  201. package/SVF-doxygen/html/html/search/files_3.js +14 -14
  202. package/SVF-doxygen/html/html/search/files_4.js +5 -5
  203. package/SVF-doxygen/html/html/search/files_5.js +13 -13
  204. package/SVF-doxygen/html/html/search/files_6.js +9 -9
  205. package/SVF-doxygen/html/html/search/files_7.js +14 -14
  206. package/SVF-doxygen/html/html/search/files_8.js +13 -13
  207. package/SVF-doxygen/html/html/search/files_9.js +18 -18
  208. package/SVF-doxygen/html/html/search/files_a.js +3 -3
  209. package/SVF-doxygen/html/html/search/files_b.js +2 -2
  210. package/SVF-doxygen/html/html/search/files_c.js +20 -20
  211. package/SVF-doxygen/html/html/search/files_d.js +4 -4
  212. package/SVF-doxygen/html/html/search/files_e.js +62 -62
  213. package/SVF-doxygen/html/html/search/files_f.js +8 -8
  214. package/SVF-doxygen/html/html/search/functions_0.js +12 -12
  215. package/SVF-doxygen/html/html/search/functions_1.js +350 -350
  216. package/SVF-doxygen/html/html/search/functions_10.js +140 -140
  217. package/SVF-doxygen/html/html/search/functions_11.js +132 -131
  218. package/SVF-doxygen/html/html/search/functions_12.js +275 -275
  219. package/SVF-doxygen/html/html/search/functions_13.js +58 -58
  220. package/SVF-doxygen/html/html/search/functions_14.js +38 -38
  221. package/SVF-doxygen/html/html/search/functions_15.js +71 -71
  222. package/SVF-doxygen/html/html/search/functions_16.js +32 -32
  223. package/SVF-doxygen/html/html/search/functions_17.js +3 -3
  224. package/SVF-doxygen/html/html/search/functions_18.js +169 -169
  225. package/SVF-doxygen/html/html/search/functions_2.js +84 -84
  226. package/SVF-doxygen/html/html/search/functions_3.js +253 -253
  227. package/SVF-doxygen/html/html/search/functions_4.js +74 -74
  228. package/SVF-doxygen/html/html/search/functions_5.js +51 -51
  229. package/SVF-doxygen/html/html/search/functions_6.js +58 -58
  230. package/SVF-doxygen/html/html/search/functions_7.js +842 -842
  231. package/SVF-doxygen/html/html/search/functions_8.js +143 -143
  232. package/SVF-doxygen/html/html/search/functions_9.js +424 -423
  233. package/SVF-doxygen/html/html/search/functions_a.js +30 -30
  234. package/SVF-doxygen/html/html/search/functions_b.js +2 -2
  235. package/SVF-doxygen/html/html/search/functions_c.js +26 -26
  236. package/SVF-doxygen/html/html/search/functions_d.js +77 -77
  237. package/SVF-doxygen/html/html/search/functions_e.js +35 -35
  238. package/SVF-doxygen/html/html/search/functions_f.js +56 -56
  239. package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
  240. package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
  241. package/SVF-doxygen/html/html/search/related_0.js +2 -2
  242. package/SVF-doxygen/html/html/search/related_1.js +2 -2
  243. package/SVF-doxygen/html/html/search/related_2.js +2 -2
  244. package/SVF-doxygen/html/html/search/related_3.js +2 -2
  245. package/SVF-doxygen/html/html/search/related_4.js +2 -2
  246. package/SVF-doxygen/html/html/search/related_5.js +1 -1
  247. package/SVF-doxygen/html/html/search/related_6.js +2 -2
  248. package/SVF-doxygen/html/html/search/related_7.js +4 -4
  249. package/SVF-doxygen/html/html/search/related_8.js +2 -2
  250. package/SVF-doxygen/html/html/search/related_9.js +4 -4
  251. package/SVF-doxygen/html/html/search/related_a.js +19 -19
  252. package/SVF-doxygen/html/html/search/related_b.js +4 -4
  253. package/SVF-doxygen/html/html/search/related_c.js +1 -1
  254. package/SVF-doxygen/html/html/search/related_d.js +11 -11
  255. package/SVF-doxygen/html/html/search/related_e.js +2 -2
  256. package/SVF-doxygen/html/html/search/related_f.js +2 -2
  257. package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
  258. package/SVF-doxygen/html/html/search/typedefs_1.js +25 -25
  259. package/SVF-doxygen/html/html/search/typedefs_10.js +62 -62
  260. package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
  261. package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
  262. package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
  263. package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
  264. package/SVF-doxygen/html/html/search/typedefs_2.js +126 -126
  265. package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
  266. package/SVF-doxygen/html/html/search/typedefs_4.js +16 -16
  267. package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
  268. package/SVF-doxygen/html/html/search/typedefs_6.js +52 -52
  269. package/SVF-doxygen/html/html/search/typedefs_7.js +40 -40
  270. package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
  271. package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
  272. package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
  273. package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
  274. package/SVF-doxygen/html/html/search/typedefs_c.js +40 -40
  275. package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
  276. package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
  277. package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
  278. package/SVF-doxygen/html/html/search/variables_0.js +147 -147
  279. package/SVF-doxygen/html/html/search/variables_1.js +75 -75
  280. package/SVF-doxygen/html/html/search/variables_10.js +97 -97
  281. package/SVF-doxygen/html/html/search/variables_11.js +46 -46
  282. package/SVF-doxygen/html/html/search/variables_12.js +92 -92
  283. package/SVF-doxygen/html/html/search/variables_13.js +75 -75
  284. package/SVF-doxygen/html/html/search/variables_14.js +14 -14
  285. package/SVF-doxygen/html/html/search/variables_15.js +48 -48
  286. package/SVF-doxygen/html/html/search/variables_16.js +9 -9
  287. package/SVF-doxygen/html/html/search/variables_17.js +1 -1
  288. package/SVF-doxygen/html/html/search/variables_18.js +2 -2
  289. package/SVF-doxygen/html/html/search/variables_2.js +34 -34
  290. package/SVF-doxygen/html/html/search/variables_3.js +141 -141
  291. package/SVF-doxygen/html/html/search/variables_4.js +55 -55
  292. package/SVF-doxygen/html/html/search/variables_5.js +38 -38
  293. package/SVF-doxygen/html/html/search/variables_6.js +66 -66
  294. package/SVF-doxygen/html/html/search/variables_7.js +33 -33
  295. package/SVF-doxygen/html/html/search/variables_8.js +7 -7
  296. package/SVF-doxygen/html/html/search/variables_9.js +77 -77
  297. package/SVF-doxygen/html/html/search/variables_a.js +4 -4
  298. package/SVF-doxygen/html/html/search/variables_b.js +10 -10
  299. package/SVF-doxygen/html/html/search/variables_c.js +45 -45
  300. package/SVF-doxygen/html/html/search/variables_d.js +56 -56
  301. package/SVF-doxygen/html/html/search/variables_e.js +123 -123
  302. package/SVF-doxygen/html/html/search/variables_f.js +30 -30
  303. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  304. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  305. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  306. package/SVF-doxygen/html/html/svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  307. package/SVF-doxygen/html/html/svf_2include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  308. package/package.json +1 -1
  309. package/svf/include/MemoryModel/SVFLoop.h +3 -3
  310. package/svf-llvm/include/SVF-LLVM/LLVMModule.h +0 -16
  311. package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +4 -9
  312. package/svf-llvm/lib/LLVMModule.cpp +14 -4
  313. package/svf-llvm/lib/LLVMUtil.cpp +78 -1
@@ -244,7 +244,7 @@ $(function() {
244
244
  <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; candidateDefs.push_back(&amp;func);</div>
245
245
  <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div>
246
246
  <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div>
247
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a74ed17168bf5946cfb3f17495ec6db99">LLVMUtil::removeUnusedFuncsAndAnnotations</a>(removedFuncList);</div>
247
+ <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a0ecff33105811b1e5ebc83afee76da27">LLVMUtil::removeUnusedFuncsAndAnnotationsAndGlobalVariables</a>(removedFuncList);</div>
248
248
  <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div>
249
249
  <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func: candidateDefs)</div>
250
250
  <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div>
@@ -872,576 +872,585 @@ $(function() {
872
872
  <div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; funDecls.insert(&amp;fun);</div>
873
873
  <div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; declNames.insert(fun.getName().str());</div>
874
874
  <div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; }</div>
875
- <div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="keywordflow">else</span></div>
876
- <div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; {</div>
877
- <div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; extFuncs.insert(&amp;fun);</div>
878
- <div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <span class="comment">// Find overwrite functions in extapi.bc</span></div>
879
- <div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; std::vector&lt;std::string&gt; annotations =</div>
880
- <div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8cd4d6410017b9e5f47f2f88450b78d8">LLVMUtil::getFunAnnotations</a>(&amp;fun);</div>
881
- <div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <span class="keyword">auto</span> it =</div>
882
- <div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; std::find_if(annotations.begin(), annotations.end(),</div>
883
- <div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; [&amp;](<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; annotation)</div>
884
- <div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; {</div>
885
- <div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; return annotation.find(<span class="stringliteral">&quot;OVERWRITE&quot;</span>) !=</div>
886
- <div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; std::string::npos;</div>
887
- <div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; });</div>
888
- <div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="keywordflow">if</span> (it != annotations.end())</div>
889
- <div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; {</div>
890
- <div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; overwriteExtFuncs.insert(&amp;fun);</div>
891
- <div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; }</div>
892
- <div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; }</div>
893
- <div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; }</div>
894
- <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; }</div>
895
- <div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <span class="keywordflow">else</span></div>
896
- <div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; {</div>
897
- <div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&amp; fun : mod.functions())</div>
898
- <div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; {</div>
899
- <div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <span class="keywordflow">if</span> (fun.isDeclaration())</div>
900
- <div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; {</div>
901
- <div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; funDecls.insert(&amp;fun);</div>
902
- <div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; declNames.insert(fun.getName().str());</div>
903
- <div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; }</div>
904
- <div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="keywordflow">else</span></div>
905
- <div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; {</div>
906
- <div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; funDefs.insert(&amp;fun);</div>
907
- <div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; defNames.insert(fun.getName().str());</div>
908
- <div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; }</div>
909
- <div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; }</div>
910
- <div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; }</div>
911
- <div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; }</div>
912
- <div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="comment">// Find the intersectNames</span></div>
913
- <div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; std::set_intersection(</div>
914
- <div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; declNames.begin(), declNames.end(), defNames.begin(), defNames.end(),</div>
915
- <div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; std::inserter(intersectNames, intersectNames.end()));</div>
916
- <div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; </div>
917
- <div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; NameToFunDefMapTy nameToFunDefMap;</div>
918
- <div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fdef : funDefs)</div>
919
- <div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; {</div>
920
- <div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; <span class="keywordtype">string</span> funName = fdef-&gt;getName().str();</div>
921
- <div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; <span class="keywordflow">if</span> (intersectNames.find(funName) != intersectNames.end())</div>
922
- <div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; {</div>
923
- <div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; nameToFunDefMap.emplace(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(funName), fdef);</div>
924
- <div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; }</div>
925
- <div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; }</div>
926
- <div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; </div>
927
- <div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; NameToFunDeclsMapTy nameToFunDeclsMap;</div>
928
- <div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fdecl : funDecls)</div>
929
- <div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; {</div>
930
- <div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <span class="keywordtype">string</span> funName = fdecl-&gt;getName().str();</div>
931
- <div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <span class="keywordflow">if</span> (intersectNames.find(funName) != intersectNames.end())</div>
932
- <div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; {</div>
933
- <div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; <span class="comment">// pair with key funName will be created automatically if it does</span></div>
934
- <div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="comment">// not exist</span></div>
935
- <div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; nameToFunDeclsMap[<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(funName)].insert(fdecl);</div>
936
- <div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; }</div>
937
- <div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; }</div>
938
- <div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; </div>
939
- <div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fdecl : funDecls)</div>
940
- <div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; {</div>
941
- <div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <span class="keywordtype">string</span> funName = fdecl-&gt;getName().str();</div>
942
- <div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; NameToFunDefMapTy::iterator mit;</div>
943
- <div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <span class="keywordflow">if</span> (intersectNames.find(funName) != intersectNames.end() &amp;&amp;</div>
944
- <div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; (mit = nameToFunDefMap.find(funName)) != nameToFunDefMap.end())</div>
945
- <div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; {</div>
946
- <div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">FunDeclToDefMap</a>[fdecl] = mit-&gt;second;</div>
947
- <div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; }</div>
948
- <div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; }</div>
949
- <div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; </div>
950
- <div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fdef : funDefs)</div>
951
- <div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; {</div>
952
- <div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="keywordtype">string</span> funName = fdef-&gt;getName().str();</div>
953
- <div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">if</span> (intersectNames.find(funName) == intersectNames.end())</div>
954
- <div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="keywordflow">continue</span>;</div>
955
- <div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; NameToFunDeclsMapTy::iterator mit = nameToFunDeclsMap.find(funName);</div>
956
- <div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; <span class="keywordflow">if</span> (mit == nameToFunDeclsMap.end())</div>
957
- <div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <span class="keywordflow">continue</span>;</div>
958
- <div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; </div>
959
- <div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; std::vector&lt;const Function*&gt;&amp; decls = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">FunDefToDeclsMap</a>[fdef];</div>
960
- <div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span>&amp; declsSet = mit-&gt;second;</div>
961
- <div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <span class="comment">// Reserve space for decls to avoid more than 1 reallocation</span></div>
962
- <div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; decls.reserve(decls.size() + declsSet.size());</div>
963
- <div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; </div>
964
- <div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* decl : declsSet)</div>
965
- <div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; {</div>
966
- <div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; decls.push_back(decl);</div>
967
- <div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; }</div>
968
- <div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; }</div>
969
- <div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; </div>
970
- <div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fdecl : funDecls)</div>
971
- <div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; {</div>
972
- <div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* extfun : extFuncs)</div>
973
- <div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; {</div>
974
- <div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> declName = fdecl-&gt;getName().str();</div>
975
- <div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <span class="comment">// Since C function names cannot include &#39;.&#39;, change the function name from llvm.memcpy.p0i8.p0i8.i64 to llvm_memcpy_p0i8_p0i8_i64.&quot;</span></div>
976
- <div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; std::replace(declName.begin(), declName.end(), <span class="charliteral">&#39;.&#39;</span>, <span class="charliteral">&#39;_&#39;</span>);</div>
977
- <div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <span class="keywordflow">if</span> (extfun-&gt;getName().str().compare(declName) == 0)</div>
978
- <div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; {</div>
979
- <div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; <span class="comment">// AppDecl -&gt; ExtDef in Table 1</span></div>
980
- <div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">FunDeclToDefMap</a>[fdecl] = extfun;</div>
981
- <div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; <span class="comment">// ExtDef -&gt; AppDecl in Table 1</span></div>
982
- <div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; std::vector&lt;const Function*&gt;&amp; decls = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">FunDefToDeclsMap</a>[extfun];</div>
983
- <div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; decls.push_back(fdecl);</div>
984
- <div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <span class="comment">// Keep all called functions in extfun</span></div>
985
- <div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <span class="comment">// ExtDecl -&gt; ExtDecl in Table 1</span></div>
986
- <div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab932917041e1b1d8b461bfef464330fd">ExtFuncsVec</a> = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">LLVMUtil::getCalledFunctions</a>(extfun);</div>
987
- <div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; }</div>
988
- <div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; }</div>
989
- <div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; }</div>
990
- <div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; </div>
991
- <div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* appfunc : funDefs)</div>
992
- <div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; {</div>
993
- <div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* owfunc : overwriteExtFuncs)</div>
994
- <div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; {</div>
995
- <div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <span class="keywordflow">if</span> (appfunc-&gt;getName().str().compare(owfunc-&gt;getName().str()) == 0)</div>
996
- <div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; {</div>
997
- <div class="line"><a name="l00947"></a><span class="lineno"> 947</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>
998
- <div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mod = fun-&gt;getParent();</div>
999
- <div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <a class="code" href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">FunctionType</a>* funType = fun-&gt;getFunctionType();</div>
1000
- <div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> funName = fun-&gt;getName().str();</div>
1001
- <div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <span class="comment">// Replace app function definition with declaration</span></div>
1002
- <div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* declaration = Function::Create(funType, GlobalValue::ExternalLinkage, funName, mod);</div>
1003
- <div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; fun-&gt;replaceAllUsesWith(declaration);</div>
1004
- <div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; fun-&gt;eraseFromParent();</div>
1005
- <div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; declaration-&gt;setName(funName);</div>
1006
- <div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="comment">// AppDef -&gt; ExtDef in Table 1, AppDef has been changed to AppDecl</span></div>
1007
- <div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">FunDeclToDefMap</a>[declaration] = owfunc;</div>
1008
- <div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="comment">// ExtDef -&gt; AppDef in Table 1</span></div>
1009
- <div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; std::vector&lt;const Function*&gt;&amp; decls = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">FunDefToDeclsMap</a>[owfunc];</div>
1010
- <div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; decls.push_back(declaration);</div>
1011
- <div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <span class="comment">// Keep all called functions in owfunc</span></div>
1012
- <div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <span class="comment">// ExtDecl -&gt; ExtDecl in Table 1</span></div>
1013
- <div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab932917041e1b1d8b461bfef464330fd">ExtFuncsVec</a> = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">LLVMUtil::getCalledFunctions</a>(owfunc);</div>
1014
- <div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; }</div>
1015
- <div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; }</div>
1016
- <div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; }</div>
1017
- <div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;}</div>
1018
- <div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; </div>
1019
- <div class="line"><a name="l00969"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#aaab03cb6ff665bc008c67b866ba81e47"> 969</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#aaab03cb6ff665bc008c67b866ba81e47">LLVMModuleSet::buildGlobalDefToRepMap</a>()</div>
1020
- <div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160;{</div>
1021
- <div class="line"><a name="l00971"></a><span class="lineno"> 971</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>
1022
- <div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; NameToGlobalsMapTy nameToGlobalsMap;</div>
1023
- <div class="line"><a name="l00973"></a><span class="lineno"> 973</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>
1024
- <div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; {</div>
1025
- <div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <span class="comment">// Collect ctor and dtor functions</span></div>
1026
- <div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>&amp; global : mod.globals())</div>
1027
- <div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; {</div>
1028
- <div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <span class="keywordflow">if</span> (global.hasPrivateLinkage())</div>
1029
- <div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="keywordflow">continue</span>;</div>
1030
- <div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; <span class="keywordtype">string</span> <a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a> = global.getName().str();</div>
1031
- <div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>.empty())</div>
1032
- <div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="keywordflow">continue</span>;</div>
1033
- <div class="line"><a name="l00983"></a><span class="lineno"> 983</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>
1034
- <div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; }</div>
1035
- <div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; }</div>
1036
- <div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; </div>
1037
- <div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; pair : nameToGlobalsMap)</div>
1038
- <div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; {</div>
1039
- <div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> &amp;globals = pair.second;</div>
1040
- <div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; </div>
1041
- <div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> repIt =</div>
1042
- <div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; std::find_if(globals.begin(), globals.end(),</div>
1043
- <div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; [](<a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* g)</div>
1044
- <div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; {</div>
1045
- <div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; return g-&gt;hasInitializer();</div>
1046
- <div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; });</div>
1047
- <div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* rep =</div>
1048
- <div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; repIt != globals.end()</div>
1049
- <div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; ? *repIt</div>
1050
- <div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; <span class="comment">// When there is no initializer, just pick the first one.</span></div>
1051
- <div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; : (assert(!globals.empty() &amp;&amp; <span class="stringliteral">&quot;Empty global set&quot;</span>),</div>
1052
- <div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; *globals.begin());</div>
1053
- <div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; </div>
1054
- <div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* cur : globals)</div>
1055
- <div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; {</div>
1056
- <div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae2a1fa0b908cf372c50af90e62c4bf2b">GlobalDefToRepMap</a>[cur] = rep;</div>
1057
- <div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; }</div>
1058
- <div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; }</div>
1059
- <div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;}</div>
1060
- <div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; </div>
1061
- <div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;<span class="comment">// Dump modules to files</span></div>
1062
- <div class="line"><a name="l01012"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#af37b9976b282c875cac7bb1777da635c"> 1012</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#af37b9976b282c875cac7bb1777da635c">LLVMModuleSet::dumpModulesToFile</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; suffix)</div>
1063
- <div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;{</div>
1064
- <div class="line"><a name="l01014"></a><span class="lineno"> 1014</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>
1065
- <div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; {</div>
1066
- <div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> moduleName = mod.getName().str();</div>
1067
- <div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> OutputFilename;</div>
1068
- <div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; std::size_t pos = moduleName.rfind(<span class="charliteral">&#39;.&#39;</span>);</div>
1069
- <div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <span class="keywordflow">if</span> (pos != std::string::npos)</div>
1070
- <div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; OutputFilename = moduleName.substr(0, pos) + suffix;</div>
1071
- <div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; <span class="keywordflow">else</span></div>
1072
- <div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; OutputFilename = moduleName + suffix;</div>
1073
- <div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; </div>
1074
- <div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; std::error_code EC;</div>
1075
- <div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; <a class="code" href="namespaceSVF.html#a1c7c7ac12791c0ae386283c0a4f127ba">raw_fd_ostream</a> OS(OutputFilename.c_str(), EC, llvm::sys::fs::OF_None);</div>
1076
- <div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; </div>
1077
- <div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;<span class="preprocessor">#if (LLVM_VERSION_MAJOR &gt;= 7)</span></div>
1078
- <div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; WriteBitcodeToFile(mod, OS);</div>
1079
- <div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;<span class="preprocessor">#else</span></div>
1080
- <div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; WriteBitcodeToFile(&amp;mod, OS);</div>
1081
- <div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;<span class="preprocessor">#endif</span></div>
1082
- <div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; </div>
1083
- <div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; OS.flush();</div>
1084
- <div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; }</div>
1085
- <div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;}</div>
875
+ <div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fun.getName().str() == <span class="stringliteral">&quot;svf__main&quot;</span>)</div>
876
+ <div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; {</div>
877
+ <div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab932917041e1b1d8b461bfef464330fd">ExtFuncsVec</a>.push_back(&amp;fun);</div>
878
+ <div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="comment">// Get all called functions in svf_main()</span></div>
879
+ <div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; std::vector&lt;const Function*&gt; calledFunctions = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">LLVMUtil::getCalledFunctions</a>(&amp;fun);</div>
880
+ <div class="line"><a name="l00823"></a><span class="lineno"> 823</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>
881
+ <div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; }</div>
882
+ <div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <span class="keywordflow">else</span></div>
883
+ <div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; {</div>
884
+ <div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; extFuncs.insert(&amp;fun);</div>
885
+ <div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="comment">// Find overwrite functions in extapi.bc</span></div>
886
+ <div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; std::vector&lt;std::string&gt; annotations =</div>
887
+ <div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8cd4d6410017b9e5f47f2f88450b78d8">LLVMUtil::getFunAnnotations</a>(&amp;fun);</div>
888
+ <div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keyword">auto</span> it =</div>
889
+ <div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; std::find_if(annotations.begin(), annotations.end(),</div>
890
+ <div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; [&amp;](<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; annotation)</div>
891
+ <div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; {</div>
892
+ <div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; return annotation.find(<span class="stringliteral">&quot;OVERWRITE&quot;</span>) !=</div>
893
+ <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; std::string::npos;</div>
894
+ <div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; });</div>
895
+ <div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keywordflow">if</span> (it != annotations.end())</div>
896
+ <div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; {</div>
897
+ <div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; overwriteExtFuncs.insert(&amp;fun);</div>
898
+ <div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; }</div>
899
+ <div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; }</div>
900
+ <div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; }</div>
901
+ <div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; }</div>
902
+ <div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keywordflow">else</span></div>
903
+ <div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; {</div>
904
+ <div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&amp; fun : mod.functions())</div>
905
+ <div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; {</div>
906
+ <div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="keywordflow">if</span> (fun.isDeclaration())</div>
907
+ <div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; {</div>
908
+ <div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; funDecls.insert(&amp;fun);</div>
909
+ <div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; declNames.insert(fun.getName().str());</div>
910
+ <div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; }</div>
911
+ <div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="keywordflow">else</span></div>
912
+ <div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; {</div>
913
+ <div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; funDefs.insert(&amp;fun);</div>
914
+ <div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; defNames.insert(fun.getName().str());</div>
915
+ <div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; }</div>
916
+ <div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; }</div>
917
+ <div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; }</div>
918
+ <div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; }</div>
919
+ <div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="comment">// Find the intersectNames</span></div>
920
+ <div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; std::set_intersection(</div>
921
+ <div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; declNames.begin(), declNames.end(), defNames.begin(), defNames.end(),</div>
922
+ <div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; std::inserter(intersectNames, intersectNames.end()));</div>
923
+ <div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; </div>
924
+ <div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; NameToFunDefMapTy nameToFunDefMap;</div>
925
+ <div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fdef : funDefs)</div>
926
+ <div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; {</div>
927
+ <div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <span class="keywordtype">string</span> funName = fdef-&gt;getName().str();</div>
928
+ <div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <span class="keywordflow">if</span> (intersectNames.find(funName) != intersectNames.end())</div>
929
+ <div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; {</div>
930
+ <div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; nameToFunDefMap.emplace(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(funName), fdef);</div>
931
+ <div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; }</div>
932
+ <div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; }</div>
933
+ <div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; </div>
934
+ <div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; NameToFunDeclsMapTy nameToFunDeclsMap;</div>
935
+ <div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fdecl : funDecls)</div>
936
+ <div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; {</div>
937
+ <div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <span class="keywordtype">string</span> funName = fdecl-&gt;getName().str();</div>
938
+ <div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <span class="keywordflow">if</span> (intersectNames.find(funName) != intersectNames.end())</div>
939
+ <div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; {</div>
940
+ <div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <span class="comment">// pair with key funName will be created automatically if it does</span></div>
941
+ <div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <span class="comment">// not exist</span></div>
942
+ <div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; nameToFunDeclsMap[<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(funName)].insert(fdecl);</div>
943
+ <div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; }</div>
944
+ <div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; }</div>
945
+ <div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; </div>
946
+ <div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fdecl : funDecls)</div>
947
+ <div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; {</div>
948
+ <div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keywordtype">string</span> funName = fdecl-&gt;getName().str();</div>
949
+ <div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; NameToFunDefMapTy::iterator mit;</div>
950
+ <div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; <span class="keywordflow">if</span> (intersectNames.find(funName) != intersectNames.end() &amp;&amp;</div>
951
+ <div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; (mit = nameToFunDefMap.find(funName)) != nameToFunDefMap.end())</div>
952
+ <div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; {</div>
953
+ <div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">FunDeclToDefMap</a>[fdecl] = mit-&gt;second;</div>
954
+ <div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; }</div>
955
+ <div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; }</div>
956
+ <div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; </div>
957
+ <div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fdef : funDefs)</div>
958
+ <div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; {</div>
959
+ <div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <span class="keywordtype">string</span> funName = fdef-&gt;getName().str();</div>
960
+ <div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <span class="keywordflow">if</span> (intersectNames.find(funName) == intersectNames.end())</div>
961
+ <div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <span class="keywordflow">continue</span>;</div>
962
+ <div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; NameToFunDeclsMapTy::iterator mit = nameToFunDeclsMap.find(funName);</div>
963
+ <div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <span class="keywordflow">if</span> (mit == nameToFunDeclsMap.end())</div>
964
+ <div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <span class="keywordflow">continue</span>;</div>
965
+ <div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; </div>
966
+ <div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; std::vector&lt;const Function*&gt;&amp; decls = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">FunDefToDeclsMap</a>[fdef];</div>
967
+ <div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span>&amp; declsSet = mit-&gt;second;</div>
968
+ <div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <span class="comment">// Reserve space for decls to avoid more than 1 reallocation</span></div>
969
+ <div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; decls.reserve(decls.size() + declsSet.size());</div>
970
+ <div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; </div>
971
+ <div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* decl : declsSet)</div>
972
+ <div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; {</div>
973
+ <div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; decls.push_back(decl);</div>
974
+ <div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; }</div>
975
+ <div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; }</div>
976
+ <div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; </div>
977
+ <div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fdecl : funDecls)</div>
978
+ <div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; {</div>
979
+ <div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* extfun : extFuncs)</div>
980
+ <div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; {</div>
981
+ <div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> declName = fdecl-&gt;getName().str();</div>
982
+ <div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; <span class="comment">// Since C function names cannot include &#39;.&#39;, change the function name from llvm.memcpy.p0i8.p0i8.i64 to llvm_memcpy_p0i8_p0i8_i64.&quot;</span></div>
983
+ <div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; std::replace(declName.begin(), declName.end(), <span class="charliteral">&#39;.&#39;</span>, <span class="charliteral">&#39;_&#39;</span>);</div>
984
+ <div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <span class="keywordflow">if</span> (extfun-&gt;getName().str().compare(declName) == 0)</div>
985
+ <div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; {</div>
986
+ <div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <span class="comment">// AppDecl -&gt; ExtDef in Table 1</span></div>
987
+ <div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">FunDeclToDefMap</a>[fdecl] = extfun;</div>
988
+ <div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <span class="comment">// ExtDef -&gt; AppDecl in Table 1</span></div>
989
+ <div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; std::vector&lt;const Function*&gt;&amp; decls = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">FunDefToDeclsMap</a>[extfun];</div>
990
+ <div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; decls.push_back(fdecl);</div>
991
+ <div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="comment">// Keep all called functions in extfun</span></div>
992
+ <div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <span class="comment">// ExtDecl -&gt; ExtDecl in Table 1</span></div>
993
+ <div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; std::vector&lt;const Function*&gt; calledFunctions = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">LLVMUtil::getCalledFunctions</a>(extfun);</div>
994
+ <div class="line"><a name="l00943"></a><span class="lineno"> 943</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>
995
+ <div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; }</div>
996
+ <div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; }</div>
997
+ <div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; }</div>
998
+ <div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; </div>
999
+ <div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* appfunc : funDefs)</div>
1000
+ <div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; {</div>
1001
+ <div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* owfunc : overwriteExtFuncs)</div>
1002
+ <div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; {</div>
1003
+ <div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <span class="keywordflow">if</span> (appfunc-&gt;getName().str().compare(owfunc-&gt;getName().str()) == 0)</div>
1004
+ <div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; {</div>
1005
+ <div class="line"><a name="l00956"></a><span class="lineno"> 956</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>
1006
+ <div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mod = fun-&gt;getParent();</div>
1007
+ <div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <a class="code" href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">FunctionType</a>* funType = fun-&gt;getFunctionType();</div>
1008
+ <div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> funName = fun-&gt;getName().str();</div>
1009
+ <div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <span class="comment">// Replace app function definition with declaration</span></div>
1010
+ <div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* declaration = Function::Create(funType, GlobalValue::ExternalLinkage, funName, mod);</div>
1011
+ <div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; fun-&gt;replaceAllUsesWith(declaration);</div>
1012
+ <div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; fun-&gt;eraseFromParent();</div>
1013
+ <div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; declaration-&gt;setName(funName);</div>
1014
+ <div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <span class="comment">// AppDef -&gt; ExtDef in Table 1, AppDef has been changed to AppDecl</span></div>
1015
+ <div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">FunDeclToDefMap</a>[declaration] = owfunc;</div>
1016
+ <div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <span class="comment">// ExtDef -&gt; AppDef in Table 1</span></div>
1017
+ <div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; std::vector&lt;const Function*&gt;&amp; decls = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">FunDefToDeclsMap</a>[owfunc];</div>
1018
+ <div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; decls.push_back(declaration);</div>
1019
+ <div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="comment">// Keep all called functions in owfunc</span></div>
1020
+ <div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="comment">// ExtDecl -&gt; ExtDecl in Table 1</span></div>
1021
+ <div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; std::vector&lt;const Function*&gt; calledFunctions = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">LLVMUtil::getCalledFunctions</a>(owfunc);</div>
1022
+ <div class="line"><a name="l00973"></a><span class="lineno"> 973</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>
1023
+ <div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; }</div>
1024
+ <div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; }</div>
1025
+ <div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; }</div>
1026
+ <div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160;}</div>
1027
+ <div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; </div>
1028
+ <div class="line"><a name="l00979"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#aaab03cb6ff665bc008c67b866ba81e47"> 979</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#aaab03cb6ff665bc008c67b866ba81e47">LLVMModuleSet::buildGlobalDefToRepMap</a>()</div>
1029
+ <div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;{</div>
1030
+ <div class="line"><a name="l00981"></a><span class="lineno"> 981</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>
1031
+ <div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; NameToGlobalsMapTy nameToGlobalsMap;</div>
1032
+ <div class="line"><a name="l00983"></a><span class="lineno"> 983</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>
1033
+ <div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; {</div>
1034
+ <div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; <span class="comment">// Collect ctor and dtor functions</span></div>
1035
+ <div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>&amp; global : mod.globals())</div>
1036
+ <div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; {</div>
1037
+ <div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; <span class="keywordflow">if</span> (global.hasPrivateLinkage())</div>
1038
+ <div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; <span class="keywordflow">continue</span>;</div>
1039
+ <div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; <span class="keywordtype">string</span> <a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a> = global.getName().str();</div>
1040
+ <div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>.empty())</div>
1041
+ <div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="keywordflow">continue</span>;</div>
1042
+ <div class="line"><a name="l00993"></a><span class="lineno"> 993</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>
1043
+ <div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; }</div>
1044
+ <div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; }</div>
1045
+ <div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; </div>
1046
+ <div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; pair : nameToGlobalsMap)</div>
1047
+ <div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; {</div>
1048
+ <div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> &amp;globals = pair.second;</div>
1049
+ <div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; </div>
1050
+ <div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> repIt =</div>
1051
+ <div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; std::find_if(globals.begin(), globals.end(),</div>
1052
+ <div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; [](<a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* g)</div>
1053
+ <div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; {</div>
1054
+ <div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; return g-&gt;hasInitializer();</div>
1055
+ <div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; });</div>
1056
+ <div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* rep =</div>
1057
+ <div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; repIt != globals.end()</div>
1058
+ <div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; ? *repIt</div>
1059
+ <div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; <span class="comment">// When there is no initializer, just pick the first one.</span></div>
1060
+ <div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; : (assert(!globals.empty() &amp;&amp; <span class="stringliteral">&quot;Empty global set&quot;</span>),</div>
1061
+ <div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; *globals.begin());</div>
1062
+ <div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; </div>
1063
+ <div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* cur : globals)</div>
1064
+ <div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; {</div>
1065
+ <div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae2a1fa0b908cf372c50af90e62c4bf2b">GlobalDefToRepMap</a>[cur] = rep;</div>
1066
+ <div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; }</div>
1067
+ <div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; }</div>
1068
+ <div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;}</div>
1069
+ <div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; </div>
1070
+ <div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;<span class="comment">// Dump modules to files</span></div>
1071
+ <div class="line"><a name="l01022"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#af37b9976b282c875cac7bb1777da635c"> 1022</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#af37b9976b282c875cac7bb1777da635c">LLVMModuleSet::dumpModulesToFile</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; suffix)</div>
1072
+ <div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;{</div>
1073
+ <div class="line"><a name="l01024"></a><span class="lineno"> 1024</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>
1074
+ <div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; {</div>
1075
+ <div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> moduleName = mod.getName().str();</div>
1076
+ <div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> OutputFilename;</div>
1077
+ <div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; std::size_t pos = moduleName.rfind(<span class="charliteral">&#39;.&#39;</span>);</div>
1078
+ <div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; <span class="keywordflow">if</span> (pos != std::string::npos)</div>
1079
+ <div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; OutputFilename = moduleName.substr(0, pos) + suffix;</div>
1080
+ <div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; <span class="keywordflow">else</span></div>
1081
+ <div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; OutputFilename = moduleName + suffix;</div>
1082
+ <div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; </div>
1083
+ <div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; std::error_code EC;</div>
1084
+ <div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <a class="code" href="namespaceSVF.html#a1c7c7ac12791c0ae386283c0a4f127ba">raw_fd_ostream</a> OS(OutputFilename.c_str(), EC, llvm::sys::fs::OF_None);</div>
1086
1085
  <div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; </div>
1087
- <div class="line"><a name="l01037"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a7d61f479f52e1dc71a4ae7a4d62f3b6a"> 1037</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a7d61f479f52e1dc71a4ae7a4d62f3b6a">LLVMModuleSet::setValueAttr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* svfvalue)</div>
1088
- <div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;{</div>
1089
- <div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a7f8e61cf5d838d7a2e862bc6955f16be">SVFValue2LLVMValue</a>[svfvalue] = val;</div>
1090
- <div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; </div>
1091
- <div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07c785d931cef3c61e3dab4c615770be">LLVMUtil::isPtrInUncalledFunction</a>(val))</div>
1092
- <div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; svfvalue-&gt;<a class="code" href="classSVF_1_1SVFValue.html#ac2e5c42d0ac92375c88ef5b3f1b65dc4">setPtrInUncalledFunction</a>();</div>
1093
- <div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">LLVMUtil::isConstDataOrAggData</a>(val))</div>
1094
- <div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; svfvalue-&gt;<a class="code" href="classSVF_1_1SVFValue.html#afe1de41ca3215b325d0ca61814c6bd6b">setConstDataOrAggData</a>();</div>
1095
- <div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; </div>
1096
- <div class="line"><a name="l01046"></a><span class="lineno"> 1046</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>
1097
- <div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; {</div>
1098
- <div class="line"><a name="l01048"></a><span class="lineno"> 1048</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>
1099
- <div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; assert(SVFUtil::isa&lt;GlobalValue&gt;(llvmVal) &amp;&amp; <span class="stringliteral">&quot;not a GlobalValue?&quot;</span>);</div>
1100
- <div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; glob-&gt;setDefGlobalForMultipleModule(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a3cbba2eb702a3481478b2590dfffa352">getSVFGlobalValue</a>(SVFUtil::cast&lt;GlobalValue&gt;(llvmVal)));</div>
1101
- <div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; }</div>
1102
- <div class="line"><a name="l01052"></a><span class="lineno"> 1052</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>
1103
- <div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; {</div>
1104
- <div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = SVFUtil::cast&lt;Function&gt;(val);</div>
1105
- <div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; svffun-&gt;setIsNotRet(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a651b6a1cf3665277d2241220bb145aed">LLVMUtil::functionDoesNotRet</a>(func));</div>
1106
- <div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; svffun-&gt;setIsUncalledFunction(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">LLVMUtil::isUncalledFunction</a>(func));</div>
1107
- <div class="line"><a name="l01057"></a><span class="lineno"> 1057</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>
1108
- <div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; }</div>
1109
- <div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; </div>
1110
- <div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; svfvalue-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a588acec1904d440797ca4500f63f7d28">setSourceLoc</a>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">LLVMUtil::getSourceLoc</a>(val));</div>
1111
- <div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;}</div>
1112
- <div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; </div>
1113
- <div class="line"><a name="l01063"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727"> 1063</a></span>&#160;<a class="code" href="classSVF_1_1SVFConstantData.html">SVFConstantData</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727">LLVMModuleSet::getSVFConstantData</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7332f8059ea95472dcc231de884a5768">ConstantData</a>* cd)</div>
1114
- <div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;{</div>
1115
- <div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; LLVMConst2SVFConstMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.find(cd);</div>
1116
- <div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.end())</div>
1117
- <div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; {</div>
1118
- <div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; assert(SVFUtil::isa&lt;SVFConstantData&gt;(it-&gt;second) &amp;&amp; <span class="stringliteral">&quot;not a SVFConstantData type!&quot;</span>);</div>
1119
- <div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; <span class="keywordflow">return</span> SVFUtil::cast&lt;SVFConstantData&gt;(it-&gt;second);</div>
1120
- <div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; }</div>
1121
- <div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; <span class="keywordflow">else</span></div>
1122
- <div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; {</div>
1123
- <div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <a class="code" href="classSVF_1_1SVFConstantData.html">SVFConstantData</a>* svfcd = <span class="keyword">nullptr</span>;</div>
1124
- <div class="line"><a name="l01074"></a><span class="lineno"> 1074</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>
1125
- <div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; {</div>
1126
- <div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; <span class="keywordflow">if</span>(cint-&gt;getBitWidth() == 1)</div>
1127
- <div class="line"><a name="l01080"></a><span class="lineno"> 1080</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>
1128
- <div class="line"><a name="l01081"></a><span class="lineno"> 1081</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>
1129
- <div class="line"><a name="l01082"></a><span class="lineno"> 1082</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>
1130
- <div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <span class="keywordflow">else</span></div>
1131
- <div class="line"><a name="l01084"></a><span class="lineno"> 1084</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>
1132
- <div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; }</div>
1133
- <div class="line"><a name="l01086"></a><span class="lineno"> 1086</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>
1134
- <div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; {</div>
1135
- <div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; <span class="keywordtype">double</span> dval = 0;</div>
1136
- <div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <span class="comment">// TODO: Why only double is considered? What about float?</span></div>
1137
- <div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; <span class="keywordflow">if</span>(cfp-&gt;isNormalFP() &amp;&amp; (&amp;cfp-&gt;getValueAPF().getSemantics()== &amp;llvm::APFloatBase::IEEEdouble()))</div>
1138
- <div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; dval = cfp-&gt;getValueAPF().convertToDouble();</div>
1139
- <div class="line"><a name="l01092"></a><span class="lineno"> 1092</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>
1140
- <div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; }</div>
1141
- <div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;ConstantPointerNull&gt;(cd))</div>
1142
- <div class="line"><a name="l01095"></a><span class="lineno"> 1095</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>
1143
- <div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;UndefValue&gt;(cd))</div>
1144
- <div class="line"><a name="l01097"></a><span class="lineno"> 1097</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>
1145
- <div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; <span class="keywordflow">else</span></div>
1146
- <div class="line"><a name="l01099"></a><span class="lineno"> 1099</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>
1147
- <div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; </div>
1148
- <div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; <span class="keywordflow">if</span> (cd-&gt;hasName())</div>
1149
- <div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; svfcd-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName</a>(cd-&gt;getName().str());</div>
1150
- <div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; </div>
1151
- <div class="line"><a name="l01104"></a><span class="lineno"> 1104</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>
1152
- <div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#af4bd487b3b6efe55bf869b869f5e8a80">addConstantDataMap</a>(cd,svfcd);</div>
1153
- <div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; <span class="keywordflow">return</span> svfcd;</div>
1154
- <div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; }</div>
1155
- <div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;}</div>
1156
- <div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; </div>
1157
- <div class="line"><a name="l01110"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc"> 1110</a></span>&#160;<a class="code" href="classSVF_1_1SVFConstant.html">SVFConstant</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc">LLVMModuleSet::getOtherSVFConstant</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>* oc)</div>
1158
- <div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;{</div>
1159
- <div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; LLVMConst2SVFConstMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.find(oc);</div>
1160
- <div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.end())</div>
1161
- <div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; {</div>
1162
- <div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
1163
- <div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; }</div>
1164
- <div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; <span class="keywordflow">else</span></div>
1165
- <div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; {</div>
1166
- <div class="line"><a name="l01119"></a><span class="lineno"> 1119</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>
1167
- <div class="line"><a name="l01120"></a><span class="lineno"> 1120</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>
1168
- <div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5badf03aeb1ebda02bc186bbb58a892a">addOtherConstantMap</a>(oc,svfoc);</div>
1169
- <div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <span class="keywordflow">return</span> svfoc;</div>
1170
- <div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; }</div>
1171
- <div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;}</div>
1172
- <div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; </div>
1173
- <div class="line"><a name="l01126"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965"> 1126</a></span>&#160;<a class="code" href="classSVF_1_1SVFOtherValue.html">SVFOtherValue</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965">LLVMModuleSet::getSVFOtherValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* ov)</div>
1174
- <div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;{</div>
1175
- <div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; LLVMValue2SVFOtherValueMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#ac3e70bd338be3a54330be5dc10321eb3">LLVMValue2SVFOtherValue</a>.find(ov);</div>
1176
- <div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#ac3e70bd338be3a54330be5dc10321eb3">LLVMValue2SVFOtherValue</a>.end())</div>
1177
- <div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; {</div>
1178
- <div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
1179
- <div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; }</div>
1180
- <div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; <span class="keywordflow">else</span></div>
1181
- <div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; {</div>
1182
- <div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <a class="code" href="classSVF_1_1SVFOtherValue.html">SVFOtherValue</a>* svfov =</div>
1183
- <div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; SVFUtil::isa&lt;MetadataAsValue&gt;(ov)</div>
1184
- <div class="line"><a name="l01137"></a><span class="lineno"> 1137</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>
1185
- <div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; : <span class="keyword">new</span> <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>
1186
- <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#a48d7f0643bb228701dcabb88ef541fca">addOtherValue</a>(svfov);</div>
1187
- <div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a023ea6f179433fa4d007c98ddc38e3c5">addOtherValueMap</a>(ov,svfov);</div>
1188
- <div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <span class="keywordflow">return</span> svfov;</div>
1086
+ <div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;<span class="preprocessor">#if (LLVM_VERSION_MAJOR &gt;= 7)</span></div>
1087
+ <div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; WriteBitcodeToFile(mod, OS);</div>
1088
+ <div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;<span class="preprocessor">#else</span></div>
1089
+ <div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; WriteBitcodeToFile(&amp;mod, OS);</div>
1090
+ <div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;<span class="preprocessor">#endif</span></div>
1091
+ <div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; </div>
1092
+ <div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; OS.flush();</div>
1093
+ <div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; }</div>
1094
+ <div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;}</div>
1095
+ <div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; </div>
1096
+ <div class="line"><a name="l01047"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a7d61f479f52e1dc71a4ae7a4d62f3b6a"> 1047</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a7d61f479f52e1dc71a4ae7a4d62f3b6a">LLVMModuleSet::setValueAttr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* svfvalue)</div>
1097
+ <div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;{</div>
1098
+ <div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a7f8e61cf5d838d7a2e862bc6955f16be">SVFValue2LLVMValue</a>[svfvalue] = val;</div>
1099
+ <div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; </div>
1100
+ <div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07c785d931cef3c61e3dab4c615770be">LLVMUtil::isPtrInUncalledFunction</a>(val))</div>
1101
+ <div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; svfvalue-&gt;<a class="code" href="classSVF_1_1SVFValue.html#ac2e5c42d0ac92375c88ef5b3f1b65dc4">setPtrInUncalledFunction</a>();</div>
1102
+ <div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">LLVMUtil::isConstDataOrAggData</a>(val))</div>
1103
+ <div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; svfvalue-&gt;<a class="code" href="classSVF_1_1SVFValue.html#afe1de41ca3215b325d0ca61814c6bd6b">setConstDataOrAggData</a>();</div>
1104
+ <div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; </div>
1105
+ <div class="line"><a name="l01056"></a><span class="lineno"> 1056</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>
1106
+ <div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; {</div>
1107
+ <div class="line"><a name="l01058"></a><span class="lineno"> 1058</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>
1108
+ <div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; assert(SVFUtil::isa&lt;GlobalValue&gt;(llvmVal) &amp;&amp; <span class="stringliteral">&quot;not a GlobalValue?&quot;</span>);</div>
1109
+ <div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; glob-&gt;setDefGlobalForMultipleModule(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a3cbba2eb702a3481478b2590dfffa352">getSVFGlobalValue</a>(SVFUtil::cast&lt;GlobalValue&gt;(llvmVal)));</div>
1110
+ <div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; }</div>
1111
+ <div class="line"><a name="l01062"></a><span class="lineno"> 1062</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>
1112
+ <div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; {</div>
1113
+ <div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = SVFUtil::cast&lt;Function&gt;(val);</div>
1114
+ <div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; svffun-&gt;setIsNotRet(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a651b6a1cf3665277d2241220bb145aed">LLVMUtil::functionDoesNotRet</a>(func));</div>
1115
+ <div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; svffun-&gt;setIsUncalledFunction(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">LLVMUtil::isUncalledFunction</a>(func));</div>
1116
+ <div class="line"><a name="l01067"></a><span class="lineno"> 1067</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>
1117
+ <div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; }</div>
1118
+ <div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; </div>
1119
+ <div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; svfvalue-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a588acec1904d440797ca4500f63f7d28">setSourceLoc</a>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">LLVMUtil::getSourceLoc</a>(val));</div>
1120
+ <div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;}</div>
1121
+ <div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; </div>
1122
+ <div class="line"><a name="l01073"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727"> 1073</a></span>&#160;<a class="code" href="classSVF_1_1SVFConstantData.html">SVFConstantData</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727">LLVMModuleSet::getSVFConstantData</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7332f8059ea95472dcc231de884a5768">ConstantData</a>* cd)</div>
1123
+ <div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;{</div>
1124
+ <div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; LLVMConst2SVFConstMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.find(cd);</div>
1125
+ <div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.end())</div>
1126
+ <div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; {</div>
1127
+ <div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; assert(SVFUtil::isa&lt;SVFConstantData&gt;(it-&gt;second) &amp;&amp; <span class="stringliteral">&quot;not a SVFConstantData type!&quot;</span>);</div>
1128
+ <div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; <span class="keywordflow">return</span> SVFUtil::cast&lt;SVFConstantData&gt;(it-&gt;second);</div>
1129
+ <div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; }</div>
1130
+ <div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <span class="keywordflow">else</span></div>
1131
+ <div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; {</div>
1132
+ <div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <a class="code" href="classSVF_1_1SVFConstantData.html">SVFConstantData</a>* svfcd = <span class="keyword">nullptr</span>;</div>
1133
+ <div class="line"><a name="l01084"></a><span class="lineno"> 1084</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>
1134
+ <div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; {</div>
1135
+ <div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <span class="keywordflow">if</span>(cint-&gt;getBitWidth() == 1)</div>
1136
+ <div class="line"><a name="l01090"></a><span class="lineno"> 1090</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>
1137
+ <div class="line"><a name="l01091"></a><span class="lineno"> 1091</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>
1138
+ <div class="line"><a name="l01092"></a><span class="lineno"> 1092</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>
1139
+ <div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; <span class="keywordflow">else</span></div>
1140
+ <div class="line"><a name="l01094"></a><span class="lineno"> 1094</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>
1141
+ <div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; }</div>
1142
+ <div class="line"><a name="l01096"></a><span class="lineno"> 1096</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>
1143
+ <div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; {</div>
1144
+ <div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; <span class="keywordtype">double</span> dval = 0;</div>
1145
+ <div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; <span class="comment">// TODO: Why only double is considered? What about float?</span></div>
1146
+ <div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; <span class="keywordflow">if</span>(cfp-&gt;isNormalFP() &amp;&amp; (&amp;cfp-&gt;getValueAPF().getSemantics()== &amp;llvm::APFloatBase::IEEEdouble()))</div>
1147
+ <div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; dval = cfp-&gt;getValueAPF().convertToDouble();</div>
1148
+ <div class="line"><a name="l01102"></a><span class="lineno"> 1102</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>
1149
+ <div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; }</div>
1150
+ <div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;ConstantPointerNull&gt;(cd))</div>
1151
+ <div class="line"><a name="l01105"></a><span class="lineno"> 1105</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>
1152
+ <div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;UndefValue&gt;(cd))</div>
1153
+ <div class="line"><a name="l01107"></a><span class="lineno"> 1107</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>
1154
+ <div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; <span class="keywordflow">else</span></div>
1155
+ <div class="line"><a name="l01109"></a><span class="lineno"> 1109</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>
1156
+ <div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; </div>
1157
+ <div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; <span class="keywordflow">if</span> (cd-&gt;hasName())</div>
1158
+ <div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; svfcd-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName</a>(cd-&gt;getName().str());</div>
1159
+ <div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; </div>
1160
+ <div class="line"><a name="l01114"></a><span class="lineno"> 1114</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>
1161
+ <div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#af4bd487b3b6efe55bf869b869f5e8a80">addConstantDataMap</a>(cd,svfcd);</div>
1162
+ <div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; <span class="keywordflow">return</span> svfcd;</div>
1163
+ <div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; }</div>
1164
+ <div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;}</div>
1165
+ <div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; </div>
1166
+ <div class="line"><a name="l01120"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc"> 1120</a></span>&#160;<a class="code" href="classSVF_1_1SVFConstant.html">SVFConstant</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc">LLVMModuleSet::getOtherSVFConstant</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>* oc)</div>
1167
+ <div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;{</div>
1168
+ <div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; LLVMConst2SVFConstMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.find(oc);</div>
1169
+ <div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.end())</div>
1170
+ <div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; {</div>
1171
+ <div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
1172
+ <div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; }</div>
1173
+ <div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; <span class="keywordflow">else</span></div>
1174
+ <div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; {</div>
1175
+ <div class="line"><a name="l01129"></a><span class="lineno"> 1129</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>
1176
+ <div class="line"><a name="l01130"></a><span class="lineno"> 1130</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>
1177
+ <div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5badf03aeb1ebda02bc186bbb58a892a">addOtherConstantMap</a>(oc,svfoc);</div>
1178
+ <div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; <span class="keywordflow">return</span> svfoc;</div>
1179
+ <div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; }</div>
1180
+ <div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;}</div>
1181
+ <div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; </div>
1182
+ <div class="line"><a name="l01136"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965"> 1136</a></span>&#160;<a class="code" href="classSVF_1_1SVFOtherValue.html">SVFOtherValue</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965">LLVMModuleSet::getSVFOtherValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* ov)</div>
1183
+ <div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;{</div>
1184
+ <div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; LLVMValue2SVFOtherValueMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#ac3e70bd338be3a54330be5dc10321eb3">LLVMValue2SVFOtherValue</a>.find(ov);</div>
1185
+ <div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#ac3e70bd338be3a54330be5dc10321eb3">LLVMValue2SVFOtherValue</a>.end())</div>
1186
+ <div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; {</div>
1187
+ <div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
1189
1188
  <div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; }</div>
1190
- <div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;}</div>
1191
- <div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; </div>
1192
- <div class="line"><a name="l01145"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392"> 1145</a></span>&#160;<a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">LLVMModuleSet::getSVFValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* value)</div>
1193
- <div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;{</div>
1194
- <div class="line"><a name="l01147"></a><span class="lineno"> 1147</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>
1195
- <div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(fun);</div>
1196
- <div class="line"><a name="l01149"></a><span class="lineno"> 1149</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>
1197
- <div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab0c0f321b6bfbfab2e4ff06d81920ab9">getSVFBasicBlock</a>(bb);</div>
1198
- <div class="line"><a name="l01151"></a><span class="lineno"> 1151</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>
1199
- <div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">getSVFInstruction</a>(inst);</div>
1200
- <div class="line"><a name="l01153"></a><span class="lineno"> 1153</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>
1201
- <div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ad3f66b40ad360003845253f452d6a711">getSVFArgument</a>(arg);</div>
1202
- <div class="line"><a name="l01155"></a><span class="lineno"> 1155</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>
1203
- <div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; {</div>
1204
- <div class="line"><a name="l01157"></a><span class="lineno"> 1157</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>
1205
- <div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727">getSVFConstantData</a>(cd);</div>
1206
- <div class="line"><a name="l01159"></a><span class="lineno"> 1159</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>
1207
- <div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a3cbba2eb702a3481478b2590dfffa352">getSVFGlobalValue</a>(glob);</div>
1208
- <div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; <span class="keywordflow">else</span></div>
1209
- <div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc">getOtherSVFConstant</a>(cons);</div>
1210
- <div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; }</div>
1211
- <div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; <span class="keywordflow">else</span></div>
1212
- <div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965">getSVFOtherValue</a>(value);</div>
1213
- <div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;}</div>
1214
- <div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; </div>
1215
- <div class="line"><a name="l01168"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a610a7777a48132caadec167c8109f044"> 1168</a></span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a610a7777a48132caadec167c8109f044">LLVMModuleSet::getLLVMType</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* T)<span class="keyword"> const</span></div>
1216
- <div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;<span class="keyword"></span>{</div>
1217
- <div class="line"><a name="l01170"></a><span class="lineno"> 1170</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>
1218
- <div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; {</div>
1219
- <div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; <span class="keywordflow">if</span> (it-&gt;second == T)</div>
1220
- <div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; <span class="keywordflow">return</span> it-&gt;first;</div>
1221
- <div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; }</div>
1222
- <div class="line"><a name="l01175"></a><span class="lineno"> 1175</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>
1223
- <div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; abort();</div>
1224
- <div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;}</div>
1225
- <div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; </div>
1226
- <div class="line"><a name="l01182"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99"> 1182</a></span>&#160;<a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">LLVMModuleSet::getSVFType</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* T)</div>
1227
- <div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;{</div>
1228
- <div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; assert(T &amp;&amp; <span class="stringliteral">&quot;SVFType should not be null&quot;</span>);</div>
1229
- <div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; LLVMType2SVFTypeMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.find(T);</div>
1230
- <div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; <span class="keywordflow">if</span> (it != <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.end())</div>
1231
- <div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
1189
+ <div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <span class="keywordflow">else</span></div>
1190
+ <div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; {</div>
1191
+ <div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; <a class="code" href="classSVF_1_1SVFOtherValue.html">SVFOtherValue</a>* svfov =</div>
1192
+ <div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; SVFUtil::isa&lt;MetadataAsValue&gt;(ov)</div>
1193
+ <div class="line"><a name="l01147"></a><span class="lineno"> 1147</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>
1194
+ <div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; : <span class="keyword">new</span> <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>
1195
+ <div class="line"><a name="l01149"></a><span class="lineno"> 1149</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>
1196
+ <div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a023ea6f179433fa4d007c98ddc38e3c5">addOtherValueMap</a>(ov,svfov);</div>
1197
+ <div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; <span class="keywordflow">return</span> svfov;</div>
1198
+ <div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; }</div>
1199
+ <div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;}</div>
1200
+ <div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; </div>
1201
+ <div class="line"><a name="l01155"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392"> 1155</a></span>&#160;<a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">LLVMModuleSet::getSVFValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* value)</div>
1202
+ <div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;{</div>
1203
+ <div class="line"><a name="l01157"></a><span class="lineno"> 1157</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>
1204
+ <div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(fun);</div>
1205
+ <div class="line"><a name="l01159"></a><span class="lineno"> 1159</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>
1206
+ <div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab0c0f321b6bfbfab2e4ff06d81920ab9">getSVFBasicBlock</a>(bb);</div>
1207
+ <div class="line"><a name="l01161"></a><span class="lineno"> 1161</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>
1208
+ <div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">getSVFInstruction</a>(inst);</div>
1209
+ <div class="line"><a name="l01163"></a><span class="lineno"> 1163</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>
1210
+ <div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ad3f66b40ad360003845253f452d6a711">getSVFArgument</a>(arg);</div>
1211
+ <div class="line"><a name="l01165"></a><span class="lineno"> 1165</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>
1212
+ <div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; {</div>
1213
+ <div class="line"><a name="l01167"></a><span class="lineno"> 1167</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>
1214
+ <div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727">getSVFConstantData</a>(cd);</div>
1215
+ <div class="line"><a name="l01169"></a><span class="lineno"> 1169</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>
1216
+ <div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a3cbba2eb702a3481478b2590dfffa352">getSVFGlobalValue</a>(glob);</div>
1217
+ <div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; <span class="keywordflow">else</span></div>
1218
+ <div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc">getOtherSVFConstant</a>(cons);</div>
1219
+ <div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; }</div>
1220
+ <div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; <span class="keywordflow">else</span></div>
1221
+ <div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965">getSVFOtherValue</a>(value);</div>
1222
+ <div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;}</div>
1223
+ <div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; </div>
1224
+ <div class="line"><a name="l01178"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a610a7777a48132caadec167c8109f044"> 1178</a></span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a610a7777a48132caadec167c8109f044">LLVMModuleSet::getLLVMType</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* T)<span class="keyword"> const</span></div>
1225
+ <div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;<span class="keyword"></span>{</div>
1226
+ <div class="line"><a name="l01180"></a><span class="lineno"> 1180</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>
1227
+ <div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; {</div>
1228
+ <div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; <span class="keywordflow">if</span> (it-&gt;second == T)</div>
1229
+ <div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; <span class="keywordflow">return</span> it-&gt;first;</div>
1230
+ <div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; }</div>
1231
+ <div class="line"><a name="l01185"></a><span class="lineno"> 1185</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>
1232
+ <div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; abort();</div>
1233
+ <div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;}</div>
1232
1234
  <div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; </div>
1233
- <div class="line"><a name="l01189"></a><span class="lineno"> 1189</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>
1234
- <div class="line"><a name="l01190"></a><span class="lineno"> 1190</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>
1235
- <div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; svfType-&gt;<a class="code" href="classSVF_1_1SVFType.html#aef5999ada62dac3cc946d832ac66948c">setTypeInfo</a>(stinfo);</div>
1236
- <div class="line"><a name="l01197"></a><span class="lineno"> 1197</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>
1237
- <div class="line"><a name="l01198"></a><span class="lineno"> 1198</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>
1238
- <div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; <span class="keywordflow">return</span> svfType;</div>
1239
- <div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;}</div>
1240
- <div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; </div>
1241
- <div class="line"><a name="l01202"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92"> 1202</a></span>&#160;<a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">LLVMModuleSet::collectTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* T)</div>
1242
- <div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;{</div>
1243
- <div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; Type2TypeInfoMap::iterator tit = <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.find(T);</div>
1244
- <div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; <span class="keywordflow">if</span> (tit != <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.end())</div>
1245
- <div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; {</div>
1246
- <div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; <span class="keywordflow">return</span> tit-&gt;second;</div>
1247
- <div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; }</div>
1248
- <div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; <span class="comment">// No such StInfo for T, create it now.</span></div>
1249
- <div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo;</div>
1250
- <div class="line"><a name="l01211"></a><span class="lineno"> 1211</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>
1251
- <div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; {</div>
1252
- <div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29">collectArrayInfo</a>(aty);</div>
1253
- <div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; }</div>
1254
- <div class="line"><a name="l01215"></a><span class="lineno"> 1215</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>
1235
+ <div class="line"><a name="l01192"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99"> 1192</a></span>&#160;<a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">LLVMModuleSet::getSVFType</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* T)</div>
1236
+ <div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;{</div>
1237
+ <div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; assert(T &amp;&amp; <span class="stringliteral">&quot;SVFType should not be null&quot;</span>);</div>
1238
+ <div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; LLVMType2SVFTypeMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.find(T);</div>
1239
+ <div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; <span class="keywordflow">if</span> (it != <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.end())</div>
1240
+ <div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
1241
+ <div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; </div>
1242
+ <div class="line"><a name="l01199"></a><span class="lineno"> 1199</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>
1243
+ <div class="line"><a name="l01200"></a><span class="lineno"> 1200</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>
1244
+ <div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; svfType-&gt;<a class="code" href="classSVF_1_1SVFType.html#aef5999ada62dac3cc946d832ac66948c">setTypeInfo</a>(stinfo);</div>
1245
+ <div class="line"><a name="l01207"></a><span class="lineno"> 1207</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>
1246
+ <div class="line"><a name="l01208"></a><span class="lineno"> 1208</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>
1247
+ <div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; <span class="keywordflow">return</span> svfType;</div>
1248
+ <div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;}</div>
1249
+ <div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; </div>
1250
+ <div class="line"><a name="l01212"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92"> 1212</a></span>&#160;<a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">LLVMModuleSet::collectTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* T)</div>
1251
+ <div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;{</div>
1252
+ <div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; Type2TypeInfoMap::iterator tit = <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.find(T);</div>
1253
+ <div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; <span class="keywordflow">if</span> (tit != <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.end())</div>
1255
1254
  <div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; {</div>
1256
- <div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nf;</div>
1257
- <div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258">collectStructInfo</a>(sty, nf);</div>
1258
- <div class="line"><a name="l01219"></a><span class="lineno"> 1219</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>
1259
- <div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; {</div>
1260
- <div class="line"><a name="l01221"></a><span class="lineno"> 1221</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>
1261
- <div class="line"><a name="l01222"></a><span class="lineno"> 1222</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>
1262
- <div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; }</div>
1255
+ <div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; <span class="keywordflow">return</span> tit-&gt;second;</div>
1256
+ <div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; }</div>
1257
+ <div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; <span class="comment">// No such StInfo for T, create it now.</span></div>
1258
+ <div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo;</div>
1259
+ <div class="line"><a name="l01221"></a><span class="lineno"> 1221</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>
1260
+ <div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; {</div>
1261
+ <div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29">collectArrayInfo</a>(aty);</div>
1263
1262
  <div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; }</div>
1264
- <div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; <span class="keywordflow">else</span></div>
1263
+ <div class="line"><a name="l01225"></a><span class="lineno"> 1225</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>
1265
1264
  <div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; {</div>
1266
- <div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2">collectSimpleTypeInfo</a>(T);</div>
1267
- <div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; }</div>
1268
- <div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.emplace(T, stInfo);</div>
1269
- <div class="line"><a name="l01230"></a><span class="lineno"> 1230</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>
1270
- <div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1271
- <div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;}</div>
1272
- <div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; </div>
1273
- <div class="line"><a name="l01234"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#aab7b08db9252ef7e21e54d019f44b073"> 1234</a></span>&#160;<a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#aab7b08db9252ef7e21e54d019f44b073">LLVMModuleSet::addSVFTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* T)</div>
1274
- <div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;{</div>
1275
- <div class="line"><a name="l01236"></a><span class="lineno"> 1236</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>
1276
- <div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; <span class="stringliteral">&quot;SVFType has been added before&quot;</span>);</div>
1277
- <div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; </div>
1278
- <div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* svftype;</div>
1279
- <div class="line"><a name="l01240"></a><span class="lineno"> 1240</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>
1280
- <div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; svftype = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</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>
1281
- <div class="line"><a name="l01242"></a><span class="lineno"> 1242</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>
1282
- <div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; {</div>
1283
- <div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; <span class="keyword">auto</span> svfIntT = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFIntegerType.html">SVFIntegerType</a>();</div>
1284
- <div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; <span class="keywordtype">unsigned</span> signWidth = intT-&gt;getBitWidth();</div>
1285
- <div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; assert(signWidth &lt; INT16_MAX &amp;&amp; <span class="stringliteral">&quot;Integer width too big&quot;</span>);</div>
1286
- <div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; svfIntT-&gt;setSignAndWidth(intT-&gt;getSignBit() ? -signWidth : signWidth);</div>
1287
- <div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; svftype = svfIntT;</div>
1288
- <div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; }</div>
1289
- <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#a6ec0236303089a01fd9da36a8bb84e0a">FunctionType</a>* ft = SVFUtil::dyn_cast&lt;FunctionType&gt;(T))</div>
1290
- <div class="line"><a name="l01251"></a><span class="lineno"> 1251</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>
1291
- <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>* st = SVFUtil::dyn_cast&lt;StructType&gt;(T))</div>
1265
+ <div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nf;</div>
1266
+ <div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258">collectStructInfo</a>(sty, nf);</div>
1267
+ <div class="line"><a name="l01229"></a><span class="lineno"> 1229</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>
1268
+ <div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; {</div>
1269
+ <div class="line"><a name="l01231"></a><span class="lineno"> 1231</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>
1270
+ <div class="line"><a name="l01232"></a><span class="lineno"> 1232</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>
1271
+ <div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; }</div>
1272
+ <div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; }</div>
1273
+ <div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; <span class="keywordflow">else</span></div>
1274
+ <div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; {</div>
1275
+ <div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2">collectSimpleTypeInfo</a>(T);</div>
1276
+ <div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; }</div>
1277
+ <div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.emplace(T, stInfo);</div>
1278
+ <div class="line"><a name="l01240"></a><span class="lineno"> 1240</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>
1279
+ <div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1280
+ <div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;}</div>
1281
+ <div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; </div>
1282
+ <div class="line"><a name="l01244"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#aab7b08db9252ef7e21e54d019f44b073"> 1244</a></span>&#160;<a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#aab7b08db9252ef7e21e54d019f44b073">LLVMModuleSet::addSVFTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* T)</div>
1283
+ <div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;{</div>
1284
+ <div class="line"><a name="l01246"></a><span class="lineno"> 1246</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>
1285
+ <div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; <span class="stringliteral">&quot;SVFType has been added before&quot;</span>);</div>
1286
+ <div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; </div>
1287
+ <div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* svftype;</div>
1288
+ <div class="line"><a name="l01250"></a><span class="lineno"> 1250</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>
1289
+ <div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; svftype = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</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>
1290
+ <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#a3d9e7f32dc17fe8d40f8d6a011403b91">IntegerType</a>* intT = SVFUtil::dyn_cast&lt;IntegerType&gt;(T))</div>
1292
1291
  <div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; {</div>
1293
- <div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; <span class="keyword">auto</span> svfst = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFStructType.html">SVFStructType</a>();</div>
1294
- <div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; <span class="keywordflow">if</span> (st-&gt;hasName())</div>
1295
- <div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; svfst-&gt;setName(st-&gt;getName().str());</div>
1296
- <div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; svftype = svfst;</div>
1297
- <div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; }</div>
1298
- <div class="line"><a name="l01259"></a><span class="lineno"> 1259</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>
1299
- <div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; {</div>
1300
- <div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; <span class="keyword">auto</span> svfat = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFArrayType.html">SVFArrayType</a>();</div>
1301
- <div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; svfat-&gt;setNumOfElement(at-&gt;getNumElements());</div>
1302
- <div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; svfat-&gt;setTypeOfElement(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(at-&gt;getElementType()));</div>
1303
- <div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; svftype = svfat;</div>
1304
- <div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; }</div>
1305
- <div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; <span class="keywordflow">else</span></div>
1306
- <div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; {</div>
1307
- <div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>;</div>
1308
- <div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; <span class="keyword">auto</span> ot = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFOtherType.html">SVFOtherType</a>(T-&gt;isSingleValueType());</div>
1309
- <div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; llvm::raw_string_ostream(<a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>) &lt;&lt; *T;</div>
1310
- <div class="line"><a name="l01271"></a><span class="lineno"> 1271</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>
1311
- <div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; svftype = ot;</div>
1312
- <div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; }</div>
1313
- <div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; </div>
1314
- <div class="line"><a name="l01275"></a><span class="lineno"> 1275</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>
1315
- <div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>[T] = svftype;</div>
1316
- <div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; <span class="keywordflow">return</span> svftype;</div>
1317
- <div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;}</div>
1318
- <div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; </div>
1319
- <div class="line"><a name="l01283"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29"> 1283</a></span>&#160;<a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29">LLVMModuleSet::collectArrayInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">ArrayType</a>* ty)</div>
1320
- <div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;{</div>
1321
- <div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> totalElemNum = ty-&gt;getNumElements();</div>
1322
- <div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* elemTy = ty-&gt;getElementType();</div>
1323
- <div class="line"><a name="l01287"></a><span class="lineno"> 1287</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>
1324
- <div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; {</div>
1325
- <div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; totalElemNum *= aty-&gt;getNumElements();</div>
1326
- <div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160; elemTy = aty-&gt;getElementType();</div>
1327
- <div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; }</div>
1328
- <div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; </div>
1329
- <div class="line"><a name="l01293"></a><span class="lineno"> 1293</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>
1330
- <div class="line"><a name="l01294"></a><span class="lineno"> 1294</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>
1331
- <div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; </div>
1332
- <div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; <span class="keywordflow">if</span> (totalElemNum == 0)</div>
1292
+ <div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; <span class="keyword">auto</span> svfIntT = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFIntegerType.html">SVFIntegerType</a>();</div>
1293
+ <div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; <span class="keywordtype">unsigned</span> signWidth = intT-&gt;getBitWidth();</div>
1294
+ <div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; assert(signWidth &lt; INT16_MAX &amp;&amp; <span class="stringliteral">&quot;Integer width too big&quot;</span>);</div>
1295
+ <div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; svfIntT-&gt;setSignAndWidth(intT-&gt;getSignBit() ? -signWidth : signWidth);</div>
1296
+ <div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; svftype = svfIntT;</div>
1297
+ <div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; }</div>
1298
+ <div class="line"><a name="l01260"></a><span class="lineno"> 1260</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>
1299
+ <div class="line"><a name="l01261"></a><span class="lineno"> 1261</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>
1300
+ <div class="line"><a name="l01262"></a><span class="lineno"> 1262</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>
1301
+ <div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; {</div>
1302
+ <div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; <span class="keyword">auto</span> svfst = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFStructType.html">SVFStructType</a>();</div>
1303
+ <div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; <span class="keywordflow">if</span> (st-&gt;hasName())</div>
1304
+ <div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; svfst-&gt;setName(st-&gt;getName().str());</div>
1305
+ <div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; svftype = svfst;</div>
1306
+ <div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; }</div>
1307
+ <div class="line"><a name="l01269"></a><span class="lineno"> 1269</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>
1308
+ <div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; {</div>
1309
+ <div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; <span class="keyword">auto</span> svfat = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFArrayType.html">SVFArrayType</a>();</div>
1310
+ <div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; svfat-&gt;setNumOfElement(at-&gt;getNumElements());</div>
1311
+ <div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; svfat-&gt;setTypeOfElement(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(at-&gt;getElementType()));</div>
1312
+ <div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; svftype = svfat;</div>
1313
+ <div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; }</div>
1314
+ <div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; <span class="keywordflow">else</span></div>
1315
+ <div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; {</div>
1316
+ <div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>;</div>
1317
+ <div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; <span class="keyword">auto</span> ot = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFOtherType.html">SVFOtherType</a>(T-&gt;isSingleValueType());</div>
1318
+ <div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; llvm::raw_string_ostream(<a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>) &lt;&lt; *T;</div>
1319
+ <div class="line"><a name="l01281"></a><span class="lineno"> 1281</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>
1320
+ <div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; svftype = ot;</div>
1321
+ <div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; }</div>
1322
+ <div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; </div>
1323
+ <div class="line"><a name="l01285"></a><span class="lineno"> 1285</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>
1324
+ <div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>[T] = svftype;</div>
1325
+ <div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; <span class="keywordflow">return</span> svftype;</div>
1326
+ <div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;}</div>
1327
+ <div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; </div>
1328
+ <div class="line"><a name="l01293"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29"> 1293</a></span>&#160;<a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29">LLVMModuleSet::collectArrayInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">ArrayType</a>* ty)</div>
1329
+ <div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;{</div>
1330
+ <div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> totalElemNum = ty-&gt;getNumElements();</div>
1331
+ <div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* elemTy = ty-&gt;getElementType();</div>
1332
+ <div class="line"><a name="l01297"></a><span class="lineno"> 1297</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>
1333
1333
  <div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; {</div>
1334
- <div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c">addFldWithType</a>(0, elemSvfType, 0);</div>
1335
- <div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(1, 1);</div>
1336
- <div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemSvfType);</div>
1337
- <div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(elemSvfType);</div>
1338
- <div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1339
- <div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; }</div>
1334
+ <div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; totalElemNum *= aty-&gt;getNumElements();</div>
1335
+ <div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; elemTy = aty-&gt;getElementType();</div>
1336
+ <div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; }</div>
1337
+ <div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; </div>
1338
+ <div class="line"><a name="l01303"></a><span class="lineno"> 1303</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>
1339
+ <div class="line"><a name="l01304"></a><span class="lineno"> 1304</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>
1340
1340
  <div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; </div>
1341
- <div class="line"><a name="l01308"></a><span class="lineno"> 1308</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>
1342
- <div class="line"><a name="l01309"></a><span class="lineno"> 1309</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>
1343
- <div class="line"><a name="l01310"></a><span class="lineno"> 1310</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>
1344
- <div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0; j &lt; nfF; j++)</div>
1345
- <div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; {</div>
1346
- <div class="line"><a name="l01313"></a><span class="lineno"> 1313</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>
1347
- <div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(fieldTy);</div>
1348
- <div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; }</div>
1349
- <div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; </div>
1350
- <div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> outArrayElemNum = ty-&gt;getNumElements();</div>
1351
- <div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; outArrayElemNum; ++i)</div>
1352
- <div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160; {</div>
1353
- <div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160; <span class="keyword">auto</span> idx = (i * nfE * totalElemNum) / outArrayElemNum;</div>
1354
- <div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c">addFldWithType</a>(0, elemSvfType, idx);</div>
1355
- <div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; }</div>
1356
- <div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; </div>
1357
- <div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; totalElemNum; ++i)</div>
1358
- <div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; {</div>
1359
- <div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0; j &lt; nfE; ++j)</div>
1360
- <div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; {</div>
1361
- <div class="line"><a name="l01330"></a><span class="lineno"> 1330</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>
1362
- <div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(et);</div>
1363
- <div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; }</div>
1364
- <div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; }</div>
1365
- <div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; </div>
1366
- <div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; assert(stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().size() == nfE * totalElemNum &amp;&amp;</div>
1367
- <div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160; <span class="stringliteral">&quot;typeForArray size incorrect!!!&quot;</span>);</div>
1368
- <div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(nfF, nfE * totalElemNum);</div>
1369
- <div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; </div>
1370
- <div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1371
- <div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;}</div>
1372
- <div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; </div>
1373
- <div class="line"><a name="l01346"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258"> 1346</a></span>&#160;<a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258">LLVMModuleSet::collectStructInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a>* structTy,</div>
1374
- <div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&amp; numFields)</div>
1375
- <div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;{</div>
1376
- <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>(1);</div>
1341
+ <div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; <span class="keywordflow">if</span> (totalElemNum == 0)</div>
1342
+ <div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; {</div>
1343
+ <div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c">addFldWithType</a>(0, elemSvfType, 0);</div>
1344
+ <div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(1, 1);</div>
1345
+ <div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemSvfType);</div>
1346
+ <div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(elemSvfType);</div>
1347
+ <div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1348
+ <div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; }</div>
1349
+ <div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; </div>
1350
+ <div class="line"><a name="l01318"></a><span class="lineno"> 1318</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>
1351
+ <div class="line"><a name="l01319"></a><span class="lineno"> 1319</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>
1352
+ <div class="line"><a name="l01320"></a><span class="lineno"> 1320</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>
1353
+ <div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0; j &lt; nfF; j++)</div>
1354
+ <div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160; {</div>
1355
+ <div class="line"><a name="l01323"></a><span class="lineno"> 1323</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>
1356
+ <div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(fieldTy);</div>
1357
+ <div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; }</div>
1358
+ <div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; </div>
1359
+ <div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> outArrayElemNum = ty-&gt;getNumElements();</div>
1360
+ <div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; outArrayElemNum; ++i)</div>
1361
+ <div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160; {</div>
1362
+ <div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; <span class="keyword">auto</span> idx = (i * nfE * totalElemNum) / outArrayElemNum;</div>
1363
+ <div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c">addFldWithType</a>(0, elemSvfType, idx);</div>
1364
+ <div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; }</div>
1365
+ <div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; </div>
1366
+ <div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; totalElemNum; ++i)</div>
1367
+ <div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; {</div>
1368
+ <div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0; j &lt; nfE; ++j)</div>
1369
+ <div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; {</div>
1370
+ <div class="line"><a name="l01340"></a><span class="lineno"> 1340</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>
1371
+ <div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(et);</div>
1372
+ <div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; }</div>
1373
+ <div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160; }</div>
1374
+ <div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160; </div>
1375
+ <div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; assert(stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().size() == nfE * totalElemNum &amp;&amp;</div>
1376
+ <div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160; <span class="stringliteral">&quot;typeForArray size incorrect!!!&quot;</span>);</div>
1377
+ <div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(nfF, nfE * totalElemNum);</div>
1378
+ <div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; </div>
1379
+ <div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1380
+ <div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;}</div>
1377
1381
  <div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; </div>
1378
- <div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; <span class="comment">// Number of fields after flattening the struct</span></div>
1379
- <div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; numFields = 0;</div>
1380
- <div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; <span class="comment">// The offset when considering array stride info</span></div>
1381
- <div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> strideOffset = 0;</div>
1382
- <div class="line"><a name="l01356"></a><span class="lineno"> 1356</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>
1383
- <div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; {</div>
1384
- <div class="line"><a name="l01358"></a><span class="lineno"> 1358</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>
1385
- <div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; <span class="comment">// offset with int_32 (s32_t) is large enough and won&#39;t overflow</span></div>
1386
- <div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c">addFldWithType</a>(numFields, elemSvfTy, strideOffset);</div>
1382
+ <div class="line"><a name="l01356"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258"> 1356</a></span>&#160;<a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258">LLVMModuleSet::collectStructInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a>* structTy,</div>
1383
+ <div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&amp; numFields)</div>
1384
+ <div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;{</div>
1385
+ <div class="line"><a name="l01360"></a><span class="lineno"> 1360</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>
1387
1386
  <div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; </div>
1388
- <div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;StructType, ArrayType&gt;(elemTy))</div>
1389
- <div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; {</div>
1390
- <div class="line"><a name="l01364"></a><span class="lineno"> 1364</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>
1391
- <div class="line"><a name="l01365"></a><span class="lineno"> 1365</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>
1392
- <div class="line"><a name="l01366"></a><span class="lineno"> 1366</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>
1393
- <div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; <span class="comment">// Copy ST&#39;s info, whose element 0 is the size of ST itself.</span></div>
1394
- <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>
1395
- <div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; {</div>
1396
- <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>* elemTy = subStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>()[j];</div>
1397
- <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(elemTy);</div>
1398
- <div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; }</div>
1399
- <div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; numFields += nfF;</div>
1400
- <div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160; strideOffset += nfE;</div>
1401
- <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> tpj = 0; tpj &lt; nfE; ++tpj)</div>
1402
- <div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160; {</div>
1403
- <div class="line"><a name="l01377"></a><span class="lineno"> 1377</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>
1404
- <div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(ty);</div>
1405
- <div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160; }</div>
1406
- <div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160; </div>
1407
- <div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; }</div>
1408
- <div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; <span class="keywordflow">else</span></div>
1409
- <div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; {</div>
1410
- <div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; <span class="comment">// Simple type</span></div>
1411
- <div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; numFields += 1;</div>
1412
- <div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; strideOffset += 1;</div>
1413
- <div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemSvfTy);</div>
1414
- <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(elemSvfTy);</div>
1415
- <div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; }</div>
1416
- <div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; }</div>
1417
- <div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; </div>
1418
- <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() == strideOffset &amp;&amp;</div>
1419
- <div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; <span class="stringliteral">&quot;typeForStruct size incorrect!&quot;</span>);</div>
1420
- <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>(numFields,strideOffset);</div>
1421
- <div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; </div>
1422
- <div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1423
- <div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;}</div>
1424
- <div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160; </div>
1425
- <div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; </div>
1426
- <div class="line"><a name="l01403"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2"> 1403</a></span>&#160;<a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2">LLVMModuleSet::collectSimpleTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* ty)</div>
1427
- <div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;{</div>
1428
- <div class="line"><a name="l01406"></a><span class="lineno"> 1406</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>
1429
- <div class="line"><a name="l01407"></a><span class="lineno"> 1407</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>
1430
- <div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c">addFldWithType</a>(0, svfType, 0);</div>
1387
+ <div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; <span class="comment">// Number of fields after flattening the struct</span></div>
1388
+ <div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; numFields = 0;</div>
1389
+ <div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; <span class="comment">// The offset when considering array stride info</span></div>
1390
+ <div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> strideOffset = 0;</div>
1391
+ <div class="line"><a name="l01366"></a><span class="lineno"> 1366</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>
1392
+ <div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; {</div>
1393
+ <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>* elemSvfTy = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(elemTy);</div>
1394
+ <div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; <span class="comment">// offset with int_32 (s32_t) is large enough and won&#39;t overflow</span></div>
1395
+ <div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c">addFldWithType</a>(numFields, elemSvfTy, strideOffset);</div>
1396
+ <div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; </div>
1397
+ <div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;StructType, ArrayType&gt;(elemTy))</div>
1398
+ <div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; {</div>
1399
+ <div class="line"><a name="l01374"></a><span class="lineno"> 1374</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>
1400
+ <div class="line"><a name="l01375"></a><span class="lineno"> 1375</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>
1401
+ <div class="line"><a name="l01376"></a><span class="lineno"> 1376</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>
1402
+ <div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160; <span class="comment">// Copy ST&#39;s info, whose element 0 is the size of ST itself.</span></div>
1403
+ <div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0; j &lt; nfF; ++j)</div>
1404
+ <div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160; {</div>
1405
+ <div class="line"><a name="l01380"></a><span class="lineno"> 1380</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>
1406
+ <div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemTy);</div>
1407
+ <div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; }</div>
1408
+ <div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; numFields += nfF;</div>
1409
+ <div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; strideOffset += nfE;</div>
1410
+ <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> tpj = 0; tpj &lt; nfE; ++tpj)</div>
1411
+ <div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; {</div>
1412
+ <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>* ty = subStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>()[tpj];</div>
1413
+ <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(ty);</div>
1414
+ <div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; }</div>
1415
+ <div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; </div>
1416
+ <div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; }</div>
1417
+ <div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; <span class="keywordflow">else</span></div>
1418
+ <div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; {</div>
1419
+ <div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; <span class="comment">// Simple type</span></div>
1420
+ <div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; numFields += 1;</div>
1421
+ <div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160; strideOffset += 1;</div>
1422
+ <div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemSvfTy);</div>
1423
+ <div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(elemSvfTy);</div>
1424
+ <div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; }</div>
1425
+ <div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160; }</div>
1426
+ <div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; </div>
1427
+ <div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160; assert(stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().size() == strideOffset &amp;&amp;</div>
1428
+ <div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; <span class="stringliteral">&quot;typeForStruct size incorrect!&quot;</span>);</div>
1429
+ <div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(numFields,strideOffset);</div>
1430
+ <div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160; </div>
1431
+ <div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1432
+ <div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;}</div>
1433
+ <div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160; </div>
1431
1434
  <div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; </div>
1432
- <div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(svfType);</div>
1433
- <div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(svfType);</div>
1434
- <div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(1,1);</div>
1435
- <div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160; </div>
1436
- <div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1437
- <div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;}</div>
1435
+ <div class="line"><a name="l01413"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2"> 1413</a></span>&#160;<a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2">LLVMModuleSet::collectSimpleTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* ty)</div>
1436
+ <div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;{</div>
1437
+ <div class="line"><a name="l01416"></a><span class="lineno"> 1416</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>
1438
+ <div class="line"><a name="l01417"></a><span class="lineno"> 1417</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>
1439
+ <div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c">addFldWithType</a>(0, svfType, 0);</div>
1440
+ <div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; </div>
1441
+ <div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(svfType);</div>
1442
+ <div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(svfType);</div>
1443
+ <div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(1,1);</div>
1444
+ <div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; </div>
1445
+ <div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1446
+ <div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;}</div>
1438
1447
  </div><!-- fragment --></div><!-- contents -->
1439
1448
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a72be32d606db86090067159de44e01ec"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a72be32d606db86090067159de44e01ec">SVF::SymbolTableInfo::addStInfo</a></div><div class="ttdeci">void addStInfo(StInfo *stInfo)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00352">SymbolTableInfo.h:352</a></div></div>
1440
1449
  <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>
1441
1450
  <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>
1442
1451
  <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#l00124">LLVMModule.h:124</a></div></div>
1443
- <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#l00969">LLVMModule.cpp:969</a></div></div>
1444
- <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#l00590">LLVMUtil.cpp:590</a></div></div>
1452
+ <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#l00979">LLVMModule.cpp:979</a></div></div>
1453
+ <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#l00667">LLVMUtil.cpp:667</a></div></div>
1445
1454
  <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>
1446
1455
  <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#l00302">SVFType.h:302</a></div></div>
1447
1456
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html">SVF::SVFLoopAndDomInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00050">SVFValue.h:50</a></div></div>
@@ -1449,7 +1458,7 @@ $(function() {
1449
1458
  <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>
1450
1459
  <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>
1451
1460
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ae919327019b5014f64b754dbdeb07f75"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae919327019b5014f64b754dbdeb07f75">SVF::LLVMModuleSet::buildSVFModule</a></div><div class="ttdeci">static SVFModule * buildSVFModule(Module &amp;mod)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00080">LLVMModule.cpp:80</a></div></div>
1452
- <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#l01234">LLVMModule.cpp:1234</a></div></div>
1461
+ <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#l01244">LLVMModule.cpp:1244</a></div></div>
1453
1462
  <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#l00508">SVFValue.h:508</a></div></div>
1454
1463
  <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#l00129">LLVMModule.h:129</a></div></div>
1455
1464
  <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>
@@ -1468,7 +1477,7 @@ $(function() {
1468
1477
  <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>
1469
1478
  <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>
1470
1479
  <div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
1471
- <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#l01012">LLVMModule.cpp:1012</a></div></div>
1480
+ <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#l01022">LLVMModule.cpp:1022</a></div></div>
1472
1481
  <div class="ttc" id="aSVFGBuilder_8h_html"><div class="ttname"><a href="SVFGBuilder_8h.html">SVFGBuilder.h</a></div></div>
1473
1482
  <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#l00219">LLVMModule.h:219</a></div></div>
1474
1483
  <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#l00220">SVFValue.h:220</a></div></div>
@@ -1479,22 +1488,22 @@ $(function() {
1479
1488
  <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>
1480
1489
  <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#l00571">SVFType.h:571</a></div></div>
1481
1490
  <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#l00153">LLVMModule.h:153</a></div></div>
1482
- <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#l01126">LLVMModule.cpp:1126</a></div></div>
1491
+ <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#l01136">LLVMModule.cpp:1136</a></div></div>
1483
1492
  <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>
1484
1493
  <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#l00142">LLVMUtil.cpp:142</a></div></div>
1485
1494
  <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#l00899">SVFValue.h:899</a></div></div>
1486
- <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#l01182">LLVMModule.cpp:1182</a></div></div>
1495
+ <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#l01192">LLVMModule.cpp:1192</a></div></div>
1487
1496
  <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>
1488
1497
  <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#l01053">SVFValue.h:1053</a></div></div>
1489
1498
  <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>
1490
1499
  <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>
1491
1500
  <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#l00198">LLVMModule.h:198</a></div></div>
1492
- <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#l01346">LLVMModule.cpp:1346</a></div></div>
1501
+ <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#l01356">LLVMModule.cpp:1356</a></div></div>
1493
1502
  <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>
1494
1503
  <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>
1495
1504
  <div class="ttc" id="aclassSVF_1_1SVFBlackHoleValue_html"><div class="ttname"><a href="classSVF_1_1SVFBlackHoleValue.html">SVF::SVFBlackHoleValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01011">SVFValue.h:1011</a></div></div>
1496
1505
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_abfe3a1ce5fa364d9db7cd2d0e6a144ff"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#abfe3a1ce5fa364d9db7cd2d0e6a144ff">SVF::SVFBasicBlock::addSuccBasicBlock</a></div><div class="ttdeci">void addSuccBasicBlock(const SVFBasicBlock *succ)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00513">SVFValue.h:513</a></div></div>
1497
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a41e64f3318e2bf368eebe9a104ef6ad9"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a41e64f3318e2bf368eebe9a104ef6ad9">SVF::LLVMUtil::getFunNameOfVCallSite</a></div><div class="ttdeci">std::string getFunNameOfVCallSite(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01121">LLVMUtil.cpp:1121</a></div></div>
1506
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a41e64f3318e2bf368eebe9a104ef6ad9"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a41e64f3318e2bf368eebe9a104ef6ad9">SVF::LLVMUtil::getFunNameOfVCallSite</a></div><div class="ttdeci">std::string getFunNameOfVCallSite(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01198">LLVMUtil.cpp:1198</a></div></div>
1498
1507
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_ad865b8440a6e0d5d212798d2213e1e9c"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ad865b8440a6e0d5d212798d2213e1e9c">SVF::SVFFunction::addArgument</a></div><div class="ttdeci">void addArgument(SVFArgument *arg)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00304">SVFValue.h:304</a></div></div>
1499
1508
  <div class="ttc" id="aclassSVF_1_1StInfo_html_ae5fad367673315da57a604e64b5889f0"><div class="ttname"><a href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0">SVF::StInfo::getNumOfFlattenFields</a></div><div class="ttdeci">u32_t getNumOfFlattenFields() const</div><div class="ttdoc">Return the number of fields after flattening (ignoring array elements)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00231">SVFType.h:231</a></div></div>
1500
1509
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a651b6a1cf3665277d2241220bb145aed"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a651b6a1cf3665277d2241220bb145aed">SVF::LLVMUtil::functionDoesNotRet</a></div><div class="ttdeci">bool functionDoesNotRet(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00104">LLVMUtil.cpp:104</a></div></div>
@@ -1502,6 +1511,7 @@ $(function() {
1502
1511
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a47d2af43ff12d9e1014fa19256619466"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">SVF::LLVMUtil::getCalledFunctions</a></div><div class="ttdeci">std::vector&lt; const Function * &gt; getCalledFunctions(const Function *F)</div><div class="ttdoc">Get all called funcions in a parent function.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00547">LLVMUtil.cpp:547</a></div></div>
1503
1512
  <div class="ttc" id="aSVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00549">SVFType.h:549</a></div></div>
1504
1513
  <div class="ttc" id="anamespaceSVF_html_a366625858f450a1ea5f985a3c83e0f14"><div class="ttname"><a href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">SVF::u64_t</a></div><div class="ttdeci">unsigned long long u64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00053">SVFType.h:53</a></div></div>
1514
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a0ecff33105811b1e5ebc83afee76da27"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a0ecff33105811b1e5ebc83afee76da27">SVF::LLVMUtil::removeUnusedFuncsAndAnnotationsAndGlobalVariables</a></div><div class="ttdeci">void removeUnusedFuncsAndAnnotationsAndGlobalVariables(std::vector&lt; Function * &gt; removedFuncList)</div><div class="ttdoc">Delete unused functions, annotations and global variables in extapi.bc.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00596">LLVMUtil.cpp:596</a></div></div>
1505
1515
  <div class="ttc" id="anamespaceSVF_html_a5c943191dc4e242704943e5f594ae99e"><div class="ttname"><a href="namespaceSVF.html#a5c943191dc4e242704943e5f594ae99e">SVF::const_pred_iterator</a></div><div class="ttdeci">llvm::const_pred_iterator const_pred_iterator</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00251">BasicTypes.h:251</a></div></div>
1506
1516
  <div class="ttc" id="aclassSVF_1_1Options_html_a2ed1e6f7911ae5cfbf79213e4d07531e"><div class="ttname"><a href="classSVF_1_1Options.html#a2ed1e6f7911ae5cfbf79213e4d07531e">SVF::Options::ExtAPIInput</a></div><div class="ttdeci">static const Option&lt; std::string &gt; ExtAPIInput</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00251">Options.h:251</a></div></div>
1507
1517
  <div class="ttc" id="anamespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00083">BasicTypes.h:83</a></div></div>
@@ -1524,7 +1534,7 @@ $(function() {
1524
1534
  <div class="ttc" id="aclassSVF_1_1SVFValue_html_afe1de41ca3215b325d0ca61814c6bd6b"><div class="ttname"><a href="classSVF_1_1SVFValue.html#afe1de41ca3215b325d0ca61814c6bd6b">SVF::SVFValue::setConstDataOrAggData</a></div><div class="ttdeci">void setConstDataOrAggData()</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00197">SVFValue.h:197</a></div></div>
1525
1535
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ac3e70bd338be3a54330be5dc10321eb3"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac3e70bd338be3a54330be5dc10321eb3">SVF::LLVMModuleSet::LLVMValue2SVFOtherValue</a></div><div class="ttdeci">LLVMValue2SVFOtherValueMap LLVMValue2SVFOtherValue</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00088">LLVMModule.h:88</a></div></div>
1526
1536
  <div class="ttc" id="aclassSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
1527
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ac1a9d20d62066ec4e181fad223669e32"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">SVF::LLVMModuleSet::getContext</a></div><div class="ttdeci">LLVMContext &amp; getContext() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00344">LLVMModule.h:344</a></div></div>
1537
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ac1a9d20d62066ec4e181fad223669e32"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">SVF::LLVMModuleSet::getContext</a></div><div class="ttdeci">LLVMContext &amp; getContext() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00328">LLVMModule.h:328</a></div></div>
1528
1538
  <div class="ttc" id="aclassSVF_1_1SVFVirtualCallInst_html"><div class="ttname"><a href="classSVF_1_1SVFVirtualCallInst.html">SVF::SVFVirtualCallInst</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00735">SVFValue.h:735</a></div></div>
1529
1539
  <div class="ttc" id="anamespaceSVF_html_a146d286041987860388da3d8bc85cee3"><div class="ttname"><a href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">SVF::ArrayType</a></div><div class="ttdeci">llvm::ArrayType ArrayType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00093">BasicTypes.h:93</a></div></div>
1530
1540
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00490">SVFValue.h:490</a></div></div>
@@ -1545,8 +1555,8 @@ $(function() {
1545
1555
  <div class="ttc" id="aclassSVF_1_1SVFStructType_html"><div class="ttname"><a href="classSVF_1_1SVFStructType.html">SVF::SVFStructType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00410">SVFType.h:410</a></div></div>
1546
1556
  <div class="ttc" id="aclassSVF_1_1SVFConstant_html"><div class="ttname"><a href="classSVF_1_1SVFConstant.html">SVF::SVFConstant</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00795">SVFValue.h:795</a></div></div>
1547
1557
  <div class="ttc" id="anamespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00085">BasicTypes.h:85</a></div></div>
1548
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a3a23aa54459a068e16c96e5b5eb72f77"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3a23aa54459a068e16c96e5b5eb72f77">SVF::LLVMUtil::getVCallVtblPtr</a></div><div class="ttdeci">const Value * getVCallVtblPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01041">LLVMUtil.cpp:1041</a></div></div>
1549
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00413">LLVMUtil.h:413</a></div></div>
1558
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a3a23aa54459a068e16c96e5b5eb72f77"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3a23aa54459a068e16c96e5b5eb72f77">SVF::LLVMUtil::getVCallVtblPtr</a></div><div class="ttdeci">const Value * getVCallVtblPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01118">LLVMUtil.cpp:1118</a></div></div>
1559
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00408">LLVMUtil.h:408</a></div></div>
1550
1560
  <div class="ttc" id="anamespaceSVF_html_a2bf58575ac7d068e0f1a4cf953b9e6cb"><div class="ttname"><a href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">SVF::StructType</a></div><div class="ttdeci">llvm::StructType StructType</div><div class="ttdoc">LLVM types.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00092">BasicTypes.h:92</a></div></div>
1551
1561
  <div class="ttc" id="anamespaceSVF_html_a2b28f48dde0a9a91d251e654ce1f9477"><div class="ttname"><a href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">SVF::ConstantStruct</a></div><div class="ttdeci">llvm::ConstantStruct ConstantStruct</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00104">BasicTypes.h:104</a></div></div>
1552
1562
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00270">SVFValue.h:270</a></div></div>
@@ -1560,30 +1570,29 @@ $(function() {
1560
1570
  <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#l00818">SVFValue.h:818</a></div></div>
1561
1571
  <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>
1562
1572
  <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>
1563
- <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#l01403">LLVMModule.cpp:1403</a></div></div>
1573
+ <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#l01413">LLVMModule.cpp:1413</a></div></div>
1564
1574
  <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>
1565
1575
  <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>
1566
1576
  <div class="ttc" id="aSVFModule_8h_html"><div class="ttname"><a href="SVFModule_8h.html">SVFModule.h</a></div></div>
1567
1577
  <div class="ttc" id="aclassSVF_1_1StInfo_html_a1a07c2b1415c29d7d70791c6dfe602a3"><div class="ttname"><a href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">SVF::StInfo::setNumOfFieldsAndElems</a></div><div class="ttdeci">void setNumOfFieldsAndElems(u32_t nf, u32_t ne)</div><div class="ttdoc">Set number of fields and elements of an aggregate.</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00218">SVFType.h:218</a></div></div>
1568
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9e0c786488dfdc4605d4cbcf9943c85a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">SVF::LLVMUtil::getGlobalRep</a></div><div class="ttdeci">const Value * getGlobalRep(const Value *val)</div><div class="ttdoc">find the unique defined global across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00420">LLVMUtil.h:420</a></div></div>
1578
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9e0c786488dfdc4605d4cbcf9943c85a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">SVF::LLVMUtil::getGlobalRep</a></div><div class="ttdeci">const Value * getGlobalRep(const Value *val)</div><div class="ttdoc">find the unique defined global across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00415">LLVMUtil.h:415</a></div></div>
1569
1579
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8af6b911b728713f66f7c809d5c0fbf1"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8af6b911b728713f66f7c809d5c0fbf1">SVF::LLVMModuleSet::addSVFMain</a></div><div class="ttdeci">void addSVFMain()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00640">LLVMModule.cpp:640</a></div></div>
1570
1580
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8ba9092747108e0289014d52465a692d"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8ba9092747108e0289014d52465a692d">SVF::LLVMModuleSet::initDomTree</a></div><div class="ttdeci">void initDomTree(SVFFunction *func, const Function *f)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00358">LLVMModule.cpp:358</a></div></div>
1571
1581
  <div class="ttc" id="anamespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00082">BasicTypes.h:82</a></div></div>
1572
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ab1b4c565ae6be788b934defc21a5cfaf"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ab1b4c565ae6be788b934defc21a5cfaf">SVF::LLVMUtil::isVirtualCallSite</a></div><div class="ttdeci">bool isVirtualCallSite(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00853">LLVMUtil.cpp:853</a></div></div>
1582
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ab1b4c565ae6be788b934defc21a5cfaf"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ab1b4c565ae6be788b934defc21a5cfaf">SVF::LLVMUtil::isVirtualCallSite</a></div><div class="ttdeci">bool isVirtualCallSite(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00930">LLVMUtil.cpp:930</a></div></div>
1573
1583
  <div class="ttc" id="anamespaceSVF_html_a86863d104a3930b3a806935d92ddbf30"><div class="ttname"><a href="namespaceSVF.html#a86863d104a3930b3a806935d92ddbf30">SVF::SMDiagnostic</a></div><div class="ttdeci">llvm::SMDiagnostic SMDiagnostic</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00088">BasicTypes.h:88</a></div></div>
1574
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ae19e38054c55d5822dfc83a12f12aa60"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae19e38054c55d5822dfc83a12f12aa60">SVF::LLVMModuleSet::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00350">LLVMModule.h:350</a></div></div>
1584
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ae19e38054c55d5822dfc83a12f12aa60"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae19e38054c55d5822dfc83a12f12aa60">SVF::LLVMModuleSet::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00334">LLVMModule.h:334</a></div></div>
1575
1585
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00309">SVFUtil.h:309</a></div></div>
1576
1586
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a2fdc1bd61b8f6cdf6c07a5059b641b04"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a2fdc1bd61b8f6cdf6c07a5059b641b04">SVF::LLVMModuleSet::preProcessBCs</a></div><div class="ttdeci">static void preProcessBCs(std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00449">LLVMModule.cpp:449</a></div></div>
1577
1587
  <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>
1578
1588
  <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#l00675">SVFValue.h:675</a></div></div>
1579
1589
  <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>
1580
- <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#l01283">LLVMModule.cpp:1283</a></div></div>
1590
+ <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#l01293">LLVMModule.cpp:1293</a></div></div>
1581
1591
  <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#l00152">LLVMModule.cpp:152</a></div></div>
1582
1592
  <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>
1583
1593
  <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>
1584
1594
  <div class="ttc" id="anamespaceSVF_html_a1c7c7ac12791c0ae386283c0a4f127ba"><div class="ttname"><a href="namespaceSVF.html#a1c7c7ac12791c0ae386283c0a4f127ba">SVF::raw_fd_ostream</a></div><div class="ttdeci">llvm::raw_fd_ostream raw_fd_ostream</div><div class="ttdoc">LLVM outputs.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00261">BasicTypes.h:261</a></div></div>
1585
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a610a7777a48132caadec167c8109f044"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a610a7777a48132caadec167c8109f044">SVF::LLVMModuleSet::getLLVMType</a></div><div class="ttdeci">const Type * getLLVMType(const SVFType *T) const</div><div class="ttdoc">Get LLVM Type.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01168">LLVMModule.cpp:1168</a></div></div>
1586
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a74ed17168bf5946cfb3f17495ec6db99"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a74ed17168bf5946cfb3f17495ec6db99">SVF::LLVMUtil::removeUnusedFuncsAndAnnotations</a></div><div class="ttdeci">void removeUnusedFuncsAndAnnotations(std::vector&lt; Function * &gt; removedFuncList)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00397">LLVMUtil.h:397</a></div></div>
1595
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a610a7777a48132caadec167c8109f044"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a610a7777a48132caadec167c8109f044">SVF::LLVMModuleSet::getLLVMType</a></div><div class="ttdeci">const Type * getLLVMType(const SVFType *T) const</div><div class="ttdoc">Get LLVM Type.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01178">LLVMModule.cpp:1178</a></div></div>
1587
1596
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_ae37546be7304c66b4eca2654d995eaa7"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#ae37546be7304c66b4eca2654d995eaa7">SVF::SVFLoopAndDomInfo::getDomFrontierMap</a></div><div class="ttdeci">const Map&lt; const SVFBasicBlock *, BBSet &gt; &amp; getDomFrontierMap() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00072">SVFValue.h:72</a></div></div>
1588
1597
  <div class="ttc" id="aclassSVF_1_1StInfo_html_a03bfeee0406c7e54557e74f3a8e848b7"><div class="ttname"><a href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">SVF::StInfo::getFlattenElementTypes</a></div><div class="ttdeci">std::vector&lt; const SVFType * &gt; &amp; getFlattenElementTypes()</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00188">SVFType.h:188</a></div></div>
1589
1598
  <div class="ttc" id="anamespaceSVF_html_a7e230c0cba2e3a7c2e5a5f2ee7d88af9"><div class="ttname"><a href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">SVF::Constant</a></div><div class="ttdeci">llvm::Constant Constant</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00122">BasicTypes.h:122</a></div></div>
@@ -1599,14 +1608,14 @@ $(function() {
1599
1608
  <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>
1600
1609
  <div class="ttc" id="aclassSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00040">SVFModule.h:40</a></div></div>
1601
1610
  <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>
1602
- <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#l01063">LLVMModule.cpp:1063</a></div></div>
1611
+ <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#l01073">LLVMModule.cpp:1073</a></div></div>
1603
1612
  <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>
1604
1613
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html">SVF::SymbolTableInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00047">SymbolTableInfo.h:47</a></div></div>
1605
1614
  <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#l00357">SVFType.h:357</a></div></div>
1606
1615
  <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>
1607
1616
  <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>
1608
1617
  <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#l00291">SVFType.h:291</a></div></div>
1609
- <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#l01110">LLVMModule.cpp:1110</a></div></div>
1618
+ <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#l01120">LLVMModule.cpp:1120</a></div></div>
1610
1619
  <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>
1611
1620
  <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">annotations of this function</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00299">SVFValue.h:299</a></div></div>
1612
1621
  <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#l00212">LLVMModule.h:212</a></div></div>
@@ -1619,13 +1628,13 @@ $(function() {
1619
1628
  <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>
1620
1629
  <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#l00518">SVFValue.h:518</a></div></div>
1621
1630
  <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#l00105">SVFValue.h:105</a></div></div>
1622
- <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#l01037">LLVMModule.cpp:1037</a></div></div>
1631
+ <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#l01047">LLVMModule.cpp:1047</a></div></div>
1623
1632
  <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>
1624
1633
  <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#l00304">LLVMUtil.cpp:304</a></div></div>
1625
1634
  <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>
1626
1635
  <div class="ttc" id="aclassSVF_1_1StInfo_html_aae0736a5e99b11571af52e28500a6f9c"><div class="ttname"><a href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c">SVF::StInfo::addFldWithType</a></div><div class="ttdeci">void addFldWithType(u32_t fldIdx, const SVFType *type, u32_t elemIdx)</div><div class="ttdoc">Add field index and element index and their corresponding type.</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00008">SVFValue.cpp:8</a></div></div>
1627
- <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#l01145">LLVMModule.cpp:1145</a></div></div>
1628
- <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#l01202">LLVMModule.cpp:1202</a></div></div>
1636
+ <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#l01155">LLVMModule.cpp:1155</a></div></div>
1637
+ <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#l01212">LLVMModule.cpp:1212</a></div></div>
1629
1638
  <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>
1630
1639
  <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#l00190">LLVMUtil.cpp:190</a></div></div>
1631
1640
  <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#l00425">LLVMModule.cpp:425</a></div></div>
@@ -1648,7 +1657,7 @@ $(function() {
1648
1657
  <div class="ttc" id="aclassSVF_1_1SVFConstantNullPtr_html"><div class="ttname"><a href="classSVF_1_1SVFConstantNullPtr.html">SVF::SVFConstantNullPtr</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00989">SVFValue.h:989</a></div></div>
1649
1658
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_abba4111230f6009bbf50518ee36a9870"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">SVF::LLVMUtil::getPtrElementType</a></div><div class="ttdeci">static Type * getPtrElementType(const PointerType *pty)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00119">LLVMUtil.h:119</a></div></div>
1650
1659
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a3cbba2eb702a3481478b2590dfffa352"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a3cbba2eb702a3481478b2590dfffa352">SVF::LLVMModuleSet::getSVFGlobalValue</a></div><div class="ttdeci">SVFGlobalValue * getSVFGlobalValue(const GlobalValue *g) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00226">LLVMModule.h:226</a></div></div>
1651
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a718c8ec79f36cef5df2f4530541f2770"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a718c8ec79f36cef5df2f4530541f2770">SVF::LLVMUtil::getVCallIdx</a></div><div class="ttdeci">s32_t getVCallIdx(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01132">LLVMUtil.cpp:1132</a></div></div>
1660
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a718c8ec79f36cef5df2f4530541f2770"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a718c8ec79f36cef5df2f4530541f2770">SVF::LLVMUtil::getVCallIdx</a></div><div class="ttdeci">s32_t getVCallIdx(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01209">LLVMUtil.cpp:1209</a></div></div>
1652
1661
  <div class="ttc" id="anamespaceSVF_html_a7332f8059ea95472dcc231de884a5768"><div class="ttname"><a href="namespaceSVF.html#a7332f8059ea95472dcc231de884a5768">SVF::ConstantData</a></div><div class="ttdeci">llvm::ConstantData ConstantData</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00114">BasicTypes.h:114</a></div></div>
1653
1662
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a172084437a8450314a17f7085a32b5d2"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a172084437a8450314a17f7085a32b5d2">SVF::LLVMModuleSet::addInstructionMap</a></div><div class="ttdeci">void addInstructionMap(const Instruction *inst, SVFInstruction *svfInst)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00158">LLVMModule.h:158</a></div></div>
1654
1663
  <div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>