svf-tools 1.0.890 → 1.0.892

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 (343) hide show
  1. package/SVF-doxygen/html/AbstractExecution_8cpp_source.html +451 -450
  2. package/SVF-doxygen/html/AbstractExecution_8h_source.html +11 -11
  3. package/SVF-doxygen/html/AccessPath_8cpp_source.html +150 -147
  4. package/SVF-doxygen/html/AccessPath_8h_source.html +6 -6
  5. package/SVF-doxygen/html/Andersen_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/BufOverflowChecker_8cpp_source.html +426 -425
  7. package/SVF-doxygen/html/BufOverflowChecker_8h_source.html +2 -2
  8. package/SVF-doxygen/html/CFLAlias_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/ConsG_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/CppUtil_8cpp_source.html +4 -4
  11. package/SVF-doxygen/html/CxtStmt_8h_source.html +1 -1
  12. package/SVF-doxygen/html/DCHG_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/DDAClient_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/ICFGBuilder_8cpp_source.html +1 -1
  15. package/SVF-doxygen/html/ICFGSimplification_8cpp_source.html +43 -44
  16. package/SVF-doxygen/html/ICFGWTO_8h_source.html +4 -4
  17. package/SVF-doxygen/html/ICFG_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +556 -556
  19. package/SVF-doxygen/html/LLVMModule_8h_source.html +15 -15
  20. package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +552 -525
  21. package/SVF-doxygen/html/LLVMUtil_8h.html +2 -0
  22. package/SVF-doxygen/html/LLVMUtil_8h_source.html +55 -52
  23. package/SVF-doxygen/html/LockResultValidator_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/MHP_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/MTAAnnotator_8cpp_source.html +1 -1
  26. package/SVF-doxygen/html/MTAResultValidator_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/ObjTypeInference_8cpp.html +1 -1
  29. package/SVF-doxygen/html/ObjTypeInference_8cpp_source.html +3 -3
  30. package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +828 -827
  32. package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +20 -20
  33. package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +7 -7
  34. package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +1 -1
  35. package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +2 -2
  36. package/SVF-doxygen/html/SVFStatements_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/SVFStatements_8h_source.html +1 -1
  38. package/SVF-doxygen/html/SVFValue_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
  40. package/SVF-doxygen/html/SVFVariables_8cpp_source.html +1 -1
  41. package/SVF-doxygen/html/Steensgaard_8cpp_source.html +1 -1
  42. package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +9 -9
  43. package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +1 -1
  44. package/SVF-doxygen/html/WTO_8h.html +1 -0
  45. package/SVF-doxygen/html/WTO_8h_source.html +812 -811
  46. package/SVF-doxygen/html/ae_8cpp.html +46 -47
  47. package/SVF-doxygen/html/ae_8cpp_source.html +46 -47
  48. package/SVF-doxygen/html/classSVF_1_1AEAPI.html +432 -431
  49. package/SVF-doxygen/html/classSVF_1_1AbstractExecution.html +22 -22
  50. package/SVF-doxygen/html/classSVF_1_1AccessPath.html +136 -133
  51. package/SVF-doxygen/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  52. package/SVF-doxygen/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  53. package/SVF-doxygen/html/classSVF_1_1AddrStmt.html +1 -1
  54. package/SVF-doxygen/html/classSVF_1_1AliasDDAClient.html +1 -1
  55. package/SVF-doxygen/html/classSVF_1_1Andersen.html +1 -1
  56. package/SVF-doxygen/html/classSVF_1_1BinaryOPStmt.html +1 -1
  57. package/SVF-doxygen/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  58. package/SVF-doxygen/html/classSVF_1_1BranchStmt.html +1 -1
  59. package/SVF-doxygen/html/classSVF_1_1BufOverflowCheckerAPI.html +82 -81
  60. package/SVF-doxygen/html/classSVF_1_1CFLAlias.html +1 -1
  61. package/SVF-doxygen/html/classSVF_1_1CallCFGEdge.html +1 -1
  62. package/SVF-doxygen/html/classSVF_1_1CallPE.html +1 -1
  63. package/SVF-doxygen/html/classSVF_1_1CmpStmt.html +1 -1
  64. package/SVF-doxygen/html/classSVF_1_1CmpVFGNode.html +1 -1
  65. package/SVF-doxygen/html/classSVF_1_1CopyStmt.html +1 -1
  66. package/SVF-doxygen/html/classSVF_1_1CxtStmt.html +1 -1
  67. package/SVF-doxygen/html/classSVF_1_1CxtThread.html +1 -1
  68. package/SVF-doxygen/html/classSVF_1_1CxtThreadStmt.html +1 -1
  69. package/SVF-doxygen/html/classSVF_1_1DCHGraph.html +1 -1
  70. package/SVF-doxygen/html/classSVF_1_1DoubleFreeChecker.html +1 -1
  71. package/SVF-doxygen/html/classSVF_1_1FIObjVar.html +1 -1
  72. package/SVF-doxygen/html/classSVF_1_1ForkJoinAnalysis.html +1 -1
  73. package/SVF-doxygen/html/classSVF_1_1GepObjVar.html +1 -1
  74. package/SVF-doxygen/html/classSVF_1_1GepStmt.html +2 -2
  75. package/SVF-doxygen/html/classSVF_1_1GepValVar.html +1 -1
  76. package/SVF-doxygen/html/classSVF_1_1ICFG.html +1 -1
  77. package/SVF-doxygen/html/classSVF_1_1ICFGBuilder.html +1 -1
  78. package/SVF-doxygen/html/classSVF_1_1ICFGSimplification.html +43 -44
  79. package/SVF-doxygen/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  80. package/SVF-doxygen/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  81. package/SVF-doxygen/html/classSVF_1_1IntraCFGEdge.html +1 -1
  82. package/SVF-doxygen/html/classSVF_1_1IntraICFGNode.html +1 -1
  83. package/SVF-doxygen/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  84. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +538 -538
  85. package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +1 -1
  86. package/SVF-doxygen/html/classSVF_1_1LoadStmt.html +1 -1
  87. package/SVF-doxygen/html/classSVF_1_1LockResultValidator.html +1 -1
  88. package/SVF-doxygen/html/classSVF_1_1MHP.html +1 -1
  89. package/SVF-doxygen/html/classSVF_1_1MTAAnnotator.html +1 -1
  90. package/SVF-doxygen/html/classSVF_1_1MTAResultValidator.html +1 -1
  91. package/SVF-doxygen/html/classSVF_1_1MemObj.html +1 -1
  92. package/SVF-doxygen/html/classSVF_1_1MemSSA.html +1 -1
  93. package/SVF-doxygen/html/classSVF_1_1ObjTypeInference.html +3 -3
  94. package/SVF-doxygen/html/classSVF_1_1ObjVar.html +1 -1
  95. package/SVF-doxygen/html/classSVF_1_1PHIVFGNode.html +1 -1
  96. package/SVF-doxygen/html/classSVF_1_1PhiStmt.html +1 -1
  97. package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +1 -1
  98. package/SVF-doxygen/html/classSVF_1_1RaceResultValidator.html +1 -1
  99. package/SVF-doxygen/html/classSVF_1_1RetCFGEdge.html +1 -1
  100. package/SVF-doxygen/html/classSVF_1_1RetPE.html +1 -1
  101. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +792 -791
  102. package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +8 -8
  103. package/SVF-doxygen/html/classSVF_1_1SVFValue.html +23 -23
  104. package/SVF-doxygen/html/classSVF_1_1SelectStmt.html +1 -1
  105. package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +1 -1
  106. package/SVF-doxygen/html/classSVF_1_1StoreStmt.html +1 -1
  107. package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +8 -8
  108. package/SVF-doxygen/html/classSVF_1_1TCT.html +1 -1
  109. package/SVF-doxygen/html/classSVF_1_1TDForkPE.html +1 -1
  110. package/SVF-doxygen/html/classSVF_1_1TDJoinPE.html +1 -1
  111. package/SVF-doxygen/html/classSVF_1_1UnaryOPStmt.html +1 -1
  112. package/SVF-doxygen/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  113. package/SVF-doxygen/html/classSVF_1_1ValVar.html +1 -1
  114. package/SVF-doxygen/html/classSVF_1_1WTO.html +253 -253
  115. package/SVF-doxygen/html/classSVF_1_1WTOComponent.html +21 -21
  116. package/SVF-doxygen/html/classSVF_1_1WTOComponentVisitor.html +3 -3
  117. package/SVF-doxygen/html/classSVF_1_1WTOCycle.html +61 -61
  118. package/SVF-doxygen/html/classSVF_1_1WTOCycleDepth.html +115 -115
  119. package/SVF-doxygen/html/classSVF_1_1WTONode.html +31 -31
  120. package/SVF-doxygen/html/classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html +31 -31
  121. package/SVF-doxygen/html/globals_vars.html +3 -3
  122. package/SVF-doxygen/html/globals_z.html +3 -3
  123. package/SVF-doxygen/html/namespaceSVF_1_1LLVMUtil.html +529 -483
  124. package/SVF-doxygen/html/namespaceSVF_1_1cppUtil.html +2 -2
  125. package/SVF-doxygen/html/namespacemembers_func_r.html +3 -0
  126. package/SVF-doxygen/html/namespacemembers_r.html +3 -0
  127. package/SVF-doxygen/html/search/all_11.js +54 -53
  128. package/SVF-doxygen/html/search/all_12.js +570 -570
  129. package/SVF-doxygen/html/search/all_13.js +207 -207
  130. package/SVF-doxygen/html/search/all_14.js +70 -70
  131. package/SVF-doxygen/html/search/all_15.js +176 -176
  132. package/SVF-doxygen/html/search/all_16.js +77 -77
  133. package/SVF-doxygen/html/search/all_17.js +1 -1
  134. package/SVF-doxygen/html/search/all_18.js +1 -1
  135. package/SVF-doxygen/html/search/all_19.js +26 -26
  136. package/SVF-doxygen/html/search/all_1a.js +180 -180
  137. package/SVF-doxygen/html/search/classes_0.js +29 -29
  138. package/SVF-doxygen/html/search/classes_1.js +12 -12
  139. package/SVF-doxygen/html/search/classes_10.js +74 -74
  140. package/SVF-doxygen/html/search/classes_11.js +14 -14
  141. package/SVF-doxygen/html/search/classes_12.js +2 -2
  142. package/SVF-doxygen/html/search/classes_13.js +10 -10
  143. package/SVF-doxygen/html/search/classes_14.js +19 -19
  144. package/SVF-doxygen/html/search/classes_15.js +1 -1
  145. package/SVF-doxygen/html/search/classes_2.js +73 -73
  146. package/SVF-doxygen/html/search/classes_3.js +35 -35
  147. package/SVF-doxygen/html/search/classes_4.js +8 -8
  148. package/SVF-doxygen/html/search/classes_5.js +28 -28
  149. package/SVF-doxygen/html/search/classes_6.js +98 -98
  150. package/SVF-doxygen/html/search/classes_7.js +38 -38
  151. package/SVF-doxygen/html/search/classes_8.js +59 -59
  152. package/SVF-doxygen/html/search/classes_9.js +1 -1
  153. package/SVF-doxygen/html/search/classes_a.js +12 -12
  154. package/SVF-doxygen/html/search/classes_b.js +29 -29
  155. package/SVF-doxygen/html/search/classes_c.js +6 -6
  156. package/SVF-doxygen/html/search/classes_d.js +19 -19
  157. package/SVF-doxygen/html/search/classes_e.js +36 -36
  158. package/SVF-doxygen/html/search/classes_f.js +25 -25
  159. package/SVF-doxygen/html/search/defines_0.js +3 -3
  160. package/SVF-doxygen/html/search/defines_1.js +3 -3
  161. package/SVF-doxygen/html/search/defines_10.js +2 -2
  162. package/SVF-doxygen/html/search/defines_2.js +30 -30
  163. package/SVF-doxygen/html/search/defines_3.js +20 -20
  164. package/SVF-doxygen/html/search/defines_4.js +3 -3
  165. package/SVF-doxygen/html/search/defines_5.js +4 -4
  166. package/SVF-doxygen/html/search/defines_6.js +2 -2
  167. package/SVF-doxygen/html/search/defines_7.js +5 -5
  168. package/SVF-doxygen/html/search/defines_8.js +11 -11
  169. package/SVF-doxygen/html/search/defines_9.js +9 -9
  170. package/SVF-doxygen/html/search/defines_a.js +2 -2
  171. package/SVF-doxygen/html/search/defines_b.js +1 -1
  172. package/SVF-doxygen/html/search/defines_c.js +4 -4
  173. package/SVF-doxygen/html/search/defines_d.js +2 -2
  174. package/SVF-doxygen/html/search/defines_e.js +8 -8
  175. package/SVF-doxygen/html/search/defines_f.js +4 -4
  176. package/SVF-doxygen/html/search/enums_0.js +4 -4
  177. package/SVF-doxygen/html/search/enums_1.js +2 -2
  178. package/SVF-doxygen/html/search/enums_10.js +1 -1
  179. package/SVF-doxygen/html/search/enums_11.js +1 -1
  180. package/SVF-doxygen/html/search/enums_2.js +8 -8
  181. package/SVF-doxygen/html/search/enums_3.js +1 -1
  182. package/SVF-doxygen/html/search/enums_4.js +4 -4
  183. package/SVF-doxygen/html/search/enums_5.js +1 -1
  184. package/SVF-doxygen/html/search/enums_6.js +2 -2
  185. package/SVF-doxygen/html/search/enums_7.js +2 -2
  186. package/SVF-doxygen/html/search/enums_8.js +4 -4
  187. package/SVF-doxygen/html/search/enums_9.js +1 -1
  188. package/SVF-doxygen/html/search/enums_a.js +1 -1
  189. package/SVF-doxygen/html/search/enums_b.js +7 -7
  190. package/SVF-doxygen/html/search/enums_c.js +1 -1
  191. package/SVF-doxygen/html/search/enums_d.js +4 -4
  192. package/SVF-doxygen/html/search/enums_e.js +2 -2
  193. package/SVF-doxygen/html/search/enums_f.js +4 -4
  194. package/SVF-doxygen/html/search/enumvalues_0.js +15 -15
  195. package/SVF-doxygen/html/search/enumvalues_1.js +15 -15
  196. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  197. package/SVF-doxygen/html/search/enumvalues_11.js +4 -4
  198. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  199. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  200. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  201. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  202. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  203. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  204. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  205. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  206. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  207. package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
  208. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  209. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  210. package/SVF-doxygen/html/search/enumvalues_a.js +17 -17
  211. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  212. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  213. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  214. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  215. package/SVF-doxygen/html/search/enumvalues_f.js +47 -47
  216. package/SVF-doxygen/html/search/files_0.js +16 -16
  217. package/SVF-doxygen/html/search/files_1.js +9 -9
  218. package/SVF-doxygen/html/search/files_10.js +8 -8
  219. package/SVF-doxygen/html/search/files_11.js +8 -8
  220. package/SVF-doxygen/html/search/files_12.js +2 -2
  221. package/SVF-doxygen/html/search/files_2.js +53 -53
  222. package/SVF-doxygen/html/search/files_3.js +14 -14
  223. package/SVF-doxygen/html/search/files_4.js +5 -5
  224. package/SVF-doxygen/html/search/files_5.js +13 -13
  225. package/SVF-doxygen/html/search/files_6.js +10 -10
  226. package/SVF-doxygen/html/search/files_7.js +17 -17
  227. package/SVF-doxygen/html/search/files_8.js +13 -13
  228. package/SVF-doxygen/html/search/files_9.js +18 -18
  229. package/SVF-doxygen/html/search/files_a.js +3 -3
  230. package/SVF-doxygen/html/search/files_b.js +4 -4
  231. package/SVF-doxygen/html/search/files_c.js +20 -20
  232. package/SVF-doxygen/html/search/files_d.js +4 -4
  233. package/SVF-doxygen/html/search/files_e.js +62 -62
  234. package/SVF-doxygen/html/search/files_f.js +8 -8
  235. package/SVF-doxygen/html/search/functions_0.js +13 -13
  236. package/SVF-doxygen/html/search/functions_1.js +369 -369
  237. package/SVF-doxygen/html/search/functions_10.js +140 -140
  238. package/SVF-doxygen/html/search/functions_11.js +140 -139
  239. package/SVF-doxygen/html/search/functions_12.js +299 -299
  240. package/SVF-doxygen/html/search/functions_13.js +73 -73
  241. package/SVF-doxygen/html/search/functions_14.js +41 -41
  242. package/SVF-doxygen/html/search/functions_15.js +72 -72
  243. package/SVF-doxygen/html/search/functions_16.js +38 -38
  244. package/SVF-doxygen/html/search/functions_17.js +3 -3
  245. package/SVF-doxygen/html/search/functions_18.js +180 -180
  246. package/SVF-doxygen/html/search/functions_2.js +95 -95
  247. package/SVF-doxygen/html/search/functions_3.js +261 -261
  248. package/SVF-doxygen/html/search/functions_4.js +84 -84
  249. package/SVF-doxygen/html/search/functions_5.js +57 -57
  250. package/SVF-doxygen/html/search/functions_6.js +65 -65
  251. package/SVF-doxygen/html/search/functions_7.js +863 -863
  252. package/SVF-doxygen/html/search/functions_8.js +162 -162
  253. package/SVF-doxygen/html/search/functions_9.js +439 -439
  254. package/SVF-doxygen/html/search/functions_a.js +30 -30
  255. package/SVF-doxygen/html/search/functions_b.js +2 -2
  256. package/SVF-doxygen/html/search/functions_c.js +25 -25
  257. package/SVF-doxygen/html/search/functions_d.js +82 -82
  258. package/SVF-doxygen/html/search/functions_e.js +36 -36
  259. package/SVF-doxygen/html/search/functions_f.js +58 -58
  260. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  261. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  262. package/SVF-doxygen/html/search/related_0.js +4 -4
  263. package/SVF-doxygen/html/search/related_1.js +2 -2
  264. package/SVF-doxygen/html/search/related_2.js +2 -2
  265. package/SVF-doxygen/html/search/related_3.js +2 -2
  266. package/SVF-doxygen/html/search/related_4.js +2 -2
  267. package/SVF-doxygen/html/search/related_5.js +1 -1
  268. package/SVF-doxygen/html/search/related_6.js +2 -2
  269. package/SVF-doxygen/html/search/related_7.js +5 -5
  270. package/SVF-doxygen/html/search/related_8.js +2 -2
  271. package/SVF-doxygen/html/search/related_9.js +4 -4
  272. package/SVF-doxygen/html/search/related_a.js +19 -19
  273. package/SVF-doxygen/html/search/related_b.js +4 -4
  274. package/SVF-doxygen/html/search/related_c.js +2 -2
  275. package/SVF-doxygen/html/search/related_d.js +12 -12
  276. package/SVF-doxygen/html/search/related_e.js +2 -2
  277. package/SVF-doxygen/html/search/related_f.js +2 -2
  278. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  279. package/SVF-doxygen/html/search/typedefs_1.js +27 -27
  280. package/SVF-doxygen/html/search/typedefs_10.js +63 -63
  281. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  282. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  283. package/SVF-doxygen/html/search/typedefs_13.js +40 -40
  284. package/SVF-doxygen/html/search/typedefs_14.js +11 -11
  285. package/SVF-doxygen/html/search/typedefs_2.js +125 -125
  286. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  287. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  288. package/SVF-doxygen/html/search/typedefs_5.js +42 -42
  289. package/SVF-doxygen/html/search/typedefs_6.js +54 -54
  290. package/SVF-doxygen/html/search/typedefs_7.js +47 -47
  291. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  292. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  293. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  294. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  295. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  296. package/SVF-doxygen/html/search/typedefs_d.js +15 -15
  297. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  298. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  299. package/SVF-doxygen/html/search/variables_0.js +177 -177
  300. package/SVF-doxygen/html/search/variables_1.js +76 -76
  301. package/SVF-doxygen/html/search/variables_10.js +98 -98
  302. package/SVF-doxygen/html/search/variables_11.js +46 -46
  303. package/SVF-doxygen/html/search/variables_12.js +93 -93
  304. package/SVF-doxygen/html/search/variables_13.js +76 -76
  305. package/SVF-doxygen/html/search/variables_14.js +14 -14
  306. package/SVF-doxygen/html/search/variables_15.js +49 -49
  307. package/SVF-doxygen/html/search/variables_16.js +11 -11
  308. package/SVF-doxygen/html/search/variables_17.js +1 -1
  309. package/SVF-doxygen/html/search/variables_18.js +17 -17
  310. package/SVF-doxygen/html/search/variables_2.js +41 -41
  311. package/SVF-doxygen/html/search/variables_3.js +142 -142
  312. package/SVF-doxygen/html/search/variables_4.js +51 -51
  313. package/SVF-doxygen/html/search/variables_5.js +39 -39
  314. package/SVF-doxygen/html/search/variables_6.js +66 -66
  315. package/SVF-doxygen/html/search/variables_7.js +34 -34
  316. package/SVF-doxygen/html/search/variables_8.js +8 -8
  317. package/SVF-doxygen/html/search/variables_9.js +79 -79
  318. package/SVF-doxygen/html/search/variables_a.js +4 -4
  319. package/SVF-doxygen/html/search/variables_b.js +10 -10
  320. package/SVF-doxygen/html/search/variables_c.js +45 -45
  321. package/SVF-doxygen/html/search/variables_d.js +57 -57
  322. package/SVF-doxygen/html/search/variables_e.js +123 -123
  323. package/SVF-doxygen/html/search/variables_f.js +31 -31
  324. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  325. package/SVF-doxygen/html/structSVF_1_1has__edgetype.html +1 -1
  326. package/SVF-doxygen/html/structSVF_1_1has__edgetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1EdgeType_01_4_01_4.html +1 -1
  327. package/SVF-doxygen/html/structSVF_1_1has__nodetype.html +1 -1
  328. package/SVF-doxygen/html/structSVF_1_1has__nodetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1NodeType_01_4_01_4.html +1 -1
  329. package/SVF-doxygen/html/svf-ex_8cpp.html +12 -12
  330. package/SVF-doxygen/html/svf-ex_8cpp_source.html +12 -12
  331. package/SVF-doxygen/html/svf_2include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  332. package/package.json +1 -1
  333. package/svf/include/Graphs/WTO.h +1 -0
  334. package/svf/lib/AE/Svfexe/AbstractExecution.cpp +1 -0
  335. package/svf/lib/AE/Svfexe/BufOverflowChecker.cpp +1 -0
  336. package/svf/lib/AE/Svfexe/ICFGSimplification.cpp +1 -2
  337. package/svf/lib/AE/Svfexe/SVFIR2ItvExeState.cpp +1 -0
  338. package/svf/lib/MemoryModel/AccessPath.cpp +4 -1
  339. package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +2 -0
  340. package/svf-llvm/lib/LLVMModule.cpp +3 -4
  341. package/svf-llvm/lib/LLVMUtil.cpp +29 -2
  342. package/svf-llvm/lib/SVFIRBuilder.cpp +1 -1
  343. package/svf-llvm/tools/AE/ae.cpp +1 -2
