svf-tools 1.0.321 → 1.0.322

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 (319) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
  4. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +5 -5
  5. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -2
  6. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
  8. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +2 -2
  10. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +2 -2
  11. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
  12. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +9 -9
  14. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +7 -7
  15. package/SVF-doxygen/html/html/MemRegion_8h_source.html +11 -11
  16. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +9 -9
  17. package/SVF-doxygen/html/html/MemSSA_8h_source.html +11 -11
  18. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +2 -2
  21. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +2 -2
  24. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
  25. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
  26. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +4 -4
  27. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +33 -33
  28. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +31 -31
  29. package/SVF-doxygen/html/html/SVFIR_8h_source.html +32 -32
  30. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +14 -14
  31. package/SVF-doxygen/html/html/SVFStatements_8h.html +11 -11
  32. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +72 -72
  33. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +9 -9
  34. package/SVF-doxygen/html/html/SVFVariables_8h.html +9 -9
  35. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +66 -66
  36. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +2 -2
  38. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +8 -8
  39. package/SVF-doxygen/html/html/VFGNode_8h_source.html +11 -11
  40. package/SVF-doxygen/html/html/VFG_8cpp_source.html +16 -16
  41. package/SVF-doxygen/html/html/VFG_8h_source.html +21 -21
  42. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
  43. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +1 -1
  44. package/SVF-doxygen/html/html/annotated.html +21 -21
  45. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +1 -1
  46. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +136 -0
  47. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +498 -0
  48. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.png +0 -0
  49. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode-members.html +1 -1
  50. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +7 -7
  51. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +1 -1
  52. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +3 -3
  53. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +2 -2
  54. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +154 -0
  55. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +754 -0
  56. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.png +0 -0
  57. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +169 -0
  58. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +537 -0
  59. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.png +0 -0
  60. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar-members.html +169 -0
  61. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +547 -0
  62. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.png +0 -0
  63. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +172 -0
  64. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +556 -0
  65. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.png +0 -0
  66. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +74 -22
  67. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +477 -93
  68. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.png +0 -0
  69. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
  70. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +5 -5
  71. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  72. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
  73. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +3 -3
  74. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt-members.html +56 -21
  75. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +251 -89
  76. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.png +0 -0
  77. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode-members.html +1 -1
  78. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +7 -7
  79. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
  80. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +8 -8
  81. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +18 -18
  82. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +167 -0
  83. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +531 -0
  84. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.png +0 -0
  85. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +165 -0
  86. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +502 -0
  87. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.png +0 -0
  88. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +167 -0
  89. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +577 -0
  90. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.png +0 -0
  91. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +2 -2
  92. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +2 -2
  93. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +2 -2
  94. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +3 -3
  95. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +6 -6
  96. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.png +0 -0
  97. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +23 -22
  98. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  99. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN-members.html +4 -4
  100. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +37 -37
  101. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.png +0 -0
  102. package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +56 -22
  103. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +257 -118
  104. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.png +0 -0
  105. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode-members.html +1 -1
  106. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +7 -7
  107. package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +170 -0
  108. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +752 -0
  109. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.png +0 -0
  110. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +3 -3
  111. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +8 -8
  112. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +18 -18
  113. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +8 -8
  114. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +18 -18
  115. package/SVF-doxygen/html/html/classSVF_1_1LoadMU-members.html +3 -3
  116. package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +20 -20
  117. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt-members.html +56 -21
  118. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +251 -89
  119. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.png +0 -0
  120. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode-members.html +1 -1
  121. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +7 -7
  122. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +8 -8
  123. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +63 -63
  124. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +8 -8
  125. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +71 -71
  126. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +3 -3
  127. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.png +0 -0
  128. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt-members.html +141 -0
  129. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +647 -0
  130. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.png +0 -0
  131. package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +165 -0
  132. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +644 -0
  133. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.png +0 -0
  134. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +10 -10
  135. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +2 -2
  136. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +73 -22
  137. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +445 -98
  138. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.png +0 -0
  139. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +8 -8
  140. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +9 -9
  141. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +32 -32
  142. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +9 -9
  143. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +26 -26
  144. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +14 -14
  145. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +142 -142
  146. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +11 -11
  147. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +137 -137
  148. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +7 -7
  149. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.png +0 -0
  150. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +13 -13
  151. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.png +0 -0
  152. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
  153. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI-members.html +3 -3
  154. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +20 -20
  155. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +56 -21
  156. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +258 -89
  157. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.png +0 -0
  158. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode-members.html +1 -1
  159. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +7 -7
  160. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +2 -2
  161. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +20 -20
  162. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +146 -0
  163. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +792 -0
  164. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.png +0 -0
  165. package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +9 -9
  166. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +69 -69
  167. package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +163 -0
  168. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +521 -0
  169. package/SVF-doxygen/html/html/classSVF_1_1ValVar.png +0 -0
  170. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt-members.html +138 -0
  171. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +542 -0
  172. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.png +0 -0
  173. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
  175. package/SVF-doxygen/html/html/classes.html +18 -18
  176. package/SVF-doxygen/html/html/functions_a.html +39 -39
  177. package/SVF-doxygen/html/html/functions_b.html +2 -2
  178. package/SVF-doxygen/html/html/functions_c.html +34 -34
  179. package/SVF-doxygen/html/html/functions_d.html +4 -4
  180. package/SVF-doxygen/html/html/functions_f.html +3 -3
  181. package/SVF-doxygen/html/html/functions_func.html +38 -38
  182. package/SVF-doxygen/html/html/functions_func_b.html +2 -2
  183. package/SVF-doxygen/html/html/functions_func_c.html +30 -30
  184. package/SVF-doxygen/html/html/functions_func_d.html +4 -4
  185. package/SVF-doxygen/html/html/functions_func_f.html +2 -2
  186. package/SVF-doxygen/html/html/functions_func_g.html +49 -49
  187. package/SVF-doxygen/html/html/functions_func_l.html +3 -3
  188. package/SVF-doxygen/html/html/functions_func_n.html +2 -2
  189. package/SVF-doxygen/html/html/functions_func_o.html +15 -15
  190. package/SVF-doxygen/html/html/functions_func_p.html +2 -2
  191. package/SVF-doxygen/html/html/functions_func_s.html +4 -4
  192. package/SVF-doxygen/html/html/functions_func_t.html +20 -20
  193. package/SVF-doxygen/html/html/functions_func_u.html +2 -2
  194. package/SVF-doxygen/html/html/functions_func_v.html +5 -5
  195. package/SVF-doxygen/html/html/functions_g.html +52 -52
  196. package/SVF-doxygen/html/html/functions_i.html +2 -2
  197. package/SVF-doxygen/html/html/functions_l.html +9 -9
  198. package/SVF-doxygen/html/html/functions_m.html +1 -1
  199. package/SVF-doxygen/html/html/functions_n.html +2 -2
  200. package/SVF-doxygen/html/html/functions_o.html +17 -17
  201. package/SVF-doxygen/html/html/functions_p.html +4 -4
  202. package/SVF-doxygen/html/html/functions_s.html +7 -7
  203. package/SVF-doxygen/html/html/functions_t.html +20 -20
  204. package/SVF-doxygen/html/html/functions_type_c.html +1 -1
  205. package/SVF-doxygen/html/html/functions_type_l.html +3 -3
  206. package/SVF-doxygen/html/html/functions_type_p.html +1 -1
  207. package/SVF-doxygen/html/html/functions_type_s.html +3 -3
  208. package/SVF-doxygen/html/html/functions_u.html +2 -2
  209. package/SVF-doxygen/html/html/functions_v.html +5 -5
  210. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  211. package/SVF-doxygen/html/html/functions_vars_g.html +1 -1
  212. package/SVF-doxygen/html/html/functions_vars_i.html +2 -2
  213. package/SVF-doxygen/html/html/functions_vars_l.html +2 -2
  214. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  215. package/SVF-doxygen/html/html/functions_vars_o.html +3 -3
  216. package/SVF-doxygen/html/html/functions_w.html +5 -9
  217. package/SVF-doxygen/html/html/hierarchy.html +65 -65
  218. package/SVF-doxygen/html/html/namespaceSVF.html +23 -23
  219. package/SVF-doxygen/html/html/search/all_1.js +37 -37
  220. package/SVF-doxygen/html/html/search/all_10.js +2 -2
  221. package/SVF-doxygen/html/html/search/all_13.js +6 -6
  222. package/SVF-doxygen/html/html/search/all_14.js +1 -1
  223. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  224. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  225. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  226. package/SVF-doxygen/html/html/search/all_2.js +1 -1
  227. package/SVF-doxygen/html/html/search/all_3.js +8 -8
  228. package/SVF-doxygen/html/html/search/all_4.js +2 -2
  229. package/SVF-doxygen/html/html/search/all_6.js +2 -2
  230. package/SVF-doxygen/html/html/search/all_7.js +26 -26
  231. package/SVF-doxygen/html/html/search/all_9.js +1 -1
  232. package/SVF-doxygen/html/html/search/all_c.js +7 -7
  233. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  234. package/SVF-doxygen/html/html/search/all_e.js +1 -1
  235. package/SVF-doxygen/html/html/search/all_f.js +3 -3
  236. package/SVF-doxygen/html/html/search/classes_0.js +1 -1
  237. package/SVF-doxygen/html/html/search/classes_1.js +1 -1
  238. package/SVF-doxygen/html/html/search/classes_11.js +1 -1
  239. package/SVF-doxygen/html/html/search/classes_12.js +2 -2
  240. package/SVF-doxygen/html/html/search/classes_2.js +5 -5
  241. package/SVF-doxygen/html/html/search/classes_3.js +2 -2
  242. package/SVF-doxygen/html/html/search/classes_5.js +1 -1
  243. package/SVF-doxygen/html/html/search/classes_6.js +2 -2
  244. package/SVF-doxygen/html/html/search/classes_9.js +1 -1
  245. package/SVF-doxygen/html/html/search/classes_b.js +1 -1
  246. package/SVF-doxygen/html/html/search/classes_c.js +1 -1
  247. package/SVF-doxygen/html/html/search/classes_d.js +1 -1
  248. package/SVF-doxygen/html/html/search/classes_f.js +1 -1
  249. package/SVF-doxygen/html/html/search/functions_0.js +37 -37
  250. package/SVF-doxygen/html/html/search/functions_1.js +1 -1
  251. package/SVF-doxygen/html/html/search/functions_10.js +3 -3
  252. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  253. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  254. package/SVF-doxygen/html/html/search/functions_13.js +2 -2
  255. package/SVF-doxygen/html/html/search/functions_2.js +7 -7
  256. package/SVF-doxygen/html/html/search/functions_3.js +2 -2
  257. package/SVF-doxygen/html/html/search/functions_5.js +1 -1
  258. package/SVF-doxygen/html/html/search/functions_6.js +25 -25
  259. package/SVF-doxygen/html/html/search/functions_a.js +3 -3
  260. package/SVF-doxygen/html/html/search/functions_c.js +1 -1
  261. package/SVF-doxygen/html/html/search/functions_d.js +2 -2
  262. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  263. package/SVF-doxygen/html/html/search/typedefs_11.js +3 -3
  264. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  265. package/SVF-doxygen/html/html/search/typedefs_b.js +3 -3
  266. package/SVF-doxygen/html/html/search/typedefs_f.js +1 -1
  267. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  268. package/SVF-doxygen/html/html/search/variables_7.js +1 -1
  269. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  270. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  271. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  272. package/SVF-doxygen/html/html/search/variables_f.js +1 -1
  273. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
  274. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  275. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +2 -2
  276. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
  277. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +1 -1
  278. package/include/Graphs/ICFGNode.h +1 -1
  279. package/include/Graphs/VFG.h +9 -9
  280. package/include/Graphs/VFGNode.h +6 -6
  281. package/include/MSSA/MSSAMuChi.h +6 -6
  282. package/include/MSSA/MemRegion.h +8 -8
  283. package/include/MSSA/MemSSA.h +10 -10
  284. package/include/MemoryModel/PointerAnalysis.h +1 -1
  285. package/include/MemoryModel/PointerAnalysisImpl.h +2 -2
  286. package/include/MemoryModel/SVFIR.h +28 -28
  287. package/include/MemoryModel/SVFStatements.h +68 -68
  288. package/include/MemoryModel/SVFVariables.h +39 -39
  289. package/include/SVF-FE/SVFIRBuilder.h +22 -22
  290. package/lib/DDA/ContextDDA.cpp +4 -4
  291. package/lib/DDA/DDAStat.cpp +1 -1
  292. package/lib/DDA/FlowDDA.cpp +2 -2
  293. package/lib/Graphs/ConsG.cpp +12 -12
  294. package/lib/Graphs/IRGraph.cpp +15 -15
  295. package/lib/Graphs/OfflineConsG.cpp +8 -8
  296. package/lib/Graphs/SVFG.cpp +8 -8
  297. package/lib/Graphs/ThreadCallGraph.cpp +2 -2
  298. package/lib/Graphs/VFG.cpp +15 -15
  299. package/lib/MSSA/MemRegion.cpp +6 -6
  300. package/lib/MSSA/MemSSA.cpp +6 -6
  301. package/lib/MemoryModel/PAGBuilderFromFile.cpp +3 -3
  302. package/lib/MemoryModel/PointerAnalysis.cpp +9 -9
  303. package/lib/MemoryModel/PointerAnalysisImpl.cpp +2 -2
  304. package/lib/MemoryModel/SVFIR.cpp +44 -44
  305. package/lib/MemoryModel/SVFStatements.cpp +24 -24
  306. package/lib/MemoryModel/SVFVariables.cpp +19 -19
  307. package/lib/SABER/SaberSVFGBuilder.cpp +2 -2
  308. package/lib/SVF-FE/Graph2Json.cpp +1 -1
  309. package/lib/SVF-FE/SVFIRBuilder.cpp +5 -5
  310. package/lib/Util/PTAStat.cpp +1 -1
  311. package/lib/Util/TypeBasedHeapCloning.cpp +19 -19
  312. package/lib/WPA/AndersenSFR.cpp +1 -1
  313. package/lib/WPA/AndersenStat.cpp +3 -3
  314. package/lib/WPA/FlowSensitive.cpp +2 -2
  315. package/lib/WPA/FlowSensitiveStat.cpp +2 -2
  316. package/lib/WPA/FlowSensitiveTBHC.cpp +4 -4
  317. package/lib/WPA/VersionedFlowSensitive.cpp +1 -1
  318. package/lib/WPA/VersionedFlowSensitiveStat.cpp +1 -1
  319. package/package.json +1 -1