@@ -1096,64 +1096,64 @@ Friends</h2></td></tr>
1096
1096
 
1097
1097
  <p>Create SVFTypes. </p>
1098
1098
 
1099
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01404">1404</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1100
- <div class="fragment"><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;{</div>
1101
- <div class="line"><a name="l01406"></a><span class="lineno"> 1406</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>
1102
- <div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160; <span class="stringliteral">&quot;SVFType has been added before&quot;</span>);</div>
1103
- <div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160; </div>
1104
- <div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; <span class="comment">// add SVFType&#39;s LLVM byte size iff T isSized(), otherwise byteSize is 1 (default value)</span></div>
1105
- <div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> byteSize = 1;</div>
1106
- <div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160; <span class="keywordflow">if</span> (T-&gt;isSized())</div>
1107
- <div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; {</div>
1108
- <div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">llvm::DataLayout</a> &amp;DL = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;</div>
1109
- <div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a9fe3fa15a6a0ec25864cb8439a45596e">getMainLLVMModule</a>()-&gt;getDataLayout();</div>
1110
- <div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *mut_T = <span class="keyword">const_cast&lt;</span><a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *<span class="keyword">&gt;</span>(T);</div>
1111
- <div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160; byteSize = DL.getTypeAllocSize(mut_T);</div>
1112
- <div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; }</div>
1113
- <div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; </div>
1114
- <div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* svftype;</div>
1115
- <div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;PointerType&gt;(T))</div>
1116
- <div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160; {</div>
1117
- <div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160; svftype = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>(byteSize);</div>
1118
- <div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; }</div>
1119
- <div class="line"><a name="l01424"></a><span class="lineno"> 1424</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>
1120
- <div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160; {</div>
1121
- <div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160; <span class="keyword">auto</span> svfIntT = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFIntegerType.html">SVFIntegerType</a>(byteSize);</div>
1122
- <div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160; <span class="keywordtype">unsigned</span> signWidth = intT-&gt;getBitWidth();</div>
1123
- <div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160; assert(signWidth &lt; INT16_MAX &amp;&amp; <span class="stringliteral">&quot;Integer width too big&quot;</span>);</div>
1124
- <div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160; svfIntT-&gt;setSignAndWidth(intT-&gt;getSignBit() ? -signWidth : signWidth);</div>
1125
- <div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160; svftype = svfIntT;</div>
1126
- <div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; }</div>
1127
- <div class="line"><a name="l01432"></a><span class="lineno"> 1432</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>
1128
- <div class="line"><a name="l01433"></a><span class="lineno"> 1433</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>
1129
- <div class="line"><a name="l01434"></a><span class="lineno"> 1434</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>
1130
- <div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; {</div>
1131
- <div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160; <span class="keyword">auto</span> svfst = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFStructType.html">SVFStructType</a>(byteSize);</div>
1132
- <div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160; <span class="keywordflow">if</span> (st-&gt;hasName())</div>
1133
- <div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160; svfst-&gt;setName(st-&gt;getName().str());</div>
1134
- <div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160; svftype = svfst;</div>
1135
- <div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160; }</div>
1136
- <div class="line"><a name="l01441"></a><span class="lineno"> 1441</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>
1137
- <div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160; {</div>
1138
- <div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160; <span class="keyword">auto</span> svfat = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFArrayType.html">SVFArrayType</a>(byteSize);</div>
1139
- <div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160; svfat-&gt;setNumOfElement(at-&gt;getNumElements());</div>
1140
- <div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; svfat-&gt;setTypeOfElement(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(at-&gt;getElementType()));</div>
1141
- <div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160; svftype = svfat;</div>
1142
- <div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; }</div>
1143
- <div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160; <span class="keywordflow">else</span></div>
1144
- <div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; {</div>
1145
- <div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>;</div>
1146
- <div class="line"><a name="l01451"></a><span class="lineno"> 1451</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(), byteSize);</div>
1147
- <div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160; llvm::raw_string_ostream(<a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>) &lt;&lt; *T;</div>
1148
- <div class="line"><a name="l01453"></a><span class="lineno"> 1453</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>
1149
- <div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; svftype = ot;</div>
1150
- <div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160; }</div>
1151
- <div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160; </div>
1152
- <div class="line"><a name="l01457"></a><span class="lineno"> 1457</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>
1153
- <div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>[T] = svftype;</div>
1154
- <div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160; </div>
1155
- <div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160; <span class="keywordflow">return</span> svftype;</div>
1156
- <div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;}</div>
1099
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01403">1403</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1100
+ <div class="fragment"><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;{</div>
1101
+ <div class="line"><a name="l01405"></a><span class="lineno"> 1405</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>
1102
+ <div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160; <span class="stringliteral">&quot;SVFType has been added before&quot;</span>);</div>
1103
+ <div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160; </div>
1104
+ <div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160; <span class="comment">// add SVFType&#39;s LLVM byte size iff T isSized(), otherwise byteSize is 1 (default value)</span></div>
1105
+ <div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> byteSize = 1;</div>
1106
+ <div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; <span class="keywordflow">if</span> (T-&gt;isSized())</div>
1107
+ <div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160; {</div>
1108
+ <div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">llvm::DataLayout</a> &amp;DL = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;</div>
1109
+ <div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a9fe3fa15a6a0ec25864cb8439a45596e">getMainLLVMModule</a>()-&gt;getDataLayout();</div>
1110
+ <div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *mut_T = <span class="keyword">const_cast&lt;</span><a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *<span class="keyword">&gt;</span>(T);</div>
1111
+ <div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; byteSize = DL.getTypeAllocSize(mut_T);</div>
1112
+ <div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160; }</div>
1113
+ <div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; </div>
1114
+ <div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* svftype;</div>
1115
+ <div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;PointerType&gt;(T))</div>
1116
+ <div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; {</div>
1117
+ <div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160; svftype = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>(byteSize);</div>
1118
+ <div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160; }</div>
1119
+ <div class="line"><a name="l01423"></a><span class="lineno"> 1423</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>
1120
+ <div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; {</div>
1121
+ <div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160; <span class="keyword">auto</span> svfIntT = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFIntegerType.html">SVFIntegerType</a>(byteSize);</div>
1122
+ <div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160; <span class="keywordtype">unsigned</span> signWidth = intT-&gt;getBitWidth();</div>
1123
+ <div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160; assert(signWidth &lt; INT16_MAX &amp;&amp; <span class="stringliteral">&quot;Integer width too big&quot;</span>);</div>
1124
+ <div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160; svfIntT-&gt;setSignAndWidth(intT-&gt;getSignBit() ? -signWidth : signWidth);</div>
1125
+ <div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160; svftype = svfIntT;</div>
1126
+ <div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160; }</div>
1127
+ <div class="line"><a name="l01431"></a><span class="lineno"> 1431</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>
1128
+ <div class="line"><a name="l01432"></a><span class="lineno"> 1432</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>
1129
+ <div class="line"><a name="l01433"></a><span class="lineno"> 1433</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>
1130
+ <div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; {</div>
1131
+ <div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; <span class="keyword">auto</span> svfst = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFStructType.html">SVFStructType</a>(byteSize);</div>
1132
+ <div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160; <span class="keywordflow">if</span> (st-&gt;hasName())</div>
1133
+ <div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160; svfst-&gt;setName(st-&gt;getName().str());</div>
1134
+ <div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160; svftype = svfst;</div>
1135
+ <div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160; }</div>
1136
+ <div class="line"><a name="l01440"></a><span class="lineno"> 1440</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>
1137
+ <div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160; {</div>
1138
+ <div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160; <span class="keyword">auto</span> svfat = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFArrayType.html">SVFArrayType</a>(byteSize);</div>
1139
+ <div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160; svfat-&gt;setNumOfElement(at-&gt;getNumElements());</div>
1140
+ <div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160; svfat-&gt;setTypeOfElement(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(at-&gt;getElementType()));</div>
1141
+ <div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; svftype = svfat;</div>
1142
+ <div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160; }</div>
1143
+ <div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; <span class="keywordflow">else</span></div>
1144
+ <div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160; {</div>
1145
+ <div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>;</div>
1146
+ <div class="line"><a name="l01450"></a><span class="lineno"> 1450</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(), byteSize);</div>
1147
+ <div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160; llvm::raw_string_ostream(<a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>) &lt;&lt; *T;</div>
1148
+ <div class="line"><a name="l01452"></a><span class="lineno"> 1452</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>
1149
+ <div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160; svftype = ot;</div>
1150
+ <div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; }</div>
1151
+ <div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160; </div>
1152
+ <div class="line"><a name="l01456"></a><span class="lineno"> 1456</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>
1153
+ <div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>[T] = svftype;</div>
1154
+ <div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160; </div>
1155
+ <div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160; <span class="keywordflow">return</span> svftype;</div>
1156
+ <div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;}</div>
1157
1157
  </div><!-- fragment -->
1158
1158
  </div>
1159
1159
  </div>
@@ -1354,92 +1354,91 @@ Friends</h2></td></tr>
1354
1354
  <div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; </div>
1355
1355
  <div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fdecl : funDecls)</div>
1356
1356
  <div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; {</div>
1357
- <div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* extfun : extFuncs)</div>
1358
- <div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; {</div>
1359
- <div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> declName = fdecl-&gt;getName().str();</div>
1360
- <div class="line"><a name="l01041"></a><span class="lineno"> 1041</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>
1361
- <div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; std::replace(declName.begin(), declName.end(), <span class="charliteral">&#39;.&#39;</span>, <span class="charliteral">&#39;_&#39;</span>);</div>
1362
- <div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; <span class="keywordflow">if</span> (extfun-&gt;getName().str().compare(declName) == 0)</div>
1363
- <div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; {</div>
1364
- <div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; <span class="comment">// AppDecl -&gt; ExtDef in Table 1</span></div>
1365
- <div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">FunDeclToDefMap</a>[fdecl] = extfun;</div>
1366
- <div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; <span class="comment">// ExtDef -&gt; AppDecl in Table 1</span></div>
1367
- <div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; std::vector&lt;const Function*&gt;&amp; decls = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">FunDefToDeclsMap</a>[extfun];</div>
1368
- <div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; decls.push_back(fdecl);</div>
1369
- <div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; <span class="comment">// Keep all called functions in extfun</span></div>
1370
- <div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; <span class="comment">// ExtDecl -&gt; ExtDecl in Table 1</span></div>
1371
- <div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; std::vector&lt;const Function*&gt; calledFunctions = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">LLVMUtil::getCalledFunctions</a>(extfun);</div>
1372
- <div class="line"><a name="l01053"></a><span class="lineno"> 1053</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>
1373
- <div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; <span class="keywordflow">break</span>;</div>
1374
- <div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; }</div>
1375
- <div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; }</div>
1376
- <div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; }</div>
1377
- <div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; </div>
1378
- <div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* appfunc : funDefs)</div>
1379
- <div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; {</div>
1380
- <div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* owfunc : overwriteExtFuncs)</div>
1381
- <div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; {</div>
1382
- <div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; <span class="keywordflow">if</span> (appfunc-&gt;getName().str().compare(owfunc-&gt;getName().str()) == 0)</div>
1383
- <div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; {</div>
1384
- <div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* returnType1 = appfunc-&gt;getReturnType();</div>
1385
- <div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* returnType2 = owfunc-&gt;getReturnType();</div>
1386
- <div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; </div>
1387
- <div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; <span class="comment">// Check if the return types are compatible:</span></div>
1388
- <div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; <span class="comment">// (1) The types are exactly the same,</span></div>
1389
- <div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; <span class="comment">// (2) Both are pointer types, and at least one of them is a void*.</span></div>
1390
- <div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <span class="comment">// Note that getPointerElementType() will be deprecated in the future versions of LLVM.</span></div>
1391
- <div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <span class="comment">// Considering compatibility, avoid using getPointerElementType()-&gt;isIntegerTy(8) to determine if it is a void * type.</span></div>
1392
- <div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; <span class="keywordflow">if</span> (!(returnType1 == returnType2 || (returnType1-&gt;isPointerTy() &amp;&amp; returnType2-&gt;isPointerTy())))</div>
1393
- <div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; {</div>
1394
- <div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; <span class="keywordflow">continue</span>;</div>
1395
- <div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; }</div>
1396
- <div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; </div>
1397
- <div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keywordflow">if</span> (appfunc-&gt;arg_size() != owfunc-&gt;arg_size())</div>
1398
- <div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <span class="keywordflow">continue</span>;</div>
1399
- <div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; </div>
1400
- <div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <span class="keywordtype">bool</span> argMismatch = <span class="keyword">false</span>;</div>
1401
- <div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; Function::const_arg_iterator argIter1 = appfunc-&gt;arg_begin();</div>
1402
- <div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; Function::const_arg_iterator argIter2 = owfunc-&gt;arg_begin();</div>
1403
- <div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; <span class="keywordflow">while</span> (argIter1 != appfunc-&gt;arg_end() &amp;&amp; argIter2 != owfunc-&gt;arg_end())</div>
1404
- <div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; {</div>
1405
- <div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* argType1 = argIter1-&gt;getType();</div>
1406
- <div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* argType2 = argIter2-&gt;getType();</div>
1407
- <div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; </div>
1408
- <div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; <span class="comment">// Check if the parameters types are compatible: (1) The types are exactly the same, (2) Both are pointer types, and at least one of them is a void*.</span></div>
1409
- <div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; <span class="keywordflow">if</span> (!(argType1 == argType2 || (argType1-&gt;isPointerTy() &amp;&amp; argType2-&gt;isPointerTy())))</div>
1410
- <div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; {</div>
1411
- <div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; argMismatch = <span class="keyword">true</span>;</div>
1412
- <div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; <span class="keywordflow">break</span>;</div>
1413
- <div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; }</div>
1414
- <div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; argIter1++;</div>
1415
- <div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; argIter2++;</div>
1416
- <div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; }</div>
1417
- <div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; <span class="keywordflow">if</span> (argMismatch)</div>
1418
- <div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; <span class="keywordflow">continue</span>;</div>
1419
- <div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; </div>
1420
- <div class="line"><a name="l01103"></a><span class="lineno"> 1103</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>
1421
- <div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mod = fun-&gt;getParent();</div>
1422
- <div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; <a class="code" href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">FunctionType</a>* funType = fun-&gt;getFunctionType();</div>
1423
- <div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> funName = fun-&gt;getName().str();</div>
1424
- <div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; <span class="comment">// Replace app function definition with declaration</span></div>
1425
- <div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* declaration = Function::Create(funType, GlobalValue::ExternalLinkage, funName, mod);</div>
1426
- <div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; fun-&gt;replaceAllUsesWith(declaration);</div>
1427
- <div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; fun-&gt;eraseFromParent();</div>
1428
- <div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; declaration-&gt;setName(funName);</div>
1429
- <div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <span class="comment">// AppDef -&gt; ExtDef in Table 1, AppDef has been changed to AppDecl</span></div>
1430
- <div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">FunDeclToDefMap</a>[declaration] = owfunc;</div>
1431
- <div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; <span class="comment">// ExtDef -&gt; AppDef in Table 1</span></div>
1432
- <div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; std::vector&lt;const Function*&gt;&amp; decls = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">FunDefToDeclsMap</a>[owfunc];</div>
1433
- <div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; decls.push_back(declaration);</div>
1434
- <div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; <span class="comment">// Keep all called functions in owfunc</span></div>
1435
- <div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <span class="comment">// ExtDecl -&gt; ExtDecl in Table 1</span></div>
1436
- <div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; std::vector&lt;const Function*&gt; calledFunctions = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">LLVMUtil::getCalledFunctions</a>(owfunc);</div>
1437
- <div class="line"><a name="l01120"></a><span class="lineno"> 1120</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>
1438
- <div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; <span class="keywordflow">break</span>;</div>
1439
- <div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; }</div>
1440
- <div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; }</div>
1441
- <div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; }</div>
1442
- <div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;}</div>
1357
+ <div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> declName = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#af4c9c5d445107b1816a4be93852ba612">LLVMUtil::restoreFuncName</a>(fdecl-&gt;getName().str());</div>
1358
+ <div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* extfun : extFuncs)</div>
1359
+ <div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; {</div>
1360
+ <div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; <span class="keywordflow">if</span> (extfun-&gt;getName().str().compare(declName) == 0)</div>
1361
+ <div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; {</div>
1362
+ <div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; <span class="comment">// AppDecl -&gt; ExtDef in Table 1</span></div>
1363
+ <div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">FunDeclToDefMap</a>[fdecl] = extfun;</div>
1364
+ <div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; <span class="comment">// ExtDef -&gt; AppDecl in Table 1</span></div>
1365
+ <div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; std::vector&lt;const Function*&gt;&amp; decls = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">FunDefToDeclsMap</a>[extfun];</div>
1366
+ <div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; decls.push_back(fdecl);</div>
1367
+ <div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; <span class="comment">// Keep all called functions in extfun</span></div>
1368
+ <div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; <span class="comment">// ExtDecl -&gt; ExtDecl in Table 1</span></div>
1369
+ <div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; std::vector&lt;const Function*&gt; calledFunctions = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">LLVMUtil::getCalledFunctions</a>(extfun);</div>
1370
+ <div class="line"><a name="l01051"></a><span class="lineno"> 1051</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>
1371
+ <div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; <span class="keywordflow">break</span>;</div>
1372
+ <div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; }</div>
1373
+ <div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; }</div>
1374
+ <div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; }</div>
1375
+ <div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; </div>
1376
+ <div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* appfunc : funDefs)</div>
1377
+ <div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; {</div>
1378
+ <div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> appfuncName = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#af4c9c5d445107b1816a4be93852ba612">LLVMUtil::restoreFuncName</a>(appfunc-&gt;getName().str());</div>
1379
+ <div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* owfunc : overwriteExtFuncs)</div>
1380
+ <div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; {</div>
1381
+ <div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; <span class="keywordflow">if</span> (appfuncName.compare(owfunc-&gt;getName().str()) == 0)</div>
1382
+ <div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; {</div>
1383
+ <div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* returnType1 = appfunc-&gt;getReturnType();</div>
1384
+ <div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* returnType2 = owfunc-&gt;getReturnType();</div>
1385
+ <div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; </div>
1386
+ <div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; <span class="comment">// Check if the return types are compatible:</span></div>
1387
+ <div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; <span class="comment">// (1) The types are exactly the same,</span></div>
1388
+ <div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; <span class="comment">// (2) Both are pointer types, and at least one of them is a void*.</span></div>
1389
+ <div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; <span class="comment">// Note that getPointerElementType() will be deprecated in the future versions of LLVM.</span></div>
1390
+ <div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <span class="comment">// Considering compatibility, avoid using getPointerElementType()-&gt;isIntegerTy(8) to determine if it is a void * type.</span></div>
1391
+ <div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <span class="keywordflow">if</span> (!(returnType1 == returnType2 || (returnType1-&gt;isPointerTy() &amp;&amp; returnType2-&gt;isPointerTy())))</div>
1392
+ <div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; {</div>
1393
+ <div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; <span class="keywordflow">continue</span>;</div>
1394
+ <div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; }</div>
1395
+ <div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; </div>
1396
+ <div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; <span class="keywordflow">if</span> (appfunc-&gt;arg_size() != owfunc-&gt;arg_size())</div>
1397
+ <div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keywordflow">continue</span>;</div>
1398
+ <div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; </div>
1399
+ <div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; <span class="keywordtype">bool</span> argMismatch = <span class="keyword">false</span>;</div>
1400
+ <div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; Function::const_arg_iterator argIter1 = appfunc-&gt;arg_begin();</div>
1401
+ <div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; Function::const_arg_iterator argIter2 = owfunc-&gt;arg_begin();</div>
1402
+ <div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <span class="keywordflow">while</span> (argIter1 != appfunc-&gt;arg_end() &amp;&amp; argIter2 != owfunc-&gt;arg_end())</div>
1403
+ <div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; {</div>
1404
+ <div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* argType1 = argIter1-&gt;getType();</div>
1405
+ <div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* argType2 = argIter2-&gt;getType();</div>
1406
+ <div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; </div>
1407
+ <div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; <span class="comment">// Check if the parameters types are compatible: (1) The types are exactly the same, (2) Both are pointer types, and at least one of them is a void*.</span></div>
1408
+ <div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; <span class="keywordflow">if</span> (!(argType1 == argType2 || (argType1-&gt;isPointerTy() &amp;&amp; argType2-&gt;isPointerTy())))</div>
1409
+ <div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; {</div>
1410
+ <div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; argMismatch = <span class="keyword">true</span>;</div>
1411
+ <div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; <span class="keywordflow">break</span>;</div>
1412
+ <div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; }</div>
1413
+ <div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; argIter1++;</div>
1414
+ <div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; argIter2++;</div>
1415
+ <div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; }</div>
1416
+ <div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; <span class="keywordflow">if</span> (argMismatch)</div>
1417
+ <div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; <span class="keywordflow">continue</span>;</div>
1418
+ <div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; </div>
1419
+ <div class="line"><a name="l01102"></a><span class="lineno"> 1102</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>
1420
+ <div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mod = fun-&gt;getParent();</div>
1421
+ <div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; <a class="code" href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">FunctionType</a>* funType = fun-&gt;getFunctionType();</div>
1422
+ <div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> funName = fun-&gt;getName().str();</div>
1423
+ <div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; <span class="comment">// Replace app function definition with declaration</span></div>
1424
+ <div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* declaration = Function::Create(funType, GlobalValue::ExternalLinkage, funName, mod);</div>
1425
+ <div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; fun-&gt;replaceAllUsesWith(declaration);</div>
1426
+ <div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; fun-&gt;eraseFromParent();</div>
1427
+ <div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; declaration-&gt;setName(funName);</div>
1428
+ <div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; <span class="comment">// AppDef -&gt; ExtDef in Table 1, AppDef has been changed to AppDecl</span></div>
1429
+ <div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">FunDeclToDefMap</a>[declaration] = owfunc;</div>
1430
+ <div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <span class="comment">// ExtDef -&gt; AppDef in Table 1</span></div>
1431
+ <div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; std::vector&lt;const Function*&gt;&amp; decls = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">FunDefToDeclsMap</a>[owfunc];</div>
1432
+ <div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; decls.push_back(declaration);</div>
1433
+ <div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; <span class="comment">// Keep all called functions in owfunc</span></div>
1434
+ <div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; <span class="comment">// ExtDecl -&gt; ExtDecl in Table 1</span></div>
1435
+ <div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; std::vector&lt;const Function*&gt; calledFunctions = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">LLVMUtil::getCalledFunctions</a>(owfunc);</div>
1436
+ <div class="line"><a name="l01119"></a><span class="lineno"> 1119</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>
1437
+ <div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; <span class="keywordflow">break</span>;</div>
1438
+ <div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; }</div>
1439
+ <div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; }</div>
1440
+ <div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; }</div>
1441
+ <div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;}</div>
1443
1442
  </div><!-- fragment -->