@@ -66,10 +66,12 @@ $(function() {
66
66
  <div class="title">SVFIRBuilder.h</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="SVFIRBuilder_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- SVFIRBuilder.h -- Building SVFIR-------------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * SVFIRBuilder.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Nov 1, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef PAGBUILDER_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define PAGBUILDER_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFIR_8h.html">MemoryModel/SVFIR.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ExtAPI_8h.html">Util/ExtAPI.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ICFGBuilder_8h.html">SVF-FE/ICFGBuilder.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>SVFModule;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html"> 44</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a>: <span class="keyword">public</span> llvm::InstVisitor&lt;SVFIRBuilder&gt;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb"> 48</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#aa67bbd366b93fb1ec7a540c83566c977"> 49</a></span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#aa67bbd366b93fb1ec7a540c83566c977">svfMod</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#aac1cbf0cb2b402b5fd0e2324c89c31b0"> 50</a></span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#aac1cbf0cb2b402b5fd0e2324c89c31b0">curBB</a>; </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a5afb07f2cf8d76f8db334250e0c96cc0"> 51</a></span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a5afb07f2cf8d76f8db334250e0c96cc0">curVal</a>; </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a8c25c3903cda26312f182014f29069fc"> 55</a></span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a8c25c3903cda26312f182014f29069fc">SVFIRBuilder</a>(): pag(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>::<a class="code" href="classSVF_1_1SVFIRBuilder.html#af44d4587defa76f1e7f2645f9711558a">getPAG</a>()), svfMod(nullptr), curBB(nullptr),curVal(nullptr)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a5a04b9d97ad5f6e761bcc4779c96104e"> 59</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a5a04b9d97ad5f6e761bcc4779c96104e">~SVFIRBuilder</a>()</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">build</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#af44d4587defa76f1e7f2645f9711558a"> 67</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#af44d4587defa76f1e7f2645f9711558a">getPAG</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#af4b18e8e1fdfb117cb5dd1a81cea4b71">initialiseNodes</a>();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ada73b0a14d4f545a59c37e11d6bd9d81">addEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">PAGEdge::PEDGEK</a> kind,</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> offset = 0, <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* cs = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// @}</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a09baa8c7246853c3faaed85b38f0da60">sanityCheck</a>();</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// GetValNode - Return the value node according to a LLVM Value.</span></div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6"> 85</a></span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// first handle gep edge if val if a constant expression</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a5adf8baa546292434ba1fec48db2d0a7">processCE</a>(V);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// strip off the constant cast and return the value node</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(V);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a5a93f3d13e2b3df126fbc42b1bd09006"> 95</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a5a93f3d13e2b3df126fbc42b1bd09006">getObjectNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#aba13ca47865614e45321c1ae53e640c1">getObjectNode</a>(V);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#aff99c8de4acf4eeaf01803dadf459b92"> 101</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIRBuilder.html#aff99c8de4acf4eeaf01803dadf459b92">getReturnNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *func)</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a96010999a4e5013beb1c37ef753ff910">getReturnNode</a>(func);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a3fe99644b2bf5f0f9b2b21a56a400ad4"> 107</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3fe99644b2bf5f0f9b2b21a56a400ad4">getVarargNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *func)</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">getVarargNode</a>(func);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4c6cd51def26ebd8e839df9fdc4b64b8">visitGlobal</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ae7fcd2050a57a43bfed2c7fd1c41d250">InitialGlobal</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *gvar, <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a> *C,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> offset);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a8e2440b87147a9d1380876d6beb410ae">getGlobalVarField</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *gvar, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> offset);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a5adf8baa546292434ba1fec48db2d0a7">processCE</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a87b75f04942124711d5ea1366e866890">computeGepOffset</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#afc1b50355821e7299df03b026e36f1df">User</a> *V, <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; ls);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#afd3125974393d68b4b8f5298ef699ab3">handleDirectCall</a>(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *F);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#aa21ed35656d26eec22c53dc41019adc4">handleIndCall</a>(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#aff08d65b1411d1db81f80b9d4228c65d">handleExtCall</a>(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *F);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *<a class="code" href="classSVF_1_1SVFIRBuilder.html#a4792ed440aab997e13321f5f6cba2156">getBaseTypeAndFlattenedFields</a>(<a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* v, std::vector&lt;LocationSet&gt; &amp;fields);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ab83a61a519cb0bb6fed823a938cf0602">addComplexConsForExt</a>(<a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *D, <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *S,<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> sz = 0);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="comment">// Instructions that cannot be folded away.</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4be150eb37b75e4c081dfe38429f2089">visitAllocaInst</a>(<a class="code" href="namespaceSVF.html#a3bacb4f95c73e6d794901d01c6b65a83">AllocaInst</a> &amp;AI);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#aade60fa102a29f332af36a8615c75471">visitPHINode</a>(<a class="code" href="namespaceSVF.html#ac8d4990439af7a2ecca7e15383119674">PHINode</a> &amp;I);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a51d75ff7f490ddfef3d4f8779872633c">visitStoreInst</a>(<a class="code" href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">StoreInst</a> &amp;I);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a17638b08f85d4543e663eeb739915bdc">visitLoadInst</a>(<a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> &amp;I);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4a945eafd262f81b4f9cc1fa61b57371">visitGetElementPtrInst</a>(<a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a> &amp;I);</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#af04a62de066da44d76c8068085df9e5f"> 148</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#af04a62de066da44d76c8068085df9e5f">visitCallInst</a>(<a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a> &amp;I)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a6b52906a617f088b1077ba0387a846ab">visitCallSite</a>(&amp;I);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#aff20ebd69049759b2de910c0a9d7785f"> 152</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#aff20ebd69049759b2de910c0a9d7785f">visitInvokeInst</a>(<a class="code" href="namespaceSVF.html#a56cb9d6d1e05f6c31bfe1a4045bc8b5f">InvokeInst</a> &amp;II)</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a6b52906a617f088b1077ba0387a846ab">visitCallSite</a>(&amp;II);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ae714d5f9550b81066fc4071616d46a64"> 156</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ae714d5f9550b81066fc4071616d46a64">visitCallBrInst</a>(<a class="code" href="namespaceSVF.html#ac6b6710585fc6667858ccfd4311b6ab5">CallBrInst</a> &amp;I) {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a6b52906a617f088b1077ba0387a846ab">visitCallSite</a>(&amp;I);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a6b52906a617f088b1077ba0387a846ab">visitCallSite</a>(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#aca31431b70e2fb360caa1140e29c0c9d">visitReturnInst</a>(<a class="code" href="namespaceSVF.html#ac7dcc6103dee3a0bbc2fd2e02716a154">ReturnInst</a> &amp;I);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#acf5a61d45c1abc1206f6e6c813f8634b">visitCastInst</a>(<a class="code" href="namespaceSVF.html#a962e9a9044a46fc4bd2367384f6e0827">CastInst</a> &amp;I);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc836736ea16d99921c0e734cf0a3c72">visitSelectInst</a>(<a class="code" href="namespaceSVF.html#ab7fac9d4a4839be445c89777e21bc307">SelectInst</a> &amp;I);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a7a17ca95a5435b498fc875eb9a290800">visitExtractValueInst</a>(<a class="code" href="namespaceSVF.html#ace1fd4c32134018e2f6d5da193524986">ExtractValueInst</a> &amp;EVI);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ad832691784cf4cb93017792ea3d9af">visitBranchInst</a>(<a class="code" href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">BranchInst</a> &amp;I);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a83bc9c1dbc95156a68f139ff16faca2a">visitSwitchInst</a>(<a class="code" href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SwitchInst</a> &amp;I);</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a4e6025dcd8af2f35e3cc33d280fde497"> 166</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4e6025dcd8af2f35e3cc33d280fde497">visitInsertValueInst</a>(<a class="code" href="namespaceSVF.html#a485b10fc29e76fdb6f31a56ebbde8f24">InsertValueInst</a> &amp;I)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(&amp;I));</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">// TerminatorInst and UnwindInst have been removed since llvm-8.0.0</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">// void visitTerminatorInst(TerminatorInst &amp;TI) {}</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">// void visitUnwindInst(UnwindInst &amp;I) { /*returns void*/}</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#aeb5f3cc92ef2d146c7c9cc86375b4c1e">visitBinaryOperator</a>(<a class="code" href="namespaceSVF.html#aad5d26ab07a5d1314bdb8f54e0fcdb22">BinaryOperator</a> &amp;I);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ae80891bb2a162b3ad24fa7cf6380df30">visitUnaryOperator</a>(<a class="code" href="namespaceSVF.html#a292a6e8c5b4f2023b5575879c57eca62">UnaryOperator</a> &amp;I);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ac61e0c5f667ebeb4788d07253e6a733c">visitCmpInst</a>(<a class="code" href="namespaceSVF.html#a5d875a9d726bb9f68a17efa528dec0b4">CmpInst</a> &amp;I);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ac26e0714728df0beca278eb405596775">visitVAArgInst</a>(<a class="code" href="namespaceSVF.html#abcafc32093ff5ee038b5fcf6e4076ed4">VAArgInst</a>&amp;);</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#afa10748f345ee53f417690cf125b0851"> 181</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#afa10748f345ee53f417690cf125b0851">visitVACopyInst</a>(<a class="code" href="namespaceSVF.html#a0f3339f5241441c7e6023df9e0cfa295">VACopyInst</a>&amp;){}</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#aa2e07d018323c9d06393266970a0c340"> 182</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#aa2e07d018323c9d06393266970a0c340">visitVAEndInst</a>(<a class="code" href="namespaceSVF.html#adb305e32f35af19b870b07711ba5b913">VAEndInst</a>&amp;){}</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a5321cd4eabcccd72c198966de1ab1ea2"> 183</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a5321cd4eabcccd72c198966de1ab1ea2">visitVAStartInst</a>(<a class="code" href="namespaceSVF.html#ad92e392a50e7c6c1f635fe2dcebd1adc">VAStartInst</a>&amp;){}</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a870ea33a335a7036555dd24171cf8f22">visitFreezeInst</a>(<a class="code" href="namespaceSVF.html#a9868a60a9cc7b78965a23b5034100f88">FreezeInst</a>&amp; I);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ac6b24fcbd1e1b31141c27167d49a56ec">visitExtractElementInst</a>(<a class="code" href="namespaceSVF.html#afb88c4d723dd7c51bdfc7ba5893cb356">ExtractElementInst</a> &amp;I);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a9db09a2c74f2489648b0282769488a17"> 192</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a9db09a2c74f2489648b0282769488a17">visitInsertElementInst</a>(<a class="code" href="namespaceSVF.html#a6b857824fb3c39ff6de953651260a326">InsertElementInst</a> &amp;I)</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(&amp;I));</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#acb52462a8a004654c8819017dc029c44"> 196</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#acb52462a8a004654c8819017dc029c44">visitShuffleVectorInst</a>(<a class="code" href="namespaceSVF.html#a64e69f438b8c302c4cae27735319fa49">ShuffleVectorInst</a> &amp;I)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(&amp;I));</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a0bc35bb64bbf3b494c0ac93b99c5a6d2"> 200</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a0bc35bb64bbf3b494c0ac93b99c5a6d2">visitLandingPadInst</a>(<a class="code" href="namespaceSVF.html#afa513a3c76371907221ee2b1ef289c71">LandingPadInst</a> &amp;I)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(&amp;I));</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a97b96b72e7b334f3aa732dfa5c35c3cb"> 206</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a97b96b72e7b334f3aa732dfa5c35c3cb">visitResumeInst</a>(<a class="code" href="namespaceSVF.html#a8c685f6bff3a67bf7fe3557dbfa84caa">ResumeInst</a>&amp;) <span class="comment">/*returns void*/</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ae4f8f902265b0c39547aabbfdaded795"> 209</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ae4f8f902265b0c39547aabbfdaded795">visitUnreachableInst</a>(<a class="code" href="namespaceSVF.html#a8ac6a8ff90f47a93166fbdf15be2d721">UnreachableInst</a>&amp;) <span class="comment">/*returns void*/</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a87a34334a50071e6061ee5dd1d34c9ed"> 212</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a87a34334a50071e6061ee5dd1d34c9ed">visitFenceInst</a>(<a class="code" href="namespaceSVF.html#a61f0d928e58d4f7e21616f770ae1080b">FenceInst</a> &amp;I) <span class="comment">/*returns void*/</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(&amp;I));</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ac5ae89051b0775ed209dcc654691958b"> 216</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ac5ae89051b0775ed209dcc654691958b">visitAtomicCmpXchgInst</a>(<a class="code" href="namespaceSVF.html#a582e3736a2bbb0540364c1693d831b49">AtomicCmpXchgInst</a> &amp;I)</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(&amp;I));</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#adea9fdfead89d700d0453fd685355ff4"> 220</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#adea9fdfead89d700d0453fd685355ff4">visitAtomicRMWInst</a>(<a class="code" href="namespaceSVF.html#a468154e0ab9e7be82afef1aa0a2fb9e0">AtomicRMWInst</a> &amp;I)</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(&amp;I));</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a91c8f9dc6e7cb225c2ed4b8f0322a2b3"> 226</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a91c8f9dc6e7cb225c2ed4b8f0322a2b3">visitInstruction</a>(<a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>&amp;)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="comment">// If a new instruction is added to LLVM that we don&#39;t handle.</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="comment">// TODO: ignore here:</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="comment">//}@</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a15105737c91d01ba9daf2161fad220ef"> 234</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a15105737c91d01ba9daf2161fad220ef">setCurrentLocation</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb)</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; curBB = bb;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; curVal = val;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a7bf5d4d18f74f70b61955810e4f01d8c"> 239</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *<a class="code" href="classSVF_1_1SVFIRBuilder.html#a7bf5d4d18f74f70b61955810e4f01d8c">getCurrentValue</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a5afb07f2cf8d76f8db334250e0c96cc0">curVal</a>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; }</div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a724198dcaf43730e1df814f15fe4e1e0"> 243</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *<a class="code" href="classSVF_1_1SVFIRBuilder.html#a724198dcaf43730e1df814f15fe4e1e0">getCurrentBB</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#aac1cbf0cb2b402b5fd0e2324c89c31b0">curBB</a>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a55d8504dbc766c4ede031299a37417ef"> 249</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a55d8504dbc766c4ede031299a37417ef">addGlobalBlackHoleAddrEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *int2Ptrce)</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* cval = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a7bf5d4d18f74f70b61955810e4f01d8c">getCurrentValue</a>();</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* cbb = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a724198dcaf43730e1df814f15fe4e1e0">getCurrentBB</a>();</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a15105737c91d01ba9daf2161fad220ef">setCurrentLocation</a>(int2Ptrce,<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(node);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a15105737c91d01ba9daf2161fad220ef">setCurrentLocation</a>(cval,cbb);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a1717e26e29f50096b96d7e4c43fe1c76"> 259</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a1717e26e29f50096b96d7e4c43fe1c76">addNullPtrNode</a>()</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nullPtr = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0">addDummyValNode</a>(pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">getNullPtr</a>());</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="namespaceSVF.html#affba423b674a0aba723e33101826e297">LLVMContext</a> &amp;cxt = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">getContext</a>();</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="namespaceSVF.html#a90f6c91ba7a3c31c84b5c25277d83fca">ConstantPointerNull</a> *constNull = ConstantPointerNull::get(Type::getInt8PtrTy(cxt));</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a15105737c91d01ba9daf2161fad220ef">setCurrentLocation</a>(constNull, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">getBlkPtr</a>());</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> nullPtr;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a1f2f512b7cf1ebb9aa2cebe90c8372c2">getGepValNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; ls, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *baseType, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fieldidx);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(<a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719"> 276</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node)</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aba877353c0eb383bf5ce216e7cb605bc">addBlackHoleAddrPE</a>(node);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ab5ee064069e588e9d5b686aba4aa39cf"> 284</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1AddrPE.html">AddrPE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#ab5ee064069e588e9d5b686aba4aa39cf">addAddrEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst)</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="classSVF_1_1AddrPE.html">AddrPE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a247f006b6f168a7d853814339b0a6ed5">addAddrPE</a>(src, dst);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ab699fe11eed6d0eb655a55540de69586"> 291</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1CopyPE.html">CopyPE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#ab699fe11eed6d0eb655a55540de69586">addCopyEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst)</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="classSVF_1_1CopyPE.html">CopyPE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a0aefb9f6ac03251dd2893e8d5fa30c30">addCopyPE</a>(src, dst);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div><div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ab6c80be878f5e9d888d8532a633a2566"> 298</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1PhiPE.html">PhiPE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#ab6c80be878f5e9d888d8532a633a2566">addPhiNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> res, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> opnd)</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; {</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="classSVF_1_1PhiPE.html">PhiPE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a3da8a2168e33f49708cdcc79f9e311a4">addPhiNode</a>(res,opnd);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div><div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a6636324fa8135f2be841e0d06d5e5f54"> 305</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1CmpPE.html">CmpPE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a6636324fa8135f2be841e0d06d5e5f54">addCmpEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op1, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op2, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> opcode)</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="classSVF_1_1CmpPE.html">CmpPE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#afbb721dfd574c35e3ddb0a8d26f978c7">addCmpPE</a>(op1, op2, dst, opcode);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div><div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#aa939418b3f4727fb7ec84057dd97ba66"> 312</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1BinaryOPPE.html">BinaryOPPE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#aa939418b3f4727fb7ec84057dd97ba66">addBinaryOPEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op1, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op2, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> opcode)</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="classSVF_1_1BinaryOPPE.html">BinaryOPPE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a1d6d9dbc5cd43eb8af776f5a1b373507">addBinaryOPPE</a>(op1, op2, dst, opcode);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a2020793d5013abd1300331302f0514d4"> 319</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1UnaryOPPE.html">UnaryOPPE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a2020793d5013abd1300331302f0514d4">addUnaryOPEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> opcode)</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="classSVF_1_1UnaryOPPE.html">UnaryOPPE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a30409c96194976713b6b7728c072b8a5">addUnaryOPPE</a>(src, dst, opcode);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; }</div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ae0a1f66dee058f6af0f6b074db38db8e"> 326</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#ae0a1f66dee058f6af0f6b074db38db8e">addBranchStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> br, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> cond, <span class="keyword">const</span> std::vector&lt;const ICFGNode*&gt; succs){</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a4f0d318deff3b97a4bd5e7b9d53e42fd">addBranchStmt</a>(br, cond, succs);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div><div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ab4327a515c8ce8dabd0457a93424df26"> 332</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1LoadPE.html">LoadPE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#ab4327a515c8ce8dabd0457a93424df26">addLoadEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst)</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <a class="code" href="classSVF_1_1LoadPE.html">LoadPE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a5b89eb728f02a2d235f898dcf555d1a2">addLoadPE</a>(src, dst);</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; }</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a7e518bfc56c34dfbaaafbd78b85143b7"> 339</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1StorePE.html">StorePE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a7e518bfc56c34dfbaaafbd78b85143b7">addStoreEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst)</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; {</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <a class="code" href="classSVF_1_1IntraBlockNode.html">IntraBlockNode</a>* node;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <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;(curVal))</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; node = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a485fcd76a8a864c9b686e68a3ca66dfc">getIntraBlockNode</a>(inst);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; node = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <a class="code" href="classSVF_1_1StorePE.html">StorePE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a147a1a57edd4d2eff937b28f677866d2">addStorePE</a>(src, dst, node);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; }</div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#af4ff212d09284eb377eefd14f60d2f14"> 351</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#af4ff212d09284eb377eefd14f60d2f14">addCallEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs)</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a9e99fcf29016ef401f53491ec54a4053">addCallPE</a>(src, dst, cs);</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</div><div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a50702f09af1ea9d50ee4726fc8f8a65c"> 358</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a50702f09af1ea9d50ee4726fc8f8a65c">addRetEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs)</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; {</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a12fef4ec0537b26947eb0ab10799f29f">addRetPE</a>(src, dst, cs);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; }</div><div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a1923643ba56b180b64ee32b95db8c642"> 365</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GepPE.html">GepPE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a1923643ba56b180b64ee32b95db8c642">addGepEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; ls, <span class="keywordtype">bool</span> constGep)</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; {</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <a class="code" href="classSVF_1_1GepPE.html">GepPE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ad0977abfd0eda258b5215d351d34c0f5">addGepPE</a>(src, dst, ls, constGep);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; }</div><div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ab19a9a94a7c8f382a70c3a3269f22959"> 372</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1NormalGepPE.html">NormalGepPE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#ab19a9a94a7c8f382a70c3a3269f22959">addNormalGepEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; ls)</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; {</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <a class="code" href="classSVF_1_1NormalGepPE.html">NormalGepPE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#acd2ba7adf250f1a90b57e51a085b6363">addNormalGepPE</a>(src, dst, ls);</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; }</div><div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ad7c282ef14cefd8abcc48ec0c2d504aa"> 379</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1VariantGepPE.html">VariantGepPE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#ad7c282ef14cefd8abcc48ec0c2d504aa">addVariantGepEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst)</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <a class="code" href="classSVF_1_1VariantGepPE.html">VariantGepPE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a33d8fad47352f7ca8aac035eb2adb57e">addVariantGepPE</a>(src, dst);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a7a311f7789c6c7a028ad0f595c1e0295"> 386</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a7a311f7789c6c7a028ad0f595c1e0295">addThreadForkEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs)</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a787dc5aff6f7a7d8ec3a7a23d9f40a7e">addThreadForkPE</a>(src, dst, cs);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; }</div><div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a4acfddb8e683bbcc2e3949907361ea29"> 393</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4acfddb8e683bbcc2e3949907361ea29">addThreadJoinEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs)</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; {</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a4f64a1a266838ac72b66cca138ec57ca">addThreadJoinPE</a>(src, dst, cs);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; }</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;};</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* PAGBUILDER_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1SVFIR_html_a147a1a57edd4d2eff937b28f677866d2"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a147a1a57edd4d2eff937b28f677866d2">SVF::SVFIR::addStorePE</a></div><div class="ttdeci">StorePE * addStorePE(NodeID src, NodeID dst, const IntraBlockNode *val)</div><div class="ttdoc">Add Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00204">SVFIR.cpp:204</a></div></div>
69
+ <a href="SVFIRBuilder_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- SVFIRBuilder.h -- Building SVFIR-------------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * SVFIRBuilder.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Nov 1, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef PAGBUILDER_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define PAGBUILDER_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFIR_8h.html">MemoryModel/SVFIR.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ExtAPI_8h.html">Util/ExtAPI.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ICFGBuilder_8h.html">SVF-FE/ICFGBuilder.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>SVFModule;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html"> 44</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a>: <span class="keyword">public</span> llvm::InstVisitor&lt;SVFIRBuilder&gt;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb"> 48</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#aa67bbd366b93fb1ec7a540c83566c977"> 49</a></span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#aa67bbd366b93fb1ec7a540c83566c977">svfMod</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#aac1cbf0cb2b402b5fd0e2324c89c31b0"> 50</a></span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#aac1cbf0cb2b402b5fd0e2324c89c31b0">curBB</a>; </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a5afb07f2cf8d76f8db334250e0c96cc0"> 51</a></span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a5afb07f2cf8d76f8db334250e0c96cc0">curVal</a>; </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a8c25c3903cda26312f182014f29069fc"> 55</a></span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a8c25c3903cda26312f182014f29069fc">SVFIRBuilder</a>(): pag(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>::<a class="code" href="classSVF_1_1SVFIRBuilder.html#af44d4587defa76f1e7f2645f9711558a">getPAG</a>()), svfMod(nullptr), curBB(nullptr),curVal(nullptr)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a5a04b9d97ad5f6e761bcc4779c96104e"> 59</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a5a04b9d97ad5f6e761bcc4779c96104e">~SVFIRBuilder</a>()</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">build</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#af44d4587defa76f1e7f2645f9711558a"> 67</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#af44d4587defa76f1e7f2645f9711558a">getPAG</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#af4b18e8e1fdfb117cb5dd1a81cea4b71">initialiseNodes</a>();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ada73b0a14d4f545a59c37e11d6bd9d81">addEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">PAGEdge::PEDGEK</a> kind,</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> offset = 0, <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* cs = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// @}</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a09baa8c7246853c3faaed85b38f0da60">sanityCheck</a>();</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// GetValNode - Return the value node according to a LLVM Value.</span></div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6"> 85</a></span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// first handle gep edge if val if a constant expression</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a5adf8baa546292434ba1fec48db2d0a7">processCE</a>(V);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// strip off the constant cast and return the value node</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(V);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a5a93f3d13e2b3df126fbc42b1bd09006"> 95</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a5a93f3d13e2b3df126fbc42b1bd09006">getObjectNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#aba13ca47865614e45321c1ae53e640c1">getObjectNode</a>(V);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#aff99c8de4acf4eeaf01803dadf459b92"> 101</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIRBuilder.html#aff99c8de4acf4eeaf01803dadf459b92">getReturnNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *func)</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a96010999a4e5013beb1c37ef753ff910">getReturnNode</a>(func);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a3fe99644b2bf5f0f9b2b21a56a400ad4"> 107</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3fe99644b2bf5f0f9b2b21a56a400ad4">getVarargNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *func)</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">getVarargNode</a>(func);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4c6cd51def26ebd8e839df9fdc4b64b8">visitGlobal</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ae7fcd2050a57a43bfed2c7fd1c41d250">InitialGlobal</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *gvar, <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a> *C,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> offset);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a8e2440b87147a9d1380876d6beb410ae">getGlobalVarField</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *gvar, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> offset);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a5adf8baa546292434ba1fec48db2d0a7">processCE</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a87b75f04942124711d5ea1366e866890">computeGepOffset</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#afc1b50355821e7299df03b026e36f1df">User</a> *V, <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; ls);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#afd3125974393d68b4b8f5298ef699ab3">handleDirectCall</a>(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *F);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#aa21ed35656d26eec22c53dc41019adc4">handleIndCall</a>(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#aff08d65b1411d1db81f80b9d4228c65d">handleExtCall</a>(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *F);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *<a class="code" href="classSVF_1_1SVFIRBuilder.html#a4792ed440aab997e13321f5f6cba2156">getBaseTypeAndFlattenedFields</a>(<a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* v, std::vector&lt;LocationSet&gt; &amp;fields);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ab83a61a519cb0bb6fed823a938cf0602">addComplexConsForExt</a>(<a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *D, <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *S,<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> sz = 0);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="comment">// Instructions that cannot be folded away.</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4be150eb37b75e4c081dfe38429f2089">visitAllocaInst</a>(<a class="code" href="namespaceSVF.html#a3bacb4f95c73e6d794901d01c6b65a83">AllocaInst</a> &amp;AI);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#aade60fa102a29f332af36a8615c75471">visitPHINode</a>(<a class="code" href="namespaceSVF.html#ac8d4990439af7a2ecca7e15383119674">PHINode</a> &amp;I);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a51d75ff7f490ddfef3d4f8779872633c">visitStoreInst</a>(<a class="code" href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">StoreInst</a> &amp;I);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a17638b08f85d4543e663eeb739915bdc">visitLoadInst</a>(<a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> &amp;I);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4a945eafd262f81b4f9cc1fa61b57371">visitGetElementPtrInst</a>(<a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a> &amp;I);</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#af04a62de066da44d76c8068085df9e5f"> 148</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#af04a62de066da44d76c8068085df9e5f">visitCallInst</a>(<a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a> &amp;I)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a6b52906a617f088b1077ba0387a846ab">visitCallSite</a>(&amp;I);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#aff20ebd69049759b2de910c0a9d7785f"> 152</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#aff20ebd69049759b2de910c0a9d7785f">visitInvokeInst</a>(<a class="code" href="namespaceSVF.html#a56cb9d6d1e05f6c31bfe1a4045bc8b5f">InvokeInst</a> &amp;II)</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a6b52906a617f088b1077ba0387a846ab">visitCallSite</a>(&amp;II);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ae714d5f9550b81066fc4071616d46a64"> 156</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ae714d5f9550b81066fc4071616d46a64">visitCallBrInst</a>(<a class="code" href="namespaceSVF.html#ac6b6710585fc6667858ccfd4311b6ab5">CallBrInst</a> &amp;I) {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a6b52906a617f088b1077ba0387a846ab">visitCallSite</a>(&amp;I);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a6b52906a617f088b1077ba0387a846ab">visitCallSite</a>(<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#aca31431b70e2fb360caa1140e29c0c9d">visitReturnInst</a>(<a class="code" href="namespaceSVF.html#ac7dcc6103dee3a0bbc2fd2e02716a154">ReturnInst</a> &amp;I);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#acf5a61d45c1abc1206f6e6c813f8634b">visitCastInst</a>(<a class="code" href="namespaceSVF.html#a962e9a9044a46fc4bd2367384f6e0827">CastInst</a> &amp;I);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc836736ea16d99921c0e734cf0a3c72">visitSelectInst</a>(<a class="code" href="namespaceSVF.html#ab7fac9d4a4839be445c89777e21bc307">SelectInst</a> &amp;I);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a7a17ca95a5435b498fc875eb9a290800">visitExtractValueInst</a>(<a class="code" href="namespaceSVF.html#ace1fd4c32134018e2f6d5da193524986">ExtractValueInst</a> &amp;EVI);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ad832691784cf4cb93017792ea3d9af">visitBranchInst</a>(<a class="code" href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">BranchInst</a> &amp;I);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a83bc9c1dbc95156a68f139ff16faca2a">visitSwitchInst</a>(<a class="code" href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SwitchInst</a> &amp;I);</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a4e6025dcd8af2f35e3cc33d280fde497"> 166</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4e6025dcd8af2f35e3cc33d280fde497">visitInsertValueInst</a>(<a class="code" href="namespaceSVF.html#a485b10fc29e76fdb6f31a56ebbde8f24">InsertValueInst</a> &amp;I)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(&amp;I));</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">// TerminatorInst and UnwindInst have been removed since llvm-8.0.0</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">// void visitTerminatorInst(TerminatorInst &amp;TI) {}</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">// void visitUnwindInst(UnwindInst &amp;I) { /*returns void*/}</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#aeb5f3cc92ef2d146c7c9cc86375b4c1e">visitBinaryOperator</a>(<a class="code" href="namespaceSVF.html#aad5d26ab07a5d1314bdb8f54e0fcdb22">BinaryOperator</a> &amp;I);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ae80891bb2a162b3ad24fa7cf6380df30">visitUnaryOperator</a>(<a class="code" href="namespaceSVF.html#a292a6e8c5b4f2023b5575879c57eca62">UnaryOperator</a> &amp;I);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ac61e0c5f667ebeb4788d07253e6a733c">visitCmpInst</a>(<a class="code" href="namespaceSVF.html#a5d875a9d726bb9f68a17efa528dec0b4">CmpInst</a> &amp;I);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ac26e0714728df0beca278eb405596775">visitVAArgInst</a>(<a class="code" href="namespaceSVF.html#abcafc32093ff5ee038b5fcf6e4076ed4">VAArgInst</a>&amp;);</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#afa10748f345ee53f417690cf125b0851"> 181</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#afa10748f345ee53f417690cf125b0851">visitVACopyInst</a>(<a class="code" href="namespaceSVF.html#a0f3339f5241441c7e6023df9e0cfa295">VACopyInst</a>&amp;){}</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#aa2e07d018323c9d06393266970a0c340"> 182</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#aa2e07d018323c9d06393266970a0c340">visitVAEndInst</a>(<a class="code" href="namespaceSVF.html#adb305e32f35af19b870b07711ba5b913">VAEndInst</a>&amp;){}</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a5321cd4eabcccd72c198966de1ab1ea2"> 183</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a5321cd4eabcccd72c198966de1ab1ea2">visitVAStartInst</a>(<a class="code" href="namespaceSVF.html#ad92e392a50e7c6c1f635fe2dcebd1adc">VAStartInst</a>&amp;){}</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a870ea33a335a7036555dd24171cf8f22">visitFreezeInst</a>(<a class="code" href="namespaceSVF.html#a9868a60a9cc7b78965a23b5034100f88">FreezeInst</a>&amp; I);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ac6b24fcbd1e1b31141c27167d49a56ec">visitExtractElementInst</a>(<a class="code" href="namespaceSVF.html#afb88c4d723dd7c51bdfc7ba5893cb356">ExtractElementInst</a> &amp;I);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a9db09a2c74f2489648b0282769488a17"> 192</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a9db09a2c74f2489648b0282769488a17">visitInsertElementInst</a>(<a class="code" href="namespaceSVF.html#a6b857824fb3c39ff6de953651260a326">InsertElementInst</a> &amp;I)</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(&amp;I));</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#acb52462a8a004654c8819017dc029c44"> 196</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#acb52462a8a004654c8819017dc029c44">visitShuffleVectorInst</a>(<a class="code" href="namespaceSVF.html#a64e69f438b8c302c4cae27735319fa49">ShuffleVectorInst</a> &amp;I)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(&amp;I));</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a0bc35bb64bbf3b494c0ac93b99c5a6d2"> 200</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a0bc35bb64bbf3b494c0ac93b99c5a6d2">visitLandingPadInst</a>(<a class="code" href="namespaceSVF.html#afa513a3c76371907221ee2b1ef289c71">LandingPadInst</a> &amp;I)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(&amp;I));</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a97b96b72e7b334f3aa732dfa5c35c3cb"> 206</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a97b96b72e7b334f3aa732dfa5c35c3cb">visitResumeInst</a>(<a class="code" href="namespaceSVF.html#a8c685f6bff3a67bf7fe3557dbfa84caa">ResumeInst</a>&amp;) <span class="comment">/*returns void*/</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ae4f8f902265b0c39547aabbfdaded795"> 209</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ae4f8f902265b0c39547aabbfdaded795">visitUnreachableInst</a>(<a class="code" href="namespaceSVF.html#a8ac6a8ff90f47a93166fbdf15be2d721">UnreachableInst</a>&amp;) <span class="comment">/*returns void*/</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a87a34334a50071e6061ee5dd1d34c9ed"> 212</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a87a34334a50071e6061ee5dd1d34c9ed">visitFenceInst</a>(<a class="code" href="namespaceSVF.html#a61f0d928e58d4f7e21616f770ae1080b">FenceInst</a> &amp;I) <span class="comment">/*returns void*/</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(&amp;I));</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ac5ae89051b0775ed209dcc654691958b"> 216</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#ac5ae89051b0775ed209dcc654691958b">visitAtomicCmpXchgInst</a>(<a class="code" href="namespaceSVF.html#a582e3736a2bbb0540364c1693d831b49">AtomicCmpXchgInst</a> &amp;I)</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(&amp;I));</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#adea9fdfead89d700d0453fd685355ff4"> 220</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#adea9fdfead89d700d0453fd685355ff4">visitAtomicRMWInst</a>(<a class="code" href="namespaceSVF.html#a468154e0ab9e7be82afef1aa0a2fb9e0">AtomicRMWInst</a> &amp;I)</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(&amp;I));</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a91c8f9dc6e7cb225c2ed4b8f0322a2b3"> 226</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a91c8f9dc6e7cb225c2ed4b8f0322a2b3">visitInstruction</a>(<a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>&amp;)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="comment">// If a new instruction is added to LLVM that we don&#39;t handle.</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="comment">// TODO: ignore here:</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="comment">//}@</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a15105737c91d01ba9daf2161fad220ef"> 234</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a15105737c91d01ba9daf2161fad220ef">setCurrentLocation</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb)</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; curBB = bb;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; curVal = val;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a7bf5d4d18f74f70b61955810e4f01d8c"> 239</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *<a class="code" href="classSVF_1_1SVFIRBuilder.html#a7bf5d4d18f74f70b61955810e4f01d8c">getCurrentValue</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a5afb07f2cf8d76f8db334250e0c96cc0">curVal</a>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; }</div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a724198dcaf43730e1df814f15fe4e1e0"> 243</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *<a class="code" href="classSVF_1_1SVFIRBuilder.html#a724198dcaf43730e1df814f15fe4e1e0">getCurrentBB</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#aac1cbf0cb2b402b5fd0e2324c89c31b0">curBB</a>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a55d8504dbc766c4ede031299a37417ef"> 249</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a55d8504dbc766c4ede031299a37417ef">addGlobalBlackHoleAddrEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *int2Ptrce)</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* cval = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a7bf5d4d18f74f70b61955810e4f01d8c">getCurrentValue</a>();</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* cbb = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a724198dcaf43730e1df814f15fe4e1e0">getCurrentBB</a>();</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a15105737c91d01ba9daf2161fad220ef">setCurrentLocation</a>(int2Ptrce,<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(node);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a15105737c91d01ba9daf2161fad220ef">setCurrentLocation</a>(cval,cbb);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a1717e26e29f50096b96d7e4c43fe1c76"> 259</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a1717e26e29f50096b96d7e4c43fe1c76">addNullPtrNode</a>()</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nullPtr = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0">addDummyValNode</a>(pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">getNullPtr</a>());</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="namespaceSVF.html#affba423b674a0aba723e33101826e297">LLVMContext</a> &amp;cxt = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">getContext</a>();</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="namespaceSVF.html#a90f6c91ba7a3c31c84b5c25277d83fca">ConstantPointerNull</a> *constNull = ConstantPointerNull::get(Type::getInt8PtrTy(cxt));</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a15105737c91d01ba9daf2161fad220ef">setCurrentLocation</a>(constNull, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">getBlkPtr</a>());</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> nullPtr;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIRBuilder.html#a1f2f512b7cf1ebb9aa2cebe90c8372c2">getGepValNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; ls, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *baseType, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fieldidx);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(<a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719"> 276</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3e80511758692d2ad4e5dbee15beb719">addBlackHoleAddrEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node)</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aba877353c0eb383bf5ce216e7cb605bc">addBlackHoleAddrPE</a>(node);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a2a0711cb1fdd3c5c90b07ff107aff1ac"> 284</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a2a0711cb1fdd3c5c90b07ff107aff1ac">addAddrEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst)</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a14fa2b06b44d89a8743373c8c69b160d">addAddrPE</a>(src, dst);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a140defeb309d895394822f8780deda16"> 291</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a140defeb309d895394822f8780deda16">addCopyEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst)</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa2ff7b368e9aa9c2abc979084a19e68b">addCopyPE</a>(src, dst);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div><div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a48e245a196a1d416d108ee52141d5452"> 298</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a48e245a196a1d416d108ee52141d5452">addPhiNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> res, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> opnd)</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; {</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a1399b1a61d2c9afba49129427b13115d">addPhiNode</a>(res,opnd);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div><div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a19e6384846928b57a1ab9ae186fc0ac6"> 305</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a19e6384846928b57a1ab9ae186fc0ac6">addCmpEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op1, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op2, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> opcode)</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1c1b20773bc547697323fe11b0dc5d5">addCmpPE</a>(op1, op2, dst, opcode);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div><div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a5832c14f0c8bf4d2f41921383c40340e"> 312</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a5832c14f0c8bf4d2f41921383c40340e">addBinaryOPEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op1, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op2, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> opcode)</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a9de8fffb3587d41844fc109bd0cfed4b">addBinaryOPPE</a>(op1, op2, dst, opcode);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a6102431dd8a8d7b050d5773e499d0fbf"> 319</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a6102431dd8a8d7b050d5773e499d0fbf">addUnaryOPEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> opcode)</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#af2f469e83e719b55161d2e4e5aac8741">addUnaryOPPE</a>(src, dst, opcode);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; }</div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ae0a1f66dee058f6af0f6b074db38db8e"> 326</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#ae0a1f66dee058f6af0f6b074db38db8e">addBranchStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> br, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> cond, <span class="keyword">const</span> std::vector&lt;const ICFGNode*&gt; succs){</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a4f0d318deff3b97a4bd5e7b9d53e42fd">addBranchStmt</a>(br, cond, succs);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div><div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a9fdcddcdcf14a90cc80d42de0d5ad189"> 332</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a9fdcddcdcf14a90cc80d42de0d5ad189">addLoadEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst)</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ad1217f1669f3507aa4da772d87934a04">addLoadPE</a>(src, dst);</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; }</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ac5795471aff6ccb07a84ffe1277ff2d4"> 339</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#ac5795471aff6ccb07a84ffe1277ff2d4">addStoreEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst)</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; {</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <a class="code" href="classSVF_1_1IntraBlockNode.html">IntraBlockNode</a>* node;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <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;(curVal))</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; node = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a485fcd76a8a864c9b686e68a3ca66dfc">getIntraBlockNode</a>(inst);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; node = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a80dd2807513a608b8f01d2325c0c0748">addStorePE</a>(src, dst, node);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; }</div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#af4ff212d09284eb377eefd14f60d2f14"> 351</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#af4ff212d09284eb377eefd14f60d2f14">addCallEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs)</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a9e99fcf29016ef401f53491ec54a4053">addCallPE</a>(src, dst, cs);</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</div><div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a50702f09af1ea9d50ee4726fc8f8a65c"> 358</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a50702f09af1ea9d50ee4726fc8f8a65c">addRetEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs)</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; {</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a12fef4ec0537b26947eb0ab10799f29f">addRetPE</a>(src, dst, cs);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; }</div><div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a45ab73a812809b3c725daf11b5da6141"> 365</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a45ab73a812809b3c725daf11b5da6141">addGepEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; ls, <span class="keywordtype">bool</span> constGep)</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; {</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ad68d676d6922a2eb29eeb5b5437bc323">addGepPE</a>(src, dst, ls, constGep);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; }</div><div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#ab56217d45668368157d272d7a524c40d"> 372</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1NormalGepStmt.html">NormalGepStmt</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#ab56217d45668368157d272d7a524c40d">addNormalGepEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; ls)</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; {</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <a class="code" href="classSVF_1_1NormalGepStmt.html">NormalGepStmt</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#adf0cde3268365cff3c7054e4433d8c23">addNormalGepPE</a>(src, dst, ls);</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; }</div><div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a3fdaecda239de4e8d4178e01445c6ad2"> 379</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1VariantGepStmt.html">VariantGepStmt</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a3fdaecda239de4e8d4178e01445c6ad2">addVariantGepEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst)</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <a class="code" href="classSVF_1_1VariantGepStmt.html">VariantGepStmt</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a82db2560583d6ff1d61d9512d142fa10">addVariantGepPE</a>(src, dst);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a7a311f7789c6c7a028ad0f595c1e0295"> 386</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a7a311f7789c6c7a028ad0f595c1e0295">addThreadForkEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs)</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a787dc5aff6f7a7d8ec3a7a23d9f40a7e">addThreadForkPE</a>(src, dst, cs);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; }</div><div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIRBuilder.html#a4acfddb8e683bbcc2e3949907361ea29"> 393</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>* <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4acfddb8e683bbcc2e3949907361ea29">addThreadJoinEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs)</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; {</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> *edge = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a4f64a1a266838ac72b66cca138ec57ca">addThreadJoinPE</a>(src, dst, cs);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">setCurrentBBAndValueForPAGEdge</a>(edge);</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; }</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;};</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* PAGBUILDER_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1AddrStmt_html"><div class="ttname"><a href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00196">SVFStatements.h:196</a></div></div>
70
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a80dd2807513a608b8f01d2325c0c0748"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a80dd2807513a608b8f01d2325c0c0748">SVF::SVFIR::addStorePE</a></div><div class="ttdeci">StoreStmt * addStorePE(NodeID src, NodeID dst, const IntraBlockNode *val)</div><div class="ttdoc">Add Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00204">SVFIR.cpp:204</a></div></div>
71
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a9de8fffb3587d41844fc109bd0cfed4b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a9de8fffb3587d41844fc109bd0cfed4b">SVF::SVFIR::addBinaryOPPE</a></div><div class="ttdeci">BinaryOPStmt * addBinaryOPPE(NodeID op1, NodeID op2, NodeID dst, u32_t opcode)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00129">SVFIR.cpp:129</a></div></div>
70
72
  <div class="ttc" id="classSVF_1_1SVFIR_html_aba877353c0eb383bf5ce216e7cb605bc"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aba877353c0eb383bf5ce216e7cb605bc">SVF::SVFIR::addBlackHoleAddrPE</a></div><div class="ttdeci">SVFStmt * addBlackHoleAddrPE(NodeID node)</div><div class="ttdoc">Set a pointer points-to black hole (e.g. int2ptr) </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00258">SVFIR.cpp:258</a></div></div>
71
- <div class="ttc" id="classSVF_1_1SVFIR_html_a0aefb9f6ac03251dd2893e8d5fa30c30"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a0aefb9f6ac03251dd2893e8d5fa30c30">SVF::SVFIR::addCopyPE</a></div><div class="ttdeci">CopyPE * addCopyPE(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00069">SVFIR.cpp:69</a></div></div>
72
73
  <div class="ttc" id="namespaceSVF_html_ab696aab940eb187dc81217efe8649af5"><div class="ttname"><a href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">SVF::StoreInst</a></div><div class="ttdeci">llvm::StoreInst StoreInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00151">BasicTypes.h:151</a></div></div>
74
+ <div class="ttc" id="classSVF_1_1SVFIR_html_ad1217f1669f3507aa4da772d87934a04"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad1217f1669f3507aa4da772d87934a04">SVF::SVFIR::addLoadPE</a></div><div class="ttdeci">LoadStmt * addLoadPE(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00185">SVFIR.cpp:185</a></div></div>
73
75
  <div class="ttc" id="namespaceSVF_html_a8ac6a8ff90f47a93166fbdf15be2d721"><div class="ttname"><a href="namespaceSVF.html#a8ac6a8ff90f47a93166fbdf15be2d721">SVF::UnreachableInst</a></div><div class="ttdeci">llvm::UnreachableInst UnreachableInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00174">BasicTypes.h:174</a></div></div>
74
76
  <div class="ttc" id="namespaceSVF_html_afb88c4d723dd7c51bdfc7ba5893cb356"><div class="ttname"><a href="namespaceSVF.html#afb88c4d723dd7c51bdfc7ba5893cb356">SVF::ExtractElementInst</a></div><div class="ttdeci">llvm::ExtractElementInst ExtractElementInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00169">BasicTypes.h:169</a></div></div>
75
77
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_adea9fdfead89d700d0453fd685355ff4"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#adea9fdfead89d700d0453fd685355ff4">SVF::SVFIRBuilder::visitAtomicRMWInst</a></div><div class="ttdeci">void visitAtomicRMWInst(AtomicRMWInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00220">SVFIRBuilder.h:220</a></div></div>
@@ -79,10 +81,13 @@ $(function() {
79
81
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a4be150eb37b75e4c081dfe38429f2089"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a4be150eb37b75e4c081dfe38429f2089">SVF::SVFIRBuilder::visitAllocaInst</a></div><div class="ttdeci">virtual void visitAllocaInst(AllocaInst &amp;AI)</div><div class="ttdoc">Our visit overrides. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00490">SVFIRBuilder.cpp:490</a></div></div>
80
82
  <div class="ttc" id="namespaceSVF_html_ac9a05dd7ab16e998625037aa242cd30f"><div class="ttname"><a href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">SVF::BranchInst</a></div><div class="ttdeci">llvm::BranchInst BranchInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00161">BasicTypes.h:161</a></div></div>
81
83
  <div class="ttc" id="classSVF_1_1SVFIR_html_aa7e98cd2fd599aedefa4c2e6fb659da0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0">SVF::SVFIR::addDummyValNode</a></div><div class="ttdeci">NodeID addDummyValNode()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00462">SVFIR.h:462</a></div></div>
84
+ <div class="ttc" id="classSVF_1_1SVFIR_html_adf0cde3268365cff3c7054e4433d8c23"><div class="ttname"><a href="classSVF_1_1SVFIR.html#adf0cde3268365cff3c7054e4433d8c23">SVF::SVFIR::addNormalGepPE</a></div><div class="ttdeci">NormalGepStmt * addNormalGepPE(NodeID src, NodeID dst, const LocationSet &amp;ls)</div><div class="ttdoc">Add Offset(Gep) edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00327">SVFIR.cpp:327</a></div></div>
82
85
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a4a945eafd262f81b4f9cc1fa61b57371"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a4a945eafd262f81b4f9cc1fa61b57371">SVF::SVFIRBuilder::visitGetElementPtrInst</a></div><div class="ttdeci">void visitGetElementPtrInst(GetElementPtrInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00561">SVFIRBuilder.cpp:561</a></div></div>
83
86
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_aa21ed35656d26eec22c53dc41019adc4"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#aa21ed35656d26eec22c53dc41019adc4">SVF::SVFIRBuilder::handleIndCall</a></div><div class="ttdeci">void handleIndCall(CallSite cs)</div><div class="ttdoc">Handle indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l01367">SVFIRBuilder.cpp:1367</a></div></div>
84
87
  <div class="ttc" id="namespaceSVF_html_a292a6e8c5b4f2023b5575879c57eca62"><div class="ttname"><a href="namespaceSVF.html#a292a6e8c5b4f2023b5575879c57eca62">SVF::UnaryOperator</a></div><div class="ttdeci">llvm::UnaryOperator UnaryOperator</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00166">BasicTypes.h:166</a></div></div>
85
88
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a724198dcaf43730e1df814f15fe4e1e0"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a724198dcaf43730e1df814f15fe4e1e0">SVF::SVFIRBuilder::getCurrentBB</a></div><div class="ttdeci">const BasicBlock * getCurrentBB() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00243">SVFIRBuilder.h:243</a></div></div>
89
+ <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a2a0711cb1fdd3c5c90b07ff107aff1ac"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a2a0711cb1fdd3c5c90b07ff107aff1ac">SVF::SVFIRBuilder::addAddrEdge</a></div><div class="ttdeci">AddrStmt * addAddrEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Address edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00284">SVFIRBuilder.h:284</a></div></div>
90
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a14fa2b06b44d89a8743373c8c69b160d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a14fa2b06b44d89a8743373c8c69b160d">SVF::SVFIR::addAddrPE</a></div><div class="ttdeci">AddrStmt * addAddrPE(NodeID src, NodeID dst)</div><div class="ttdoc">Add an edge into SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00051">SVFIR.cpp:51</a></div></div>
86
91
  <div class="ttc" id="namespaceSVF_html_a962e9a9044a46fc4bd2367384f6e0827"><div class="ttname"><a href="namespaceSVF.html#a962e9a9044a46fc4bd2367384f6e0827">SVF::CastInst</a></div><div class="ttdeci">llvm::CastInst CastInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00155">BasicTypes.h:155</a></div></div>
87
92
  <div class="ttc" id="namespaceSVF_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#l00077">BasicTypes.h:77</a></div></div>
88
93
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_acc69fc638380f34164db649d9bf2a7d6"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">SVF::SVFIRBuilder::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const Value *V)</div><div class="ttdoc">Get different kinds of node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00085">SVFIRBuilder.h:85</a></div></div>
@@ -95,11 +100,14 @@ $(function() {
95
100
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_afa10748f345ee53f417690cf125b0851"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#afa10748f345ee53f417690cf125b0851">SVF::SVFIRBuilder::visitVACopyInst</a></div><div class="ttdeci">void visitVACopyInst(VACopyInst &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00181">SVFIRBuilder.h:181</a></div></div>
96
101
  <div class="ttc" id="namespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00075">BasicTypes.h:75</a></div></div>
97
102
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a51d75ff7f490ddfef3d4f8779872633c"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a51d75ff7f490ddfef3d4f8779872633c">SVF::SVFIRBuilder::visitStoreInst</a></div><div class="ttdeci">void visitStoreInst(StoreInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00543">SVFIRBuilder.cpp:543</a></div></div>
103
+ <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_ab56217d45668368157d272d7a524c40d"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ab56217d45668368157d272d7a524c40d">SVF::SVFIRBuilder::addNormalGepEdge</a></div><div class="ttdeci">NormalGepStmt * addNormalGepEdge(NodeID src, NodeID dst, const LocationSet &amp;ls)</div><div class="ttdoc">Add Offset(Gep) edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00372">SVFIRBuilder.h:372</a></div></div>
98
104
  <div class="ttc" id="namespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00083">BasicTypes.h:83</a></div></div>
99
105
  <div class="ttc" id="namespaceSVF_html_a8c685f6bff3a67bf7fe3557dbfa84caa"><div class="ttname"><a href="namespaceSVF.html#a8c685f6bff3a67bf7fe3557dbfa84caa">SVF::ResumeInst</a></div><div class="ttdeci">llvm::ResumeInst ResumeInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00173">BasicTypes.h:173</a></div></div>
100
106
  <div class="ttc" id="classSVF_1_1IRGraph_html_a8b10c318674a47035d617b3ade4f069b"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">SVF::IRGraph::getVarargNode</a></div><div class="ttdeci">NodeID getVarargNode(const SVFFunction *func) const</div><div class="ttdoc">getVarargNode - Return the unique node representing the variadic argument of a variadic function...</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00140">IRGraph.h:140</a></div></div>
101
107
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_ae4f8f902265b0c39547aabbfdaded795"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ae4f8f902265b0c39547aabbfdaded795">SVF::SVFIRBuilder::visitUnreachableInst</a></div><div class="ttdeci">void visitUnreachableInst(UnreachableInst &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00209">SVFIRBuilder.h:209</a></div></div>
102
- <div class="ttc" id="classSVF_1_1UnaryOPPE_html"><div class="ttname"><a href="classSVF_1_1UnaryOPPE.html">SVF::UnaryOPPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00474">SVFStatements.h:474</a></div></div>
108
+ <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a6102431dd8a8d7b050d5773e499d0fbf"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a6102431dd8a8d7b050d5773e499d0fbf">SVF::SVFIRBuilder::addUnaryOPEdge</a></div><div class="ttdeci">UnaryOPStmt * addUnaryOPEdge(NodeID src, NodeID dst, u32_t opcode)</div><div class="ttdoc">Add Unary edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00319">SVFIRBuilder.h:319</a></div></div>
109
+ <div class="ttc" id="classSVF_1_1SVFIR_html_aa2ff7b368e9aa9c2abc979084a19e68b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa2ff7b368e9aa9c2abc979084a19e68b">SVF::SVFIR::addCopyPE</a></div><div class="ttdeci">CopyStmt * addCopyPE(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00069">SVFIR.cpp:69</a></div></div>
110
+ <div class="ttc" id="classSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00664">SVFStatements.h:664</a></div></div>
103
111
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_aeb5f3cc92ef2d146c7c9cc86375b4c1e"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#aeb5f3cc92ef2d146c7c9cc86375b4c1e">SVF::SVFIRBuilder::visitBinaryOperator</a></div><div class="ttdeci">void visitBinaryOperator(BinaryOperator &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00611">SVFIRBuilder.cpp:611</a></div></div>
104
112
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_ac6b24fcbd1e1b31141c27167d49a56ec"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ac6b24fcbd1e1b31141c27167d49a56ec">SVF::SVFIRBuilder::visitExtractElementInst</a></div><div class="ttdeci">void visitExtractElementInst(ExtractElementInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00760">SVFIRBuilder.cpp:760</a></div></div>
105
113
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a4ad832691784cf4cb93017792ea3d9af"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a4ad832691784cf4cb93017792ea3d9af">SVF::SVFIRBuilder::visitBranchInst</a></div><div class="ttdeci">void visitBranchInst(BranchInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00770">SVFIRBuilder.cpp:770</a></div></div>
@@ -107,18 +115,19 @@ $(function() {
107
115
  <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
108
116
  <div class="ttc" id="namespaceSVF_html_aad5d26ab07a5d1314bdb8f54e0fcdb22"><div class="ttname"><a href="namespaceSVF.html#aad5d26ab07a5d1314bdb8f54e0fcdb22">SVF::BinaryOperator</a></div><div class="ttdeci">llvm::BinaryOperator BinaryOperator</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00165">BasicTypes.h:165</a></div></div>
109
117
  <div class="ttc" id="namespaceSVF_html_a6b857824fb3c39ff6de953651260a326"><div class="ttname"><a href="namespaceSVF.html#a6b857824fb3c39ff6de953651260a326">SVF::InsertElementInst</a></div><div class="ttdeci">llvm::InsertElementInst InsertElementInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00170">BasicTypes.h:170</a></div></div>
110
- <div class="ttc" id="classSVF_1_1StorePE_html"><div class="ttname"><a href="classSVF_1_1StorePE.html">SVF::StorePE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00591">SVFStatements.h:591</a></div></div>
111
118
  <div class="ttc" id="namespaceSVF_html_ac6b6710585fc6667858ccfd4311b6ab5"><div class="ttname"><a href="namespaceSVF.html#ac6b6710585fc6667858ccfd4311b6ab5">SVF::CallBrInst</a></div><div class="ttdeci">llvm::CallBrInst CallBrInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00150">BasicTypes.h:150</a></div></div>
119
+ <div class="ttc" id="classSVF_1_1VariantGepStmt_html"><div class="ttname"><a href="classSVF_1_1VariantGepStmt.html">SVF::VariantGepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00754">SVFStatements.h:754</a></div></div>
112
120
  <div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00148">BasicTypes.h:148</a></div></div>
113
121
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_ac1a9d20d62066ec4e181fad223669e32"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">SVF::LLVMModuleSet::getContext</a></div><div class="ttdeci">LLVMContext &amp; getContext() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00198">LLVMModule.h:198</a></div></div>
122
+ <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a19e6384846928b57a1ab9ae186fc0ac6"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a19e6384846928b57a1ab9ae186fc0ac6">SVF::SVFIRBuilder::addCmpEdge</a></div><div class="ttdeci">CmpStmt * addCmpEdge(NodeID op1, NodeID op2, NodeID dst, u32_t opcode)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00305">SVFIRBuilder.h:305</a></div></div>
114
123
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_af4b18e8e1fdfb117cb5dd1a81cea4b71"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#af4b18e8e1fdfb117cb5dd1a81cea4b71">SVF::SVFIRBuilder::initialiseNodes</a></div><div class="ttdeci">void initialiseNodes()</div><div class="ttdoc">Initialize nodes and edges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00128">SVFIRBuilder.cpp:128</a></div></div>
124
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a82db2560583d6ff1d61d9512d142fa10"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a82db2560583d6ff1d61d9512d142fa10">SVF::SVFIR::addVariantGepPE</a></div><div class="ttdeci">VariantGepStmt * addVariantGepPE(NodeID src, NodeID dst)</div><div class="ttdoc">Add Variant(Gep) edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00347">SVFIR.cpp:347</a></div></div>
115
125
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_ae7fcd2050a57a43bfed2c7fd1c41d250"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ae7fcd2050a57a43bfed2c7fd1c41d250">SVF::SVFIRBuilder::InitialGlobal</a></div><div class="ttdeci">void InitialGlobal(const GlobalVariable *gvar, Constant *C, u32_t offset)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00369">SVFIRBuilder.cpp:369</a></div></div>
116
126
  <div class="ttc" id="namespaceSVF_html_a485b10fc29e76fdb6f31a56ebbde8f24"><div class="ttname"><a href="namespaceSVF.html#a485b10fc29e76fdb6f31a56ebbde8f24">SVF::InsertValueInst</a></div><div class="ttdeci">llvm::InsertValueInst InsertValueInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00164">BasicTypes.h:164</a></div></div>
117
127
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_af44d4587defa76f1e7f2645f9711558a"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#af44d4587defa76f1e7f2645f9711558a">SVF::SVFIRBuilder::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdoc">Return SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00067">SVFIRBuilder.h:67</a></div></div>
118
128
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a6b52906a617f088b1077ba0387a846ab"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a6b52906a617f088b1077ba0387a846ab">SVF::SVFIRBuilder::visitCallSite</a></div><div class="ttdeci">void visitCallSite(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00672">SVFIRBuilder.cpp:672</a></div></div>
119
129
  <div class="ttc" id="classSVF_1_1SVFIR_html_a787dc5aff6f7a7d8ec3a7a23d9f40a7e"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a787dc5aff6f7a7d8ec3a7a23d9f40a7e">SVF::SVFIR::addThreadForkPE</a></div><div class="ttdeci">TDForkPE * addThreadForkPE(NodeID src, NodeID dst, const CallBlockNode *cs)</div><div class="ttdoc">Add Thread fork edge for parameter passing. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00269">SVFIR.cpp:269</a></div></div>
120
130
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a09baa8c7246853c3faaed85b38f0da60"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a09baa8c7246853c3faaed85b38f0da60">SVF::SVFIRBuilder::sanityCheck</a></div><div class="ttdeci">void sanityCheck()</div><div class="ttdoc">Sanity check for SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l01376">SVFIRBuilder.cpp:1376</a></div></div>
121
- <div class="ttc" id="classSVF_1_1SVFIR_html_a33d8fad47352f7ca8aac035eb2adb57e"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a33d8fad47352f7ca8aac035eb2adb57e">SVF::SVFIR::addVariantGepPE</a></div><div class="ttdeci">VariantGepPE * addVariantGepPE(NodeID src, NodeID dst)</div><div class="ttdoc">Add Variant(Gep) edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00347">SVFIR.cpp:347</a></div></div>
122
131
  <div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
123
132
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a5adf8baa546292434ba1fec48db2d0a7"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a5adf8baa546292434ba1fec48db2d0a7">SVF::SVFIRBuilder::processCE</a></div><div class="ttdeci">void processCE(const Value *val)</div><div class="ttdoc">Process constant expression. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00213">SVFIRBuilder.cpp:213</a></div></div>
124
133
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_aac1cbf0cb2b402b5fd0e2324c89c31b0"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#aac1cbf0cb2b402b5fd0e2324c89c31b0">SVF::SVFIRBuilder::curBB</a></div><div class="ttdeci">const BasicBlock * curBB</div><div class="ttdoc">Current basic block during SVFIR construction when visiting the module. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00050">SVFIRBuilder.h:50</a></div></div>
@@ -128,23 +137,24 @@ $(function() {
128
137
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a17638b08f85d4543e663eeb739915bdc"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a17638b08f85d4543e663eeb739915bdc">SVF::SVFIRBuilder::visitLoadInst</a></div><div class="ttdeci">void visitLoadInst(LoadInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00529">SVFIRBuilder.cpp:529</a></div></div>
129
138
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_ab83a61a519cb0bb6fed823a938cf0602"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ab83a61a519cb0bb6fed823a938cf0602">SVF::SVFIRBuilder::addComplexConsForExt</a></div><div class="ttdeci">void addComplexConsForExt(Value *D, Value *S, u32_t sz=0)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00907">SVFIRBuilder.cpp:907</a></div></div>
130
139
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00075">SVFBasicTypes.h:75</a></div></div>
131
- <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_ab5ee064069e588e9d5b686aba4aa39cf"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ab5ee064069e588e9d5b686aba4aa39cf">SVF::SVFIRBuilder::addAddrEdge</a></div><div class="ttdeci">AddrPE * addAddrEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Address edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00284">SVFIRBuilder.h:284</a></div></div>
132
140
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_ae714d5f9550b81066fc4071616d46a64"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ae714d5f9550b81066fc4071616d46a64">SVF::SVFIRBuilder::visitCallBrInst</a></div><div class="ttdeci">void visitCallBrInst(CallBrInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00156">SVFIRBuilder.h:156</a></div></div>
133
141
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a15105737c91d01ba9daf2161fad220ef"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a15105737c91d01ba9daf2161fad220ef">SVF::SVFIRBuilder::setCurrentLocation</a></div><div class="ttdeci">void setCurrentLocation(const Value *val, const BasicBlock *bb)</div><div class="ttdoc">Set current basic block in order to keep track of control flow information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00234">SVFIRBuilder.h:234</a></div></div>
134
142
  <div class="ttc" id="classSVF_1_1TDJoinPE_html"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html">SVF::TDJoinPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00935">SVFStatements.h:935</a></div></div>
143
+ <div class="ttc" id="classSVF_1_1SVFIR_html_ad68d676d6922a2eb29eeb5b5437bc323"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad68d676d6922a2eb29eeb5b5437bc323">SVF::SVFIR::addGepPE</a></div><div class="ttdeci">GepStmt * addGepPE(NodeID src, NodeID dst, const LocationSet &amp;ls, bool constGep)</div><div class="ttdoc">Add Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00308">SVFIR.cpp:308</a></div></div>
135
144
  <div class="ttc" id="classSVF_1_1IRGraph_html_abffddd41cc308b9b3bd5ad4a7f8f1624"><div class="ttname"><a href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00120">IRGraph.h:120</a></div></div>
136
145
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a0bc35bb64bbf3b494c0ac93b99c5a6d2"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a0bc35bb64bbf3b494c0ac93b99c5a6d2">SVF::SVFIRBuilder::visitLandingPadInst</a></div><div class="ttdeci">void visitLandingPadInst(LandingPadInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00200">SVFIRBuilder.h:200</a></div></div>
146
+ <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a9fdcddcdcf14a90cc80d42de0d5ad189"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a9fdcddcdcf14a90cc80d42de0d5ad189">SVF::SVFIRBuilder::addLoadEdge</a></div><div class="ttdeci">LoadStmt * addLoadEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00332">SVFIRBuilder.h:332</a></div></div>
137
147
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a3fe99644b2bf5f0f9b2b21a56a400ad4"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a3fe99644b2bf5f0f9b2b21a56a400ad4">SVF::SVFIRBuilder::getVarargNode</a></div><div class="ttdeci">NodeID getVarargNode(const SVFFunction *func)</div><div class="ttdoc">getVarargNode - Return the node representing the unique variadic argument of a function. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00107">SVFIRBuilder.h:107</a></div></div>
148
+ <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a45ab73a812809b3c725daf11b5da6141"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a45ab73a812809b3c725daf11b5da6141">SVF::SVFIRBuilder::addGepEdge</a></div><div class="ttdeci">GepStmt * addGepEdge(NodeID src, NodeID dst, const LocationSet &amp;ls, bool constGep)</div><div class="ttdoc">Add Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00365">SVFIRBuilder.h:365</a></div></div>
138
149
  <div class="ttc" id="classSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00793">SVFStatements.h:793</a></div></div>
150
+ <div class="ttc" id="classSVF_1_1UnaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html">SVF::UnaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00474">SVFStatements.h:474</a></div></div>
151
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a1399b1a61d2c9afba49129427b13115d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a1399b1a61d2c9afba49129427b13115d">SVF::SVFIR::addPhiNode</a></div><div class="ttdeci">PhiStmt * addPhiNode(NodeID res, NodeID opnd)</div><div class="ttdoc">Add phi node information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00087">SVFIR.cpp:87</a></div></div>
139
152
  <div class="ttc" id="ICFGBuilder_8h_html"><div class="ttname"><a href="ICFGBuilder_8h.html">ICFGBuilder.h</a></div></div>
140
153
  <div class="ttc" id="namespaceSVF_html_ac7dcc6103dee3a0bbc2fd2e02716a154"><div class="ttname"><a href="namespaceSVF.html#ac7dcc6103dee3a0bbc2fd2e02716a154">SVF::ReturnInst</a></div><div class="ttdeci">llvm::ReturnInst ReturnInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00157">BasicTypes.h:157</a></div></div>
141
- <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_ab19a9a94a7c8f382a70c3a3269f22959"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ab19a9a94a7c8f382a70c3a3269f22959">SVF::SVFIRBuilder::addNormalGepEdge</a></div><div class="ttdeci">NormalGepPE * addNormalGepEdge(NodeID src, NodeID dst, const LocationSet &amp;ls)</div><div class="ttdoc">Add Offset(Gep) edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00372">SVFIRBuilder.h:372</a></div></div>
142
154
  <div class="ttc" id="classSVF_1_1ICFG_html_a485fcd76a8a864c9b686e68a3ca66dfc"><div class="ttname"><a href="classSVF_1_1ICFG.html#a485fcd76a8a864c9b686e68a3ca66dfc">SVF::ICFG::getIntraBlockNode</a></div><div class="ttdeci">IntraBlockNode * getIntraBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00221">ICFG.cpp:221</a></div></div>
143
- <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a6636324fa8135f2be841e0d06d5e5f54"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a6636324fa8135f2be841e0d06d5e5f54">SVF::SVFIRBuilder::addCmpEdge</a></div><div class="ttdeci">CmpPE * addCmpEdge(NodeID op1, NodeID op2, NodeID dst, u32_t opcode)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00305">SVFIRBuilder.h:305</a></div></div>
144
155
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00044">SVFIRBuilder.h:44</a></div></div>
145
156
  <div class="ttc" id="namespaceSVF_html_ab7fac9d4a4839be445c89777e21bc307"><div class="ttname"><a href="namespaceSVF.html#ab7fac9d4a4839be445c89777e21bc307">SVF::SelectInst</a></div><div class="ttdeci">llvm::SelectInst SelectInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00158">BasicTypes.h:158</a></div></div>
146
157
  <div class="ttc" id="namespaceSVF_html_a90f6c91ba7a3c31c84b5c25277d83fca"><div class="ttname"><a href="namespaceSVF.html#a90f6c91ba7a3c31c84b5c25277d83fca">SVF::ConstantPointerNull</a></div><div class="ttdeci">llvm::ConstantPointerNull ConstantPointerNull</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00132">BasicTypes.h:132</a></div></div>
147
- <div class="ttc" id="classSVF_1_1VariantGepPE_html"><div class="ttname"><a href="classSVF_1_1VariantGepPE.html">SVF::VariantGepPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00754">SVFStatements.h:754</a></div></div>
148
158
  <div class="ttc" id="namespaceSVF_html_a582e3736a2bbb0540364c1693d831b49"><div class="ttname"><a href="namespaceSVF.html#a582e3736a2bbb0540364c1693d831b49">SVF::AtomicCmpXchgInst</a></div><div class="ttdeci">llvm::AtomicCmpXchgInst AtomicCmpXchgInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00176">BasicTypes.h:176</a></div></div>
149
159
  <div class="ttc" id="classSVF_1_1IRGraph_html_a3de9a2a565c303f68a90c32dc59febd5"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">SVF::IRGraph::getNullPtr</a></div><div class="ttdeci">NodeID getNullPtr() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00156">IRGraph.h:156</a></div></div>
150
160
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_acf5a61d45c1abc1206f6e6c813f8634b"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#acf5a61d45c1abc1206f6e6c813f8634b">SVF::SVFIRBuilder::visitCastInst</a></div><div class="ttdeci">void visitCastInst(CastInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00587">SVFIRBuilder.cpp:587</a></div></div>
@@ -152,30 +162,25 @@ $(function() {
152
162
  <div class="ttc" id="namespaceSVF_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#l00079">BasicTypes.h:79</a></div></div>
153
163
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_abc836736ea16d99921c0e734cf0a3c72"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#abc836736ea16d99921c0e734cf0a3c72">SVF::SVFIRBuilder::visitSelectInst</a></div><div class="ttdeci">void visitSelectInst(SelectInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00655">SVFIRBuilder.cpp:655</a></div></div>
154
164
  <div class="ttc" id="namespaceSVF_html_a2db29836a72e8d86e9baa6d8d55d2978"><div class="ttname"><a href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">SVF::Size_t</a></div><div class="ttdeci">signed long Size_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00078">SVFBasicTypes.h:78</a></div></div>
155
- <div class="ttc" id="classSVF_1_1NormalGepPE_html"><div class="ttname"><a href="classSVF_1_1NormalGepPE.html">SVF::NormalGepPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00704">SVFStatements.h:704</a></div></div>
165
+ <div class="ttc" id="classSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00628">SVFStatements.h:628</a></div></div>
156
166
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_aff08d65b1411d1db81f80b9d4228c65d"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#aff08d65b1411d1db81f80b9d4228c65d">SVF::SVFIRBuilder::handleExtCall</a></div><div class="ttdeci">virtual void handleExtCall(CallSite cs, const SVFFunction *F)</div><div class="ttdoc">Handle external call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00953">SVFIRBuilder.cpp:953</a></div></div>
157
167
  <div class="ttc" id="classSVF_1_1BranchStmt_html"><div class="ttname"><a href="classSVF_1_1BranchStmt.html">SVF::BranchStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00528">SVFStatements.h:528</a></div></div>
158
168
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_aa2e07d018323c9d06393266970a0c340"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#aa2e07d018323c9d06393266970a0c340">SVF::SVFIRBuilder::visitVAEndInst</a></div><div class="ttdeci">void visitVAEndInst(VAEndInst &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00182">SVFIRBuilder.h:182</a></div></div>
169
+ <div class="ttc" id="classSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00328">SVFStatements.h:328</a></div></div>
170
+ <div class="ttc" id="classSVF_1_1SVFIR_html_af2f469e83e719b55161d2e4e5aac8741"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af2f469e83e719b55161d2e4e5aac8741">SVF::SVFIR::addUnaryOPPE</a></div><div class="ttdeci">UnaryOPStmt * addUnaryOPPE(NodeID src, NodeID dst, u32_t opcode)</div><div class="ttdoc">Add Unary edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00149">SVFIR.cpp:149</a></div></div>
159
171
  <div class="ttc" id="namespaceSVF_html_a3bacb4f95c73e6d794901d01c6b65a83"><div class="ttname"><a href="namespaceSVF.html#a3bacb4f95c73e6d794901d01c6b65a83">SVF::AllocaInst</a></div><div class="ttdeci">llvm::AllocaInst AllocaInst</div><div class="ttdoc">LLVM Instructions. </div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00147">BasicTypes.h:147</a></div></div>
160
172
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_acb52462a8a004654c8819017dc029c44"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#acb52462a8a004654c8819017dc029c44">SVF::SVFIRBuilder::visitShuffleVectorInst</a></div><div class="ttdeci">void visitShuffleVectorInst(ShuffleVectorInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00196">SVFIRBuilder.h:196</a></div></div>
161
- <div class="ttc" id="classSVF_1_1GepPE_html"><div class="ttname"><a href="classSVF_1_1GepPE.html">SVF::GepPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00664">SVFStatements.h:664</a></div></div>
162
173
  <div class="ttc" id="namespaceSVF_html_a61f0d928e58d4f7e21616f770ae1080b"><div class="ttname"><a href="namespaceSVF.html#a61f0d928e58d4f7e21616f770ae1080b">SVF::FenceInst</a></div><div class="ttdeci">llvm::FenceInst FenceInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00175">BasicTypes.h:175</a></div></div>
163
- <div class="ttc" id="classSVF_1_1CmpPE_html"><div class="ttname"><a href="classSVF_1_1CmpPE.html">SVF::CmpPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00374">SVFStatements.h:374</a></div></div>
164
- <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_ab699fe11eed6d0eb655a55540de69586"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ab699fe11eed6d0eb655a55540de69586">SVF::SVFIRBuilder::addCopyEdge</a></div><div class="ttdeci">CopyPE * addCopyEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00291">SVFIRBuilder.h:291</a></div></div>
165
174
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_aca31431b70e2fb360caa1140e29c0c9d"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#aca31431b70e2fb360caa1140e29c0c9d">SVF::SVFIRBuilder::visitReturnInst</a></div><div class="ttdeci">void visitReturnInst(ReturnInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00718">SVFIRBuilder.cpp:718</a></div></div>
166
175
  <div class="ttc" id="namespaceSVF_html_ad92e392a50e7c6c1f635fe2dcebd1adc"><div class="ttname"><a href="namespaceSVF.html#ad92e392a50e7c6c1f635fe2dcebd1adc">SVF::VAStartInst</a></div><div class="ttdeci">llvm::VAStartInst VAStartInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00181">BasicTypes.h:181</a></div></div>
167
176
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a87b75f04942124711d5ea1366e866890"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a87b75f04942124711d5ea1366e866890">SVF::SVFIRBuilder::computeGepOffset</a></div><div class="ttdeci">bool computeGepOffset(const User *V, LocationSet &amp;ls)</div><div class="ttdoc">Compute offset of a gep instruction or gep constant expression. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00205">SVFIRBuilder.cpp:205</a></div></div>
177
+ <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_ac5795471aff6ccb07a84ffe1277ff2d4"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ac5795471aff6ccb07a84ffe1277ff2d4">SVF::SVFIRBuilder::addStoreEdge</a></div><div class="ttdeci">StoreStmt * addStoreEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00339">SVFIRBuilder.h:339</a></div></div>
168
178
  <div class="ttc" id="namespaceSVF_html_ac4e93e1fec646ff222940a663843921b"><div class="ttname"><a href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">SVF::GetElementPtrInst</a></div><div class="ttdeci">llvm::GetElementPtrInst GetElementPtrInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00154">BasicTypes.h:154</a></div></div>
169
- <div class="ttc" id="classSVF_1_1SVFIR_html_a30409c96194976713b6b7728c072b8a5"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a30409c96194976713b6b7728c072b8a5">SVF::SVFIR::addUnaryOPPE</a></div><div class="ttdeci">UnaryOPPE * addUnaryOPPE(NodeID src, NodeID dst, u32_t opcode)</div><div class="ttdoc">Add Unary edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00149">SVFIR.cpp:149</a></div></div>
170
- <div class="ttc" id="classSVF_1_1SVFIR_html_a5b89eb728f02a2d235f898dcf555d1a2"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5b89eb728f02a2d235f898dcf555d1a2">SVF::SVFIR::addLoadPE</a></div><div class="ttdeci">LoadPE * addLoadPE(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00185">SVFIR.cpp:185</a></div></div>
171
179
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a4e6025dcd8af2f35e3cc33d280fde497"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a4e6025dcd8af2f35e3cc33d280fde497">SVF::SVFIRBuilder::visitInsertValueInst</a></div><div class="ttdeci">void visitInsertValueInst(InsertValueInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00166">SVFIRBuilder.h:166</a></div></div>
172
- <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_ab4327a515c8ce8dabd0457a93424df26"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ab4327a515c8ce8dabd0457a93424df26">SVF::SVFIRBuilder::addLoadEdge</a></div><div class="ttdeci">LoadPE * addLoadEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00332">SVFIRBuilder.h:332</a></div></div>
173
180
  <div class="ttc" id="classSVF_1_1TDForkPE_html"><div class="ttname"><a href="classSVF_1_1TDForkPE.html">SVF::TDForkPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00897">SVFStatements.h:897</a></div></div>
174
- <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a2020793d5013abd1300331302f0514d4"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a2020793d5013abd1300331302f0514d4">SVF::SVFIRBuilder::addUnaryOPEdge</a></div><div class="ttdeci">UnaryOPPE * addUnaryOPEdge(NodeID src, NodeID dst, u32_t opcode)</div><div class="ttdoc">Add Unary edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00319">SVFIRBuilder.h:319</a></div></div>
175
181
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a91c8f9dc6e7cb225c2ed4b8f0322a2b3"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a91c8f9dc6e7cb225c2ed4b8f0322a2b3">SVF::SVFIRBuilder::visitInstruction</a></div><div class="ttdeci">void visitInstruction(Instruction &amp;)</div><div class="ttdoc">Provide base case for our instruction visit. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00226">SVFIRBuilder.h:226</a></div></div>
176
182
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_ac61e0c5f667ebeb4788d07253e6a733c"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ac61e0c5f667ebeb4788d07253e6a733c">SVF::SVFIRBuilder::visitCmpInst</a></div><div class="ttdeci">void visitCmpInst(CmpInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00639">SVFIRBuilder.cpp:639</a></div></div>
177
183
  <div class="ttc" id="namespaceSVF_html_a7e230c0cba2e3a7c2e5a5f2ee7d88af9"><div class="ttname"><a href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">SVF::Constant</a></div><div class="ttdeci">llvm::Constant Constant</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00123">BasicTypes.h:123</a></div></div>
178
- <div class="ttc" id="classSVF_1_1LoadPE_html"><div class="ttname"><a href="classSVF_1_1LoadPE.html">SVF::LoadPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00628">SVFStatements.h:628</a></div></div>
179
184
  <div class="ttc" id="classSVF_1_1IntraBlockNode_html"><div class="ttname"><a href="classSVF_1_1IntraBlockNode.html">SVF::IntraBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00175">ICFGNode.h:175</a></div></div>
180
185
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_aa67bbd366b93fb1ec7a540c83566c977"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#aa67bbd366b93fb1ec7a540c83566c977">SVF::SVFIRBuilder::svfMod</a></div><div class="ttdeci">SVFModule * svfMod</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00049">SVFIRBuilder.h:49</a></div></div>
181
186
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_ac5ae89051b0775ed209dcc654691958b"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ac5ae89051b0775ed209dcc654691958b">SVF::SVFIRBuilder::visitAtomicCmpXchgInst</a></div><div class="ttdeci">void visitAtomicCmpXchgInst(AtomicCmpXchgInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00216">SVFIRBuilder.h:216</a></div></div>
@@ -185,72 +190,67 @@ $(function() {
185
190
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_ac26e0714728df0beca278eb405596775"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ac26e0714728df0beca278eb405596775">SVF::SVFIRBuilder::visitVAArgInst</a></div><div class="ttdeci">void visitVAArgInst(VAArgInst &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00807">SVFIRBuilder.cpp:807</a></div></div>
186
191
  <div class="ttc" id="classSVF_1_1SVFIR_html_a9e99fcf29016ef401f53491ec54a4053"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a9e99fcf29016ef401f53491ec54a4053">SVF::SVFIR::addCallPE</a></div><div class="ttdeci">CallPE * addCallPE(NodeID src, NodeID dst, const CallBlockNode *cs)</div><div class="ttdoc">Add Call edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00222">SVFIR.cpp:222</a></div></div>
187
192
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a50702f09af1ea9d50ee4726fc8f8a65c"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a50702f09af1ea9d50ee4726fc8f8a65c">SVF::SVFIRBuilder::addRetEdge</a></div><div class="ttdeci">RetPE * addRetEdge(NodeID src, NodeID dst, const CallBlockNode *cs)</div><div class="ttdoc">Add Return edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00358">SVFIRBuilder.h:358</a></div></div>
188
- <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a1923643ba56b180b64ee32b95db8c642"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a1923643ba56b180b64ee32b95db8c642">SVF::SVFIRBuilder::addGepEdge</a></div><div class="ttdeci">GepPE * addGepEdge(NodeID src, NodeID dst, const LocationSet &amp;ls, bool constGep)</div><div class="ttdoc">Add Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00365">SVFIRBuilder.h:365</a></div></div>
189
193
  <div class="ttc" id="namespaceSVF_html_a56cb9d6d1e05f6c31bfe1a4045bc8b5f"><div class="ttname"><a href="namespaceSVF.html#a56cb9d6d1e05f6c31bfe1a4045bc8b5f">SVF::InvokeInst</a></div><div class="ttdeci">llvm::InvokeInst InvokeInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00149">BasicTypes.h:149</a></div></div>
190
194
  <div class="ttc" id="namespaceSVF_html_a412280b134578905248ce0122c5db7c9"><div class="ttname"><a href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SVF::SwitchInst</a></div><div class="ttdeci">llvm::SwitchInst SwitchInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00162">BasicTypes.h:162</a></div></div>
191
195
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00069">LLVMModule.h:69</a></div></div>
192
196
  <div class="ttc" id="namespaceSVF_html_affba423b674a0aba723e33101826e297"><div class="ttname"><a href="namespaceSVF.html#affba423b674a0aba723e33101826e297">SVF::LLVMContext</a></div><div class="ttdeci">llvm::LLVMContext LLVMContext</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00074">BasicTypes.h:74</a></div></div>
193
197
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a870ea33a335a7036555dd24171cf8f22"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a870ea33a335a7036555dd24171cf8f22">SVF::SVFIRBuilder::visitFreezeInst</a></div><div class="ttdeci">void visitFreezeInst(FreezeInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00818">SVFIRBuilder.cpp:818</a></div></div>
194
198
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_afd3125974393d68b4b8f5298ef699ab3"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#afd3125974393d68b4b8f5298ef699ab3">SVF::SVFIRBuilder::handleDirectCall</a></div><div class="ttdeci">void handleDirectCall(CallSite cs, const SVFFunction *F)</div><div class="ttdoc">Handle direct call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00832">SVFIRBuilder.cpp:832</a></div></div>
195
- <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_ab6c80be878f5e9d888d8532a633a2566"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ab6c80be878f5e9d888d8532a633a2566">SVF::SVFIRBuilder::addPhiNode</a></div><div class="ttdeci">PhiPE * addPhiNode(NodeID res, NodeID opnd)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00298">SVFIRBuilder.h:298</a></div></div>
196
199
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_aade60fa102a29f332af36a8615c75471"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#aade60fa102a29f332af36a8615c75471">SVF::SVFIRBuilder::visitPHINode</a></div><div class="ttdeci">void visitPHINode(PHINode &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00508">SVFIRBuilder.cpp:508</a></div></div>
200
+ <div class="ttc" id="classSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00374">SVFStatements.h:374</a></div></div>
197
201
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a7a17ca95a5435b498fc875eb9a290800"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a7a17ca95a5435b498fc875eb9a290800">SVF::SVFIRBuilder::visitExtractValueInst</a></div><div class="ttdeci">void visitExtractValueInst(ExtractValueInst &amp;EVI)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00746">SVFIRBuilder.cpp:746</a></div></div>
198
202
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00016">ContextDDA.h:16</a></div></div>
199
203
  <div class="ttc" id="namespaceSVF_html_a64e69f438b8c302c4cae27735319fa49"><div class="ttname"><a href="namespaceSVF.html#a64e69f438b8c302c4cae27735319fa49">SVF::ShuffleVectorInst</a></div><div class="ttdeci">llvm::ShuffleVectorInst ShuffleVectorInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00171">BasicTypes.h:171</a></div></div>
200
- <div class="ttc" id="classSVF_1_1BinaryOPPE_html"><div class="ttname"><a href="classSVF_1_1BinaryOPPE.html">SVF::BinaryOPPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00424">SVFStatements.h:424</a></div></div>
204
+ <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a3fdaecda239de4e8d4178e01445c6ad2"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a3fdaecda239de4e8d4178e01445c6ad2">SVF::SVFIRBuilder::addVariantGepEdge</a></div><div class="ttdeci">VariantGepStmt * addVariantGepEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Variant(Gep) edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00379">SVFIRBuilder.h:379</a></div></div>
205
+ <div class="ttc" id="classSVF_1_1NormalGepStmt_html"><div class="ttname"><a href="classSVF_1_1NormalGepStmt.html">SVF::NormalGepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00704">SVFStatements.h:704</a></div></div>
201
206
  <div class="ttc" id="namespaceSVF_html_a5a6e8ab900d5cd17ef72661006a7fbe0"><div class="ttname"><a href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">SVF::LoadInst</a></div><div class="ttdeci">llvm::LoadInst LoadInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00152">BasicTypes.h:152</a></div></div>
202
207
  <div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00303">BasicTypes.h:303</a></div></div>
203
208
  <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00093">LocationSet.h:93</a></div></div>
204
- <div class="ttc" id="classSVF_1_1SVFIR_html_a3da8a2168e33f49708cdcc79f9e311a4"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3da8a2168e33f49708cdcc79f9e311a4">SVF::SVFIR::addPhiNode</a></div><div class="ttdeci">PhiPE * addPhiNode(NodeID res, NodeID opnd)</div><div class="ttdoc">Add phi node information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00087">SVFIR.cpp:87</a></div></div>
205
- <div class="ttc" id="classSVF_1_1AddrPE_html"><div class="ttname"><a href="classSVF_1_1AddrPE.html">SVF::AddrPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00196">SVFStatements.h:196</a></div></div>
206
- <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a7e518bfc56c34dfbaaafbd78b85143b7"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a7e518bfc56c34dfbaaafbd78b85143b7">SVF::SVFIRBuilder::addStoreEdge</a></div><div class="ttdeci">StorePE * addStoreEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00339">SVFIRBuilder.h:339</a></div></div>
207
209
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_abc394c99f0905c958a230412134eda01"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#abc394c99f0905c958a230412134eda01">SVF::SVFIRBuilder::setCurrentBBAndValueForPAGEdge</a></div><div class="ttdeci">void setCurrentBBAndValueForPAGEdge(PAGEdge *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l01449">SVFIRBuilder.cpp:1449</a></div></div>
208
- <div class="ttc" id="classSVF_1_1SVFIR_html_a1d6d9dbc5cd43eb8af776f5a1b373507"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a1d6d9dbc5cd43eb8af776f5a1b373507">SVF::SVFIR::addBinaryOPPE</a></div><div class="ttdeci">BinaryOPPE * addBinaryOPPE(NodeID op1, NodeID op2, NodeID dst, u32_t opcode)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00129">SVFIR.cpp:129</a></div></div>
209
- <div class="ttc" id="classSVF_1_1SVFIR_html_a247f006b6f168a7d853814339b0a6ed5"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a247f006b6f168a7d853814339b0a6ed5">SVF::SVFIR::addAddrPE</a></div><div class="ttdeci">AddrPE * addAddrPE(NodeID src, NodeID dst)</div><div class="ttdoc">Add an edge into SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00051">SVFIR.cpp:51</a></div></div>
210
+ <div class="ttc" id="classSVF_1_1SVFIR_html_aa1c1b20773bc547697323fe11b0dc5d5"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1c1b20773bc547697323fe11b0dc5d5">SVF::SVFIR::addCmpPE</a></div><div class="ttdeci">CmpStmt * addCmpPE(NodeID op1, NodeID op2, NodeID dst, u32_t opcode)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00108">SVFIR.cpp:108</a></div></div>
211
+ <div class="ttc" id="classSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00591">SVFStatements.h:591</a></div></div>
210
212
  <div class="ttc" id="namespaceSVF_html_ace1fd4c32134018e2f6d5da193524986"><div class="ttname"><a href="namespaceSVF.html#ace1fd4c32134018e2f6d5da193524986">SVF::ExtractValueInst</a></div><div class="ttdeci">llvm::ExtractValueInst ExtractValueInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00163">BasicTypes.h:163</a></div></div>
211
213
  <div class="ttc" id="namespaceSVF_html_adb305e32f35af19b870b07711ba5b913"><div class="ttname"><a href="namespaceSVF.html#adb305e32f35af19b870b07711ba5b913">SVF::VAEndInst</a></div><div class="ttdeci">llvm::VAEndInst VAEndInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00180">BasicTypes.h:180</a></div></div>
212
- <div class="ttc" id="classSVF_1_1SVFIR_html_ad0977abfd0eda258b5215d351d34c0f5"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad0977abfd0eda258b5215d351d34c0f5">SVF::SVFIR::addGepPE</a></div><div class="ttdeci">GepPE * addGepPE(NodeID src, NodeID dst, const LocationSet &amp;ls, bool constGep)</div><div class="ttdoc">Add Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00308">SVFIR.cpp:308</a></div></div>
213
214
  <div class="ttc" id="namespaceSVF_html_afa513a3c76371907221ee2b1ef289c71"><div class="ttname"><a href="namespaceSVF.html#afa513a3c76371907221ee2b1ef289c71">SVF::LandingPadInst</a></div><div class="ttdeci">llvm::LandingPadInst LandingPadInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00172">BasicTypes.h:172</a></div></div>
214
215
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_ada73b0a14d4f545a59c37e11d6bd9d81"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ada73b0a14d4f545a59c37e11d6bd9d81">SVF::SVFIRBuilder::addEdge</a></div><div class="ttdeci">void addEdge(NodeID src, NodeID dst, PAGEdge::PEDGEK kind, Size_t offset=0, Instruction *cs=nullptr)</div></div>
215
216
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a87a34334a50071e6061ee5dd1d34c9ed"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a87a34334a50071e6061ee5dd1d34c9ed">SVF::SVFIRBuilder::visitFenceInst</a></div><div class="ttdeci">void visitFenceInst(FenceInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00212">SVFIRBuilder.h:212</a></div></div>
216
217
  <div class="ttc" id="namespaceSVF_html_a9868a60a9cc7b78965a23b5034100f88"><div class="ttname"><a href="namespaceSVF.html#a9868a60a9cc7b78965a23b5034100f88">SVF::FreezeInst</a></div><div class="ttdeci">llvm::FreezeInst FreezeInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00182">BasicTypes.h:182</a></div></div>
218
+ <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a48e245a196a1d416d108ee52141d5452"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a48e245a196a1d416d108ee52141d5452">SVF::SVFIRBuilder::addPhiNode</a></div><div class="ttdeci">PhiStmt * addPhiNode(NodeID res, NodeID opnd)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00298">SVFIRBuilder.h:298</a></div></div>
217
219
  <div class="ttc" id="namespaceSVF_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#l00131">BasicTypes.h:131</a></div></div>
218
220
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a4c6cd51def26ebd8e839df9fdc4b64b8"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a4c6cd51def26ebd8e839df9fdc4b64b8">SVF::SVFIRBuilder::visitGlobal</a></div><div class="ttdeci">void visitGlobal(SVFModule *svfModule)</div><div class="ttdoc">Handle globals including (global variable and functions) </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00440">SVFIRBuilder.cpp:440</a></div></div>
219
221
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a4ea94b0a8d6da904ff9a6c1b0341b9cb"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">SVF::SVFIRBuilder::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00048">SVFIRBuilder.h:48</a></div></div>
222
+ <div class="ttc" id="classSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00424">SVFStatements.h:424</a></div></div>
220
223
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a9db09a2c74f2489648b0282769488a17"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a9db09a2c74f2489648b0282769488a17">SVF::SVFIRBuilder::visitInsertElementInst</a></div><div class="ttdeci">void visitInsertElementInst(InsertElementInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00192">SVFIRBuilder.h:192</a></div></div>
221
224
  <div class="ttc" id="classSVF_1_1IRGraph_html_aba13ca47865614e45321c1ae53e640c1"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aba13ca47865614e45321c1ae53e640c1">SVF::IRGraph::getObjectNode</a></div><div class="ttdeci">NodeID getObjectNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00130">IRGraph.h:130</a></div></div>
222
225
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a4792ed440aab997e13321f5f6cba2156"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a4792ed440aab997e13321f5f6cba2156">SVF::SVFIRBuilder::getBaseTypeAndFlattenedFields</a></div><div class="ttdeci">const Type * getBaseTypeAndFlattenedFields(Value *v, std::vector&lt; LocationSet &gt; &amp;fields)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00898">SVFIRBuilder.cpp:898</a></div></div>
223
226
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a5a04b9d97ad5f6e761bcc4779c96104e"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a5a04b9d97ad5f6e761bcc4779c96104e">SVF::SVFIRBuilder::~SVFIRBuilder</a></div><div class="ttdeci">virtual ~SVFIRBuilder()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00059">SVFIRBuilder.h:59</a></div></div>
224
227
  <div class="ttc" id="classSVF_1_1IRGraph_html_a96010999a4e5013beb1c37ef753ff910"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a96010999a4e5013beb1c37ef753ff910">SVF::IRGraph::getReturnNode</a></div><div class="ttdeci">NodeID getReturnNode(const SVFFunction *func) const</div><div class="ttdoc">GetReturnNode - Return the unique node representing the return value of a function. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00135">IRGraph.h:135</a></div></div>
225
228
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a83bc9c1dbc95156a68f139ff16faca2a"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a83bc9c1dbc95156a68f139ff16faca2a">SVF::SVFIRBuilder::visitSwitchInst</a></div><div class="ttdeci">void visitSwitchInst(SwitchInst &amp;I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00788">SVFIRBuilder.cpp:788</a></div></div>
226
- <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_aa939418b3f4727fb7ec84057dd97ba66"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#aa939418b3f4727fb7ec84057dd97ba66">SVF::SVFIRBuilder::addBinaryOPEdge</a></div><div class="ttdeci">BinaryOPPE * addBinaryOPEdge(NodeID op1, NodeID op2, NodeID dst, u32_t opcode)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00312">SVFIRBuilder.h:312</a></div></div>
227
229
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a5a93f3d13e2b3df126fbc42b1bd09006"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a5a93f3d13e2b3df126fbc42b1bd09006">SVF::SVFIRBuilder::getObjectNode</a></div><div class="ttdeci">NodeID getObjectNode(const Value *V)</div><div class="ttdoc">GetObject - Return the object node (stack/global/heap/function) according to a LLVM Value...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00095">SVFIRBuilder.h:95</a></div></div>
228
230
  <div class="ttc" id="classSVF_1_1CallBlockNode_html"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html">SVF::CallBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
229
231
  <div class="ttc" id="classSVF_1_1SVFIR_html_a12fef4ec0537b26947eb0ab10799f29f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a12fef4ec0537b26947eb0ab10799f29f">SVF::SVFIR::addRetPE</a></div><div class="ttdeci">RetPE * addRetPE(NodeID src, NodeID dst, const CallBlockNode *cs)</div><div class="ttdoc">Add Return edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00240">SVFIR.cpp:240</a></div></div>
230
232
  <div class="ttc" id="classSVF_1_1SVFIR_html_a4f0d318deff3b97a4bd5e7b9d53e42fd"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a4f0d318deff3b97a4bd5e7b9d53e42fd">SVF::SVFIR::addBranchStmt</a></div><div class="ttdeci">BranchStmt * addBranchStmt(NodeID br, NodeID cond, std::vector&lt; const ICFGNode *&gt; succs)</div><div class="ttdoc">Add BranchStmt. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00167">SVFIR.cpp:167</a></div></div>
231
- <div class="ttc" id="classSVF_1_1CopyPE_html"><div class="ttname"><a href="classSVF_1_1CopyPE.html">SVF::CopyPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00231">SVFStatements.h:231</a></div></div>
232
233
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
233
234
  <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00133">SVFIR.h:133</a></div></div>
235
+ <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a140defeb309d895394822f8780deda16"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a140defeb309d895394822f8780deda16">SVF::SVFIRBuilder::addCopyEdge</a></div><div class="ttdeci">CopyStmt * addCopyEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00291">SVFIRBuilder.h:291</a></div></div>
234
236
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a4acfddb8e683bbcc2e3949907361ea29"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a4acfddb8e683bbcc2e3949907361ea29">SVF::SVFIRBuilder::addThreadJoinEdge</a></div><div class="ttdeci">TDJoinPE * addThreadJoinEdge(NodeID src, NodeID dst, const CallBlockNode *cs)</div><div class="ttdoc">Add Thread join edge for parameter passing. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00393">SVFIRBuilder.h:393</a></div></div>
235
- <div class="ttc" id="classSVF_1_1SVFIR_html_afbb721dfd574c35e3ddb0a8d26f978c7"><div class="ttname"><a href="classSVF_1_1SVFIR.html#afbb721dfd574c35e3ddb0a8d26f978c7">SVF::SVFIR::addCmpPE</a></div><div class="ttdeci">CmpPE * addCmpPE(NodeID op1, NodeID op2, NodeID dst, u32_t opcode)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00108">SVFIR.cpp:108</a></div></div>
236
- <div class="ttc" id="classSVF_1_1PhiPE_html"><div class="ttname"><a href="classSVF_1_1PhiPE.html">SVF::PhiPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00328">SVFStatements.h:328</a></div></div>
237
237
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a55d8504dbc766c4ede031299a37417ef"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a55d8504dbc766c4ede031299a37417ef">SVF::SVFIRBuilder::addGlobalBlackHoleAddrEdge</a></div><div class="ttdeci">void addGlobalBlackHoleAddrEdge(NodeID node, const ConstantExpr *int2Ptrce)</div><div class="ttdoc">Add global black hole Address edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00249">SVFIRBuilder.h:249</a></div></div>
238
- <div class="ttc" id="classSVF_1_1SVFIR_html_acd2ba7adf250f1a90b57e51a085b6363"><div class="ttname"><a href="classSVF_1_1SVFIR.html#acd2ba7adf250f1a90b57e51a085b6363">SVF::SVFIR::addNormalGepPE</a></div><div class="ttdeci">NormalGepPE * addNormalGepPE(NodeID src, NodeID dst, const LocationSet &amp;ls)</div><div class="ttdoc">Add Offset(Gep) edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00327">SVFIR.cpp:327</a></div></div>
239
238
  <div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00078">BasicTypes.h:78</a></div></div>
240
239
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a5321cd4eabcccd72c198966de1ab1ea2"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a5321cd4eabcccd72c198966de1ab1ea2">SVF::SVFIRBuilder::visitVAStartInst</a></div><div class="ttdeci">void visitVAStartInst(VAStartInst &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00183">SVFIRBuilder.h:183</a></div></div>
241
240
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a7a311f7789c6c7a028ad0f595c1e0295"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a7a311f7789c6c7a028ad0f595c1e0295">SVF::SVFIRBuilder::addThreadForkEdge</a></div><div class="ttdeci">TDForkPE * addThreadForkEdge(NodeID src, NodeID dst, const CallBlockNode *cs)</div><div class="ttdoc">Add Thread fork edge for parameter passing. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00386">SVFIRBuilder.h:386</a></div></div>
242
241
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a7bf5d4d18f74f70b61955810e4f01d8c"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a7bf5d4d18f74f70b61955810e4f01d8c">SVF::SVFIRBuilder::getCurrentValue</a></div><div class="ttdeci">const Value * getCurrentValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00239">SVFIRBuilder.h:239</a></div></div>
243
242
  <div class="ttc" id="classSVF_1_1SVFIR_html_a4f64a1a266838ac72b66cca138ec57ca"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a4f64a1a266838ac72b66cca138ec57ca">SVF::SVFIR::addThreadJoinPE</a></div><div class="ttdeci">TDJoinPE * addThreadJoinPE(NodeID src, NodeID dst, const CallBlockNode *cs)</div><div class="ttdoc">Add Thread join edge for parameter passing. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00287">SVFIR.cpp:287</a></div></div>
243
+ <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a5832c14f0c8bf4d2f41921383c40340e"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a5832c14f0c8bf4d2f41921383c40340e">SVF::SVFIRBuilder::addBinaryOPEdge</a></div><div class="ttdeci">BinaryOPStmt * addBinaryOPEdge(NodeID op1, NodeID op2, NodeID dst, u32_t opcode)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00312">SVFIRBuilder.h:312</a></div></div>
244
244
  <div class="ttc" id="namespaceSVF_html_afc1b50355821e7299df03b026e36f1df"><div class="ttname"><a href="namespaceSVF.html#afc1b50355821e7299df03b026e36f1df">SVF::User</a></div><div class="ttdeci">llvm::User User</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00086">BasicTypes.h:86</a></div></div>
245
245
  <div class="ttc" id="namespaceSVF_html_abcafc32093ff5ee038b5fcf6e4076ed4"><div class="ttname"><a href="namespaceSVF.html#abcafc32093ff5ee038b5fcf6e4076ed4">SVF::VAArgInst</a></div><div class="ttdeci">llvm::VAArgInst VAArgInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00168">BasicTypes.h:168</a></div></div>
246
246
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a97b96b72e7b334f3aa732dfa5c35c3cb"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a97b96b72e7b334f3aa732dfa5c35c3cb">SVF::SVFIRBuilder::visitResumeInst</a></div><div class="ttdeci">void visitResumeInst(ResumeInst &amp;)</div><div class="ttdoc">Instruction not that often. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00206">SVFIRBuilder.h:206</a></div></div>
247
+ <div class="ttc" id="classSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00231">SVFStatements.h:231</a></div></div>
247
248
  <div class="ttc" id="namespaceSVF_html_a468154e0ab9e7be82afef1aa0a2fb9e0"><div class="ttname"><a href="namespaceSVF.html#a468154e0ab9e7be82afef1aa0a2fb9e0">SVF::AtomicRMWInst</a></div><div class="ttdeci">llvm::AtomicRMWInst AtomicRMWInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00177">BasicTypes.h:177</a></div></div>
248
249
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a1717e26e29f50096b96d7e4c43fe1c76"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a1717e26e29f50096b96d7e4c43fe1c76">SVF::SVFIRBuilder::addNullPtrNode</a></div><div class="ttdeci">NodeID addNullPtrNode()</div><div class="ttdoc">Add NullPtr PAGNode. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00259">SVFIRBuilder.h:259</a></div></div>
249
250
  <div class="ttc" id="namespaceSVF_html_a5d875a9d726bb9f68a17efa528dec0b4"><div class="ttname"><a href="namespaceSVF.html#a5d875a9d726bb9f68a17efa528dec0b4">SVF::CmpInst</a></div><div class="ttdeci">llvm::CmpInst CmpInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00160">BasicTypes.h:160</a></div></div>
250
251
  <div class="ttc" id="classSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00047">SVFStatements.h:47</a></div></div>
251
252
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a1f2f512b7cf1ebb9aa2cebe90c8372c2"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a1f2f512b7cf1ebb9aa2cebe90c8372c2">SVF::SVFIRBuilder::getGepValNode</a></div><div class="ttdeci">NodeID getGepValNode(const Value *val, const LocationSet &amp;ls, const Type *baseType, u32_t fieldidx)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l01402">SVFIRBuilder.cpp:1402</a></div></div>
252
253
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_ae0a1f66dee058f6af0f6b074db38db8e"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ae0a1f66dee058f6af0f6b074db38db8e">SVF::SVFIRBuilder::addBranchStmt</a></div><div class="ttdeci">BranchStmt * addBranchStmt(NodeID br, NodeID cond, const std::vector&lt; const ICFGNode *&gt; succs)</div><div class="ttdoc">Add Branch statement. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00326">SVFIRBuilder.h:326</a></div></div>
253
- <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_ad7c282ef14cefd8abcc48ec0c2d504aa"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ad7c282ef14cefd8abcc48ec0c2d504aa">SVF::SVFIRBuilder::addVariantGepEdge</a></div><div class="ttdeci">VariantGepPE * addVariantGepEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Variant(Gep) edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00379">SVFIRBuilder.h:379</a></div></div>
254
254
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_aff20ebd69049759b2de910c0a9d7785f"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#aff20ebd69049759b2de910c0a9d7785f">SVF::SVFIRBuilder::visitInvokeInst</a></div><div class="ttdeci">void visitInvokeInst(InvokeInst &amp;II)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00152">SVFIRBuilder.h:152</a></div></div>
255
255
  </div><!-- fragment --></div><!-- contents -->
256
256
  <!-- start footer part -->