1444
1443
  </div>
1445
1444
  </div>
@@ -1466,47 +1465,47 @@ Friends</h2></td></tr>
1466
1465
  </table>
1467
1466
  </div><div class="memdoc">
1468
1467
 
1469
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01127">1127</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1470
- <div class="fragment"><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;{</div>
1471
- <div class="line"><a name="l01129"></a><span class="lineno"> 1129</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>
1472
- <div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; NameToGlobalsMapTy nameToGlobalsMap;</div>
1473
- <div class="line"><a name="l01131"></a><span class="lineno"> 1131</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>
1474
- <div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; {</div>
1475
- <div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; <span class="comment">// Collect ctor and dtor functions</span></div>
1476
- <div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>&amp; global : mod.globals())</div>
1477
- <div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; {</div>
1478
- <div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; <span class="keywordflow">if</span> (global.hasPrivateLinkage())</div>
1479
- <div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; <span class="keywordflow">continue</span>;</div>
1480
- <div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; <span class="keywordtype">string</span> <a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a> = global.getName().str();</div>
1481
- <div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>.empty())</div>
1482
- <div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; <span class="keywordflow">continue</span>;</div>
1483
- <div class="line"><a name="l01141"></a><span class="lineno"> 1141</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>
1484
- <div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; }</div>
1485
- <div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; }</div>
1486
- <div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; </div>
1487
- <div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; pair : nameToGlobalsMap)</div>
1488
- <div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; {</div>
1489
- <div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> &amp;globals = pair.second;</div>
1490
- <div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; </div>
1491
- <div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> repIt =</div>
1492
- <div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; std::find_if(globals.begin(), globals.end(),</div>
1493
- <div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; [](<a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* g)</div>
1494
- <div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; {</div>
1495
- <div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; return g-&gt;hasInitializer();</div>
1496
- <div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; });</div>
1497
- <div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* rep =</div>
1498
- <div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; repIt != globals.end()</div>
1499
- <div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; ? *repIt</div>
1500
- <div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; <span class="comment">// When there is no initializer, just pick the first one.</span></div>
1501
- <div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; : (assert(!globals.empty() &amp;&amp; <span class="stringliteral">&quot;Empty global set&quot;</span>),</div>
1502
- <div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; *globals.begin());</div>
1503
- <div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; </div>
1504
- <div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* cur : globals)</div>
1505
- <div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; {</div>
1506
- <div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae2a1fa0b908cf372c50af90e62c4bf2b">GlobalDefToRepMap</a>[cur] = rep;</div>
1507
- <div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; }</div>
1508
- <div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; }</div>
1509
- <div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;}</div>
1468
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01126">1126</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1469
+ <div class="fragment"><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;{</div>
1470
+ <div class="line"><a name="l01128"></a><span class="lineno"> 1128</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>
1471
+ <div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; NameToGlobalsMapTy nameToGlobalsMap;</div>
1472
+ <div class="line"><a name="l01130"></a><span class="lineno"> 1130</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>
1473
+ <div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; {</div>
1474
+ <div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; <span class="comment">// Collect ctor and dtor functions</span></div>
1475
+ <div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>&amp; global : mod.globals())</div>
1476
+ <div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; {</div>
1477
+ <div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <span class="keywordflow">if</span> (global.hasPrivateLinkage())</div>
1478
+ <div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; <span class="keywordflow">continue</span>;</div>
1479
+ <div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; <span class="keywordtype">string</span> <a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a> = global.getName().str();</div>
1480
+ <div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>.empty())</div>
1481
+ <div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; <span class="keywordflow">continue</span>;</div>
1482
+ <div class="line"><a name="l01140"></a><span class="lineno"> 1140</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>
1483
+ <div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; }</div>
1484
+ <div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; }</div>
1485
+ <div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; </div>
1486
+ <div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; pair : nameToGlobalsMap)</div>
1487
+ <div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; {</div>
1488
+ <div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> &amp;globals = pair.second;</div>
1489
+ <div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; </div>
1490
+ <div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> repIt =</div>
1491
+ <div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; std::find_if(globals.begin(), globals.end(),</div>
1492
+ <div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; [](<a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* g)</div>
1493
+ <div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; {</div>
1494
+ <div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; return g-&gt;hasInitializer();</div>
1495
+ <div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; });</div>
1496
+ <div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* rep =</div>
1497
+ <div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; repIt != globals.end()</div>
1498
+ <div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; ? *repIt</div>
1499
+ <div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; <span class="comment">// When there is no initializer, just pick the first one.</span></div>
1500
+ <div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; : (assert(!globals.empty() &amp;&amp; <span class="stringliteral">&quot;Empty global set&quot;</span>),</div>
1501
+ <div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; *globals.begin());</div>
1502
+ <div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; </div>
1503
+ <div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* cur : globals)</div>
1504
+ <div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; {</div>
1505
+ <div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae2a1fa0b908cf372c50af90e62c4bf2b">GlobalDefToRepMap</a>[cur] = rep;</div>
1506
+ <div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; }</div>
1507
+ <div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; }</div>
1508
+ <div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;}</div>
1510
1509
  </div><!-- fragment -->
1511
1510
  </div>
1512
1511
  </div>
@@ -1674,59 +1673,59 @@ Friends</h2></td></tr>
1674
1673
  <p>Array's flatten field infor is the same as its element's flatten infor.</p>
1675
1674
  <p>Flatten arrays, map each array element index <code>i</code> to flattened index <code>(i * nfE * totalElemNum)/outArrayElemNum</code> nfE&gt;1 if the array element is a struct with more than one field.</p>
1676
1675
 
1677
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01466">1466</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1678
- <div class="fragment"><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;{</div>
1679
- <div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160; <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> totalElemNum = ty-&gt;getNumElements();</div>
1680
- <div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* elemTy = ty-&gt;getElementType();</div>
1681
- <div class="line"><a name="l01470"></a><span class="lineno"> 1470</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>
1682
- <div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160; {</div>
1683
- <div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160; totalElemNum *= aty-&gt;getNumElements();</div>
1684
- <div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160; elemTy = aty-&gt;getElementType();</div>
1685
- <div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160; }</div>
1686
- <div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160; </div>
1687
- <div class="line"><a name="l01476"></a><span class="lineno"> 1476</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>
1688
- <div class="line"><a name="l01477"></a><span class="lineno"> 1477</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>
1689
- <div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160; </div>
1690
- <div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160; <span class="keywordflow">if</span> (totalElemNum == 0)</div>
1691
- <div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160; {</div>
1692
- <div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(0, elemSvfType, 0);</div>
1693
- <div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(1, 1);</div>
1694
- <div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemSvfType);</div>
1695
- <div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(elemSvfType);</div>
1696
- <div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1697
- <div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160; }</div>
1698
- <div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160; </div>
1699
- <div class="line"><a name="l01491"></a><span class="lineno"> 1491</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>
1700
- <div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160; <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> nfF = elemStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0">getNumOfFlattenFields</a>();</div>
1701
- <div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160; <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> nfE = elemStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">getNumOfFlattenElements</a>();</div>
1702
- <div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> j = 0; j &lt; nfF; j++)</div>
1703
- <div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160; {</div>
1704
- <div class="line"><a name="l01496"></a><span class="lineno"> 1496</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>
1705
- <div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(fieldTy);</div>
1706
- <div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160; }</div>
1707
- <div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160; </div>
1708
- <div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160; <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> outArrayElemNum = ty-&gt;getNumElements();</div>
1709
- <div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> i = 0; i &lt; outArrayElemNum; ++i)</div>
1710
- <div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160; {</div>
1711
- <div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160; <span class="keyword">auto</span> idx = (i * nfE * totalElemNum) / outArrayElemNum;</div>
1712
- <div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(0, elemSvfType, idx);</div>
1713
- <div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160; }</div>
1714
- <div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160; </div>
1715
- <div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> i = 0; i &lt; totalElemNum; ++i)</div>
1716
- <div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160; {</div>
1717
- <div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> j = 0; j &lt; nfE; ++j)</div>
1718
- <div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160; {</div>
1719
- <div class="line"><a name="l01513"></a><span class="lineno"> 1513</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>
1720
- <div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(et);</div>
1721
- <div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160; }</div>
1722
- <div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160; }</div>
1723
- <div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; </div>
1724
- <div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160; assert(stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().size() == nfE * totalElemNum &amp;&amp;</div>
1725
- <div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160; <span class="stringliteral">&quot;typeForArray size incorrect!!!&quot;</span>);</div>
1726
- <div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(nfF, nfE * totalElemNum);</div>
1727
- <div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160; </div>
1728
- <div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1729
- <div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;}</div>
1676
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01465">1465</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1677
+ <div class="fragment"><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;{</div>
1678
+ <div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> totalElemNum = ty-&gt;getNumElements();</div>
1679
+ <div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* elemTy = ty-&gt;getElementType();</div>
1680
+ <div class="line"><a name="l01469"></a><span class="lineno"> 1469</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>
1681
+ <div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160; {</div>
1682
+ <div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160; totalElemNum *= aty-&gt;getNumElements();</div>
1683
+ <div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160; elemTy = aty-&gt;getElementType();</div>
1684
+ <div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160; }</div>
1685
+ <div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160; </div>
1686
+ <div class="line"><a name="l01475"></a><span class="lineno"> 1475</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>
1687
+ <div class="line"><a name="l01476"></a><span class="lineno"> 1476</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>
1688
+ <div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160; </div>
1689
+ <div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; <span class="keywordflow">if</span> (totalElemNum == 0)</div>
1690
+ <div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160; {</div>
1691
+ <div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(0, elemSvfType, 0);</div>
1692
+ <div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(1, 1);</div>
1693
+ <div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemSvfType);</div>
1694
+ <div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(elemSvfType);</div>
1695
+ <div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1696
+ <div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; }</div>
1697
+ <div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160; </div>
1698
+ <div class="line"><a name="l01490"></a><span class="lineno"> 1490</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>
1699
+ <div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160; <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> nfF = elemStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0">getNumOfFlattenFields</a>();</div>
1700
+ <div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160; <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> nfE = elemStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">getNumOfFlattenElements</a>();</div>
1701
+ <div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> j = 0; j &lt; nfF; j++)</div>
1702
+ <div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160; {</div>
1703
+ <div class="line"><a name="l01495"></a><span class="lineno"> 1495</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>
1704
+ <div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(fieldTy);</div>
1705
+ <div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160; }</div>
1706
+ <div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160; </div>
1707
+ <div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160; <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> outArrayElemNum = ty-&gt;getNumElements();</div>
1708
+ <div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> i = 0; i &lt; outArrayElemNum; ++i)</div>
1709
+ <div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160; {</div>
1710
+ <div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160; <span class="keyword">auto</span> idx = (i * nfE * totalElemNum) / outArrayElemNum;</div>
1711
+ <div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(0, elemSvfType, idx);</div>
1712
+ <div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160; }</div>
1713
+ <div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160; </div>
1714
+ <div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> i = 0; i &lt; totalElemNum; ++i)</div>
1715
+ <div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160; {</div>
1716
+ <div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> j = 0; j &lt; nfE; ++j)</div>
1717
+ <div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160; {</div>
1718
+ <div class="line"><a name="l01512"></a><span class="lineno"> 1512</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>
1719
+ <div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(et);</div>
1720
+ <div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160; }</div>
1721
+ <div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160; }</div>
1722
+ <div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160; </div>
1723
+ <div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; assert(stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().size() == nfE * totalElemNum &amp;&amp;</div>
1724
+ <div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160; <span class="stringliteral">&quot;typeForArray size incorrect!!!&quot;</span>);</div>
1725
+ <div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(nfF, nfE * totalElemNum);</div>
1726
+ <div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160; </div>
1727
+ <div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1728
+ <div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;}</div>
1730
1729
  </div><!-- fragment -->
1731
1730
  </div>
1732
1731
  </div>
@@ -1835,18 +1834,18 @@ Friends</h2></td></tr>
1835
1834
  <p>Collect simple type (non-aggregate) info </p>
1836
1835
  <p>Only one field</p>
1837
1836
 
1838
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01586">1586</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1839
- <div class="fragment"><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;{</div>
1840
- <div class="line"><a name="l01589"></a><span class="lineno"> 1589</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>
1841
- <div class="line"><a name="l01590"></a><span class="lineno"> 1590</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>
1842
- <div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(0, svfType, 0);</div>
1843
- <div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160; </div>
1844
- <div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(svfType);</div>
1845
- <div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(svfType);</div>
1846
- <div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(1,1);</div>
1847
- <div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160; </div>
1848
- <div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1849
- <div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;}</div>
1837
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01585">1585</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1838
+ <div class="fragment"><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;{</div>
1839
+ <div class="line"><a name="l01588"></a><span class="lineno"> 1588</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>
1840
+ <div class="line"><a name="l01589"></a><span class="lineno"> 1589</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>
1841
+ <div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(0, svfType, 0);</div>
1842
+ <div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160; </div>
1843
+ <div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(svfType);</div>
1844
+ <div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(svfType);</div>
1845
+ <div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(1,1);</div>
1846
+ <div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160; </div>
1847
+ <div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1848
+ <div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;}</div>
1850
1849
  </div><!-- fragment -->
1851
1850
  </div>
1852
1851
  </div>
@@ -1888,56 +1887,56 @@ Friends</h2></td></tr>
1888
1887
  <p>Fill in struct_info for T. Given a Struct type, we recursively extend and record its fields and types. </p>
1889
1888
  <p>The struct info should not be processed before</p>
1890
1889
 
1891
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01529">1529</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1892
- <div class="fragment"><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;{</div>
1893
- <div class="line"><a name="l01533"></a><span class="lineno"> 1533</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>
1894
- <div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160; </div>
1895
- <div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160; <span class="comment">// Number of fields after flattening the struct</span></div>
1896
- <div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160; numFields = 0;</div>
1897
- <div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160; <span class="comment">// The offset when considering array stride info</span></div>
1898
- <div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160; <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> strideOffset = 0;</div>
1899
- <div class="line"><a name="l01539"></a><span class="lineno"> 1539</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>
1900
- <div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160; {</div>
1901
- <div class="line"><a name="l01541"></a><span class="lineno"> 1541</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>
1902
- <div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160; <span class="comment">// offset with int_32 (s32_t) is large enough and won&#39;t overflow</span></div>
1903
- <div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(numFields, elemSvfTy, strideOffset);</div>
1904
- <div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160; </div>
1905
- <div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;StructType, ArrayType&gt;(elemTy))</div>
1906
- <div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160; {</div>
1907
- <div class="line"><a name="l01547"></a><span class="lineno"> 1547</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>
1908
- <div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160; <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> nfF = subStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0">getNumOfFlattenFields</a>();</div>
1909
- <div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> nfE = subStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">getNumOfFlattenElements</a>();</div>
1910
- <div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160; <span class="comment">// Copy ST&#39;s info, whose element 0 is the size of ST itself.</span></div>
1911
- <div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> j = 0; j &lt; nfF; ++j)</div>
1912
- <div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160; {</div>
1913
- <div class="line"><a name="l01553"></a><span class="lineno"> 1553</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>
1914
- <div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemTy);</div>
1915
- <div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160; }</div>
1916
- <div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; numFields += nfF;</div>
1917
- <div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160; strideOffset += nfE;</div>
1918
- <div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> tpj = 0; tpj &lt; nfE; ++tpj)</div>
1919
- <div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160; {</div>
1920
- <div class="line"><a name="l01560"></a><span class="lineno"> 1560</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>
1921
- <div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(ty);</div>
1922
- <div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160; }</div>
1923
- <div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160; </div>
1924
- <div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160; }</div>
1925
- <div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160; <span class="keywordflow">else</span></div>
1926
- <div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160; {</div>
1927
- <div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160; <span class="comment">// Simple type</span></div>
1928
- <div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160; numFields += 1;</div>
1929
- <div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160; strideOffset += 1;</div>
1930
- <div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemSvfTy);</div>
1931
- <div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(elemSvfTy);</div>
1932
- <div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; }</div>
1933
- <div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160; }</div>
1934
- <div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160; </div>
1935
- <div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160; assert(stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().size() == strideOffset &amp;&amp;</div>
1936
- <div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160; <span class="stringliteral">&quot;typeForStruct size incorrect!&quot;</span>);</div>
1937
- <div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(numFields,strideOffset);</div>
1938
- <div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160; </div>
1939
- <div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1940
- <div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;}</div>
1890
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01528">1528</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1891
+ <div class="fragment"><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;{</div>
1892
+ <div class="line"><a name="l01532"></a><span class="lineno"> 1532</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>
1893
+ <div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160; </div>
1894
+ <div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160; <span class="comment">// Number of fields after flattening the struct</span></div>
1895
+ <div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160; numFields = 0;</div>
1896
+ <div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160; <span class="comment">// The offset when considering array stride info</span></div>
1897
+ <div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160; <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> strideOffset = 0;</div>
1898
+ <div class="line"><a name="l01538"></a><span class="lineno"> 1538</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>
1899
+ <div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160; {</div>
1900
+ <div class="line"><a name="l01540"></a><span class="lineno"> 1540</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>
1901
+ <div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160; <span class="comment">// offset with int_32 (s32_t) is large enough and won&#39;t overflow</span></div>
1902
+ <div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(numFields, elemSvfTy, strideOffset);</div>
1903
+ <div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160; </div>
1904
+ <div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;StructType, ArrayType&gt;(elemTy))</div>
1905
+ <div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160; {</div>
1906
+ <div class="line"><a name="l01546"></a><span class="lineno"> 1546</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>
1907
+ <div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160; <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> nfF = subStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0">getNumOfFlattenFields</a>();</div>
1908
+ <div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160; <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> nfE = subStInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">getNumOfFlattenElements</a>();</div>
1909
+ <div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; <span class="comment">// Copy ST&#39;s info, whose element 0 is the size of ST itself.</span></div>
1910
+ <div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> j = 0; j &lt; nfF; ++j)</div>
1911
+ <div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160; {</div>
1912
+ <div class="line"><a name="l01552"></a><span class="lineno"> 1552</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>
1913
+ <div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemTy);</div>
1914
+ <div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160; }</div>
1915
+ <div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160; numFields += nfF;</div>
1916
+ <div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; strideOffset += nfE;</div>
1917
+ <div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> tpj = 0; tpj &lt; nfE; ++tpj)</div>
1918
+ <div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160; {</div>
1919
+ <div class="line"><a name="l01559"></a><span class="lineno"> 1559</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>
1920
+ <div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(ty);</div>
1921
+ <div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160; }</div>
1922
+ <div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160; </div>
1923
+ <div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160; }</div>
1924
+ <div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160; <span class="keywordflow">else</span></div>
1925
+ <div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160; {</div>
1926
+ <div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160; <span class="comment">// Simple type</span></div>
1927
+ <div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160; numFields += 1;</div>
1928
+ <div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160; strideOffset += 1;</div>
1929
+ <div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemSvfTy);</div>
1930
+ <div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(elemSvfTy);</div>
1931
+ <div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160; }</div>
1932
+ <div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; }</div>
1933
+ <div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160; </div>
1934
+ <div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160; assert(stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().size() == strideOffset &amp;&amp;</div>
1935
+ <div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160; <span class="stringliteral">&quot;typeForStruct size incorrect!&quot;</span>);</div>
1936
+ <div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160; stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(numFields,strideOffset);</div>
1937
+ <div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160; </div>
1938
+ <div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1939
+ <div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;}</div>
1941
1940
  </div><!-- fragment -->
1942
1941
  </div>
1943
1942
  </div>
@@ -1967,37 +1966,37 @@ Friends</h2></td></tr>
1967
1966
 
1968
1967
  <p>Collect a type info. </p>
1969
1968
 
1970
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01372">1372</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1971
- <div class="fragment"><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;{</div>
1972
- <div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160; Type2TypeInfoMap::iterator tit = <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.find(T);</div>
1973
- <div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; <span class="keywordflow">if</span> (tit != <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.end())</div>
1974
- <div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160; {</div>
1975
- <div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160; <span class="keywordflow">return</span> tit-&gt;second;</div>
1976
- <div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160; }</div>
1977
- <div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160; <span class="comment">// No such StInfo for T, create it now.</span></div>
1978
- <div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo;</div>
1979
- <div class="line"><a name="l01381"></a><span class="lineno"> 1381</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>
1980
- <div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; {</div>
1981
- <div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29">collectArrayInfo</a>(aty);</div>
1982
- <div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; }</div>
1983
- <div class="line"><a name="l01385"></a><span class="lineno"> 1385</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>
1984
- <div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; {</div>
1985
- <div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> nf;</div>
1986
- <div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258">collectStructInfo</a>(sty, nf);</div>
1987
- <div class="line"><a name="l01389"></a><span class="lineno"> 1389</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>
1988
- <div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; {</div>
1989
- <div class="line"><a name="l01391"></a><span class="lineno"> 1391</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>
1990
- <div class="line"><a name="l01392"></a><span class="lineno"> 1392</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>
1991
- <div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; }</div>
1992
- <div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; }</div>
1993
- <div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; <span class="keywordflow">else</span></div>
1994
- <div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160; {</div>
1995
- <div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160; stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2">collectSimpleTypeInfo</a>(T);</div>
1996
- <div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160; }</div>
1997
- <div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.emplace(T, stInfo);</div>
1998
- <div class="line"><a name="l01400"></a><span class="lineno"> 1400</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>
1999
- <div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
2000
- <div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;}</div>
1969
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01371">1371</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1970
+ <div class="fragment"><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;{</div>
1971
+ <div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; Type2TypeInfoMap::iterator tit = <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.find(T);</div>
1972
+ <div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160; <span class="keywordflow">if</span> (tit != <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.end())</div>
1973
+ <div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; {</div>
1974
+ <div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160; <span class="keywordflow">return</span> tit-&gt;second;</div>
1975
+ <div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160; }</div>
1976
+ <div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160; <span class="comment">// No such StInfo for T, create it now.</span></div>
1977
+ <div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo;</div>
1978
+ <div class="line"><a name="l01380"></a><span class="lineno"> 1380</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>
1979
+ <div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; {</div>
1980
+ <div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29">collectArrayInfo</a>(aty);</div>
1981
+ <div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; }</div>
1982
+ <div class="line"><a name="l01384"></a><span class="lineno"> 1384</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>
1983
+ <div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; {</div>
1984
+ <div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> nf;</div>
1985
+ <div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258">collectStructInfo</a>(sty, nf);</div>
1986
+ <div class="line"><a name="l01388"></a><span class="lineno"> 1388</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>
1987
+ <div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; {</div>
1988
+ <div class="line"><a name="l01390"></a><span class="lineno"> 1390</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>
1989
+ <div class="line"><a name="l01391"></a><span class="lineno"> 1391</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>
1990
+ <div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; }</div>
1991
+ <div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; }</div>
1992
+ <div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; <span class="keywordflow">else</span></div>
1993
+ <div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; {</div>
1994
+ <div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160; stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2">collectSimpleTypeInfo</a>(T);</div>
1995
+ <div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160; }</div>
1996
+ <div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.emplace(T, stInfo);</div>
1997
+ <div class="line"><a name="l01399"></a><span class="lineno"> 1399</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>
1998
+ <div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160; <span class="keywordflow">return</span> stInfo;</div>
1999
+ <div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;}</div>
2001
2000
  </div><!-- fragment -->
2002
2001
  </div>
2003
2002
  </div>
@@ -2201,30 +2200,30 @@ Friends</h2></td></tr>
2201
2200
  </table>
2202
2201
  </div><div class="memdoc">
2203
2202
 
2204
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01189">1189</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
2205
- <div class="fragment"><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;{</div>
2206
- <div class="line"><a name="l01191"></a><span class="lineno"> 1191</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>
2207
- <div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; {</div>
2208
- <div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> moduleName = mod.getName().str();</div>
2209
- <div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> OutputFilename;</div>
2210
- <div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; std::size_t pos = moduleName.rfind(<span class="charliteral">&#39;.&#39;</span>);</div>
2211
- <div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; <span class="keywordflow">if</span> (pos != std::string::npos)</div>
2212
- <div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; OutputFilename = moduleName.substr(0, pos) + suffix;</div>
2213
- <div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; <span class="keywordflow">else</span></div>
2214
- <div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; OutputFilename = moduleName + suffix;</div>
2215
- <div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; </div>
2216
- <div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; std::error_code EC;</div>
2217
- <div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; <a class="code" href="namespaceSVF.html#a1c7c7ac12791c0ae386283c0a4f127ba">raw_fd_ostream</a> OS(OutputFilename.c_str(), EC, llvm::sys::fs::OF_None);</div>
2218
- <div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; </div>
2219
- <div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;<span class="preprocessor">#if (LLVM_VERSION_MAJOR &gt;= 7)</span></div>
2220
- <div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; WriteBitcodeToFile(mod, OS);</div>
2221
- <div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;<span class="preprocessor">#else</span></div>
2222
- <div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; WriteBitcodeToFile(&amp;mod, OS);</div>
2223
- <div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;<span class="preprocessor">#endif</span></div>
2224
- <div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; </div>
2225
- <div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; OS.flush();</div>
2226
- <div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; }</div>
2227
- <div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;}</div>
2203
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01188">1188</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
2204
+ <div class="fragment"><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;{</div>
2205
+ <div class="line"><a name="l01190"></a><span class="lineno"> 1190</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>
2206
+ <div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; {</div>
2207
+ <div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> moduleName = mod.getName().str();</div>
2208
+ <div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> OutputFilename;</div>
2209
+ <div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; std::size_t pos = moduleName.rfind(<span class="charliteral">&#39;.&#39;</span>);</div>
2210
+ <div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <span class="keywordflow">if</span> (pos != std::string::npos)</div>
2211
+ <div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; OutputFilename = moduleName.substr(0, pos) + suffix;</div>
2212
+ <div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; <span class="keywordflow">else</span></div>
2213
+ <div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; OutputFilename = moduleName + suffix;</div>
2214
+ <div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; </div>
2215
+ <div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; std::error_code EC;</div>
2216
+ <div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; <a class="code" href="namespaceSVF.html#a1c7c7ac12791c0ae386283c0a4f127ba">raw_fd_ostream</a> OS(OutputFilename.c_str(), EC, llvm::sys::fs::OF_None);</div>
2217
+ <div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; </div>
2218
+ <div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;<span class="preprocessor">#if (LLVM_VERSION_MAJOR &gt;= 7)</span></div>
2219
+ <div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; WriteBitcodeToFile(mod, OS);</div>
2220
+ <div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;<span class="preprocessor">#else</span></div>
2221
+ <div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; WriteBitcodeToFile(&amp;mod, OS);</div>
2222
+ <div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;<span class="preprocessor">#endif</span></div>
2223
+ <div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; </div>
2224
+ <div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; OS.flush();</div>
2225
+ <div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; }</div>
2226
+ <div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;}</div>
2228
2227
  </div><!-- fragment -->
2229
2228
  </div>
2230
2229
  </div>
@@ -2588,16 +2587,16 @@ Friends</h2></td></tr>
2588
2587
 
2589
2588
  <p>Get LLVM Type. </p>
2590
2589
 
2591
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01345">1345</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
2592
- <div class="fragment"><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;{</div>
2593
- <div class="line"><a name="l01347"></a><span class="lineno"> 1347</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>
2594
- <div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; {</div>
2595
- <div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; <span class="keywordflow">if</span> (it-&gt;second == T)</div>
2596
- <div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; <span class="keywordflow">return</span> it-&gt;first;</div>
2597
- <div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; }</div>
2598
- <div class="line"><a name="l01352"></a><span class="lineno"> 1352</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>
2599
- <div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; abort();</div>
2600
- <div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;}</div>
2590
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01344">1344</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
2591
+ <div class="fragment"><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;{</div>
2592
+ <div class="line"><a name="l01346"></a><span class="lineno"> 1346</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>
2593
+ <div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; {</div>
2594
+ <div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; <span class="keywordflow">if</span> (it-&gt;second == T)</div>
2595
+ <div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; <span class="keywordflow">return</span> it-&gt;first;</div>
2596
+ <div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; }</div>
2597
+ <div class="line"><a name="l01351"></a><span class="lineno"> 1351</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>
2598
+ <div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; abort();</div>
2599
+ <div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;}</div>
2601
2600
  </div><!-- fragment -->
2602
2601
  </div>
2603
2602
  </div>
@@ -2783,21 +2782,21 @@ Friends</h2></td></tr>
2783
2782
  </table>
2784
2783
  </div><div class="memdoc">
2785
2784
 
2786
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01287">1287</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
2787
- <div class="fragment"><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;{</div>
2788
- <div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; LLVMConst2SVFConstMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.find(oc);</div>
2789
- <div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.end())</div>
2790
- <div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; {</div>
2791
- <div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
2792
- <div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; }</div>
2793
- <div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; <span class="keywordflow">else</span></div>
2794
- <div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; {</div>
2795
- <div class="line"><a name="l01296"></a><span class="lineno"> 1296</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>
2796
- <div class="line"><a name="l01297"></a><span class="lineno"> 1297</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>
2797
- <div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5badf03aeb1ebda02bc186bbb58a892a">addOtherConstantMap</a>(oc,svfoc);</div>
2798
- <div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; <span class="keywordflow">return</span> svfoc;</div>
2799
- <div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; }</div>
2800
- <div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;}</div>
2785
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01286">1286</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
2786
+ <div class="fragment"><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;{</div>
2787
+ <div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; LLVMConst2SVFConstMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.find(oc);</div>
2788
+ <div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.end())</div>
2789
+ <div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160; {</div>
2790
+ <div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
2791
+ <div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; }</div>
2792
+ <div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; <span class="keywordflow">else</span></div>
2793
+ <div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; {</div>
2794
+ <div class="line"><a name="l01295"></a><span class="lineno"> 1295</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>
2795
+ <div class="line"><a name="l01296"></a><span class="lineno"> 1296</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>
2796
+ <div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5badf03aeb1ebda02bc186bbb58a892a">addOtherConstantMap</a>(oc,svfoc);</div>
2797
+ <div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; <span class="keywordflow">return</span> svfoc;</div>
2798
+ <div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; }</div>
2799
+ <div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;}</div>
2801
2800
  </div><!-- fragment -->
2802
2801
  </div>
2803
2802
  </div>
@@ -2884,49 +2883,49 @@ Friends</h2></td></tr>
2884
2883
  </div><div class="memdoc">
2885
2884
  <p>bitwidth == 1 : cint has value from getZExtValue() because <code>bool true</code> will be translated to -1 using sign extension (i.e., getSExtValue). bitwidth &lt;=64 1 : cint has value from getSExtValue() bitwidth &gt;64 1 : cint has value 0 because it represents an invalid int</p>
2886
2885
 
2887
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01240">1240</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
2888
- <div class="fragment"><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;{</div>
2889
- <div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; LLVMConst2SVFConstMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.find(cd);</div>
2890
- <div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.end())</div>
2891
- <div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; {</div>
2892
- <div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; assert(SVFUtil::isa&lt;SVFConstantData&gt;(it-&gt;second) &amp;&amp; <span class="stringliteral">&quot;not a SVFConstantData type!&quot;</span>);</div>
2893
- <div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; <span class="keywordflow">return</span> SVFUtil::cast&lt;SVFConstantData&gt;(it-&gt;second);</div>
2894
- <div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; }</div>
2895
- <div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; <span class="keywordflow">else</span></div>
2896
- <div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; {</div>
2897
- <div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; <a class="code" href="classSVF_1_1SVFConstantData.html">SVFConstantData</a>* svfcd = <span class="keyword">nullptr</span>;</div>
2898
- <div class="line"><a name="l01251"></a><span class="lineno"> 1251</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>
2899
- <div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; {</div>
2900
- <div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; <span class="keywordflow">if</span>(cint-&gt;getBitWidth() == 1)</div>
2901
- <div class="line"><a name="l01257"></a><span class="lineno"> 1257</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>
2902
- <div class="line"><a name="l01258"></a><span class="lineno"> 1258</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>
2903
- <div class="line"><a name="l01259"></a><span class="lineno"> 1259</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>
2904
- <div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; <span class="keywordflow">else</span></div>
2905
- <div class="line"><a name="l01261"></a><span class="lineno"> 1261</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>
2906
- <div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; }</div>
2907
- <div class="line"><a name="l01263"></a><span class="lineno"> 1263</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>
2908
- <div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; {</div>
2909
- <div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; <span class="keywordtype">double</span> dval = 0;</div>
2910
- <div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; <span class="comment">// TODO: Why only double is considered? What about float?</span></div>
2911
- <div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; <span class="keywordflow">if</span>(cfp-&gt;isNormalFP() &amp;&amp; (&amp;cfp-&gt;getValueAPF().getSemantics()== &amp;llvm::APFloatBase::IEEEdouble()))</div>
2912
- <div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; dval = cfp-&gt;getValueAPF().convertToDouble();</div>
2913
- <div class="line"><a name="l01269"></a><span class="lineno"> 1269</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>
2914
- <div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; }</div>
2915
- <div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;ConstantPointerNull&gt;(cd))</div>
2916
- <div class="line"><a name="l01272"></a><span class="lineno"> 1272</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>
2917
- <div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;UndefValue&gt;(cd))</div>
2918
- <div class="line"><a name="l01274"></a><span class="lineno"> 1274</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>
2919
- <div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; <span class="keywordflow">else</span></div>
2920
- <div class="line"><a name="l01276"></a><span class="lineno"> 1276</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>
2921
- <div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; </div>
2922
- <div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; <span class="keywordflow">if</span> (cd-&gt;hasName())</div>
2923
- <div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; svfcd-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName</a>(cd-&gt;getName().str());</div>
2924
- <div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; </div>
2925
- <div class="line"><a name="l01281"></a><span class="lineno"> 1281</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>
2926
- <div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#af4bd487b3b6efe55bf869b869f5e8a80">addConstantDataMap</a>(cd,svfcd);</div>
2927
- <div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; <span class="keywordflow">return</span> svfcd;</div>
2928
- <div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; }</div>
2929
- <div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;}</div>
2886
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01239">1239</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
2887
+ <div class="fragment"><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;{</div>
2888
+ <div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; LLVMConst2SVFConstMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.find(cd);</div>
2889
+ <div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.end())</div>
2890
+ <div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; {</div>
2891
+ <div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; assert(SVFUtil::isa&lt;SVFConstantData&gt;(it-&gt;second) &amp;&amp; <span class="stringliteral">&quot;not a SVFConstantData type!&quot;</span>);</div>
2892
+ <div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; <span class="keywordflow">return</span> SVFUtil::cast&lt;SVFConstantData&gt;(it-&gt;second);</div>
2893
+ <div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; }</div>
2894
+ <div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; <span class="keywordflow">else</span></div>
2895
+ <div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; {</div>
2896
+ <div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; <a class="code" href="classSVF_1_1SVFConstantData.html">SVFConstantData</a>* svfcd = <span class="keyword">nullptr</span>;</div>
2897
+ <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#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>* cint = SVFUtil::dyn_cast&lt;ConstantInt&gt;(cd))</div>
2898
+ <div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; {</div>
2899
+ <div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; <span class="keywordflow">if</span>(cint-&gt;getBitWidth() == 1)</div>
2900
+ <div class="line"><a name="l01256"></a><span class="lineno"> 1256</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>
2901
+ <div class="line"><a name="l01257"></a><span class="lineno"> 1257</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>
2902
+ <div class="line"><a name="l01258"></a><span class="lineno"> 1258</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>
2903
+ <div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; <span class="keywordflow">else</span></div>
2904
+ <div class="line"><a name="l01260"></a><span class="lineno"> 1260</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>
2905
+ <div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; }</div>
2906
+ <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#ad49e4222ba46d9490b87a80df8b46800">ConstantFP</a>* cfp = SVFUtil::dyn_cast&lt;ConstantFP&gt;(cd))</div>
2907
+ <div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; {</div>
2908
+ <div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; <span class="keywordtype">double</span> dval = 0;</div>
2909
+ <div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; <span class="comment">// TODO: Why only double is considered? What about float?</span></div>
2910
+ <div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; <span class="keywordflow">if</span>(cfp-&gt;isNormalFP() &amp;&amp; (&amp;cfp-&gt;getValueAPF().getSemantics()== &amp;llvm::APFloatBase::IEEEdouble()))</div>
2911
+ <div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; dval = cfp-&gt;getValueAPF().convertToDouble();</div>
2912
+ <div class="line"><a name="l01268"></a><span class="lineno"> 1268</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>
2913
+ <div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; }</div>
2914
+ <div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;ConstantPointerNull&gt;(cd))</div>
2915
+ <div class="line"><a name="l01271"></a><span class="lineno"> 1271</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>
2916
+ <div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;UndefValue&gt;(cd))</div>
2917
+ <div class="line"><a name="l01273"></a><span class="lineno"> 1273</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>
2918
+ <div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; <span class="keywordflow">else</span></div>
2919
+ <div class="line"><a name="l01275"></a><span class="lineno"> 1275</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>
2920
+ <div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; </div>
2921
+ <div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; <span class="keywordflow">if</span> (cd-&gt;hasName())</div>
2922
+ <div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; svfcd-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName</a>(cd-&gt;getName().str());</div>
2923
+ <div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; </div>
2924
+ <div class="line"><a name="l01280"></a><span class="lineno"> 1280</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>
2925
+ <div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#af4bd487b3b6efe55bf869b869f5e8a80">addConstantDataMap</a>(cd,svfcd);</div>
2926
+ <div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; <span class="keywordflow">return</span> svfcd;</div>
2927
+ <div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; }</div>
2928
+ <div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;}</div>
2930
2929
  </div><!-- fragment -->
2931
2930
  </div>
2932
2931
  </div>
@@ -3120,24 +3119,24 @@ Friends</h2></td></tr>
3120
3119
  </table>
3121
3120
  </div><div class="memdoc">
3122
3121
 
3123
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01303">1303</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
3124
- <div class="fragment"><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;{</div>
3125
- <div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; LLVMValue2SVFOtherValueMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#ac3e70bd338be3a54330be5dc10321eb3">LLVMValue2SVFOtherValue</a>.find(ov);</div>
3126
- <div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#ac3e70bd338be3a54330be5dc10321eb3">LLVMValue2SVFOtherValue</a>.end())</div>
3127
- <div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; {</div>
3128
- <div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
3129
- <div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; }</div>
3130
- <div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; <span class="keywordflow">else</span></div>
3131
- <div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; {</div>
3132
- <div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; <a class="code" href="classSVF_1_1SVFOtherValue.html">SVFOtherValue</a>* svfov =</div>
3133
- <div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; SVFUtil::isa&lt;MetadataAsValue&gt;(ov)</div>
3134
- <div class="line"><a name="l01314"></a><span class="lineno"> 1314</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>
3135
- <div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; : new <a class="code" href="classSVF_1_1SVFOtherValue.html">SVFOtherValue</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ov-&gt;getType()));</div>
3136
- <div class="line"><a name="l01316"></a><span class="lineno"> 1316</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>
3137
- <div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a023ea6f179433fa4d007c98ddc38e3c5">addOtherValueMap</a>(ov,svfov);</div>
3138
- <div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; <span class="keywordflow">return</span> svfov;</div>
3139
- <div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160; }</div>
3140
- <div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;}</div>
3122
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01302">1302</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
3123
+ <div class="fragment"><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;{</div>
3124
+ <div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; LLVMValue2SVFOtherValueMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#ac3e70bd338be3a54330be5dc10321eb3">LLVMValue2SVFOtherValue</a>.find(ov);</div>
3125
+ <div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#ac3e70bd338be3a54330be5dc10321eb3">LLVMValue2SVFOtherValue</a>.end())</div>
3126
+ <div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; {</div>
3127
+ <div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
3128
+ <div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; }</div>
3129
+ <div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; <span class="keywordflow">else</span></div>
3130
+ <div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; {</div>
3131
+ <div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; <a class="code" href="classSVF_1_1SVFOtherValue.html">SVFOtherValue</a>* svfov =</div>
3132
+ <div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; SVFUtil::isa&lt;MetadataAsValue&gt;(ov)</div>
3133
+ <div class="line"><a name="l01313"></a><span class="lineno"> 1313</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>
3134
+ <div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; : new <a class="code" href="classSVF_1_1SVFOtherValue.html">SVFOtherValue</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ov-&gt;getType()));</div>
3135
+ <div class="line"><a name="l01315"></a><span class="lineno"> 1315</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>
3136
+ <div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a023ea6f179433fa4d007c98ddc38e3c5">addOtherValueMap</a>(ov,svfov);</div>
3137
+ <div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; <span class="keywordflow">return</span> svfov;</div>
3138
+ <div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; }</div>
3139
+ <div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;}</div>
3141
3140
  </div><!-- fragment -->
3142
3141
  </div>
3143
3142
  </div>
@@ -3160,18 +3159,18 @@ Friends</h2></td></tr>
3160
3159
  <p>Get or create <a class="el" href="classSVF_1_1SVFType.html">SVFType</a> and typeinfo. </p>
3161
3160
  <p>Get or create <a class="el" href="classSVF_1_1SVFType.html">SVFType</a> and typeinfo </p>
3162
3161
 
3163
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01359">1359</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
3164
- <div class="fragment"><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;{</div>
3165
- <div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; assert(T &amp;&amp; <span class="stringliteral">&quot;SVFType should not be null&quot;</span>);</div>
3166
- <div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; LLVMType2SVFTypeMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.find(T);</div>
3167
- <div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; <span class="keywordflow">if</span> (it != <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.end())</div>
3168
- <div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
3169
- <div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; </div>
3170
- <div class="line"><a name="l01366"></a><span class="lineno"> 1366</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>
3171
- <div class="line"><a name="l01367"></a><span class="lineno"> 1367</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>
3172
- <div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; svfType-&gt;<a class="code" href="classSVF_1_1SVFType.html#aef5999ada62dac3cc946d832ac66948c">setTypeInfo</a>(stinfo);</div>
3173
- <div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; <span class="keywordflow">return</span> svfType;</div>
3174
- <div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;}</div>
3162
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01358">1358</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
3163
+ <div class="fragment"><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;{</div>
3164
+ <div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; assert(T &amp;&amp; <span class="stringliteral">&quot;SVFType should not be null&quot;</span>);</div>
3165
+ <div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; LLVMType2SVFTypeMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.find(T);</div>
3166
+ <div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; <span class="keywordflow">if</span> (it != <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.end())</div>
3167
+ <div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
3168
+ <div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; </div>
3169
+ <div class="line"><a name="l01365"></a><span class="lineno"> 1365</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>
3170
+ <div class="line"><a name="l01366"></a><span class="lineno"> 1366</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>
3171
+ <div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; svfType-&gt;<a class="code" href="classSVF_1_1SVFType.html#aef5999ada62dac3cc946d832ac66948c">setTypeInfo</a>(stinfo);</div>
3172
+ <div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; <span class="keywordflow">return</span> svfType;</div>
3173
+ <div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;}</div>
3175
3174
  </div><!-- fragment -->
3176
3175
  </div>
3177
3176
  </div>
@@ -3191,28 +3190,28 @@ Friends</h2></td></tr>
3191
3190
  </table>
3192
3191
  </div><div class="memdoc">
3193
3192
 
3194
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01322">1322</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
3195
- <div class="fragment"><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;{</div>
3196
- <div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = SVFUtil::dyn_cast&lt;Function&gt;(value))</div>
3197
- <div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(fun);</div>
3198
- <div class="line"><a name="l01326"></a><span class="lineno"> 1326</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>
3199
- <div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab0c0f321b6bfbfab2e4ff06d81920ab9">getSVFBasicBlock</a>(bb);</div>
3200
- <div class="line"><a name="l01328"></a><span class="lineno"> 1328</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>
3201
- <div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">getSVFInstruction</a>(inst);</div>
3202
- <div class="line"><a name="l01330"></a><span class="lineno"> 1330</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>
3203
- <div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ad3f66b40ad360003845253f452d6a711">getSVFArgument</a>(arg);</div>
3204
- <div class="line"><a name="l01332"></a><span class="lineno"> 1332</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>
3205
- <div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; {</div>
3206
- <div class="line"><a name="l01334"></a><span class="lineno"> 1334</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>
3207
- <div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727">getSVFConstantData</a>(cd);</div>
3208
- <div class="line"><a name="l01336"></a><span class="lineno"> 1336</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>
3209
- <div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a3cbba2eb702a3481478b2590dfffa352">getSVFGlobalValue</a>(glob);</div>
3210
- <div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; <span class="keywordflow">else</span></div>
3211
- <div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc">getOtherSVFConstant</a>(cons);</div>
3212
- <div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160; }</div>
3213
- <div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; <span class="keywordflow">else</span></div>
3214
- <div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965">getSVFOtherValue</a>(value);</div>
3215
- <div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;}</div>
3193
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01321">1321</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
3194
+ <div class="fragment"><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;{</div>
3195
+ <div class="line"><a name="l01323"></a><span class="lineno"> 1323</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>
3196
+ <div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(fun);</div>
3197
+ <div class="line"><a name="l01325"></a><span class="lineno"> 1325</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>
3198
+ <div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab0c0f321b6bfbfab2e4ff06d81920ab9">getSVFBasicBlock</a>(bb);</div>
3199
+ <div class="line"><a name="l01327"></a><span class="lineno"> 1327</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>
3200
+ <div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">getSVFInstruction</a>(inst);</div>
3201
+ <div class="line"><a name="l01329"></a><span class="lineno"> 1329</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>
3202
+ <div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ad3f66b40ad360003845253f452d6a711">getSVFArgument</a>(arg);</div>
3203
+ <div class="line"><a name="l01331"></a><span class="lineno"> 1331</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>
3204
+ <div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; {</div>
3205
+ <div class="line"><a name="l01333"></a><span class="lineno"> 1333</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>
3206
+ <div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727">getSVFConstantData</a>(cd);</div>
3207
+ <div class="line"><a name="l01335"></a><span class="lineno"> 1335</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>
3208
+ <div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a3cbba2eb702a3481478b2590dfffa352">getSVFGlobalValue</a>(glob);</div>
3209
+ <div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; <span class="keywordflow">else</span></div>
3210
+ <div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc">getOtherSVFConstant</a>(cons);</div>
3211
+ <div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; }</div>
3212
+ <div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160; <span class="keywordflow">else</span></div>
3213
+ <div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965">getSVFOtherValue</a>(value);</div>
3214
+ <div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;}</div>
3216
3215
  </div><!-- fragment -->
3217
3216
  </div>
3218
3217
  </div>
@@ -3933,24 +3932,24 @@ Friends</h2></td></tr>
3933
3932
  </table>
3934
3933
  </div><div class="memdoc">
3935
3934
 
3936
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01169">1169</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
3937
- <div class="fragment"><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;{</div>
3938
- <div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Function*&gt;</a> removedFuncList;</div>
3939
- <div class="line"><a name="l01172"></a><span class="lineno"> 1172</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>
3940
- <div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; {</div>
3941
- <div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; <span class="keywordflow">if</span> (mod.getName().str() != <a class="code" href="classSVF_1_1ExtAPI.html#a58a764c27354d5f9b70995d30de65f1d">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#a26bc352dbfd1b2fe34106a73f1f6d50c">getExtBcPath</a>())</div>
3942
- <div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; <span class="keywordflow">continue</span>;</div>
3943
- <div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&amp; func : mod.functions())</div>
3944
- <div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; {</div>
3945
- <div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LLVMModuleSet.html#abbca1044dc59299224598ec2ba17fe7e">isCalledExtFunction</a>(&amp;func))</div>
3946
- <div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; {</div>
3947
- <div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; removedFuncList.insert(&amp;func);</div>
3948
- <div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a7968a00d41166d18acb684052ed1eed8">ExtFun2Annotations</a>.erase(&amp;func);</div>
3949
- <div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; }</div>
3950
- <div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; }</div>
3951
- <div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; }</div>
3952
- <div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a484bbbc9713fc4be173943e6bc177fb5">LLVMUtil::removeUnusedFuncsAndAnnotationsAndGlobalVariables</a>(removedFuncList);</div>
3953
- <div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;}</div>
3935
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01168">1168</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
3936
+ <div class="fragment"><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;{</div>
3937
+ <div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Function*&gt;</a> removedFuncList;</div>
3938
+ <div class="line"><a name="l01171"></a><span class="lineno"> 1171</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>
3939
+ <div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; {</div>
3940
+ <div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; <span class="keywordflow">if</span> (mod.getName().str() != <a class="code" href="classSVF_1_1ExtAPI.html#a58a764c27354d5f9b70995d30de65f1d">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#a26bc352dbfd1b2fe34106a73f1f6d50c">getExtBcPath</a>())</div>
3941
+ <div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; <span class="keywordflow">continue</span>;</div>
3942
+ <div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&amp; func : mod.functions())</div>
3943
+ <div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; {</div>
3944
+ <div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LLVMModuleSet.html#abbca1044dc59299224598ec2ba17fe7e">isCalledExtFunction</a>(&amp;func))</div>
3945
+ <div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; {</div>
3946
+ <div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; removedFuncList.insert(&amp;func);</div>
3947
+ <div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a7968a00d41166d18acb684052ed1eed8">ExtFun2Annotations</a>.erase(&amp;func);</div>
3948
+ <div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; }</div>
3949
+ <div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; }</div>
3950
+ <div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; }</div>
3951
+ <div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a484bbbc9713fc4be173943e6bc177fb5">LLVMUtil::removeUnusedFuncsAndAnnotationsAndGlobalVariables</a>(removedFuncList);</div>
3952
+ <div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;}</div>
3954
3953
  </div><!-- fragment -->
3955
3954
  </div>
3956
3955
  </div>
@@ -3988,31 +3987,31 @@ Friends</h2></td></tr>
3988
3987
  </table>
3989
3988
  </div><div class="memdoc">
3990
3989
 
3991
- <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01214">1214</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
3992
- <div class="fragment"><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;{</div>
3993
- <div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a7f8e61cf5d838d7a2e862bc6955f16be">SVFValue2LLVMValue</a>[svfvalue] = val;</div>
3994
- <div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; </div>
3995
- <div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07c785d931cef3c61e3dab4c615770be">LLVMUtil::isPtrInUncalledFunction</a>(val))</div>
3996
- <div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; svfvalue-&gt;setPtrInUncalledFunction();</div>
3997
- <div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">LLVMUtil::isConstDataOrAggData</a>(val))</div>
3998
- <div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; svfvalue-&gt;setConstDataOrAggData();</div>
3999
- <div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; </div>
4000
- <div class="line"><a name="l01223"></a><span class="lineno"> 1223</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>
4001
- <div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; {</div>
4002
- <div class="line"><a name="l01225"></a><span class="lineno"> 1225</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#a973ee05189ca5bbe832be00f2be9baa4">LLVMUtil::getGlobalRep</a>(val);</div>
4003
- <div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; assert(SVFUtil::isa&lt;GlobalValue&gt;(llvmVal) &amp;&amp; <span class="stringliteral">&quot;not a GlobalValue?&quot;</span>);</div>
4004
- <div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; glob-&gt;setDefGlobalForMultipleModule(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a3cbba2eb702a3481478b2590dfffa352">getSVFGlobalValue</a>(SVFUtil::cast&lt;GlobalValue&gt;(llvmVal)));</div>
4005
- <div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; }</div>
4006
- <div class="line"><a name="l01229"></a><span class="lineno"> 1229</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>
4007
- <div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; {</div>
4008
- <div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = SVFUtil::cast&lt;Function&gt;(val);</div>
4009
- <div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; svffun-&gt;setIsNotRet(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a651b6a1cf3665277d2241220bb145aed">LLVMUtil::functionDoesNotRet</a>(func));</div>
4010
- <div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; svffun-&gt;setIsUncalledFunction(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">LLVMUtil::isUncalledFunction</a>(func));</div>
4011
- <div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; svffun-&gt;setDefFunForMultipleModule(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a21636200f17c62034720c4287aa818b5">LLVMUtil::getDefFunForMultipleModule</a>(func)));</div>
4012
- <div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; }</div>
4013
- <div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; </div>
4014
- <div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; svfvalue-&gt;setSourceLoc(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">LLVMUtil::getSourceLoc</a>(val));</div>
4015
- <div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;}</div>
3990
+ <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01213">1213</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
3991
+ <div class="fragment"><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;{</div>
3992
+ <div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a7f8e61cf5d838d7a2e862bc6955f16be">SVFValue2LLVMValue</a>[svfvalue] = val;</div>
3993
+ <div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; </div>
3994
+ <div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07c785d931cef3c61e3dab4c615770be">LLVMUtil::isPtrInUncalledFunction</a>(val))</div>
3995
+ <div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; svfvalue-&gt;setPtrInUncalledFunction();</div>
3996
+ <div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">LLVMUtil::isConstDataOrAggData</a>(val))</div>
3997
+ <div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; svfvalue-&gt;setConstDataOrAggData();</div>
3998
+ <div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; </div>
3999
+ <div class="line"><a name="l01222"></a><span class="lineno"> 1222</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>
4000
+ <div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; {</div>
4001
+ <div class="line"><a name="l01224"></a><span class="lineno"> 1224</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#a973ee05189ca5bbe832be00f2be9baa4">LLVMUtil::getGlobalRep</a>(val);</div>
4002
+ <div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; assert(SVFUtil::isa&lt;GlobalValue&gt;(llvmVal) &amp;&amp; <span class="stringliteral">&quot;not a GlobalValue?&quot;</span>);</div>
4003
+ <div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; glob-&gt;setDefGlobalForMultipleModule(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a3cbba2eb702a3481478b2590dfffa352">getSVFGlobalValue</a>(SVFUtil::cast&lt;GlobalValue&gt;(llvmVal)));</div>
4004
+ <div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; }</div>
4005
+ <div class="line"><a name="l01228"></a><span class="lineno"> 1228</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>
4006
+ <div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160; {</div>
4007
+ <div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = SVFUtil::cast&lt;Function&gt;(val);</div>
4008
+ <div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; svffun-&gt;setIsNotRet(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a651b6a1cf3665277d2241220bb145aed">LLVMUtil::functionDoesNotRet</a>(func));</div>
4009
+ <div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; svffun-&gt;setIsUncalledFunction(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">LLVMUtil::isUncalledFunction</a>(func));</div>
4010
+ <div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; svffun-&gt;setDefFunForMultipleModule(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a21636200f17c62034720c4287aa818b5">LLVMUtil::getDefFunForMultipleModule</a>(func)));</div>
4011
+ <div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; }</div>
4012
+ <div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; </div>
4013
+ <div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; svfvalue-&gt;setSourceLoc(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">LLVMUtil::getSourceLoc</a>(val));</div>
4014
+ <div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;}</div>
4016
4015
  </div><!-- fragment -->
4017
4016
  </div>
4018
4017
  </div>
@@ -4594,9 +4593,9 @@ Friends</h2></td></tr>
4594
4593
  <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#l00094">LLVMModule.h:94</a></div></div>
4595
4594
  <div class="ttc" id="anamespaceSVF_1_1cppUtil_html_a374e7c0b161a77f4d693e13b99ed6283"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a374e7c0b161a77f4d693e13b99ed6283">SVF::cppUtil::getVCallVtblPtr</a></div><div class="ttdeci">const Value * getVCallVtblPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8cpp_source.html#l00472">CppUtil.cpp:472</a></div></div>
4596
4595
  <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#l00131">LLVMModule.h:131</a></div></div>
4597
- <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#l01127">LLVMModule.cpp:1127</a></div></div>
4598
- <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#l00651">LLVMUtil.cpp:651</a></div></div>
4599
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a484bbbc9713fc4be173943e6bc177fb5"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a484bbbc9713fc4be173943e6bc177fb5">SVF::LLVMUtil::removeUnusedFuncsAndAnnotationsAndGlobalVariables</a></div><div class="ttdeci">void removeUnusedFuncsAndAnnotationsAndGlobalVariables(Set&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#l00565">LLVMUtil.cpp:565</a></div></div>
4596
+ <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#l01126">LLVMModule.cpp:1126</a></div></div>
4597
+ <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#l00678">LLVMUtil.cpp:678</a></div></div>
4598
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a484bbbc9713fc4be173943e6bc177fb5"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a484bbbc9713fc4be173943e6bc177fb5">SVF::LLVMUtil::removeUnusedFuncsAndAnnotationsAndGlobalVariables</a></div><div class="ttdeci">void removeUnusedFuncsAndAnnotationsAndGlobalVariables(Set&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#l00564">LLVMUtil.cpp:564</a></div></div>
4600
4599
  <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#l00071">LLVMModule.cpp:71</a></div></div>
4601
4600
  <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#l00225">SVFType.h:225</a></div></div>
4602
4601
  <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>
@@ -4605,9 +4604,10 @@ Friends</h2></td></tr>
4605
4604
  <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#l00132">BasicTypes.h:132</a></div></div>
4606
4605
  <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>
4607
4606
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a9fd7f0170bffa7c1b927cdb0de98fd15"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a9fd7f0170bffa7c1b927cdb0de98fd15">SVF::LLVMModuleSet::LLVMFunc2SVFFunc</a></div><div class="ttdeci">LLVMFun2SVFFunMap LLVMFunc2SVFFunc</div><div class="ttdoc">Map an LLVM Function to an SVF Function.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00086">LLVMModule.h:86</a></div></div>
4608
- <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#l01404">LLVMModule.cpp:1404</a></div></div>
4607
+ <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#l01403">LLVMModule.cpp:1403</a></div></div>
4609
4608
  <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#l00546">SVFValue.h:546</a></div></div>
4610
4609
  <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#l00136">LLVMModule.h:136</a></div></div>
4610
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_af4c9c5d445107b1816a4be93852ba612"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#af4c9c5d445107b1816a4be93852ba612">SVF::LLVMUtil::restoreFuncName</a></div><div class="ttdeci">std::string restoreFuncName(std::string funcName)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00612">LLVMUtil.cpp:612</a></div></div>
4611
4611
  <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#l00073">BasicTypes.h:73</a></div></div>
4612
4612
  <div class="ttc" id="aCommandLine_8h_html_a2429346d37bd4c40889bd7c6d319d9da"><div class="ttname"><a href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00018">CommandLine.h:18</a></div></div>
4613
4613
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_acde6292e719c80f93d3d1c344ab442cd"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">SVF::LLVMModuleSet::modules</a></div><div class="ttdeci">std::vector&lt; std::reference_wrapper&lt; Module &gt; &gt; modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00073">LLVMModule.h:73</a></div></div>
@@ -4627,7 +4627,7 @@ Friends</h2></td></tr>
4627
4627
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a6e670254385050b9a5e612f881b07b9c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a6e670254385050b9a5e612f881b07b9c">SVF::LLVMModuleSet::getDefinition</a></div><div class="ttdeci">const Function * getDefinition(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00283">LLVMModule.h:283</a></div></div>
4628
4628
  <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#l00085">BasicTypes.h:85</a></div></div>
4629
4629
  <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#l00080">LLVMModule.h:80</a></div></div>
4630
- <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#l01189">LLVMModule.cpp:1189</a></div></div>
4630
+ <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#l01188">LLVMModule.cpp:1188</a></div></div>
4631
4631
  <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#l00226">LLVMModule.h:226</a></div></div>
4632
4632
  <div class="ttc" id="aclassSVF_1_1SVFValue_html_a8325774df9d65d78ef6a66fef59b9a97"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">SVF::SVFValue::setName</a></div><div class="ttdeci">void setName(const std::string &amp;n)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00247">SVFValue.h:247</a></div></div>
4633
4633
  <div class="ttc" id="anamespaceSVF_html_a3d9e7f32dc17fe8d40f8d6a011403b91"><div class="ttname"><a href="namespaceSVF.html#a3d9e7f32dc17fe8d40f8d6a011403b91">SVF::IntegerType</a></div><div class="ttdeci">llvm::IntegerType IntegerType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00096">BasicTypes.h:96</a></div></div>
@@ -4640,17 +4640,17 @@ Friends</h2></td></tr>
4640
4640
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a21636200f17c62034720c4287aa818b5"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a21636200f17c62034720c4287aa818b5">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_8cpp_source.html#l00039">LLVMUtil.cpp:39</a></div></div>
4641
4641
  <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#l00512">SVFType.h:512</a></div></div>
4642
4642
  <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#l00160">LLVMModule.h:160</a></div></div>
4643
- <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#l01303">LLVMModule.cpp:1303</a></div></div>
4643
+ <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#l01302">LLVMModule.cpp:1302</a></div></div>
4644
4644
  <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#l00139">SVFType.h:139</a></div></div>
4645
4645
  <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#l00169">LLVMUtil.cpp:169</a></div></div>
4646
4646
  <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#l00937">SVFValue.h:937</a></div></div>
4647
- <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#l01359">LLVMModule.cpp:1359</a></div></div>
4647
+ <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#l01358">LLVMModule.cpp:1358</a></div></div>
4648
4648
  <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>
4649
4649
  <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#l01091">SVFValue.h:1091</a></div></div>
4650
4650
  <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#l00090">LLVMModule.h:90</a></div></div>
4651
4651
  <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#l00112">LLVMModule.h:112</a></div></div>
4652
4652
  <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#l00205">LLVMModule.h:205</a></div></div>
4653
- <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#l01529">LLVMModule.cpp:1529</a></div></div>
4653
+ <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#l01528">LLVMModule.cpp:1528</a></div></div>
4654
4654
  <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#l00081">BasicTypes.h:81</a></div></div>
4655
4655
  <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>
4656
4656
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8afb7ab3ee4632e78d546e549110e74c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8afb7ab3ee4632e78d546e549110e74c">SVF::LLVMModuleSet::getModule</a></div><div class="ttdeci">Module * getModule(u32_t idx) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00141">LLVMModule.h:141</a></div></div>
@@ -4660,7 +4660,7 @@ Friends</h2></td></tr>
4660
4660
  <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#l00145">SVFType.h:145</a></div></div>
4661
4661
  <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#l00133">LLVMUtil.cpp:133</a></div></div>
4662
4662
  <div class="ttc" id="acJSON_8h_html_a25d22ecc7e656d2c59332072684e8766"><div class="ttname"><a href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a></div><div class="ttdeci">const char *const name</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00264">cJSON.h:264</a></div></div>
4663
- <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#l00516">LLVMUtil.cpp:516</a></div></div>
4663
+ <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#l00515">LLVMUtil.cpp:515</a></div></div>
4664
4664
  <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#l00490">SVFType.h:490</a></div></div>
4665
4665
  <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="GeneralType_8h_source.html#l00048">GeneralType.h:48</a></div></div>
4666
4666
  <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#l00253">BasicTypes.h:253</a></div></div>
@@ -4706,14 +4706,14 @@ Friends</h2></td></tr>
4706
4706
  <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#l00344">SVFType.h:344</a></div></div>
4707
4707
  <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#l00833">SVFValue.h:833</a></div></div>
4708
4708
  <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#l00086">BasicTypes.h:86</a></div></div>
4709
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aeaf96b0a6ee4b321a173374137ebe5e4"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aeaf96b0a6ee4b321a173374137ebe5e4">SVF::LLVMModuleSet::removeUnusedExtAPIs</a></div><div class="ttdeci">void removeUnusedExtAPIs()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01169">LLVMModule.cpp:1169</a></div></div>
4710
- <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#l00340">LLVMUtil.h:340</a></div></div>
4709
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aeaf96b0a6ee4b321a173374137ebe5e4"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aeaf96b0a6ee4b321a173374137ebe5e4">SVF::LLVMModuleSet::removeUnusedExtAPIs</a></div><div class="ttdeci">void removeUnusedExtAPIs()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01168">LLVMModule.cpp:1168</a></div></div>
4710
+ <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#l00342">LLVMUtil.h:342</a></div></div>
4711
4711
  <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#l00093">BasicTypes.h:93</a></div></div>
4712
4712
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afcde3a8e7d5eff76d017bd5c4b84cd1c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afcde3a8e7d5eff76d017bd5c4b84cd1c">SVF::LLVMModuleSet::getTypeInference</a></div><div class="ttdeci">ObjTypeInference * getTypeInference()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00088">LLVMModule.cpp:88</a></div></div>
4713
4713
  <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#l00105">BasicTypes.h:105</a></div></div>
4714
4714
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
4715
4715
  <div class="ttc" id="aclassSVF_1_1SVFOtherValue_html"><div class="ttname"><a href="classSVF_1_1SVFOtherValue.html">SVF::SVFOtherValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01071">SVFValue.h:1071</a></div></div>
4716
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad8a8c32a09340f491fffffcb07dd7a41"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad8a8c32a09340f491fffffcb07dd7a41">SVF::LLVMUtil::isIRFile</a></div><div class="ttdeci">bool isIRFile(const std::string &amp;filename)</div><div class="ttdoc">Check whether a file is an LLVM IR file.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00413">LLVMUtil.cpp:413</a></div></div>
4716
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad8a8c32a09340f491fffffcb07dd7a41"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad8a8c32a09340f491fffffcb07dd7a41">SVF::LLVMUtil::isIRFile</a></div><div class="ttdeci">bool isIRFile(const std::string &amp;filename)</div><div class="ttdoc">Check whether a file is an LLVM IR file.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00412">LLVMUtil.cpp:412</a></div></div>
4717
4717
  <div class="ttc" id="aclassSVF_1_1Options_html_a3a718b0a27c2d13878c0718af97ad73d"><div class="ttname"><a href="classSVF_1_1Options.html#a3a718b0a27c2d13878c0718af97ad73d">SVF::Options::SVFMain</a></div><div class="ttdeci">static const Option&lt; bool &gt; SVFMain</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00202">Options.h:202</a></div></div>
4718
4718
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a7968a00d41166d18acb684052ed1eed8"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a7968a00d41166d18acb684052ed1eed8">SVF::LLVMModuleSet::ExtFun2Annotations</a></div><div class="ttdeci">Fun2AnnoMap ExtFun2Annotations</div><div class="ttdoc">Record annotations of function in extapi.bc.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00082">LLVMModule.h:82</a></div></div>
4719
4719
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a9fe3fa15a6a0ec25864cb8439a45596e"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a9fe3fa15a6a0ec25864cb8439a45596e">SVF::LLVMModuleSet::getMainLLVMModule</a></div><div class="ttdeci">Module * getMainLLVMModule() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00329">LLVMModule.h:329</a></div></div>
@@ -4724,11 +4724,11 @@ Friends</h2></td></tr>
4724
4724
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a32558da64f03452c502ec57d1e106427"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a32558da64f03452c502ec57d1e106427">SVF::LLVMModuleSet::hasDefinition</a></div><div class="ttdeci">bool hasDefinition(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00276">LLVMModule.h:276</a></div></div>
4725
4725
  <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#l00856">SVFValue.h:856</a></div></div>
4726
4726
  <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>
4727
- <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#l01586">LLVMModule.cpp:1586</a></div></div>
4727
+ <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#l01585">LLVMModule.cpp:1585</a></div></div>
4728
4728
  <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#l00072">LLVMModule.h:72</a></div></div>
4729
4729
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a66f51cd41e93ad055c4a0c2874e73fae"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a66f51cd41e93ad055c4a0c2874e73fae">SVF::SVFBasicBlock::getSuccessors</a></div><div class="ttdeci">const std::vector&lt; const SVFBasicBlock * &gt; &amp; getSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00612">SVFValue.h:612</a></div></div>
4730
4730
  <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#l00070">LLVMModule.h:70</a></div></div>
4731
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a973ee05189ca5bbe832be00f2be9baa4"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a973ee05189ca5bbe832be00f2be9baa4">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_8cpp_source.html#l00618">LLVMUtil.cpp:618</a></div></div>
4731
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a973ee05189ca5bbe832be00f2be9baa4"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a973ee05189ca5bbe832be00f2be9baa4">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_8cpp_source.html#l00645">LLVMUtil.cpp:645</a></div></div>
4732
4732
  <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#l00132">SVFType.h:132</a></div></div>
4733
4733
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00080">SymbolTableInfo.cpp:80</a></div></div>
4734
4734
  <div class="ttc" id="aclassSVF_1_1ExtAPI_html_a58a764c27354d5f9b70995d30de65f1d"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a58a764c27354d5f9b70995d30de65f1d">SVF::ExtAPI::getExtAPI</a></div><div class="ttdeci">static ExtAPI * getExtAPI()</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00042">ExtAPI.cpp:42</a></div></div>
@@ -4743,7 +4743,7 @@ Friends</h2></td></tr>
4743
4743
  <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#l00154">LLVMUtil.h:154</a></div></div>
4744
4744
  <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#l00713">SVFValue.h:713</a></div></div>
4745
4745
  <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#l00135">BasicTypes.h:135</a></div></div>
4746
- <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#l01466">LLVMModule.cpp:1466</a></div></div>
4746
+ <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#l01465">LLVMModule.cpp:1465</a></div></div>
4747
4747
  <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#l00166">LLVMModule.cpp:166</a></div></div>
4748
4748
  <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#l00092">LLVMModule.h:92</a></div></div>
4749
4749
  <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>
@@ -4765,11 +4765,11 @@ Friends</h2></td></tr>
4765
4765
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ac6a5540354696f4c9170e0a5832ba70e"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac6a5540354696f4c9170e0a5832ba70e">SVF::LLVMModuleSet::initSVFFunction</a></div><div class="ttdeci">void initSVFFunction()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00299">LLVMModule.cpp:299</a></div></div>
4766
4766
  <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#l00275">BasicTypes.h:275</a></div></div>
4767
4767
  <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#l00044">SymbolTableBuilder.h:44</a></div></div>
4768
- <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#l01240">LLVMModule.cpp:1240</a></div></div>
4768
+ <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#l01239">LLVMModule.cpp:1239</a></div></div>
4769
4769
  <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>
4770
4770
  <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#l00291">SVFType.h:291</a></div></div>
4771
4771
  <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#l00094">SVFStat.h:94</a></div></div>
4772
- <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#l01287">LLVMModule.cpp:1287</a></div></div>
4772
+ <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#l01286">LLVMModule.cpp:1286</a></div></div>
4773
4773
  <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>
4774
4774
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a0d5031bd11b6372803082111ec2cb4f6"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a0d5031bd11b6372803082111ec2cb4f6">SVF::SVFFunction::addBasicBlock</a></div><div class="ttdeci">void addBasicBlock(const SVFBasicBlock *bb)</div><div class="ttdoc">a 'single' basic block having no successors and containing return instruction in a function</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00327">SVFValue.h:327</a></div></div>
4775
4775
  <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#l00219">LLVMModule.h:219</a></div></div>
@@ -4785,14 +4785,14 @@ Friends</h2></td></tr>
4785
4785
  <div class="ttc" id="anamespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00119">BasicTypes.h:119</a></div></div>
4786
4786
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a4b678ce8642fcdab0582cd626b7ac7c5"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a4b678ce8642fcdab0582cd626b7ac7c5">SVF::LLVMModuleSet::owned_ctx</a></div><div class="ttdeci">std::unique_ptr&lt; LLVMContext &gt; owned_ctx</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00071">LLVMModule.h:71</a></div></div>
4787
4787
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_ad07f95e790b5c3a50c864155aa20a083"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#ad07f95e790b5c3a50c864155aa20a083">SVF::SVFLoopAndDomInfo::getPostDomTreeMap</a></div><div class="ttdeci">const Map&lt; const SVFBasicBlock *, BBSet &gt; &amp; getPostDomTreeMap() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00108">SVFValue.h:108</a></div></div>
4788
- <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#l01214">LLVMModule.cpp:1214</a></div></div>
4788
+ <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#l01213">LLVMModule.cpp:1213</a></div></div>
4789
4789
  <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>
4790
4790
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afb06c18fcf916e84dfacb139f644aa48"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afb06c18fcf916e84dfacb139f644aa48">SVF::LLVMModuleSet::collectExtFunAnnotations</a></div><div class="ttdeci">void collectExtFunAnnotations(const Module *mod)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00790">LLVMModule.cpp:790</a></div></div>
4791
4791
  <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#l00331">LLVMUtil.cpp:331</a></div></div>
4792
4792
  <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>
4793
4793
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a374cbaa780f540cb4b4ccac562a82632"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a374cbaa780f540cb4b4ccac562a82632">SVF::SVFFunction::exitBlock</a></div><div class="ttdeci">SVFBasicBlock * exitBlock</div><div class="ttdoc">annotations of this function</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00323">SVFValue.h:323</a></div></div>
4794
- <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#l01322">LLVMModule.cpp:1322</a></div></div>
4795
- <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#l01372">LLVMModule.cpp:1372</a></div></div>
4794
+ <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#l01321">LLVMModule.cpp:1321</a></div></div>
4795
+ <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#l01371">LLVMModule.cpp:1371</a></div></div>
4796
4796
  <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#l00093">LLVMModule.h:93</a></div></div>
4797
4797
  <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#l00217">LLVMUtil.cpp:217</a></div></div>
4798
4798
  <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#l00458">LLVMModule.cpp:458</a></div></div>