svf-tools 1.0.560 → 1.0.561

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 (272) hide show
  1. package/README.md +1 -1
  2. package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +43 -43
  3. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +2 -2
  4. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +16 -16
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +18 -18
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +56 -56
  9. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
  10. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +44 -44
  11. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +43 -43
  12. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +12 -12
  13. package/SVF-doxygen/html/html/DDAClient_8h_source.html +36 -36
  14. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +19 -19
  15. package/SVF-doxygen/html/html/DDAPass_8h_source.html +21 -21
  16. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +51 -51
  17. package/SVF-doxygen/html/html/DDAStat_8h_source.html +51 -51
  18. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +111 -111
  19. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
  20. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +2 -2
  21. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +40 -40
  22. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +52 -52
  23. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +2 -2
  24. package/SVF-doxygen/html/html/FileChecker_8h_source.html +2 -2
  25. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
  26. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +42 -42
  27. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +3 -3
  28. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +6 -6
  29. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +4 -4
  30. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +3 -3
  31. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
  32. package/SVF-doxygen/html/html/LocationSet_8h_source.html +1 -1
  33. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +34 -34
  34. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +114 -114
  35. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +2 -2
  36. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +7 -7
  37. package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
  38. package/SVF-doxygen/html/html/MHP_8cpp_source.html +94 -94
  39. package/SVF-doxygen/html/html/MHP_8h_source.html +135 -135
  40. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +6 -6
  41. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
  42. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +2 -2
  43. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +10 -10
  44. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +6 -6
  45. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +33 -33
  46. package/SVF-doxygen/html/html/MTAStat_8h_source.html +14 -14
  47. package/SVF-doxygen/html/html/MTA_8cpp_source.html +28 -28
  48. package/SVF-doxygen/html/html/MTA_8h_source.html +24 -24
  49. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +6 -6
  50. package/SVF-doxygen/html/html/MemPartition_8h_source.html +4 -4
  51. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +50 -50
  52. package/SVF-doxygen/html/html/MemRegion_8h_source.html +93 -93
  53. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +59 -59
  54. package/SVF-doxygen/html/html/MemSSA_8h_source.html +103 -103
  55. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +185 -185
  56. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +1 -1
  57. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
  58. package/SVF-doxygen/html/html/PCG_8cpp_source.html +14 -14
  59. package/SVF-doxygen/html/html/PCG_8h_source.html +52 -52
  60. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +40 -40
  61. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +181 -181
  62. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +15 -15
  63. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +30 -30
  64. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
  65. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
  66. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +2 -2
  67. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +60 -60
  68. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +2 -2
  69. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  70. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  71. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
  72. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +2 -2
  73. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +19 -19
  74. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +1 -1
  75. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +12 -12
  76. package/SVF-doxygen/html/html/SVFG_8h_source.html +5 -5
  77. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -1
  78. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +3 -3
  79. package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +2 -2
  80. package/SVF-doxygen/html/html/SaberCheckerAPI_8cpp_source.html +1 -1
  81. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  82. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +1 -1
  83. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +1 -1
  84. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -3
  85. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
  86. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
  87. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +66 -66
  88. package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +1 -1
  89. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +4 -4
  90. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +6 -6
  91. package/SVF-doxygen/html/html/TCT_8cpp_source.html +44 -44
  92. package/SVF-doxygen/html/html/TCT_8h_source.html +93 -93
  93. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  94. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +2 -2
  95. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +2 -2
  96. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +25 -25
  97. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +38 -38
  98. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +5 -5
  99. package/SVF-doxygen/html/html/WPAStat_8h_source.html +2 -2
  100. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
  101. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
  102. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +22 -22
  103. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +102 -102
  104. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +43 -43
  105. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +20 -20
  106. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +6 -6
  107. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +16 -16
  108. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +19 -19
  109. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +39 -39
  110. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +1 -1
  111. package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +2 -2
  112. package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +2 -2
  113. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
  114. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +100 -100
  115. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +51 -51
  116. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +58 -58
  117. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +165 -165
  118. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +286 -286
  119. package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +26 -26
  120. package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +11 -11
  121. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +4 -4
  122. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +4 -4
  123. package/SVF-doxygen/html/html/classSVF_1_1EntryCHI.html +2 -2
  124. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +30 -30
  125. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +3 -3
  126. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +71 -71
  127. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +7 -7
  128. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  129. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +218 -218
  130. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
  131. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
  132. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +19 -19
  133. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  134. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +7 -7
  135. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +17 -17
  136. package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +2 -2
  137. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +334 -334
  138. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +9 -9
  139. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +246 -246
  140. package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +7 -7
  141. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +200 -200
  142. package/SVF-doxygen/html/html/classSVF_1_1MSSACHI.html +2 -2
  143. package/SVF-doxygen/html/html/classSVF_1_1MSSADEF.html +1 -1
  144. package/SVF-doxygen/html/html/classSVF_1_1MSSAMU.html +2 -2
  145. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHI.html +1 -1
  146. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
  147. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +53 -53
  148. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
  149. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +22 -22
  150. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +181 -181
  151. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +44 -44
  152. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +23 -23
  153. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +267 -267
  154. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +18 -18
  155. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +128 -128
  156. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +55 -55
  157. package/SVF-doxygen/html/html/classSVF_1_1MutableIncDFPTData.html +88 -88
  158. package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +78 -78
  159. package/SVF-doxygen/html/html/classSVF_1_1MutableVersionedPTData.html +77 -77
  160. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +131 -131
  161. package/SVF-doxygen/html/html/classSVF_1_1PTData.html +32 -32
  162. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +107 -107
  163. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +66 -66
  164. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +84 -84
  165. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +77 -77
  166. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +134 -134
  167. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +77 -77
  168. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +3 -3
  169. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +161 -161
  170. package/SVF-doxygen/html/html/classSVF_1_1RaceValidator.html +7 -7
  171. package/SVF-doxygen/html/html/classSVF_1_1RetMU.html +2 -2
  172. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +22 -22
  173. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
  174. package/SVF-doxygen/html/html/classSVF_1_1SVFGNodeLockSpan.html +23 -23
  175. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +5 -5
  176. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +2 -2
  177. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +157 -157
  178. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +15 -15
  179. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +2 -2
  180. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +264 -264
  181. package/SVF-doxygen/html/html/classSVF_1_1TCTEdge.html +13 -13
  182. package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +20 -20
  183. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
  184. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +100 -100
  185. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +8 -8
  186. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
  187. package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +11 -11
  188. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +6 -6
  189. package/SVF-doxygen/html/html/dda_8cpp.html +2 -2
  190. package/SVF-doxygen/html/html/dda_8cpp_source.html +2 -2
  191. package/SVF-doxygen/html/html/mta_8cpp.html +2 -2
  192. package/SVF-doxygen/html/html/mta_8cpp_source.html +2 -2
  193. package/SVF-doxygen/html/html/namespaceSVF.html +11 -11
  194. package/SVF-doxygen/html/html/structSVF_1_1MemRegion_1_1equalMemRegion.html +3 -3
  195. package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html +4 -4
  196. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +15 -15
  197. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4.html +1 -1
  198. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCTNode_01_5_01_4.html +1 -1
  199. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCT_01_5_01_4.html +2 -2
  200. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SVFGNodeLockSpan_01_4.html +3 -3
  201. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  202. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  203. package/include/DDA/ContextDDA.h +29 -0
  204. package/include/DDA/DDAClient.h +23 -0
  205. package/include/DDA/DDAPass.h +22 -0
  206. package/include/DDA/DDAStat.h +22 -0
  207. package/include/DDA/DDAVFSolver.h +22 -0
  208. package/include/DDA/FlowDDA.h +29 -0
  209. package/include/MSSA/MSSAMuChi.h +1 -1
  210. package/include/MSSA/MemPartition.h +1 -1
  211. package/include/MSSA/MemRegion.h +5 -1
  212. package/include/MSSA/MemSSA.h +7 -1
  213. package/include/MSSA/SVFGBuilder.h +1 -1
  214. package/include/MTA/FSMPTA.h +26 -0
  215. package/include/MTA/LockAnalysis.h +22 -0
  216. package/include/MTA/MHP.h +22 -0
  217. package/include/MTA/MTA.h +27 -1
  218. package/include/MTA/MTAStat.h +22 -0
  219. package/include/MTA/PCG.h +22 -0
  220. package/include/MTA/TCT.h +22 -0
  221. package/include/MemoryModel/AbstractPointsToDS.h +34 -0
  222. package/include/MemoryModel/ConditionalPT.h +1 -1
  223. package/include/MemoryModel/LocationSet.h +1 -1
  224. package/include/MemoryModel/MutablePointsToDS.h +32 -0
  225. package/include/MemoryModel/PAGBuilderFromFile.h +2 -2
  226. package/include/MemoryModel/PersistentPointsToCache.h +3 -1
  227. package/include/MemoryModel/PersistentPointsToDS.h +10 -0
  228. package/include/MemoryModel/PointerAnalysis.h +1 -1
  229. package/include/MemoryModel/PointerAnalysisImpl.h +1 -1
  230. package/include/MemoryModel/SVFStatements.h +1 -1
  231. package/include/SABER/DoubleFreeChecker.h +1 -1
  232. package/include/SABER/FileChecker.h +1 -1
  233. package/include/SABER/LeakChecker.h +1 -1
  234. package/include/SABER/ProgSlice.h +8 -1
  235. package/include/SABER/SaberAnnotator.h +1 -1
  236. package/include/SABER/SaberCheckerAPI.h +1 -1
  237. package/include/SABER/SaberCondAllocator.h +1 -1
  238. package/include/SABER/SaberSVFGBuilder.h +1 -1
  239. package/include/SABER/SrcSnkDDA.h +8 -1
  240. package/include/SABER/SrcSnkSolver.h +1 -1
  241. package/include/WPA/Andersen.h +5 -0
  242. package/include/WPA/TypeAnalysis.h +1 -1
  243. package/include/WPA/VersionedFlowSensitive.h +4 -0
  244. package/lib/DDA/ContextDDA.cpp +22 -0
  245. package/lib/DDA/DDAClient.cpp +22 -0
  246. package/lib/DDA/DDAPass.cpp +23 -0
  247. package/lib/DDA/DDAStat.cpp +22 -0
  248. package/lib/DDA/FlowDDA.cpp +22 -0
  249. package/lib/MTA/FSMPTA.cpp +22 -0
  250. package/lib/MTA/LockAnalysis.cpp +22 -0
  251. package/lib/MTA/MHP.cpp +23 -1
  252. package/lib/MTA/MTA.cpp +23 -0
  253. package/lib/MTA/MTAStat.cpp +22 -0
  254. package/lib/MTA/PCG.cpp +22 -0
  255. package/lib/MTA/TCT.cpp +23 -0
  256. package/lib/MemoryModel/LocationSet.cpp +1 -1
  257. package/lib/MemoryModel/PAGBuilderFromFile.cpp +1 -1
  258. package/lib/MemoryModel/PointerAnalysis.cpp +1 -1
  259. package/lib/MemoryModel/PointerAnalysisImpl.cpp +23 -0
  260. package/lib/SABER/DoubleFreeChecker.cpp +1 -1
  261. package/lib/SABER/FileChecker.cpp +1 -1
  262. package/lib/SABER/LeakChecker.cpp +1 -1
  263. package/lib/SABER/ProgSlice.cpp +1 -1
  264. package/lib/SABER/SaberAnnotator.cpp +1 -1
  265. package/lib/SABER/SaberCheckerAPI.cpp +1 -1
  266. package/lib/SABER/SaberCondAllocator.cpp +1 -1
  267. package/lib/SABER/SaberSVFGBuilder.cpp +1 -1
  268. package/lib/SABER/SrcSnkDDA.cpp +1 -1
  269. package/lib/WPA/Steensgaard.cpp +22 -0
  270. package/lib/WPA/TypeAnalysis.cpp +1 -1
  271. package/lib/WPA/WPAPass.cpp +1 -1
  272. package/package.json +1 -1
@@ -66,166 +66,166 @@ $(function() {
66
66
  <div class="title">MemSSA.h</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="MemSSA_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">//===- MemSSA.h -- Memory SSA-------------------------------------------------//</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"> * MemorySSAPass.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: Jul 14, 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 MEMORYSSAPASS_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define MEMORYSSAPASS_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="MemRegion_8h.html">MSSA/MemRegion.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="MSSAMuChi_8h.html">MSSA/MSSAMuChi.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></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;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>PointerAnalysis;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>MemSSAStat;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> * Memory SSA implementation on top of partial SSA</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html"> 46</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ac0c8f70b6283e26e70dafe02fcb5180a"> 52</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MemRegion.html#a7ed54700c976f9738012bc051b7f41f5">MemRegion::Condition</a> <a class="code" href="classSVF_1_1MemSSA.html#ac0c8f70b6283e26e70dafe02fcb5180a">Condition</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a2b4f3b19b32ac61dd1932faa82b93d8b"> 53</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU&lt;Condition&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a2b4f3b19b32ac61dd1932faa82b93d8b">MU</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a953a56a65ee36fd1c78b29179cd3f33a"> 54</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1RetMU.html">RetMU&lt;Condition&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a953a56a65ee36fd1c78b29179cd3f33a">RETMU</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a4717016109fd3bc80f3095d11afff5b1"> 55</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1LoadMU.html">LoadMU&lt;Condition&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a4717016109fd3bc80f3095d11afff5b1">LOADMU</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a7be50dd82679b45a8c400f5a12056a25"> 56</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1CallMU.html">CallMU&lt;Condition&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a7be50dd82679b45a8c400f5a12056a25">CALLMU</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a503f2fda873c330ef2cc5561f396ea6e"> 57</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI&lt;Condition&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a503f2fda873c330ef2cc5561f396ea6e">CHI</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a6a20da24d82ace1888be49a2ae0f6bd5"> 58</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1EntryCHI.html">EntryCHI&lt;Condition&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a6a20da24d82ace1888be49a2ae0f6bd5">ENTRYCHI</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a150e9d53ced1c143bba2d1026f739fa4"> 59</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1StoreCHI.html">StoreCHI&lt;Condition&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a150e9d53ced1c143bba2d1026f739fa4">STORECHI</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a56ffeb1f76c73766d06aedd60235c8d9"> 60</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1CallCHI.html">CallCHI&lt;Condition&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a56ffeb1f76c73766d06aedd60235c8d9">CALLCHI</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a8e948ea7778158107657fdd8195530e1"> 61</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MSSAPHI.html">MSSAPHI&lt;Condition&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a8e948ea7778158107657fdd8195530e1">PHI</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a57e68097212e88568eea829fb998fe0c"> 62</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a> <a class="code" href="classSVF_1_1MemSSA.html#a57e68097212e88568eea829fb998fe0c">MDEF</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112"> 64</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;MU*&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">MUSet</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4"> 65</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;CHI*&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4">CHISet</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a8a5d3597f3dba9744e170cc8c32bf25f"> 66</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;PHI*&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a8a5d3597f3dba9744e170cc8c32bf25f">PHISet</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a37b84780f57cbee50cf957cfbab195c1"> 69</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRGenerator::MRSet</a> <a class="code" href="classSVF_1_1MemSSA.html#a37b84780f57cbee50cf957cfbab195c1">MRSet</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a7c3fda6f082231350524c2d7c16f067e"> 70</a></span>&#160; <span class="keyword">typedef</span> std::vector&lt;const MemRegion*&gt; <a class="code" href="classSVF_1_1MemSSA.html#a7c3fda6f082231350524c2d7c16f067e">MRVector</a>;</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"><a class="line" href="classSVF_1_1MemSSA.html#a94164c59384ef04f98a3713b504fca35"> 74</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const LoadStmt*, MUSet&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a94164c59384ef04f98a3713b504fca35">LoadToMUSetMap</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#acfee1bb5534026ce991a1ab5e796c6b9"> 75</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const StoreStmt*, CHISet&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#acfee1bb5534026ce991a1ab5e796c6b9">StoreToChiSetMap</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a5d4ba728fb55e615cacfc5278e6bc4b7"> 76</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const CallICFGNode*, MUSet&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a5d4ba728fb55e615cacfc5278e6bc4b7">CallSiteToMUSetMap</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a43b118f1b16a032fd1f27f8258c748ab"> 77</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const CallICFGNode*, CHISet&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a43b118f1b16a032fd1f27f8258c748ab">CallSiteToCHISetMap</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#afeef58baed23fc731e33a07a0ef05f6a"> 78</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap&lt;const BasicBlock*, PHISet&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#afeef58baed23fc731e33a07a0ef05f6a">BBToPhiSetMap</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ac34aa1ac96600bfc27b3c2eb0b1510ca"> 82</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFFunction*, CHISet&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#ac34aa1ac96600bfc27b3c2eb0b1510ca">FunToEntryChiSetMap</a>;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a3cfc6d7134f98e5876c16c6c043a3d92"> 83</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFFunction*, MUSet&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a3cfc6d7134f98e5876c16c6c043a3d92">FunToReturnMuSetMap</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</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"><a class="line" href="classSVF_1_1MemSSA.html#a66e693af7b37e4e58b4834898d6a34fa"> 87</a></span>&#160; <span class="keyword">typedef</span> std::vector&lt;const BasicBlock*&gt; <a class="code" href="classSVF_1_1MemSSA.html#a66e693af7b37e4e58b4834898d6a34fa">BBList</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a4d4f7039c2972e671dc15b8c75abad14"> 88</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const BasicBlock*, MRSet&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a4d4f7039c2972e671dc15b8c75abad14">BBToMRSetMap</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a8d0c1a00d7db194da66c685d79e73de5"> 89</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const MemRegion*, BBList&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a8d0c1a00d7db194da66c685d79e73de5">MemRegToBBsMap</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#aa9dbaf51f0498f3bd878827744208899"> 93</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const MemRegion*, std::vector&lt;MRVer*&gt;</a> &gt; <a class="code" href="classSVF_1_1MemSSA.html#aa9dbaf51f0498f3bd878827744208899">MemRegToVerStackMap</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ae1aca020147c270deca2a1241e3847d0"> 94</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const MemRegion*, MRVERSION&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#ae1aca020147c270deca2a1241e3847d0">MemRegToCounterMap</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a445d282890dbd2fb51e903255af1cc3e"> 97</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SVFIR.html#a6bc360d2604ae4a0af74530b263b10d9">SVFIR::SVFStmtList</a> <a class="code" href="classSVF_1_1MemSSA.html#a445d282890dbd2fb51e903255af1cc3e">SVFStmtList</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a37dca8a7d155de4870358146d219b5e5"> 101</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1MemSSA.html#a37dca8a7d155de4870358146d219b5e5">timeOfGeneratingMemRegions</a>; </div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a4d2418b7df74f23d8fd328f66e29f198"> 102</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1MemSSA.html#a4d2418b7df74f23d8fd328f66e29f198">timeOfCreateMUCHI</a>; </div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a3c7b5fa73fdc7c805ee3673fbe812b44"> 103</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1MemSSA.html#a3c7b5fa73fdc7c805ee3673fbe812b44">timeOfInsertingPHI</a>; </div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a97ccd5e0b9ab6144415e26bdf95cbabd"> 104</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1MemSSA.html#a97ccd5e0b9ab6144415e26bdf95cbabd">timeOfSSARenaming</a>; </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671"> 107</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671">MemPartition</a></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"><a class="line" href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671a9da5f4ad2a43befdbc4be319bffc80ea"> 109</a></span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671a9da5f4ad2a43befdbc4be319bffc80ea">Distinct</a>,</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671ac9388cc44f91bd9a00666c0d69b32ef1"> 110</a></span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671ac9388cc44f91bd9a00666c0d69b32ef1">IntraDisjoint</a>,</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671a549b5589ecfbe073623091605785fc03"> 111</a></span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671a549b5589ecfbe073623091605785fc03">InterDisjoint</a></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; };</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3"> 115</a></span>&#160; <a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* <a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5"> 116</a></span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html">MRGenerator</a>* <a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ac0aeb79ec4f86f55c97bd397509acd05"> 117</a></span>&#160; <a class="code" href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">DominanceFrontier</a>* <a class="code" href="classSVF_1_1MemSSA.html#ac0aeb79ec4f86f55c97bd397509acd05">df</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a52b1598f44fe6a6e30095f596bf85cb0"> 118</a></span>&#160; <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>* <a class="code" href="classSVF_1_1MemSSA.html#a52b1598f44fe6a6e30095f596bf85cb0">dt</a>;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a4fc930040ec54eb60629da18fb6a4d04"> 119</a></span>&#160; <a class="code" href="classSVF_1_1MemSSAStat.html">MemSSAStat</a>* <a class="code" href="classSVF_1_1MemSSA.html#a4fc930040ec54eb60629da18fb6a4d04">stat</a>;</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="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a695adf83e8c40b9628b1866053f68033">createMUCHI</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>&amp; fun);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#acc6f72d96cf29e36093ba08ea86b8983">insertPHI</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>&amp; fun);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a16114eb55775f6ee812c1648dcaede0c">SSARename</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>&amp; fun);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a271c20725d49dd65b95c062938ffde4c">SSARenameBB</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>&amp; bb);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6"> 130</a></span>&#160; LoadToMUSetMap <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>;</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a"> 131</a></span>&#160; StoreToChiSetMap <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a"> 132</a></span>&#160; CallSiteToMUSetMap <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195"> 133</a></span>&#160; CallSiteToCHISetMap <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23"> 134</a></span>&#160; BBToPhiSetMap <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec"> 136</a></span>&#160; FunToEntryChiSetMap <a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c"> 137</a></span>&#160; FunToReturnMuSetMap <a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ae4c7b17d8da8278dca362af79f9f268d"> 139</a></span>&#160; MemRegToVerStackMap <a class="code" href="classSVF_1_1MemSSA.html#ae4c7b17d8da8278dca362af79f9f268d">mr2VerStackMap</a>;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a22e2dd0fc78877bdedd207a40540a634"> 140</a></span>&#160; MemRegToCounterMap <a class="code" href="classSVF_1_1MemSSA.html#a22e2dd0fc78877bdedd207a40540a634">mr2CounterMap</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">// (see algorithm in book Engineering A Compiler section 9.3)</span></div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#acf840b71b67cabe831f01f2d358f27fa"> 146</a></span>&#160;<span class="comment"></span> MRSet <a class="code" href="classSVF_1_1MemSSA.html#acf840b71b67cabe831f01f2d358f27fa">usedRegs</a>;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#add1d4ff17d0860906d2f5f7172176121"> 148</a></span>&#160; MemRegToBBsMap <a class="code" href="classSVF_1_1MemSSA.html#add1d4ff17d0860906d2f5f7172176121">reg2BBMap</a>;</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ae64f97a984765a43f05df26b57a43a43"> 150</a></span>&#160; MRSet <a class="code" href="classSVF_1_1MemSSA.html#ae64f97a984765a43f05df26b57a43a43">varKills</a>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a3d6096aeb4155444b532b02bb8559113">destroy</a>();</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1MemSSA.html#a381a35d48ce2f8e348ddbbb9ce526ca8">newSSAName</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr, <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a>* def);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ad550a453d5b2daa6c72e7752f6b5ea79"> 160</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1MemSSA.html#ad550a453d5b2daa6c72e7752f6b5ea79">getTopStackVer</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; std::vector&lt;MRVer*&gt; &amp;stack = mr2VerStackMap[mr];</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; assert(!stack.empty() &amp;&amp; <span class="stringliteral">&quot;stack is empty!!&quot;</span>);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> stack.back();</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390"> 169</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390">collectRegUses</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span> (0 == varKills.count(mr))</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; usedRegs.insert(mr);</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"><a class="line" href="classSVF_1_1MemSSA.html#a7c0bb1406f0e583c38e522ca06dfa73a"> 174</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a7c0bb1406f0e583c38e522ca06dfa73a">collectRegDefs</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr)</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; varKills.insert(mr);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; reg2BBMap[mr].push_back(bb);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#adb8009633b4e3b69609790fa068b3f42"> 183</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#adb8009633b4e3b69609790fa068b3f42">AddLoadMU</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* load, <span class="keyword">const</span> MRSet&amp; mrSet)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">for</span> (MRSet::iterator iter = mrSet.begin(), eiter = mrSet.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#adb8009633b4e3b69609790fa068b3f42">AddLoadMU</a>(bb,load,*iter);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a4e11797df16b0b612191607180acc0c5"> 188</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a4e11797df16b0b612191607180acc0c5">AddStoreCHI</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb, <span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* store, <span class="keyword">const</span> MRSet&amp; mrSet)</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="keywordflow">for</span> (MRSet::iterator iter = mrSet.begin(), eiter = mrSet.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a4e11797df16b0b612191607180acc0c5">AddStoreCHI</a>(bb,store,*iter);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a8f121e686d36748e4528d0ea66dcaa24"> 193</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a8f121e686d36748e4528d0ea66dcaa24">AddCallSiteMU</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> MRSet&amp; mrSet)</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">for</span> (MRSet::iterator iter = mrSet.begin(), eiter = mrSet.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a8f121e686d36748e4528d0ea66dcaa24">AddCallSiteMU</a>(cs,*iter);</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"><a class="line" href="classSVF_1_1MemSSA.html#ad8011273feaf046bf7f3a3f3b904a91d"> 198</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#ad8011273feaf046bf7f3a3f3b904a91d">AddCallSiteCHI</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> MRSet&amp; mrSet)</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"> 200</span>&#160; <span class="keywordflow">for</span> (MRSet::iterator iter = mrSet.begin(), eiter = mrSet.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#ad8011273feaf046bf7f3a3f3b904a91d">AddCallSiteCHI</a>(cs,*iter);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a606aaf7a76ca71cb32adc9af7291ae6e"> 203</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a606aaf7a76ca71cb32adc9af7291ae6e">AddMSSAPHI</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb, <span class="keyword">const</span> MRSet&amp; mrSet)</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">for</span> (MRSet::iterator iter = mrSet.begin(), eiter = mrSet.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a606aaf7a76ca71cb32adc9af7291ae6e">AddMSSAPHI</a>(bb,*iter);</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"><a class="line" href="classSVF_1_1MemSSA.html#a397c835c15c15e18697beca2ff27a73f"> 208</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a397c835c15c15e18697beca2ff27a73f">AddLoadMU</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* load, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr)</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; LOADMU* mu = <span class="keyword">new</span> <a class="code" href="classSVF_1_1MemSSA.html#a4717016109fd3bc80f3095d11afff5b1">LOADMU</a>(bb,load, mr);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; load2MuSetMap[load].insert(mu);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390">collectRegUses</a>(mr);</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"><a class="line" href="classSVF_1_1MemSSA.html#a8d9bfa2ad724a3b286edc56b7c15e9bf"> 214</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a8d9bfa2ad724a3b286edc56b7c15e9bf">AddStoreCHI</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb, <span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* store, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr)</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"> 216</span>&#160; STORECHI* chi = <span class="keyword">new</span> <a class="code" href="classSVF_1_1MemSSA.html#a150e9d53ced1c143bba2d1026f739fa4">STORECHI</a>(bb,store, mr);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; store2ChiSetMap[store].insert(chi);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390">collectRegUses</a>(mr);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a7c0bb1406f0e583c38e522ca06dfa73a">collectRegDefs</a>(bb,mr);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#adbaf4715d5d4c9d0be1e934178efe13e"> 221</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#adbaf4715d5d4c9d0be1e934178efe13e">AddCallSiteMU</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr)</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; CALLMU* mu = <span class="keyword">new</span> <a class="code" href="classSVF_1_1MemSSA.html#a7be50dd82679b45a8c400f5a12056a25">CALLMU</a>(cs, mr);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; callsiteToMuSetMap[cs].insert(mu);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390">collectRegUses</a>(mr);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#af7991c1393ef3c8b090833bc27036a49"> 227</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#af7991c1393ef3c8b090833bc27036a49">AddCallSiteCHI</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr)</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; {</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; CALLCHI* chi = <span class="keyword">new</span> <a class="code" href="classSVF_1_1MemSSA.html#a56ffeb1f76c73766d06aedd60235c8d9">CALLCHI</a>(cs, mr);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; callsiteToChiSetMap[cs].insert(chi);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390">collectRegUses</a>(mr);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a7c0bb1406f0e583c38e522ca06dfa73a">collectRegDefs</a>(chi-&gt;<a class="code" href="classSVF_1_1CallCHI.html#a69f83ff81ea017d645aadeb46334880f">getBasicBlock</a>(),mr);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a3af850d2fe9b2e75b2705c6d1355eda2"> 234</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a3af850d2fe9b2e75b2705c6d1355eda2">AddMSSAPHI</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr)</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; bb2PhiSetMap[bb].insert(<span class="keyword">new</span> <a class="code" href="classSVF_1_1MemSSA.html#a8e948ea7778158107657fdd8195530e1">PHI</a>(bb, mr));</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a2527b76b92dffa8f8513ebfdcc8d8133">RenameMuSet</a>(<span class="keyword">const</span> MUSet&amp; muSet)</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">for</span> (MUSet::const_iterator mit = muSet.begin(), emit = muSet.end();</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; mit != emit; ++mit)</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; MU* mu = (*mit);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; mu-&gt;<a class="code" href="classSVF_1_1MSSAMU.html#a2af1e639aabbc5997aa4e6526f6595fb">setVer</a>(<a class="code" href="classSVF_1_1MemSSA.html#ad550a453d5b2daa6c72e7752f6b5ea79">getTopStackVer</a>(mu-&gt;<a class="code" href="classSVF_1_1MSSAMU.html#a6bd671839ec0376439ccd81d5b2eff30">getMR</a>()));</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; }</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a6066364112e665c33cbf2ec50ae1e3a8"> 254</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a6066364112e665c33cbf2ec50ae1e3a8">RenameChiSet</a>(<span class="keyword">const</span> CHISet&amp; chiSet, MRVector&amp; memRegs)</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">for</span> (CHISet::const_iterator cit = chiSet.begin(), ecit = chiSet.end();</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; cit != ecit; ++cit)</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; CHI* chi = (*cit);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; chi-&gt;<a class="code" href="classSVF_1_1MSSACHI.html#a245d8ee9e81ba4fe6f41533baf471331">setOpVer</a>(<a class="code" href="classSVF_1_1MemSSA.html#ad550a453d5b2daa6c72e7752f6b5ea79">getTopStackVer</a>(chi-&gt;<a class="code" href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c">getMR</a>()));</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; chi-&gt;<a class="code" href="classSVF_1_1MSSADEF.html#a343eb4c9515dfbbbdadaacf5500e5f05">setResVer</a>(<a class="code" href="classSVF_1_1MemSSA.html#a381a35d48ce2f8e348ddbbb9ce526ca8">newSSAName</a>(chi-&gt;<a class="code" href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c">getMR</a>(),chi));</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; memRegs.push_back(chi-&gt;<a class="code" href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c">getMR</a>());</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; }</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a630be375832b1477989af85dce6760f3"> 267</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a630be375832b1477989af85dce6760f3">RenamePhiRes</a>(<span class="keyword">const</span> PHISet&amp; phiSet, MRVector&amp; memRegs)</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; <span class="keywordflow">for</span> (PHISet::const_iterator iter = phiSet.begin(), eiter = phiSet.end();</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; iter != eiter; ++iter)</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; PHI* phi = *iter;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; phi-&gt;<a class="code" href="classSVF_1_1MSSADEF.html#a343eb4c9515dfbbbdadaacf5500e5f05">setResVer</a>(<a class="code" href="classSVF_1_1MemSSA.html#a381a35d48ce2f8e348ddbbb9ce526ca8">newSSAName</a>(phi-&gt;<a class="code" href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c">getMR</a>(),phi));</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; memRegs.push_back(phi-&gt;<a class="code" href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c">getMR</a>());</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"> 276</span>&#160; }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a0ed34f7a27db045c624c5db61d53132b"> 279</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a0ed34f7a27db045c624c5db61d53132b">RenamePhiOps</a>(<span class="keyword">const</span> PHISet&amp; phiSet, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos, MRVector&amp;)</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">for</span> (PHISet::const_iterator iter = phiSet.begin(), eiter = phiSet.end();</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; iter != eiter; ++iter)</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; PHI* phi = *iter;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; phi-&gt;<a class="code" href="classSVF_1_1MSSAPHI.html#a74f663dc5ecc659e98542a53414b7988">setOpVer</a>(<a class="code" href="classSVF_1_1MemSSA.html#ad550a453d5b2daa6c72e7752f6b5ea79">getTopStackVer</a>(phi-&gt;<a class="code" href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c">getMR</a>()), pos);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; }</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a36e9cf7394c3ece8a5f2f9bfc512956a"> 292</a></span>&#160; <a class="code" href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">DominanceFrontier</a>* <a class="code" href="classSVF_1_1MemSSA.html#a36e9cf7394c3ece8a5f2f9bfc512956a">getDF</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>&amp;)</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#ac0aeb79ec4f86f55c97bd397509acd05">df</a>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a9741a8d0540ba4c27cb667590d246197"> 296</a></span>&#160; <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>* <a class="code" href="classSVF_1_1MemSSA.html#a9741a8d0540ba4c27cb667590d246197">getDT</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>&amp;)</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a52b1598f44fe6a6e30095f596bf85cb0">dt</a>;</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; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a11e1e9a74a6764131fc8aae27d8bde5e">setCurrentDFDT</a>(<a class="code" href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">DominanceFrontier</a>* f, <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>* t);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a6bd57451370f5f4c92ce212be4cddd15">MemSSA</a>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>, <span class="keywordtype">bool</span> ptrOnlyMSSA);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ae09603b40c7359c4cd2f644d3efc40cc"> 308</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MemSSA.html#ae09603b40c7359c4cd2f644d3efc40cc">~MemSSA</a>()</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a3d6096aeb4155444b532b02bb8559113">destroy</a>();</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* <a class="code" href="classSVF_1_1MemSSA.html#a41b153f2f8f3a27be63750e73a290569">getPAG</a>();</div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac"> 315</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* <a class="code" href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">getPTA</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a>;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; }</div><div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ab2dfdcf6fb50ba6cacad1254350a5b09"> 320</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MRGenerator.html">MRGenerator</a>* <a class="code" href="classSVF_1_1MemSSA.html#ab2dfdcf6fb50ba6cacad1254350a5b09">getMRGenerator</a>()</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; {</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#ae56d1878046c119d1857727ca3609d74">buildMemSSA</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>&amp; fun,<a class="code" href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">DominanceFrontier</a>*, <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>*);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a89c40c8fad70f3aead6531261e5a3cc3">performStat</a>();</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#af5e356e82c3f93b65bd89908e0f465dc"> 332</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemSSA.html#af5e356e82c3f93b65bd89908e0f465dc">hasMU</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* inst)<span class="keyword"> const</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* load = SVFUtil::dyn_cast&lt;LoadStmt&gt;(inst))</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; assert(0 != load2MuSetMap.count(load)</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; &amp;&amp; <span class="stringliteral">&quot;not associated with mem region!&quot;</span>);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; }</div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#abfb338ce36ad46a9654d50dd6e2b07f1"> 343</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemSSA.html#abfb338ce36ad46a9654d50dd6e2b07f1">hasCHI</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* inst)<span class="keyword"> const</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* store = SVFUtil::dyn_cast&lt;StoreStmt&gt;(</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; inst))</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; assert(0 != store2ChiSetMap.count(store)</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; &amp;&amp; <span class="stringliteral">&quot;not associated with mem region!&quot;</span>);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; }</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; }</div><div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a6bd9390c6cd2a3d7a3752fba76acfb46"> 355</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemSSA.html#a6bd9390c6cd2a3d7a3752fba76acfb46">hasMU</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">return</span> callsiteToMuSetMap.find(cs)!=callsiteToMuSetMap.end();</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; }</div><div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ae16120dfc9436861f719e605617f353d"> 359</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemSSA.html#ae16120dfc9436861f719e605617f353d">hasCHI</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">return</span> callsiteToChiSetMap.find(cs)!=callsiteToChiSetMap.end();</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; }</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</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"><a class="line" href="classSVF_1_1MemSSA.html#aec75259d035e3b5589e6fcbbcdfe4b2c"> 367</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemSSA.html#aec75259d035e3b5589e6fcbbcdfe4b2c">hasFuncEntryChi</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * fun)<span class="keyword"> const</span></div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">return</span> (funToEntryChiSetMap.find(fun) != funToEntryChiSetMap.end());</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; }</div><div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a3400d9a921672b3872656acecc3eac9f"> 371</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemSSA.html#a3400d9a921672b3872656acecc3eac9f">hasReturnMu</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * fun)<span class="keyword"> const</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">return</span> (funToReturnMuSetMap.find(fun) != funToReturnMuSetMap.end());</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a10743fe9c116ee624387c0473815b800"> 376</a></span>&#160; <span class="keyword">inline</span> CHISet&amp; <a class="code" href="classSVF_1_1MemSSA.html#a10743fe9c116ee624387c0473815b800">getFuncEntryChiSet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * fun)</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; {</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">return</span> funToEntryChiSetMap[fun];</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div><div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#af8c38a7ff8da4206f19c038024606d93"> 380</a></span>&#160; <span class="keyword">inline</span> MUSet&amp; <a class="code" href="classSVF_1_1MemSSA.html#af8c38a7ff8da4206f19c038024606d93">getReturnMuSet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * fun)</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; {</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">return</span> funToReturnMuSetMap[fun];</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; }</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</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"><a class="line" href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847"> 388</a></span>&#160; <span class="keyword">inline</span> MUSet&amp; <a class="code" href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">getMUSet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* ld)</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">return</span> load2MuSetMap[ld];</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; }</div><div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418"> 392</a></span>&#160; <span class="keyword">inline</span> CHISet&amp; <a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* st)</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">return</span> store2ChiSetMap[st];</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div><div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#af1a7b3ca0144ebff3747715e89646fbb"> 396</a></span>&#160; <span class="keyword">inline</span> MUSet&amp; <a class="code" href="classSVF_1_1MemSSA.html#af1a7b3ca0144ebff3747715e89646fbb">getMUSet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; {</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">return</span> callsiteToMuSetMap[cs];</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; }</div><div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a959e932912b924ec91e1526947493204"> 400</a></span>&#160; <span class="keyword">inline</span> CHISet&amp; <a class="code" href="classSVF_1_1MemSSA.html#a959e932912b924ec91e1526947493204">getCHISet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)</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; <span class="keywordflow">return</span> callsiteToChiSetMap[cs];</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div><div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a964f3fe39ece9a7b8b2033428b75a274"> 404</a></span>&#160; <span class="keyword">inline</span> PHISet&amp; <a class="code" href="classSVF_1_1MemSSA.html#a964f3fe39ece9a7b8b2033428b75a274">getPHISet</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb)</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; {</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">return</span> bb2PhiSetMap[bb];</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; }</div><div class="line"><a name="l00408"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a552bb17f0435e012b7393fb641c19298"> 408</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemSSA.html#a552bb17f0435e012b7393fb641c19298">hasPHISet</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb)<span class="keyword"> const</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">return</span> bb2PhiSetMap.find(bb)!=bb2PhiSetMap.end();</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; }</div><div class="line"><a name="l00412"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a70dd35ef458c452330dfebcdde17b84c"> 412</a></span>&#160; <span class="keyword">inline</span> LoadToMUSetMap&amp; <a class="code" href="classSVF_1_1MemSSA.html#a70dd35ef458c452330dfebcdde17b84c">getLoadToMUSetMap</a>()</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; }</div><div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a97166aa7102816a16734d7e2f1c130b0"> 416</a></span>&#160; <span class="keyword">inline</span> StoreToChiSetMap&amp; <a class="code" href="classSVF_1_1MemSSA.html#a97166aa7102816a16734d7e2f1c130b0">getStoreToChiSetMap</a>()</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; }</div><div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a44cbdb1231c2709c24d19ad2bae2475a"> 420</a></span>&#160; <span class="keyword">inline</span> FunToReturnMuSetMap&amp; <a class="code" href="classSVF_1_1MemSSA.html#a44cbdb1231c2709c24d19ad2bae2475a">getFunToRetMuSetMap</a>()</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; {</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</div><div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#afd4787df4466c24948d8384e3a756198"> 424</a></span>&#160; <span class="keyword">inline</span> FunToEntryChiSetMap&amp; <a class="code" href="classSVF_1_1MemSSA.html#afd4787df4466c24948d8384e3a756198">getFunToEntryChiSetMap</a>()</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; {</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; }</div><div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a06081aa029b1fe3f9427f85a0261fd43"> 428</a></span>&#160; <span class="keyword">inline</span> CallSiteToMUSetMap&amp; <a class="code" href="classSVF_1_1MemSSA.html#a06081aa029b1fe3f9427f85a0261fd43">getCallSiteToMuSetMap</a>()</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; }</div><div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a8f88acad31782bfa962e4349d8f4185d"> 432</a></span>&#160; <span class="keyword">inline</span> CallSiteToCHISetMap&amp; <a class="code" href="classSVF_1_1MemSSA.html#a8f88acad31782bfa962e4349d8f4185d">getCallSiteToChiSetMap</a>()</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div><div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a966477062a453901da3631015fcf737d"> 436</a></span>&#160; <span class="keyword">inline</span> BBToPhiSetMap&amp; <a class="code" href="classSVF_1_1MemSSA.html#a966477062a453901da3631015fcf737d">getBBToPhiSetMap</a>()</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; {</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MemSSA.html#aafc83f7f22ebf3b3683607440c488bef">getLoadMuNum</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MemSSA.html#aa8c45b455e6fc60cab955534c3e50bfa">getStoreChiNum</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MemSSA.html#a15272a4ed019d1c323d1826c1bedb70f">getFunEntryChiNum</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MemSSA.html#a67175188232e08f5c5374f92ff61810f">getFunRetMuNum</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MemSSA.html#a9e8c5b85957485635d0f72c2f48bb8b5">getCallSiteMuNum</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MemSSA.html#a2c65795ca63a53c833f5ac17a752b6dc">getCallSiteChiNum</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MemSSA.html#a9bb6512999cbf9c7c03153be77c8af20">getBBPhiNum</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a749df6d6b28dd1bae569989bffeb7746">dumpMSSA</a>(<a class="code" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</a> &amp; Out = <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>());</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;};</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* MEMORYSSAPASS_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1MRVer_html"><div class="ttname"><a href="classSVF_1_1MRVer.html">SVF::MRVer</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00043">MSSAMuChi.h:43</a></div></div>
70
- <div class="ttc" id="classSVF_1_1MemSSA_html_a2e656a50f8964fc3e99d1d436de64418"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">SVF::MemSSA::getCHISet</a></div><div class="ttdeci">CHISet &amp; getCHISet(const StoreStmt *st)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00392">MemSSA.h:392</a></div></div>
69
+ <a href="MemSSA_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">//===- MemSSA.h -- Memory SSA-------------------------------------------------//</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-&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"> * MemorySSAPass.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: Jul 14, 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;<span class="comment"> * The implementation is based on</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * Yulei Sui, Hua Yan, Yunpeng Zhang, Jingling Xue and Zheng Zheng.</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * &quot;Parallel Construction of Interprocedural Memory SSA Form&quot;.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * Journal of Systems and Software (JSS&#39;16), Algorithm 3 in the paper</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#ifndef MEMORYSSAPASS_H_</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#define MEMORYSSAPASS_H_</span></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;<span class="preprocessor">#include &quot;<a class="code" href="MemRegion_8h.html">MSSA/MemRegion.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="MSSAMuChi_8h.html">MSSA/MSSAMuChi.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></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">class </span>PointerAnalysis;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span>MemSSAStat;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> * Memory SSA implementation on top of partial SSA</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html"> 52</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ac0c8f70b6283e26e70dafe02fcb5180a"> 58</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MemRegion.html#a7ed54700c976f9738012bc051b7f41f5">MemRegion::Condition</a> <a class="code" href="classSVF_1_1MemSSA.html#ac0c8f70b6283e26e70dafe02fcb5180a">Condition</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a2b4f3b19b32ac61dd1932faa82b93d8b"> 59</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU&lt;Condition&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a2b4f3b19b32ac61dd1932faa82b93d8b">MU</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a953a56a65ee36fd1c78b29179cd3f33a"> 60</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1RetMU.html">RetMU&lt;Condition&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a953a56a65ee36fd1c78b29179cd3f33a">RETMU</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a4717016109fd3bc80f3095d11afff5b1"> 61</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1LoadMU.html">LoadMU&lt;Condition&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a4717016109fd3bc80f3095d11afff5b1">LOADMU</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a7be50dd82679b45a8c400f5a12056a25"> 62</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1CallMU.html">CallMU&lt;Condition&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a7be50dd82679b45a8c400f5a12056a25">CALLMU</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a503f2fda873c330ef2cc5561f396ea6e"> 63</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI&lt;Condition&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a503f2fda873c330ef2cc5561f396ea6e">CHI</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a6a20da24d82ace1888be49a2ae0f6bd5"> 64</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1EntryCHI.html">EntryCHI&lt;Condition&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a6a20da24d82ace1888be49a2ae0f6bd5">ENTRYCHI</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a150e9d53ced1c143bba2d1026f739fa4"> 65</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1StoreCHI.html">StoreCHI&lt;Condition&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a150e9d53ced1c143bba2d1026f739fa4">STORECHI</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a56ffeb1f76c73766d06aedd60235c8d9"> 66</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1CallCHI.html">CallCHI&lt;Condition&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a56ffeb1f76c73766d06aedd60235c8d9">CALLCHI</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a8e948ea7778158107657fdd8195530e1"> 67</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MSSAPHI.html">MSSAPHI&lt;Condition&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a8e948ea7778158107657fdd8195530e1">PHI</a>;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a57e68097212e88568eea829fb998fe0c"> 68</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a> <a class="code" href="classSVF_1_1MemSSA.html#a57e68097212e88568eea829fb998fe0c">MDEF</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112"> 70</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;MU*&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">MUSet</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4"> 71</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;CHI*&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4">CHISet</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a8a5d3597f3dba9744e170cc8c32bf25f"> 72</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;PHI*&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a8a5d3597f3dba9744e170cc8c32bf25f">PHISet</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a37b84780f57cbee50cf957cfbab195c1"> 75</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRGenerator::MRSet</a> <a class="code" href="classSVF_1_1MemSSA.html#a37b84780f57cbee50cf957cfbab195c1">MRSet</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a7c3fda6f082231350524c2d7c16f067e"> 76</a></span>&#160; <span class="keyword">typedef</span> std::vector&lt;const MemRegion*&gt; <a class="code" href="classSVF_1_1MemSSA.html#a7c3fda6f082231350524c2d7c16f067e">MRVector</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a94164c59384ef04f98a3713b504fca35"> 80</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const LoadStmt*, MUSet&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a94164c59384ef04f98a3713b504fca35">LoadToMUSetMap</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#acfee1bb5534026ce991a1ab5e796c6b9"> 81</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const StoreStmt*, CHISet&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#acfee1bb5534026ce991a1ab5e796c6b9">StoreToChiSetMap</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a5d4ba728fb55e615cacfc5278e6bc4b7"> 82</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const CallICFGNode*, MUSet&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a5d4ba728fb55e615cacfc5278e6bc4b7">CallSiteToMUSetMap</a>;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a43b118f1b16a032fd1f27f8258c748ab"> 83</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const CallICFGNode*, CHISet&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a43b118f1b16a032fd1f27f8258c748ab">CallSiteToCHISetMap</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#afeef58baed23fc731e33a07a0ef05f6a"> 84</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap&lt;const BasicBlock*, PHISet&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#afeef58baed23fc731e33a07a0ef05f6a">BBToPhiSetMap</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ac34aa1ac96600bfc27b3c2eb0b1510ca"> 88</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFFunction*, CHISet&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#ac34aa1ac96600bfc27b3c2eb0b1510ca">FunToEntryChiSetMap</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a3cfc6d7134f98e5876c16c6c043a3d92"> 89</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFFunction*, MUSet&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a3cfc6d7134f98e5876c16c6c043a3d92">FunToReturnMuSetMap</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</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"><a class="line" href="classSVF_1_1MemSSA.html#a66e693af7b37e4e58b4834898d6a34fa"> 93</a></span>&#160; <span class="keyword">typedef</span> std::vector&lt;const BasicBlock*&gt; <a class="code" href="classSVF_1_1MemSSA.html#a66e693af7b37e4e58b4834898d6a34fa">BBList</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a4d4f7039c2972e671dc15b8c75abad14"> 94</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const BasicBlock*, MRSet&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a4d4f7039c2972e671dc15b8c75abad14">BBToMRSetMap</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a8d0c1a00d7db194da66c685d79e73de5"> 95</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const MemRegion*, BBList&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#a8d0c1a00d7db194da66c685d79e73de5">MemRegToBBsMap</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#aa9dbaf51f0498f3bd878827744208899"> 99</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const MemRegion*, std::vector&lt;MRVer*&gt;</a> &gt; <a class="code" href="classSVF_1_1MemSSA.html#aa9dbaf51f0498f3bd878827744208899">MemRegToVerStackMap</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ae1aca020147c270deca2a1241e3847d0"> 100</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const MemRegion*, MRVERSION&gt;</a> <a class="code" href="classSVF_1_1MemSSA.html#ae1aca020147c270deca2a1241e3847d0">MemRegToCounterMap</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a445d282890dbd2fb51e903255af1cc3e"> 103</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SVFIR.html#a6bc360d2604ae4a0af74530b263b10d9">SVFIR::SVFStmtList</a> <a class="code" href="classSVF_1_1MemSSA.html#a445d282890dbd2fb51e903255af1cc3e">SVFStmtList</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a37dca8a7d155de4870358146d219b5e5"> 107</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1MemSSA.html#a37dca8a7d155de4870358146d219b5e5">timeOfGeneratingMemRegions</a>; </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a4d2418b7df74f23d8fd328f66e29f198"> 108</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1MemSSA.html#a4d2418b7df74f23d8fd328f66e29f198">timeOfCreateMUCHI</a>; </div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a3c7b5fa73fdc7c805ee3673fbe812b44"> 109</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1MemSSA.html#a3c7b5fa73fdc7c805ee3673fbe812b44">timeOfInsertingPHI</a>; </div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a97ccd5e0b9ab6144415e26bdf95cbabd"> 110</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1MemSSA.html#a97ccd5e0b9ab6144415e26bdf95cbabd">timeOfSSARenaming</a>; </div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671"> 113</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671">MemPartition</a></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"><a class="line" href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671a9da5f4ad2a43befdbc4be319bffc80ea"> 115</a></span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671a9da5f4ad2a43befdbc4be319bffc80ea">Distinct</a>,</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671ac9388cc44f91bd9a00666c0d69b32ef1"> 116</a></span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671ac9388cc44f91bd9a00666c0d69b32ef1">IntraDisjoint</a>,</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671a549b5589ecfbe073623091605785fc03"> 117</a></span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671a549b5589ecfbe073623091605785fc03">InterDisjoint</a></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; };</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3"> 121</a></span>&#160; <a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* <a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5"> 122</a></span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html">MRGenerator</a>* <a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ac0aeb79ec4f86f55c97bd397509acd05"> 123</a></span>&#160; <a class="code" href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">DominanceFrontier</a>* <a class="code" href="classSVF_1_1MemSSA.html#ac0aeb79ec4f86f55c97bd397509acd05">df</a>;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a52b1598f44fe6a6e30095f596bf85cb0"> 124</a></span>&#160; <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>* <a class="code" href="classSVF_1_1MemSSA.html#a52b1598f44fe6a6e30095f596bf85cb0">dt</a>;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a4fc930040ec54eb60629da18fb6a4d04"> 125</a></span>&#160; <a class="code" href="classSVF_1_1MemSSAStat.html">MemSSAStat</a>* <a class="code" href="classSVF_1_1MemSSA.html#a4fc930040ec54eb60629da18fb6a4d04">stat</a>;</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="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a695adf83e8c40b9628b1866053f68033">createMUCHI</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>&amp; fun);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#acc6f72d96cf29e36093ba08ea86b8983">insertPHI</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>&amp; fun);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a16114eb55775f6ee812c1648dcaede0c">SSARename</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>&amp; fun);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a271c20725d49dd65b95c062938ffde4c">SSARenameBB</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>&amp; bb);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6"> 136</a></span>&#160; LoadToMUSetMap <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a"> 137</a></span>&#160; StoreToChiSetMap <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a"> 138</a></span>&#160; CallSiteToMUSetMap <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195"> 139</a></span>&#160; CallSiteToCHISetMap <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23"> 140</a></span>&#160; BBToPhiSetMap <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>;</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"><a class="line" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec"> 142</a></span>&#160; FunToEntryChiSetMap <a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c"> 143</a></span>&#160; FunToReturnMuSetMap <a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ae4c7b17d8da8278dca362af79f9f268d"> 145</a></span>&#160; MemRegToVerStackMap <a class="code" href="classSVF_1_1MemSSA.html#ae4c7b17d8da8278dca362af79f9f268d">mr2VerStackMap</a>;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a22e2dd0fc78877bdedd207a40540a634"> 146</a></span>&#160; MemRegToCounterMap <a class="code" href="classSVF_1_1MemSSA.html#a22e2dd0fc78877bdedd207a40540a634">mr2CounterMap</a>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">// (see algorithm in book Engineering A Compiler section 9.3)</span></div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#acf840b71b67cabe831f01f2d358f27fa"> 152</a></span>&#160;<span class="comment"></span> MRSet <a class="code" href="classSVF_1_1MemSSA.html#acf840b71b67cabe831f01f2d358f27fa">usedRegs</a>;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#add1d4ff17d0860906d2f5f7172176121"> 154</a></span>&#160; MemRegToBBsMap <a class="code" href="classSVF_1_1MemSSA.html#add1d4ff17d0860906d2f5f7172176121">reg2BBMap</a>;</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ae64f97a984765a43f05df26b57a43a43"> 156</a></span>&#160; MRSet <a class="code" href="classSVF_1_1MemSSA.html#ae64f97a984765a43f05df26b57a43a43">varKills</a>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</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_1MemSSA.html#a3d6096aeb4155444b532b02bb8559113">destroy</a>();</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1MemSSA.html#a381a35d48ce2f8e348ddbbb9ce526ca8">newSSAName</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr, <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a>* def);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ad550a453d5b2daa6c72e7752f6b5ea79"> 166</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1MemSSA.html#ad550a453d5b2daa6c72e7752f6b5ea79">getTopStackVer</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr)</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; std::vector&lt;MRVer*&gt; &amp;stack = mr2VerStackMap[mr];</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; assert(!stack.empty() &amp;&amp; <span class="stringliteral">&quot;stack is empty!!&quot;</span>);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">return</span> stack.back();</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390"> 175</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390">collectRegUses</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span> (0 == varKills.count(mr))</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; usedRegs.insert(mr);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a7c0bb1406f0e583c38e522ca06dfa73a"> 180</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a7c0bb1406f0e583c38e522ca06dfa73a">collectRegDefs</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr)</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; varKills.insert(mr);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; reg2BBMap[mr].push_back(bb);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#adb8009633b4e3b69609790fa068b3f42"> 189</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#adb8009633b4e3b69609790fa068b3f42">AddLoadMU</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* load, <span class="keyword">const</span> MRSet&amp; mrSet)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">for</span> (MRSet::iterator iter = mrSet.begin(), eiter = mrSet.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#adb8009633b4e3b69609790fa068b3f42">AddLoadMU</a>(bb,load,*iter);</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"><a class="line" href="classSVF_1_1MemSSA.html#a4e11797df16b0b612191607180acc0c5"> 194</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a4e11797df16b0b612191607180acc0c5">AddStoreCHI</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb, <span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* store, <span class="keyword">const</span> MRSet&amp; mrSet)</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"> 196</span>&#160; <span class="keywordflow">for</span> (MRSet::iterator iter = mrSet.begin(), eiter = mrSet.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a4e11797df16b0b612191607180acc0c5">AddStoreCHI</a>(bb,store,*iter);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a8f121e686d36748e4528d0ea66dcaa24"> 199</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a8f121e686d36748e4528d0ea66dcaa24">AddCallSiteMU</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> MRSet&amp; mrSet)</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">for</span> (MRSet::iterator iter = mrSet.begin(), eiter = mrSet.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a8f121e686d36748e4528d0ea66dcaa24">AddCallSiteMU</a>(cs,*iter);</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"><a class="line" href="classSVF_1_1MemSSA.html#ad8011273feaf046bf7f3a3f3b904a91d"> 204</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#ad8011273feaf046bf7f3a3f3b904a91d">AddCallSiteCHI</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> MRSet&amp; mrSet)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">for</span> (MRSet::iterator iter = mrSet.begin(), eiter = mrSet.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#ad8011273feaf046bf7f3a3f3b904a91d">AddCallSiteCHI</a>(cs,*iter);</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_1MemSSA.html#a606aaf7a76ca71cb32adc9af7291ae6e"> 209</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a606aaf7a76ca71cb32adc9af7291ae6e">AddMSSAPHI</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb, <span class="keyword">const</span> MRSet&amp; mrSet)</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; <span class="keywordflow">for</span> (MRSet::iterator iter = mrSet.begin(), eiter = mrSet.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a606aaf7a76ca71cb32adc9af7291ae6e">AddMSSAPHI</a>(bb,*iter);</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"><a class="line" href="classSVF_1_1MemSSA.html#a397c835c15c15e18697beca2ff27a73f"> 214</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a397c835c15c15e18697beca2ff27a73f">AddLoadMU</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* load, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr)</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"> 216</span>&#160; LOADMU* mu = <span class="keyword">new</span> <a class="code" href="classSVF_1_1MemSSA.html#a4717016109fd3bc80f3095d11afff5b1">LOADMU</a>(bb,load, mr);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; load2MuSetMap[load].insert(mu);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390">collectRegUses</a>(mr);</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_1MemSSA.html#a8d9bfa2ad724a3b286edc56b7c15e9bf"> 220</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a8d9bfa2ad724a3b286edc56b7c15e9bf">AddStoreCHI</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb, <span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* store, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr)</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; STORECHI* chi = <span class="keyword">new</span> <a class="code" href="classSVF_1_1MemSSA.html#a150e9d53ced1c143bba2d1026f739fa4">STORECHI</a>(bb,store, mr);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; store2ChiSetMap[store].insert(chi);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390">collectRegUses</a>(mr);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a7c0bb1406f0e583c38e522ca06dfa73a">collectRegDefs</a>(bb,mr);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#adbaf4715d5d4c9d0be1e934178efe13e"> 227</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#adbaf4715d5d4c9d0be1e934178efe13e">AddCallSiteMU</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr)</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; {</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; CALLMU* mu = <span class="keyword">new</span> <a class="code" href="classSVF_1_1MemSSA.html#a7be50dd82679b45a8c400f5a12056a25">CALLMU</a>(cs, mr);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; callsiteToMuSetMap[cs].insert(mu);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390">collectRegUses</a>(mr);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#af7991c1393ef3c8b090833bc27036a49"> 233</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#af7991c1393ef3c8b090833bc27036a49">AddCallSiteCHI</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; CALLCHI* chi = <span class="keyword">new</span> <a class="code" href="classSVF_1_1MemSSA.html#a56ffeb1f76c73766d06aedd60235c8d9">CALLCHI</a>(cs, mr);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; callsiteToChiSetMap[cs].insert(chi);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390">collectRegUses</a>(mr);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a7c0bb1406f0e583c38e522ca06dfa73a">collectRegDefs</a>(chi-&gt;<a class="code" href="classSVF_1_1CallCHI.html#a69f83ff81ea017d645aadeb46334880f">getBasicBlock</a>(),mr);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a3af850d2fe9b2e75b2705c6d1355eda2"> 240</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a3af850d2fe9b2e75b2705c6d1355eda2">AddMSSAPHI</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr)</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; bb2PhiSetMap[bb].insert(<span class="keyword">new</span> <a class="code" href="classSVF_1_1MemSSA.html#a8e948ea7778158107657fdd8195530e1">PHI</a>(bb, mr));</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a2527b76b92dffa8f8513ebfdcc8d8133">RenameMuSet</a>(<span class="keyword">const</span> MUSet&amp; muSet)</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="keywordflow">for</span> (MUSet::const_iterator mit = muSet.begin(), emit = muSet.end();</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; mit != emit; ++mit)</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; MU* mu = (*mit);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; mu-&gt;<a class="code" href="classSVF_1_1MSSAMU.html#a2af1e639aabbc5997aa4e6526f6595fb">setVer</a>(<a class="code" href="classSVF_1_1MemSSA.html#ad550a453d5b2daa6c72e7752f6b5ea79">getTopStackVer</a>(mu-&gt;<a class="code" href="classSVF_1_1MSSAMU.html#a6bd671839ec0376439ccd81d5b2eff30">getMR</a>()));</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="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a6066364112e665c33cbf2ec50ae1e3a8"> 260</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a6066364112e665c33cbf2ec50ae1e3a8">RenameChiSet</a>(<span class="keyword">const</span> CHISet&amp; chiSet, MRVector&amp; memRegs)</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">for</span> (CHISet::const_iterator cit = chiSet.begin(), ecit = chiSet.end();</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; cit != ecit; ++cit)</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; {</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; CHI* chi = (*cit);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; chi-&gt;<a class="code" href="classSVF_1_1MSSACHI.html#a245d8ee9e81ba4fe6f41533baf471331">setOpVer</a>(<a class="code" href="classSVF_1_1MemSSA.html#ad550a453d5b2daa6c72e7752f6b5ea79">getTopStackVer</a>(chi-&gt;<a class="code" href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c">getMR</a>()));</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; chi-&gt;<a class="code" href="classSVF_1_1MSSADEF.html#a343eb4c9515dfbbbdadaacf5500e5f05">setResVer</a>(<a class="code" href="classSVF_1_1MemSSA.html#a381a35d48ce2f8e348ddbbb9ce526ca8">newSSAName</a>(chi-&gt;<a class="code" href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c">getMR</a>(),chi));</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; memRegs.push_back(chi-&gt;<a class="code" href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c">getMR</a>());</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; }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a630be375832b1477989af85dce6760f3"> 273</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a630be375832b1477989af85dce6760f3">RenamePhiRes</a>(<span class="keyword">const</span> PHISet&amp; phiSet, MRVector&amp; memRegs)</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">for</span> (PHISet::const_iterator iter = phiSet.begin(), eiter = phiSet.end();</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; iter != eiter; ++iter)</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; PHI* phi = *iter;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; phi-&gt;<a class="code" href="classSVF_1_1MSSADEF.html#a343eb4c9515dfbbbdadaacf5500e5f05">setResVer</a>(<a class="code" href="classSVF_1_1MemSSA.html#a381a35d48ce2f8e348ddbbb9ce526ca8">newSSAName</a>(phi-&gt;<a class="code" href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c">getMR</a>(),phi));</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; memRegs.push_back(phi-&gt;<a class="code" href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c">getMR</a>());</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="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a0ed34f7a27db045c624c5db61d53132b"> 285</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a0ed34f7a27db045c624c5db61d53132b">RenamePhiOps</a>(<span class="keyword">const</span> PHISet&amp; phiSet, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos, MRVector&amp;)</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">for</span> (PHISet::const_iterator iter = phiSet.begin(), eiter = phiSet.end();</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; iter != eiter; ++iter)</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; {</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; PHI* phi = *iter;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; phi-&gt;<a class="code" href="classSVF_1_1MSSAPHI.html#a74f663dc5ecc659e98542a53414b7988">setOpVer</a>(<a class="code" href="classSVF_1_1MemSSA.html#ad550a453d5b2daa6c72e7752f6b5ea79">getTopStackVer</a>(phi-&gt;<a class="code" href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c">getMR</a>()), pos);</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; }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</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_1MemSSA.html#a36e9cf7394c3ece8a5f2f9bfc512956a"> 298</a></span>&#160; <a class="code" href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">DominanceFrontier</a>* <a class="code" href="classSVF_1_1MemSSA.html#a36e9cf7394c3ece8a5f2f9bfc512956a">getDF</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>&amp;)</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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#ac0aeb79ec4f86f55c97bd397509acd05">df</a>;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; }</div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a9741a8d0540ba4c27cb667590d246197"> 302</a></span>&#160; <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>* <a class="code" href="classSVF_1_1MemSSA.html#a9741a8d0540ba4c27cb667590d246197">getDT</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>&amp;)</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a52b1598f44fe6a6e30095f596bf85cb0">dt</a>;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a11e1e9a74a6764131fc8aae27d8bde5e">setCurrentDFDT</a>(<a class="code" href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">DominanceFrontier</a>* f, <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>* t);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a6bd57451370f5f4c92ce212be4cddd15">MemSSA</a>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>, <span class="keywordtype">bool</span> ptrOnlyMSSA);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ae09603b40c7359c4cd2f644d3efc40cc"> 314</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MemSSA.html#ae09603b40c7359c4cd2f644d3efc40cc">~MemSSA</a>()</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a3d6096aeb4155444b532b02bb8559113">destroy</a>();</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"> 319</span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* <a class="code" href="classSVF_1_1MemSSA.html#a41b153f2f8f3a27be63750e73a290569">getPAG</a>();</div><div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac"> 321</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* <a class="code" href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">getPTA</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a>;</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_1MemSSA.html#ab2dfdcf6fb50ba6cacad1254350a5b09"> 326</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MRGenerator.html">MRGenerator</a>* <a class="code" href="classSVF_1_1MemSSA.html#ab2dfdcf6fb50ba6cacad1254350a5b09">getMRGenerator</a>()</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; {</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#ae56d1878046c119d1857727ca3609d74">buildMemSSA</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>&amp; fun,<a class="code" href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">DominanceFrontier</a>*, <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>*);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a89c40c8fad70f3aead6531261e5a3cc3">performStat</a>();</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div><div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#af5e356e82c3f93b65bd89908e0f465dc"> 338</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemSSA.html#af5e356e82c3f93b65bd89908e0f465dc">hasMU</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* inst)<span class="keyword"> const</span></div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* load = SVFUtil::dyn_cast&lt;LoadStmt&gt;(inst))</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; assert(0 != load2MuSetMap.count(load)</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; &amp;&amp; <span class="stringliteral">&quot;not associated with mem region!&quot;</span>);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; }</div><div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#abfb338ce36ad46a9654d50dd6e2b07f1"> 349</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemSSA.html#abfb338ce36ad46a9654d50dd6e2b07f1">hasCHI</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* inst)<span class="keyword"> const</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* store = SVFUtil::dyn_cast&lt;StoreStmt&gt;(</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; inst))</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; {</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; assert(0 != store2ChiSetMap.count(store)</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; &amp;&amp; <span class="stringliteral">&quot;not associated with mem region!&quot;</span>);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a6bd9390c6cd2a3d7a3752fba76acfb46"> 361</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemSSA.html#a6bd9390c6cd2a3d7a3752fba76acfb46">hasMU</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">return</span> callsiteToMuSetMap.find(cs)!=callsiteToMuSetMap.end();</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; }</div><div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#ae16120dfc9436861f719e605617f353d"> 365</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemSSA.html#ae16120dfc9436861f719e605617f353d">hasCHI</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">return</span> callsiteToChiSetMap.find(cs)!=callsiteToChiSetMap.end();</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</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"> 372</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#aec75259d035e3b5589e6fcbbcdfe4b2c"> 373</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemSSA.html#aec75259d035e3b5589e6fcbbcdfe4b2c">hasFuncEntryChi</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * fun)<span class="keyword"> const</span></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">return</span> (funToEntryChiSetMap.find(fun) != funToEntryChiSetMap.end());</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; }</div><div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a3400d9a921672b3872656acecc3eac9f"> 377</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemSSA.html#a3400d9a921672b3872656acecc3eac9f">hasReturnMu</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * fun)<span class="keyword"> const</span></div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">return</span> (funToReturnMuSetMap.find(fun) != funToReturnMuSetMap.end());</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;</div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a10743fe9c116ee624387c0473815b800"> 382</a></span>&#160; <span class="keyword">inline</span> CHISet&amp; <a class="code" href="classSVF_1_1MemSSA.html#a10743fe9c116ee624387c0473815b800">getFuncEntryChiSet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * fun)</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; {</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">return</span> funToEntryChiSetMap[fun];</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; }</div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#af8c38a7ff8da4206f19c038024606d93"> 386</a></span>&#160; <span class="keyword">inline</span> MUSet&amp; <a class="code" href="classSVF_1_1MemSSA.html#af8c38a7ff8da4206f19c038024606d93">getReturnMuSet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * fun)</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; <span class="keywordflow">return</span> funToReturnMuSetMap[fun];</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; }</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"> 393</span>&#160;</div><div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847"> 394</a></span>&#160; <span class="keyword">inline</span> MUSet&amp; <a class="code" href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">getMUSet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* ld)</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; {</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">return</span> load2MuSetMap[ld];</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418"> 398</a></span>&#160; <span class="keyword">inline</span> CHISet&amp; <a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* st)</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">return</span> store2ChiSetMap[st];</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"><a class="line" href="classSVF_1_1MemSSA.html#af1a7b3ca0144ebff3747715e89646fbb"> 402</a></span>&#160; <span class="keyword">inline</span> MUSet&amp; <a class="code" href="classSVF_1_1MemSSA.html#af1a7b3ca0144ebff3747715e89646fbb">getMUSet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; {</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">return</span> callsiteToMuSetMap[cs];</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; }</div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a959e932912b924ec91e1526947493204"> 406</a></span>&#160; <span class="keyword">inline</span> CHISet&amp; <a class="code" href="classSVF_1_1MemSSA.html#a959e932912b924ec91e1526947493204">getCHISet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">return</span> callsiteToChiSetMap[cs];</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; }</div><div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a964f3fe39ece9a7b8b2033428b75a274"> 410</a></span>&#160; <span class="keyword">inline</span> PHISet&amp; <a class="code" href="classSVF_1_1MemSSA.html#a964f3fe39ece9a7b8b2033428b75a274">getPHISet</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb)</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">return</span> bb2PhiSetMap[bb];</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; }</div><div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a552bb17f0435e012b7393fb641c19298"> 414</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemSSA.html#a552bb17f0435e012b7393fb641c19298">hasPHISet</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb)<span class="keyword"> const</span></div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">return</span> bb2PhiSetMap.find(bb)!=bb2PhiSetMap.end();</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; }</div><div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a70dd35ef458c452330dfebcdde17b84c"> 418</a></span>&#160; <span class="keyword">inline</span> LoadToMUSetMap&amp; <a class="code" href="classSVF_1_1MemSSA.html#a70dd35ef458c452330dfebcdde17b84c">getLoadToMUSetMap</a>()</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div><div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a97166aa7102816a16734d7e2f1c130b0"> 422</a></span>&#160; <span class="keyword">inline</span> StoreToChiSetMap&amp; <a class="code" href="classSVF_1_1MemSSA.html#a97166aa7102816a16734d7e2f1c130b0">getStoreToChiSetMap</a>()</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div><div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a44cbdb1231c2709c24d19ad2bae2475a"> 426</a></span>&#160; <span class="keyword">inline</span> FunToReturnMuSetMap&amp; <a class="code" href="classSVF_1_1MemSSA.html#a44cbdb1231c2709c24d19ad2bae2475a">getFunToRetMuSetMap</a>()</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; {</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; }</div><div class="line"><a name="l00430"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#afd4787df4466c24948d8384e3a756198"> 430</a></span>&#160; <span class="keyword">inline</span> FunToEntryChiSetMap&amp; <a class="code" href="classSVF_1_1MemSSA.html#afd4787df4466c24948d8384e3a756198">getFunToEntryChiSetMap</a>()</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div><div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a06081aa029b1fe3f9427f85a0261fd43"> 434</a></span>&#160; <span class="keyword">inline</span> CallSiteToMUSetMap&amp; <a class="code" href="classSVF_1_1MemSSA.html#a06081aa029b1fe3f9427f85a0261fd43">getCallSiteToMuSetMap</a>()</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; {</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; }</div><div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a8f88acad31782bfa962e4349d8f4185d"> 438</a></span>&#160; <span class="keyword">inline</span> CallSiteToCHISetMap&amp; <a class="code" href="classSVF_1_1MemSSA.html#a8f88acad31782bfa962e4349d8f4185d">getCallSiteToChiSetMap</a>()</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; {</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; }</div><div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSA.html#a966477062a453901da3631015fcf737d"> 442</a></span>&#160; <span class="keyword">inline</span> BBToPhiSetMap&amp; <a class="code" href="classSVF_1_1MemSSA.html#a966477062a453901da3631015fcf737d">getBBToPhiSetMap</a>()</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; {</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MemSSA.html#aafc83f7f22ebf3b3683607440c488bef">getLoadMuNum</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MemSSA.html#aa8c45b455e6fc60cab955534c3e50bfa">getStoreChiNum</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MemSSA.html#a15272a4ed019d1c323d1826c1bedb70f">getFunEntryChiNum</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MemSSA.html#a67175188232e08f5c5374f92ff61810f">getFunRetMuNum</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MemSSA.html#a9e8c5b85957485635d0f72c2f48bb8b5">getCallSiteMuNum</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MemSSA.html#a2c65795ca63a53c833f5ac17a752b6dc">getCallSiteChiNum</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MemSSA.html#a9bb6512999cbf9c7c03153be77c8af20">getBBPhiNum</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSA.html#a749df6d6b28dd1bae569989bffeb7746">dumpMSSA</a>(<a class="code" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</a> &amp; Out = <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>());</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;};</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* MEMORYSSAPASS_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1MRVer_html"><div class="ttname"><a href="classSVF_1_1MRVer.html">SVF::MRVer</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00043">MSSAMuChi.h:43</a></div></div>
70
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a2e656a50f8964fc3e99d1d436de64418"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">SVF::MemSSA::getCHISet</a></div><div class="ttdeci">CHISet &amp; getCHISet(const StoreStmt *st)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00398">MemSSA.h:398</a></div></div>
71
71
  <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html">SVF::BVDataPTAImpl</a></div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00042">PointerAnalysisImpl.h:42</a></div></div>
72
72
  <div class="ttc" id="cJSON_8cpp_html_a009ef1d888ab6dbe77e6b42b0b39f1ae"><div class="ttname"><a href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a></div><div class="ttdeci">cJSON * p</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02559">cJSON.cpp:2559</a></div></div>
73
- <div class="ttc" id="classSVF_1_1MemSSA_html_a57e68097212e88568eea829fb998fe0c"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a57e68097212e88568eea829fb998fe0c">SVF::MemSSA::MDEF</a></div><div class="ttdeci">MSSADEF MDEF</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00062">MemSSA.h:62</a></div></div>
74
- <div class="ttc" id="classSVF_1_1MemSSA_html_a1be5a6776c8785f26573b597881c8195"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">SVF::MemSSA::callsiteToChiSetMap</a></div><div class="ttdeci">CallSiteToCHISetMap callsiteToChiSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00133">MemSSA.h:133</a></div></div>
73
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a57e68097212e88568eea829fb998fe0c"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a57e68097212e88568eea829fb998fe0c">SVF::MemSSA::MDEF</a></div><div class="ttdeci">MSSADEF MDEF</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00068">MemSSA.h:68</a></div></div>
74
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a1be5a6776c8785f26573b597881c8195"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">SVF::MemSSA::callsiteToChiSetMap</a></div><div class="ttdeci">CallSiteToCHISetMap callsiteToChiSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00139">MemSSA.h:139</a></div></div>
75
75
  <div class="ttc" id="classSVF_1_1MSSACHI_html_a245d8ee9e81ba4fe6f41533baf471331"><div class="ttname"><a href="classSVF_1_1MSSACHI.html#a245d8ee9e81ba4fe6f41533baf471331">SVF::MSSACHI::setOpVer</a></div><div class="ttdeci">void setOpVer(MRVer *v)</div><div class="ttdoc">Set operand ver. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00414">MSSAMuChi.h:414</a></div></div>
76
- <div class="ttc" id="classSVF_1_1MemSSA_html_a5d4ba728fb55e615cacfc5278e6bc4b7"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a5d4ba728fb55e615cacfc5278e6bc4b7">SVF::MemSSA::CallSiteToMUSetMap</a></div><div class="ttdeci">Map&lt; const CallICFGNode *, MUSet &gt; CallSiteToMUSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00076">MemSSA.h:76</a></div></div>
77
- <div class="ttc" id="classSVF_1_1MemSSA_html_ac0aeb79ec4f86f55c97bd397509acd05"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ac0aeb79ec4f86f55c97bd397509acd05">SVF::MemSSA::df</a></div><div class="ttdeci">DominanceFrontier * df</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00117">MemSSA.h:117</a></div></div>
78
- <div class="ttc" id="classSVF_1_1MemSSA_html_a8d9bfa2ad724a3b286edc56b7c15e9bf"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a8d9bfa2ad724a3b286edc56b7c15e9bf">SVF::MemSSA::AddStoreCHI</a></div><div class="ttdeci">void AddStoreCHI(const BasicBlock *bb, const StoreStmt *store, const MemRegion *mr)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00214">MemSSA.h:214</a></div></div>
79
- <div class="ttc" id="classSVF_1_1MemSSA_html_a37dca8a7d155de4870358146d219b5e5"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a37dca8a7d155de4870358146d219b5e5">SVF::MemSSA::timeOfGeneratingMemRegions</a></div><div class="ttdeci">static double timeOfGeneratingMemRegions</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00101">MemSSA.h:101</a></div></div>
80
- <div class="ttc" id="classSVF_1_1MemSSA_html_a36e9cf7394c3ece8a5f2f9bfc512956a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a36e9cf7394c3ece8a5f2f9bfc512956a">SVF::MemSSA::getDF</a></div><div class="ttdeci">DominanceFrontier * getDF(const SVFFunction &amp;)</div><div class="ttdoc">Get/set methods for dominace frontier/tree. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00292">MemSSA.h:292</a></div></div>
81
- <div class="ttc" id="classSVF_1_1MemSSA_html_a150e9d53ced1c143bba2d1026f739fa4"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a150e9d53ced1c143bba2d1026f739fa4">SVF::MemSSA::STORECHI</a></div><div class="ttdeci">StoreCHI&lt; Condition &gt; STORECHI</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00059">MemSSA.h:59</a></div></div>
82
- <div class="ttc" id="classSVF_1_1MemSSA_html_aa9dbaf51f0498f3bd878827744208899"><div class="ttname"><a href="classSVF_1_1MemSSA.html#aa9dbaf51f0498f3bd878827744208899">SVF::MemSSA::MemRegToVerStackMap</a></div><div class="ttdeci">Map&lt; const MemRegion *, std::vector&lt; MRVer * &gt; &gt; MemRegToVerStackMap</div><div class="ttdoc">For SSA renaming. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00093">MemSSA.h:93</a></div></div>
76
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a5d4ba728fb55e615cacfc5278e6bc4b7"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a5d4ba728fb55e615cacfc5278e6bc4b7">SVF::MemSSA::CallSiteToMUSetMap</a></div><div class="ttdeci">Map&lt; const CallICFGNode *, MUSet &gt; CallSiteToMUSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00082">MemSSA.h:82</a></div></div>
77
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ac0aeb79ec4f86f55c97bd397509acd05"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ac0aeb79ec4f86f55c97bd397509acd05">SVF::MemSSA::df</a></div><div class="ttdeci">DominanceFrontier * df</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00123">MemSSA.h:123</a></div></div>
78
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a8d9bfa2ad724a3b286edc56b7c15e9bf"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a8d9bfa2ad724a3b286edc56b7c15e9bf">SVF::MemSSA::AddStoreCHI</a></div><div class="ttdeci">void AddStoreCHI(const BasicBlock *bb, const StoreStmt *store, const MemRegion *mr)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00220">MemSSA.h:220</a></div></div>
79
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a37dca8a7d155de4870358146d219b5e5"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a37dca8a7d155de4870358146d219b5e5">SVF::MemSSA::timeOfGeneratingMemRegions</a></div><div class="ttdeci">static double timeOfGeneratingMemRegions</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00107">MemSSA.h:107</a></div></div>
80
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a36e9cf7394c3ece8a5f2f9bfc512956a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a36e9cf7394c3ece8a5f2f9bfc512956a">SVF::MemSSA::getDF</a></div><div class="ttdeci">DominanceFrontier * getDF(const SVFFunction &amp;)</div><div class="ttdoc">Get/set methods for dominace frontier/tree. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00298">MemSSA.h:298</a></div></div>
81
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a150e9d53ced1c143bba2d1026f739fa4"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a150e9d53ced1c143bba2d1026f739fa4">SVF::MemSSA::STORECHI</a></div><div class="ttdeci">StoreCHI&lt; Condition &gt; STORECHI</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00065">MemSSA.h:65</a></div></div>
82
+ <div class="ttc" id="classSVF_1_1MemSSA_html_aa9dbaf51f0498f3bd878827744208899"><div class="ttname"><a href="classSVF_1_1MemSSA.html#aa9dbaf51f0498f3bd878827744208899">SVF::MemSSA::MemRegToVerStackMap</a></div><div class="ttdeci">Map&lt; const MemRegion *, std::vector&lt; MRVer * &gt; &gt; MemRegToVerStackMap</div><div class="ttdoc">For SSA renaming. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00099">MemSSA.h:99</a></div></div>
83
83
  <div class="ttc" id="classSVF_1_1CallMU_html"><div class="ttname"><a href="classSVF_1_1CallMU.html">SVF::CallMU</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00221">MSSAMuChi.h:221</a></div></div>
84
- <div class="ttc" id="classSVF_1_1MemSSA_html_a7c0bb1406f0e583c38e522ca06dfa73a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a7c0bb1406f0e583c38e522ca06dfa73a">SVF::MemSSA::collectRegDefs</a></div><div class="ttdeci">void collectRegDefs(const BasicBlock *bb, const MemRegion *mr)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00174">MemSSA.h:174</a></div></div>
85
- <div class="ttc" id="classSVF_1_1MemSSA_html_acf840b71b67cabe831f01f2d358f27fa"><div class="ttname"><a href="classSVF_1_1MemSSA.html#acf840b71b67cabe831f01f2d358f27fa">SVF::MemSSA::usedRegs</a></div><div class="ttdeci">MRSet usedRegs</div><div class="ttdoc">The following three set are used for prune SSA phi insertion. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00146">MemSSA.h:146</a></div></div>
84
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a7c0bb1406f0e583c38e522ca06dfa73a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a7c0bb1406f0e583c38e522ca06dfa73a">SVF::MemSSA::collectRegDefs</a></div><div class="ttdeci">void collectRegDefs(const BasicBlock *bb, const MemRegion *mr)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00180">MemSSA.h:180</a></div></div>
85
+ <div class="ttc" id="classSVF_1_1MemSSA_html_acf840b71b67cabe831f01f2d358f27fa"><div class="ttname"><a href="classSVF_1_1MemSSA.html#acf840b71b67cabe831f01f2d358f27fa">SVF::MemSSA::usedRegs</a></div><div class="ttdeci">MRSet usedRegs</div><div class="ttdoc">The following three set are used for prune SSA phi insertion. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00152">MemSSA.h:152</a></div></div>
86
86
  <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="Util_2BasicTypes_8h_source.html#l00071">BasicTypes.h:71</a></div></div>
87
- <div class="ttc" id="classSVF_1_1MemSSA_html_a8032c530b44e264544881d53d2fac390"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390">SVF::MemSSA::collectRegUses</a></div><div class="ttdeci">void collectRegUses(const MemRegion *mr)</div><div class="ttdoc">Collect region uses and region defs according to mus/chis, in order to insert phis. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00169">MemSSA.h:169</a></div></div>
87
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a8032c530b44e264544881d53d2fac390"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390">SVF::MemSSA::collectRegUses</a></div><div class="ttdeci">void collectRegUses(const MemRegion *mr)</div><div class="ttdoc">Collect region uses and region defs according to mus/chis, in order to insert phis. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00175">MemSSA.h:175</a></div></div>
88
88
  <div class="ttc" id="classSVF_1_1SVFIR_html_a6bc360d2604ae4a0af74530b263b10d9"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6bc360d2604ae4a0af74530b263b10d9">SVF::SVFIR::SVFStmtList</a></div><div class="ttdeci">std::vector&lt; const SVFStmt * &gt; SVFStmtList</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00056">SVFIR.h:56</a></div></div>
89
89
  <div class="ttc" id="classSVF_1_1MemSSA_html_a16114eb55775f6ee812c1648dcaede0c"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a16114eb55775f6ee812c1648dcaede0c">SVF::MemSSA::SSARename</a></div><div class="ttdeci">virtual void SSARename(const SVFFunction &amp;fun)</div><div class="ttdoc">SSA rename for a function. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00263">MemSSA.cpp:263</a></div></div>
90
90
  <div class="ttc" id="MemRegion_8h_html"><div class="ttname"><a href="MemRegion_8h.html">MemRegion.h</a></div></div>
91
- <div class="ttc" id="classSVF_1_1MemSSA_html_a9741a8d0540ba4c27cb667590d246197"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a9741a8d0540ba4c27cb667590d246197">SVF::MemSSA::getDT</a></div><div class="ttdeci">DominatorTree * getDT(const SVFFunction &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00296">MemSSA.h:296</a></div></div>
91
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a9741a8d0540ba4c27cb667590d246197"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a9741a8d0540ba4c27cb667590d246197">SVF::MemSSA::getDT</a></div><div class="ttdeci">DominatorTree * getDT(const SVFFunction &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00302">MemSSA.h:302</a></div></div>
92
92
  <div class="ttc" id="classSVF_1_1MemSSA_html_a3d6096aeb4155444b532b02bb8559113"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a3d6096aeb4155444b532b02bb8559113">SVF::MemSSA::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Release the memory. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00382">MemSSA.cpp:382</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1StoreCHI_html"><div class="ttname"><a href="classSVF_1_1StoreCHI.html">SVF::StoreCHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00461">MSSAMuChi.h:461</a></div></div>
94
- <div class="ttc" id="classSVF_1_1MemSSA_html_a7be50dd82679b45a8c400f5a12056a25"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a7be50dd82679b45a8c400f5a12056a25">SVF::MemSSA::CALLMU</a></div><div class="ttdeci">CallMU&lt; Condition &gt; CALLMU</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00056">MemSSA.h:56</a></div></div>
94
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a7be50dd82679b45a8c400f5a12056a25"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a7be50dd82679b45a8c400f5a12056a25">SVF::MemSSA::CALLMU</a></div><div class="ttdeci">CallMU&lt; Condition &gt; CALLMU</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00062">MemSSA.h:62</a></div></div>
95
95
  <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="Util_2BasicTypes_8h_source.html#l00125">BasicTypes.h:125</a></div></div>
96
- <div class="ttc" id="classSVF_1_1MemSSA_html_a4fc930040ec54eb60629da18fb6a4d04"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a4fc930040ec54eb60629da18fb6a4d04">SVF::MemSSA::stat</a></div><div class="ttdeci">MemSSAStat * stat</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00119">MemSSA.h:119</a></div></div>
97
- <div class="ttc" id="classSVF_1_1MemSSA_html_a964f3fe39ece9a7b8b2033428b75a274"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a964f3fe39ece9a7b8b2033428b75a274">SVF::MemSSA::getPHISet</a></div><div class="ttdeci">PHISet &amp; getPHISet(const BasicBlock *bb)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00404">MemSSA.h:404</a></div></div>
96
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a4fc930040ec54eb60629da18fb6a4d04"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a4fc930040ec54eb60629da18fb6a4d04">SVF::MemSSA::stat</a></div><div class="ttdeci">MemSSAStat * stat</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00125">MemSSA.h:125</a></div></div>
97
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a964f3fe39ece9a7b8b2033428b75a274"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a964f3fe39ece9a7b8b2033428b75a274">SVF::MemSSA::getPHISet</a></div><div class="ttdeci">PHISet &amp; getPHISet(const BasicBlock *bb)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00410">MemSSA.h:410</a></div></div>
98
98
  <div class="ttc" id="classSVF_1_1MemSSA_html_a6bd57451370f5f4c92ce212be4cddd15"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a6bd57451370f5f4c92ce212be4cddd15">SVF::MemSSA::MemSSA</a></div><div class="ttdeci">MemSSA(BVDataPTAImpl *p, bool ptrOnlyMSSA)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00046">MemSSA.cpp:46</a></div></div>
99
- <div class="ttc" id="classSVF_1_1MemSSA_html_a190061a6f7423461f4292fc326330f23"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">SVF::MemSSA::bb2PhiSetMap</a></div><div class="ttdeci">BBToPhiSetMap bb2PhiSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00134">MemSSA.h:134</a></div></div>
100
- <div class="ttc" id="classSVF_1_1MemSSA_html_ac0797f2ee7b59ae720095a4836533671a9da5f4ad2a43befdbc4be319bffc80ea"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671a9da5f4ad2a43befdbc4be319bffc80ea">SVF::MemSSA::Distinct</a></div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00109">MemSSA.h:109</a></div></div>
99
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a190061a6f7423461f4292fc326330f23"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">SVF::MemSSA::bb2PhiSetMap</a></div><div class="ttdeci">BBToPhiSetMap bb2PhiSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00140">MemSSA.h:140</a></div></div>
100
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ac0797f2ee7b59ae720095a4836533671a9da5f4ad2a43befdbc4be319bffc80ea"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671a9da5f4ad2a43befdbc4be319bffc80ea">SVF::MemSSA::Distinct</a></div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00115">MemSSA.h:115</a></div></div>
101
101
  <div class="ttc" id="classSVF_1_1MSSAMU_html"><div class="ttname"><a href="classSVF_1_1MSSAMU.html">SVF::MSSAMU</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00095">MSSAMuChi.h:95</a></div></div>
102
- <div class="ttc" id="classSVF_1_1MemSSA_html_adb8009633b4e3b69609790fa068b3f42"><div class="ttname"><a href="classSVF_1_1MemSSA.html#adb8009633b4e3b69609790fa068b3f42">SVF::MemSSA::AddLoadMU</a></div><div class="ttdeci">void AddLoadMU(const BasicBlock *bb, const LoadStmt *load, const MRSet &amp;mrSet)</div><div class="ttdoc">Add methods for mus/chis/phis. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00183">MemSSA.h:183</a></div></div>
103
- <div class="ttc" id="classSVF_1_1MemSSA_html_a8f88acad31782bfa962e4349d8f4185d"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a8f88acad31782bfa962e4349d8f4185d">SVF::MemSSA::getCallSiteToChiSetMap</a></div><div class="ttdeci">CallSiteToCHISetMap &amp; getCallSiteToChiSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00432">MemSSA.h:432</a></div></div>
102
+ <div class="ttc" id="classSVF_1_1MemSSA_html_adb8009633b4e3b69609790fa068b3f42"><div class="ttname"><a href="classSVF_1_1MemSSA.html#adb8009633b4e3b69609790fa068b3f42">SVF::MemSSA::AddLoadMU</a></div><div class="ttdeci">void AddLoadMU(const BasicBlock *bb, const LoadStmt *load, const MRSet &amp;mrSet)</div><div class="ttdoc">Add methods for mus/chis/phis. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00189">MemSSA.h:189</a></div></div>
103
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a8f88acad31782bfa962e4349d8f4185d"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a8f88acad31782bfa962e4349d8f4185d">SVF::MemSSA::getCallSiteToChiSetMap</a></div><div class="ttdeci">CallSiteToCHISetMap &amp; getCallSiteToChiSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00438">MemSSA.h:438</a></div></div>
104
104
  <div class="ttc" id="classSVF_1_1MSSAPHI_html_a74f663dc5ecc659e98542a53414b7988"><div class="ttname"><a href="classSVF_1_1MSSAPHI.html#a74f663dc5ecc659e98542a53414b7988">SVF::MSSAPHI::setOpVer</a></div><div class="ttdeci">void setOpVer(const MRVer *v, u32_t pos)</div><div class="ttdoc">Set operand ver. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00651">MSSAMuChi.h:651</a></div></div>
105
- <div class="ttc" id="classSVF_1_1MemSSA_html_ac0797f2ee7b59ae720095a4836533671a549b5589ecfbe073623091605785fc03"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671a549b5589ecfbe073623091605785fc03">SVF::MemSSA::InterDisjoint</a></div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00111">MemSSA.h:111</a></div></div>
105
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ac0797f2ee7b59ae720095a4836533671a549b5589ecfbe073623091605785fc03"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671a549b5589ecfbe073623091605785fc03">SVF::MemSSA::InterDisjoint</a></div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00117">MemSSA.h:117</a></div></div>
106
106
  <div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00110">SVFBasicTypes.h:110</a></div></div>
107
- <div class="ttc" id="classSVF_1_1MemSSA_html_a2b4f3b19b32ac61dd1932faa82b93d8b"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a2b4f3b19b32ac61dd1932faa82b93d8b">SVF::MemSSA::MU</a></div><div class="ttdeci">MSSAMU&lt; Condition &gt; MU</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00053">MemSSA.h:53</a></div></div>
108
- <div class="ttc" id="classSVF_1_1MemSSA_html_a630be375832b1477989af85dce6760f3"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a630be375832b1477989af85dce6760f3">SVF::MemSSA::RenamePhiRes</a></div><div class="ttdeci">void RenamePhiRes(const PHISet &amp;phiSet, MRVector &amp;memRegs)</div><div class="ttdoc">Rename result (LHS) of phis. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00267">MemSSA.h:267</a></div></div>
109
- <div class="ttc" id="classSVF_1_1MemSSA_html_a3af850d2fe9b2e75b2705c6d1355eda2"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a3af850d2fe9b2e75b2705c6d1355eda2">SVF::MemSSA::AddMSSAPHI</a></div><div class="ttdeci">void AddMSSAPHI(const BasicBlock *bb, const MemRegion *mr)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00234">MemSSA.h:234</a></div></div>
110
- <div class="ttc" id="classSVF_1_1MemSSA_html_a4d4f7039c2972e671dc15b8c75abad14"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a4d4f7039c2972e671dc15b8c75abad14">SVF::MemSSA::BBToMRSetMap</a></div><div class="ttdeci">Map&lt; const BasicBlock *, MRSet &gt; BBToMRSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00088">MemSSA.h:88</a></div></div>
111
- <div class="ttc" id="classSVF_1_1MemSSA_html_a6bd9390c6cd2a3d7a3752fba76acfb46"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a6bd9390c6cd2a3d7a3752fba76acfb46">SVF::MemSSA::hasMU</a></div><div class="ttdeci">bool hasMU(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00355">MemSSA.h:355</a></div></div>
107
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a2b4f3b19b32ac61dd1932faa82b93d8b"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a2b4f3b19b32ac61dd1932faa82b93d8b">SVF::MemSSA::MU</a></div><div class="ttdeci">MSSAMU&lt; Condition &gt; MU</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00059">MemSSA.h:59</a></div></div>
108
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a630be375832b1477989af85dce6760f3"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a630be375832b1477989af85dce6760f3">SVF::MemSSA::RenamePhiRes</a></div><div class="ttdeci">void RenamePhiRes(const PHISet &amp;phiSet, MRVector &amp;memRegs)</div><div class="ttdoc">Rename result (LHS) of phis. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00273">MemSSA.h:273</a></div></div>
109
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a3af850d2fe9b2e75b2705c6d1355eda2"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a3af850d2fe9b2e75b2705c6d1355eda2">SVF::MemSSA::AddMSSAPHI</a></div><div class="ttdeci">void AddMSSAPHI(const BasicBlock *bb, const MemRegion *mr)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00240">MemSSA.h:240</a></div></div>
110
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a4d4f7039c2972e671dc15b8c75abad14"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a4d4f7039c2972e671dc15b8c75abad14">SVF::MemSSA::BBToMRSetMap</a></div><div class="ttdeci">Map&lt; const BasicBlock *, MRSet &gt; BBToMRSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00094">MemSSA.h:94</a></div></div>
111
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a6bd9390c6cd2a3d7a3752fba76acfb46"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a6bd9390c6cd2a3d7a3752fba76acfb46">SVF::MemSSA::hasMU</a></div><div class="ttdeci">bool hasMU(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00361">MemSSA.h:361</a></div></div>
112
112
  <div class="ttc" id="namespaceSVF_html_ab44d20f806be99699895260b14a942d7"><div class="ttname"><a href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">SVF::DominanceFrontier</a></div><div class="ttdeci">llvm::DominanceFrontier DominanceFrontier</div><div class="ttdoc">LLVM Dominators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00107">BasicTypes.h:107</a></div></div>
113
- <div class="ttc" id="classSVF_1_1MemSSA_html_ac34aa1ac96600bfc27b3c2eb0b1510ca"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ac34aa1ac96600bfc27b3c2eb0b1510ca">SVF::MemSSA::FunToEntryChiSetMap</a></div><div class="ttdeci">Map&lt; const SVFFunction *, CHISet &gt; FunToEntryChiSetMap</div><div class="ttdoc">Map from fun to its entry chi set and return mu set. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00082">MemSSA.h:82</a></div></div>
113
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ac34aa1ac96600bfc27b3c2eb0b1510ca"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ac34aa1ac96600bfc27b3c2eb0b1510ca">SVF::MemSSA::FunToEntryChiSetMap</a></div><div class="ttdeci">Map&lt; const SVFFunction *, CHISet &gt; FunToEntryChiSetMap</div><div class="ttdoc">Map from fun to its entry chi set and return mu set. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00088">MemSSA.h:88</a></div></div>
114
114
  <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#l00085">SVFBasicTypes.h:85</a></div></div>
115
- <div class="ttc" id="classSVF_1_1MemSSA_html_a468e1481926df6865678b7232bb79bf3"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">SVF::MemSSA::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00115">MemSSA.h:115</a></div></div>
115
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a468e1481926df6865678b7232bb79bf3"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">SVF::MemSSA::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00121">MemSSA.h:121</a></div></div>
116
116
  <div class="ttc" id="classSVF_1_1MSSADEF_html"><div class="ttname"><a href="classSVF_1_1MSSADEF.html">SVF::MSSADEF</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00325">MSSAMuChi.h:325</a></div></div>
117
- <div class="ttc" id="classSVF_1_1MemSSA_html_ae1aca020147c270deca2a1241e3847d0"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ae1aca020147c270deca2a1241e3847d0">SVF::MemSSA::MemRegToCounterMap</a></div><div class="ttdeci">Map&lt; const MemRegion *, MRVERSION &gt; MemRegToCounterMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00094">MemSSA.h:94</a></div></div>
118
- <div class="ttc" id="classSVF_1_1MemSSA_html_a5cf94edea3a5c35b3c1d9c6ae4b5f9d6"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">SVF::MemSSA::load2MuSetMap</a></div><div class="ttdeci">LoadToMUSetMap load2MuSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00130">MemSSA.h:130</a></div></div>
119
- <div class="ttc" id="classSVF_1_1MemSSA_html_a4717016109fd3bc80f3095d11afff5b1"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a4717016109fd3bc80f3095d11afff5b1">SVF::MemSSA::LOADMU</a></div><div class="ttdeci">LoadMU&lt; Condition &gt; LOADMU</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00055">MemSSA.h:55</a></div></div>
120
- <div class="ttc" id="classSVF_1_1MemSSA_html_af9cf084e3070456d8cca491e1391b0c4"><div class="ttname"><a href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4">SVF::MemSSA::CHISet</a></div><div class="ttdeci">Set&lt; CHI * &gt; CHISet</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00065">MemSSA.h:65</a></div></div>
117
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ae1aca020147c270deca2a1241e3847d0"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ae1aca020147c270deca2a1241e3847d0">SVF::MemSSA::MemRegToCounterMap</a></div><div class="ttdeci">Map&lt; const MemRegion *, MRVERSION &gt; MemRegToCounterMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00100">MemSSA.h:100</a></div></div>
118
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a5cf94edea3a5c35b3c1d9c6ae4b5f9d6"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">SVF::MemSSA::load2MuSetMap</a></div><div class="ttdeci">LoadToMUSetMap load2MuSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00136">MemSSA.h:136</a></div></div>
119
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a4717016109fd3bc80f3095d11afff5b1"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a4717016109fd3bc80f3095d11afff5b1">SVF::MemSSA::LOADMU</a></div><div class="ttdeci">LoadMU&lt; Condition &gt; LOADMU</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00061">MemSSA.h:61</a></div></div>
120
+ <div class="ttc" id="classSVF_1_1MemSSA_html_af9cf084e3070456d8cca491e1391b0c4"><div class="ttname"><a href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4">SVF::MemSSA::CHISet</a></div><div class="ttdeci">Set&lt; CHI * &gt; CHISet</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00071">MemSSA.h:71</a></div></div>
121
121
  <div class="ttc" id="classSVF_1_1RetMU_html"><div class="ttname"><a href="classSVF_1_1RetMU.html">SVF::RetMU</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00277">MSSAMuChi.h:277</a></div></div>
122
- <div class="ttc" id="classSVF_1_1MemSSA_html_ad550a453d5b2daa6c72e7752f6b5ea79"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ad550a453d5b2daa6c72e7752f6b5ea79">SVF::MemSSA::getTopStackVer</a></div><div class="ttdeci">MRVer * getTopStackVer(const MemRegion *mr)</div><div class="ttdoc">Get the last version of the SSA ver of memory region. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00160">MemSSA.h:160</a></div></div>
123
- <div class="ttc" id="classSVF_1_1MemSSA_html_a22e2dd0fc78877bdedd207a40540a634"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a22e2dd0fc78877bdedd207a40540a634">SVF::MemSSA::mr2CounterMap</a></div><div class="ttdeci">MemRegToCounterMap mr2CounterMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00140">MemSSA.h:140</a></div></div>
124
- <div class="ttc" id="classSVF_1_1MemSSA_html_ab2dfdcf6fb50ba6cacad1254350a5b09"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ab2dfdcf6fb50ba6cacad1254350a5b09">SVF::MemSSA::getMRGenerator</a></div><div class="ttdeci">MRGenerator * getMRGenerator()</div><div class="ttdoc">Return MRGenerator. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00320">MemSSA.h:320</a></div></div>
122
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ad550a453d5b2daa6c72e7752f6b5ea79"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ad550a453d5b2daa6c72e7752f6b5ea79">SVF::MemSSA::getTopStackVer</a></div><div class="ttdeci">MRVer * getTopStackVer(const MemRegion *mr)</div><div class="ttdoc">Get the last version of the SSA ver of memory region. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00166">MemSSA.h:166</a></div></div>
123
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a22e2dd0fc78877bdedd207a40540a634"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a22e2dd0fc78877bdedd207a40540a634">SVF::MemSSA::mr2CounterMap</a></div><div class="ttdeci">MemRegToCounterMap mr2CounterMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00146">MemSSA.h:146</a></div></div>
124
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ab2dfdcf6fb50ba6cacad1254350a5b09"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ab2dfdcf6fb50ba6cacad1254350a5b09">SVF::MemSSA::getMRGenerator</a></div><div class="ttdeci">MRGenerator * getMRGenerator()</div><div class="ttdoc">Return MRGenerator. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00326">MemSSA.h:326</a></div></div>
125
125
  <div class="ttc" id="classSVF_1_1MemSSA_html_a41b153f2f8f3a27be63750e73a290569"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a41b153f2f8f3a27be63750e73a290569">SVF::MemSSA::getPAG</a></div><div class="ttdeci">SVFIR * getPAG()</div><div class="ttdoc">Return SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00071">MemSSA.cpp:71</a></div></div>
126
- <div class="ttc" id="classSVF_1_1MemSSA_html_af4d11a0c7da0ddd7dff8d75a00279847"><div class="ttname"><a href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">SVF::MemSSA::getMUSet</a></div><div class="ttdeci">MUSet &amp; getMUSet(const LoadStmt *ld)</div><div class="ttdoc">Get methods of mu/chi/phi. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00388">MemSSA.h:388</a></div></div>
126
+ <div class="ttc" id="classSVF_1_1MemSSA_html_af4d11a0c7da0ddd7dff8d75a00279847"><div class="ttname"><a href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">SVF::MemSSA::getMUSet</a></div><div class="ttdeci">MUSet &amp; getMUSet(const LoadStmt *ld)</div><div class="ttdoc">Get methods of mu/chi/phi. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00394">MemSSA.h:394</a></div></div>
127
127
  <div class="ttc" id="classSVF_1_1MemSSA_html_a381a35d48ce2f8e348ddbbb9ce526ca8"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a381a35d48ce2f8e348ddbbb9ce526ca8">SVF::MemSSA::newSSAName</a></div><div class="ttdeci">MRVer * newSSAName(const MemRegion *mr, MSSADEF *def)</div><div class="ttdoc">Get a new SSA name of a memory region. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00365">MemSSA.cpp:365</a></div></div>
128
128
  <div class="ttc" id="classSVF_1_1MemSSA_html_ae56d1878046c119d1857727ca3609d74"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ae56d1878046c119d1857727ca3609d74">SVF::MemSSA::buildMemSSA</a></div><div class="ttdeci">virtual void buildMemSSA(const SVFFunction &amp;fun, DominanceFrontier *, DominatorTree *)</div><div class="ttdoc">We start from here. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00090">MemSSA.cpp:90</a></div></div>
129
129
  <div class="ttc" id="classSVF_1_1MSSADEF_html_ab3070e4293ceb5ca9c25702f76ac427c"><div class="ttname"><a href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c">SVF::MSSADEF::getMR</a></div><div class="ttdeci">const MemRegion * getMR() const</div><div class="ttdoc">Return memory region. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00354">MSSAMuChi.h:354</a></div></div>
130
130
  <div class="ttc" id="classSVF_1_1MemSSA_html_a11e1e9a74a6764131fc8aae27d8bde5e"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a11e1e9a74a6764131fc8aae27d8bde5e">SVF::MemSSA::setCurrentDFDT</a></div><div class="ttdeci">void setCurrentDFDT(DominanceFrontier *f, DominatorTree *t)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00079">MemSSA.cpp:79</a></div></div>
131
- <div class="ttc" id="classSVF_1_1MemSSA_html_a73d7465cf166d9ffa9d234d15edb375a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">SVF::MemSSA::store2ChiSetMap</a></div><div class="ttdeci">StoreToChiSetMap store2ChiSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00131">MemSSA.h:131</a></div></div>
132
- <div class="ttc" id="classSVF_1_1MemSSA_html_a6066364112e665c33cbf2ec50ae1e3a8"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a6066364112e665c33cbf2ec50ae1e3a8">SVF::MemSSA::RenameChiSet</a></div><div class="ttdeci">void RenameChiSet(const CHISet &amp;chiSet, MRVector &amp;memRegs)</div><div class="ttdoc">Rename chi set. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00254">MemSSA.h:254</a></div></div>
133
- <div class="ttc" id="classSVF_1_1MemSSA_html_ac0797f2ee7b59ae720095a4836533671ac9388cc44f91bd9a00666c0d69b32ef1"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671ac9388cc44f91bd9a00666c0d69b32ef1">SVF::MemSSA::IntraDisjoint</a></div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00110">MemSSA.h:110</a></div></div>
131
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a73d7465cf166d9ffa9d234d15edb375a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">SVF::MemSSA::store2ChiSetMap</a></div><div class="ttdeci">StoreToChiSetMap store2ChiSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00137">MemSSA.h:137</a></div></div>
132
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a6066364112e665c33cbf2ec50ae1e3a8"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a6066364112e665c33cbf2ec50ae1e3a8">SVF::MemSSA::RenameChiSet</a></div><div class="ttdeci">void RenameChiSet(const CHISet &amp;chiSet, MRVector &amp;memRegs)</div><div class="ttdoc">Rename chi set. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00260">MemSSA.h:260</a></div></div>
133
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ac0797f2ee7b59ae720095a4836533671ac9388cc44f91bd9a00666c0d69b32ef1"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671ac9388cc44f91bd9a00666c0d69b32ef1">SVF::MemSSA::IntraDisjoint</a></div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00116">MemSSA.h:116</a></div></div>
134
134
  <div class="ttc" id="classSVF_1_1LoadMU_html"><div class="ttname"><a href="classSVF_1_1LoadMU.html">SVF::LoadMU</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00165">MSSAMuChi.h:165</a></div></div>
135
- <div class="ttc" id="classSVF_1_1MemSSA_html_ae64f97a984765a43f05df26b57a43a43"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ae64f97a984765a43f05df26b57a43a43">SVF::MemSSA::varKills</a></div><div class="ttdeci">MRSet varKills</div><div class="ttdoc">Collect memory regions whose definition killed. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00150">MemSSA.h:150</a></div></div>
136
- <div class="ttc" id="classSVF_1_1MemSSA_html_a6a20da24d82ace1888be49a2ae0f6bd5"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a6a20da24d82ace1888be49a2ae0f6bd5">SVF::MemSSA::ENTRYCHI</a></div><div class="ttdeci">EntryCHI&lt; Condition &gt; ENTRYCHI</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00058">MemSSA.h:58</a></div></div>
137
- <div class="ttc" id="classSVF_1_1MemSSA_html_a8d0c1a00d7db194da66c685d79e73de5"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a8d0c1a00d7db194da66c685d79e73de5">SVF::MemSSA::MemRegToBBsMap</a></div><div class="ttdeci">Map&lt; const MemRegion *, BBList &gt; MemRegToBBsMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00089">MemSSA.h:89</a></div></div>
138
- <div class="ttc" id="classSVF_1_1MemSSA_html_a97166aa7102816a16734d7e2f1c130b0"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a97166aa7102816a16734d7e2f1c130b0">SVF::MemSSA::getStoreToChiSetMap</a></div><div class="ttdeci">StoreToChiSetMap &amp; getStoreToChiSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00416">MemSSA.h:416</a></div></div>
139
- <div class="ttc" id="classSVF_1_1MemSSA_html"><div class="ttname"><a href="classSVF_1_1MemSSA.html">SVF::MemSSA</a></div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00046">MemSSA.h:46</a></div></div>
135
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ae64f97a984765a43f05df26b57a43a43"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ae64f97a984765a43f05df26b57a43a43">SVF::MemSSA::varKills</a></div><div class="ttdeci">MRSet varKills</div><div class="ttdoc">Collect memory regions whose definition killed. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00156">MemSSA.h:156</a></div></div>
136
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a6a20da24d82ace1888be49a2ae0f6bd5"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a6a20da24d82ace1888be49a2ae0f6bd5">SVF::MemSSA::ENTRYCHI</a></div><div class="ttdeci">EntryCHI&lt; Condition &gt; ENTRYCHI</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00064">MemSSA.h:64</a></div></div>
137
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a8d0c1a00d7db194da66c685d79e73de5"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a8d0c1a00d7db194da66c685d79e73de5">SVF::MemSSA::MemRegToBBsMap</a></div><div class="ttdeci">Map&lt; const MemRegion *, BBList &gt; MemRegToBBsMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00095">MemSSA.h:95</a></div></div>
138
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a97166aa7102816a16734d7e2f1c130b0"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a97166aa7102816a16734d7e2f1c130b0">SVF::MemSSA::getStoreToChiSetMap</a></div><div class="ttdeci">StoreToChiSetMap &amp; getStoreToChiSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00422">MemSSA.h:422</a></div></div>
139
+ <div class="ttc" id="classSVF_1_1MemSSA_html"><div class="ttname"><a href="classSVF_1_1MemSSA.html">SVF::MemSSA</a></div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00052">MemSSA.h:52</a></div></div>
140
140
  <div class="ttc" id="MSSAMuChi_8h_html"><div class="ttname"><a href="MSSAMuChi_8h.html">MSSAMuChi.h</a></div></div>
141
141
  <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00105">SVFBasicTypes.h:105</a></div></div>
142
142
  <div class="ttc" id="classSVF_1_1MemSSA_html_a89c40c8fad70f3aead6531261e5a3cc3"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a89c40c8fad70f3aead6531261e5a3cc3">SVF::MemSSA::performStat</a></div><div class="ttdeci">void performStat()</div><div class="ttdoc">Perform statistics. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00465">MemSSA.cpp:465</a></div></div>
143
- <div class="ttc" id="classSVF_1_1MemRegion_html_a7ed54700c976f9738012bc051b7f41f5"><div class="ttname"><a href="classSVF_1_1MemRegion.html#a7ed54700c976f9738012bc051b7f41f5">SVF::MemRegion::Condition</a></div><div class="ttdeci">bool Condition</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00055">MemRegion.h:55</a></div></div>
144
- <div class="ttc" id="classSVF_1_1MemSSA_html_a81bba824495a882b49e687683954b112"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">SVF::MemSSA::MUSet</a></div><div class="ttdeci">Set&lt; MU * &gt; MUSet</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00064">MemSSA.h:64</a></div></div>
145
- <div class="ttc" id="classSVF_1_1MemSSA_html_a953a56a65ee36fd1c78b29179cd3f33a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a953a56a65ee36fd1c78b29179cd3f33a">SVF::MemSSA::RETMU</a></div><div class="ttdeci">RetMU&lt; Condition &gt; RETMU</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00054">MemSSA.h:54</a></div></div>
146
- <div class="ttc" id="classSVF_1_1MemSSA_html_a66e693af7b37e4e58b4834898d6a34fa"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a66e693af7b37e4e58b4834898d6a34fa">SVF::MemSSA::BBList</a></div><div class="ttdeci">std::vector&lt; const BasicBlock * &gt; BBList</div><div class="ttdoc">For phi insertion. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00087">MemSSA.h:87</a></div></div>
147
- <div class="ttc" id="classSVF_1_1MemSSA_html_ac0c8f70b6283e26e70dafe02fcb5180a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ac0c8f70b6283e26e70dafe02fcb5180a">SVF::MemSSA::Condition</a></div><div class="ttdeci">MemRegion::Condition Condition</div><div class="ttdoc">define condition here changes needed if we add new type </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00052">MemSSA.h:52</a></div></div>
143
+ <div class="ttc" id="classSVF_1_1MemRegion_html_a7ed54700c976f9738012bc051b7f41f5"><div class="ttname"><a href="classSVF_1_1MemRegion.html#a7ed54700c976f9738012bc051b7f41f5">SVF::MemRegion::Condition</a></div><div class="ttdeci">bool Condition</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00059">MemRegion.h:59</a></div></div>
144
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a81bba824495a882b49e687683954b112"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">SVF::MemSSA::MUSet</a></div><div class="ttdeci">Set&lt; MU * &gt; MUSet</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00070">MemSSA.h:70</a></div></div>
145
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a953a56a65ee36fd1c78b29179cd3f33a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a953a56a65ee36fd1c78b29179cd3f33a">SVF::MemSSA::RETMU</a></div><div class="ttdeci">RetMU&lt; Condition &gt; RETMU</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00060">MemSSA.h:60</a></div></div>
146
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a66e693af7b37e4e58b4834898d6a34fa"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a66e693af7b37e4e58b4834898d6a34fa">SVF::MemSSA::BBList</a></div><div class="ttdeci">std::vector&lt; const BasicBlock * &gt; BBList</div><div class="ttdoc">For phi insertion. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00093">MemSSA.h:93</a></div></div>
147
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ac0c8f70b6283e26e70dafe02fcb5180a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ac0c8f70b6283e26e70dafe02fcb5180a">SVF::MemSSA::Condition</a></div><div class="ttdeci">MemRegion::Condition Condition</div><div class="ttdoc">define condition here changes needed if we add new type </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00058">MemSSA.h:58</a></div></div>
148
148
  <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#l00378">SVFStatements.h:378</a></div></div>
149
149
  <div class="ttc" id="classSVF_1_1MSSADEF_html_a343eb4c9515dfbbbdadaacf5500e5f05"><div class="ttname"><a href="classSVF_1_1MSSADEF.html#a343eb4c9515dfbbbdadaacf5500e5f05">SVF::MSSADEF::setResVer</a></div><div class="ttdeci">void setResVer(MRVer *v)</div><div class="ttdoc">Set result operand ver. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00366">MSSAMuChi.h:366</a></div></div>
150
- <div class="ttc" id="classSVF_1_1MemSSA_html_aec75259d035e3b5589e6fcbbcdfe4b2c"><div class="ttname"><a href="classSVF_1_1MemSSA.html#aec75259d035e3b5589e6fcbbcdfe4b2c">SVF::MemSSA::hasFuncEntryChi</a></div><div class="ttdeci">bool hasFuncEntryChi(const SVFFunction *fun) const</div><div class="ttdoc">Has function entry chi or return mu. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00367">MemSSA.h:367</a></div></div>
150
+ <div class="ttc" id="classSVF_1_1MemSSA_html_aec75259d035e3b5589e6fcbbcdfe4b2c"><div class="ttname"><a href="classSVF_1_1MemSSA.html#aec75259d035e3b5589e6fcbbcdfe4b2c">SVF::MemSSA::hasFuncEntryChi</a></div><div class="ttdeci">bool hasFuncEntryChi(const SVFFunction *fun) const</div><div class="ttdoc">Has function entry chi or return mu. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00373">MemSSA.h:373</a></div></div>
151
151
  <div class="ttc" id="classSVF_1_1MSSAMU_html_a6bd671839ec0376439ccd81d5b2eff30"><div class="ttname"><a href="classSVF_1_1MSSAMU.html#a6bd671839ec0376439ccd81d5b2eff30">SVF::MSSAMU::getMR</a></div><div class="ttdeci">const MemRegion * getMR() const</div><div class="ttdoc">Return MR. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00121">MSSAMuChi.h:121</a></div></div>
152
- <div class="ttc" id="classSVF_1_1MemSSA_html_af5e356e82c3f93b65bd89908e0f465dc"><div class="ttname"><a href="classSVF_1_1MemSSA.html#af5e356e82c3f93b65bd89908e0f465dc">SVF::MemSSA::hasMU</a></div><div class="ttdeci">bool hasMU(const PAGEdge *inst) const</div><div class="ttdoc">Has mu/chi methods. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00332">MemSSA.h:332</a></div></div>
153
- <div class="ttc" id="classSVF_1_1MemSSA_html_ae16120dfc9436861f719e605617f353d"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ae16120dfc9436861f719e605617f353d">SVF::MemSSA::hasCHI</a></div><div class="ttdeci">bool hasCHI(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00359">MemSSA.h:359</a></div></div>
154
- <div class="ttc" id="classSVF_1_1MemSSA_html_a4d2418b7df74f23d8fd328f66e29f198"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a4d2418b7df74f23d8fd328f66e29f198">SVF::MemSSA::timeOfCreateMUCHI</a></div><div class="ttdeci">static double timeOfCreateMUCHI</div><div class="ttdoc">Time for generating mu/chi for load/store/calls. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00102">MemSSA.h:102</a></div></div>
152
+ <div class="ttc" id="classSVF_1_1MemSSA_html_af5e356e82c3f93b65bd89908e0f465dc"><div class="ttname"><a href="classSVF_1_1MemSSA.html#af5e356e82c3f93b65bd89908e0f465dc">SVF::MemSSA::hasMU</a></div><div class="ttdeci">bool hasMU(const PAGEdge *inst) const</div><div class="ttdoc">Has mu/chi methods. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00338">MemSSA.h:338</a></div></div>
153
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ae16120dfc9436861f719e605617f353d"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ae16120dfc9436861f719e605617f353d">SVF::MemSSA::hasCHI</a></div><div class="ttdeci">bool hasCHI(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00365">MemSSA.h:365</a></div></div>
154
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a4d2418b7df74f23d8fd328f66e29f198"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a4d2418b7df74f23d8fd328f66e29f198">SVF::MemSSA::timeOfCreateMUCHI</a></div><div class="ttdeci">static double timeOfCreateMUCHI</div><div class="ttdoc">Time for generating mu/chi for load/store/calls. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00108">MemSSA.h:108</a></div></div>
155
155
  <div class="ttc" id="classSVF_1_1MemSSA_html_a15272a4ed019d1c323d1826c1bedb70f"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a15272a4ed019d1c323d1826c1bedb70f">SVF::MemSSA::getFunEntryChiNum</a></div><div class="ttdeci">u32_t getFunEntryChiNum() const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00508">MemSSA.cpp:508</a></div></div>
156
- <div class="ttc" id="classSVF_1_1MemSSA_html_a7c3fda6f082231350524c2d7c16f067e"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a7c3fda6f082231350524c2d7c16f067e">SVF::MemSSA::MRVector</a></div><div class="ttdeci">std::vector&lt; const MemRegion * &gt; MRVector</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00070">MemSSA.h:70</a></div></div>
156
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a7c3fda6f082231350524c2d7c16f067e"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a7c3fda6f082231350524c2d7c16f067e">SVF::MemSSA::MRVector</a></div><div class="ttdeci">std::vector&lt; const MemRegion * &gt; MRVector</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00076">MemSSA.h:76</a></div></div>
157
157
  <div class="ttc" id="classSVF_1_1MemSSA_html_a271c20725d49dd65b95c062938ffde4c"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a271c20725d49dd65b95c062938ffde4c">SVF::MemSSA::SSARenameBB</a></div><div class="ttdeci">virtual void SSARenameBB(const BasicBlock &amp;bb)</div><div class="ttdoc">SSA rename for a basic block. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00276">MemSSA.cpp:276</a></div></div>
158
- <div class="ttc" id="classSVF_1_1MemSSA_html_aba54e534d18f68fbb97b26befd06ba1a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">SVF::MemSSA::callsiteToMuSetMap</a></div><div class="ttdeci">CallSiteToMUSetMap callsiteToMuSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00132">MemSSA.h:132</a></div></div>
158
+ <div class="ttc" id="classSVF_1_1MemSSA_html_aba54e534d18f68fbb97b26befd06ba1a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">SVF::MemSSA::callsiteToMuSetMap</a></div><div class="ttdeci">CallSiteToMUSetMap callsiteToMuSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00138">MemSSA.h:138</a></div></div>
159
159
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
160
160
  <div class="ttc" id="namespaceSVF_html_aecbb42b8e9d17fa0189c50dda9fd5fdd"><div class="ttname"><a href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">SVF::DominatorTree</a></div><div class="ttdeci">llvm::DominatorTree DominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00108">BasicTypes.h:108</a></div></div>
161
161
  <div class="ttc" id="classSVF_1_1MemSSA_html_a9bb6512999cbf9c7c03153be77c8af20"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a9bb6512999cbf9c7c03153be77c8af20">SVF::MemSSA::getBBPhiNum</a></div><div class="ttdeci">u32_t getBBPhiNum() const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00576">MemSSA.cpp:576</a></div></div>
162
- <div class="ttc" id="classSVF_1_1MRGenerator_html"><div class="ttname"><a href="classSVF_1_1MRGenerator.html">SVF::MRGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00127">MemRegion.h:127</a></div></div>
163
- <div class="ttc" id="classSVF_1_1MemSSA_html_a8e948ea7778158107657fdd8195530e1"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a8e948ea7778158107657fdd8195530e1">SVF::MemSSA::PHI</a></div><div class="ttdeci">MSSAPHI&lt; Condition &gt; PHI</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00061">MemSSA.h:61</a></div></div>
162
+ <div class="ttc" id="classSVF_1_1MRGenerator_html"><div class="ttname"><a href="classSVF_1_1MRGenerator.html">SVF::MRGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00131">MemRegion.h:131</a></div></div>
163
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a8e948ea7778158107657fdd8195530e1"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a8e948ea7778158107657fdd8195530e1">SVF::MemSSA::PHI</a></div><div class="ttdeci">MSSAPHI&lt; Condition &gt; PHI</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00067">MemSSA.h:67</a></div></div>
164
164
  <div class="ttc" id="classSVF_1_1MemSSA_html_a2c65795ca63a53c833f5ac17a752b6dc"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a2c65795ca63a53c833f5ac17a752b6dc">SVF::MemSSA::getCallSiteChiNum</a></div><div class="ttdeci">u32_t getCallSiteChiNum() const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00559">MemSSA.cpp:559</a></div></div>
165
- <div class="ttc" id="classSVF_1_1MemSSA_html_add1d4ff17d0860906d2f5f7172176121"><div class="ttname"><a href="classSVF_1_1MemSSA.html#add1d4ff17d0860906d2f5f7172176121">SVF::MemSSA::reg2BBMap</a></div><div class="ttdeci">MemRegToBBsMap reg2BBMap</div><div class="ttdoc">Maps memory region to its basic block. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00148">MemSSA.h:148</a></div></div>
166
- <div class="ttc" id="classSVF_1_1MemSSA_html_a3400d9a921672b3872656acecc3eac9f"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a3400d9a921672b3872656acecc3eac9f">SVF::MemSSA::hasReturnMu</a></div><div class="ttdeci">bool hasReturnMu(const SVFFunction *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00371">MemSSA.h:371</a></div></div>
165
+ <div class="ttc" id="classSVF_1_1MemSSA_html_add1d4ff17d0860906d2f5f7172176121"><div class="ttname"><a href="classSVF_1_1MemSSA.html#add1d4ff17d0860906d2f5f7172176121">SVF::MemSSA::reg2BBMap</a></div><div class="ttdeci">MemRegToBBsMap reg2BBMap</div><div class="ttdoc">Maps memory region to its basic block. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00154">MemSSA.h:154</a></div></div>
166
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a3400d9a921672b3872656acecc3eac9f"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a3400d9a921672b3872656acecc3eac9f">SVF::MemSSA::hasReturnMu</a></div><div class="ttdeci">bool hasReturnMu(const SVFFunction *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00377">MemSSA.h:377</a></div></div>
167
167
  <div class="ttc" id="classSVF_1_1EntryCHI_html"><div class="ttname"><a href="classSVF_1_1EntryCHI.html">SVF::EntryCHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00578">MSSAMuChi.h:578</a></div></div>
168
168
  <div class="ttc" id="classSVF_1_1MemSSA_html_a9e8c5b85957485635d0f72c2f48bb8b5"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a9e8c5b85957485635d0f72c2f48bb8b5">SVF::MemSSA::getCallSiteMuNum</a></div><div class="ttdeci">u32_t getCallSiteMuNum() const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00542">MemSSA.cpp:542</a></div></div>
169
- <div class="ttc" id="classSVF_1_1MemSSA_html_a70dd35ef458c452330dfebcdde17b84c"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a70dd35ef458c452330dfebcdde17b84c">SVF::MemSSA::getLoadToMUSetMap</a></div><div class="ttdeci">LoadToMUSetMap &amp; getLoadToMUSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00412">MemSSA.h:412</a></div></div>
170
- <div class="ttc" id="classSVF_1_1MemSSA_html_a43b118f1b16a032fd1f27f8258c748ab"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a43b118f1b16a032fd1f27f8258c748ab">SVF::MemSSA::CallSiteToCHISetMap</a></div><div class="ttdeci">Map&lt; const CallICFGNode *, CHISet &gt; CallSiteToCHISetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00077">MemSSA.h:77</a></div></div>
171
- <div class="ttc" id="classSVF_1_1MemSSA_html_a966477062a453901da3631015fcf737d"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a966477062a453901da3631015fcf737d">SVF::MemSSA::getBBToPhiSetMap</a></div><div class="ttdeci">BBToPhiSetMap &amp; getBBToPhiSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00436">MemSSA.h:436</a></div></div>
172
- <div class="ttc" id="classSVF_1_1MemSSA_html_afeef58baed23fc731e33a07a0ef05f6a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#afeef58baed23fc731e33a07a0ef05f6a">SVF::MemSSA::BBToPhiSetMap</a></div><div class="ttdeci">OrderedMap&lt; const BasicBlock *, PHISet &gt; BBToPhiSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00078">MemSSA.h:78</a></div></div>
169
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a70dd35ef458c452330dfebcdde17b84c"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a70dd35ef458c452330dfebcdde17b84c">SVF::MemSSA::getLoadToMUSetMap</a></div><div class="ttdeci">LoadToMUSetMap &amp; getLoadToMUSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00418">MemSSA.h:418</a></div></div>
170
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a43b118f1b16a032fd1f27f8258c748ab"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a43b118f1b16a032fd1f27f8258c748ab">SVF::MemSSA::CallSiteToCHISetMap</a></div><div class="ttdeci">Map&lt; const CallICFGNode *, CHISet &gt; CallSiteToCHISetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00083">MemSSA.h:83</a></div></div>
171
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a966477062a453901da3631015fcf737d"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a966477062a453901da3631015fcf737d">SVF::MemSSA::getBBToPhiSetMap</a></div><div class="ttdeci">BBToPhiSetMap &amp; getBBToPhiSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00442">MemSSA.h:442</a></div></div>
172
+ <div class="ttc" id="classSVF_1_1MemSSA_html_afeef58baed23fc731e33a07a0ef05f6a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#afeef58baed23fc731e33a07a0ef05f6a">SVF::MemSSA::BBToPhiSetMap</a></div><div class="ttdeci">OrderedMap&lt; const BasicBlock *, PHISet &gt; BBToPhiSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00084">MemSSA.h:84</a></div></div>
173
173
  <div class="ttc" id="classSVF_1_1MemSSA_html_aa8c45b455e6fc60cab955534c3e50bfa"><div class="ttname"><a href="classSVF_1_1MemSSA.html#aa8c45b455e6fc60cab955534c3e50bfa">SVF::MemSSA::getStoreChiNum</a></div><div class="ttdeci">u32_t getStoreChiNum() const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00491">MemSSA.cpp:491</a></div></div>
174
- <div class="ttc" id="classSVF_1_1MemSSA_html_a97ccd5e0b9ab6144415e26bdf95cbabd"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a97ccd5e0b9ab6144415e26bdf95cbabd">SVF::MemSSA::timeOfSSARenaming</a></div><div class="ttdeci">static double timeOfSSARenaming</div><div class="ttdoc">Time for SSA rename. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00104">MemSSA.h:104</a></div></div>
175
- <div class="ttc" id="classSVF_1_1MemSSA_html_a2527b76b92dffa8f8513ebfdcc8d8133"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a2527b76b92dffa8f8513ebfdcc8d8133">SVF::MemSSA::RenameMuSet</a></div><div class="ttdeci">void RenameMuSet(const MUSet &amp;muSet)</div><div class="ttdoc">Rename mus, chis and phis. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00243">MemSSA.h:243</a></div></div>
174
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a97ccd5e0b9ab6144415e26bdf95cbabd"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a97ccd5e0b9ab6144415e26bdf95cbabd">SVF::MemSSA::timeOfSSARenaming</a></div><div class="ttdeci">static double timeOfSSARenaming</div><div class="ttdoc">Time for SSA rename. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00110">MemSSA.h:110</a></div></div>
175
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a2527b76b92dffa8f8513ebfdcc8d8133"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a2527b76b92dffa8f8513ebfdcc8d8133">SVF::MemSSA::RenameMuSet</a></div><div class="ttdeci">void RenameMuSet(const MUSet &amp;muSet)</div><div class="ttdoc">Rename mus, chis and phis. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00249">MemSSA.h:249</a></div></div>
176
176
  <div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
177
- <div class="ttc" id="classSVF_1_1MemSSA_html_a213ebe634bbdbe33460ccd941c1dc6a5"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">SVF::MemSSA::mrGen</a></div><div class="ttdeci">MRGenerator * mrGen</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00116">MemSSA.h:116</a></div></div>
177
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a213ebe634bbdbe33460ccd941c1dc6a5"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">SVF::MemSSA::mrGen</a></div><div class="ttdeci">MRGenerator * mrGen</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00122">MemSSA.h:122</a></div></div>
178
178
  <div class="ttc" id="classSVF_1_1MemSSA_html_a695adf83e8c40b9628b1866053f68033"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a695adf83e8c40b9628b1866053f68033">SVF::MemSSA::createMUCHI</a></div><div class="ttdeci">virtual void createMUCHI(const SVFFunction &amp;fun)</div><div class="ttdoc">Create mu chi for candidate regions in a function. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00124">MemSSA.cpp:124</a></div></div>
179
- <div class="ttc" id="classSVF_1_1MemSSA_html_af1a7b3ca0144ebff3747715e89646fbb"><div class="ttname"><a href="classSVF_1_1MemSSA.html#af1a7b3ca0144ebff3747715e89646fbb">SVF::MemSSA::getMUSet</a></div><div class="ttdeci">MUSet &amp; getMUSet(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00396">MemSSA.h:396</a></div></div>
179
+ <div class="ttc" id="classSVF_1_1MemSSA_html_af1a7b3ca0144ebff3747715e89646fbb"><div class="ttname"><a href="classSVF_1_1MemSSA.html#af1a7b3ca0144ebff3747715e89646fbb">SVF::MemSSA::getMUSet</a></div><div class="ttdeci">MUSet &amp; getMUSet(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00402">MemSSA.h:402</a></div></div>
180
180
  <div class="ttc" id="classSVF_1_1MemSSAStat_html"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html">SVF::MemSSAStat</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00048">SVFGStat.h:48</a></div></div>
181
- <div class="ttc" id="classSVF_1_1MemSSA_html_ad8011273feaf046bf7f3a3f3b904a91d"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ad8011273feaf046bf7f3a3f3b904a91d">SVF::MemSSA::AddCallSiteCHI</a></div><div class="ttdeci">void AddCallSiteCHI(const CallICFGNode *cs, const MRSet &amp;mrSet)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00198">MemSSA.h:198</a></div></div>
181
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ad8011273feaf046bf7f3a3f3b904a91d"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ad8011273feaf046bf7f3a3f3b904a91d">SVF::MemSSA::AddCallSiteCHI</a></div><div class="ttdeci">void AddCallSiteCHI(const CallICFGNode *cs, const MRSet &amp;mrSet)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00204">MemSSA.h:204</a></div></div>
182
182
  <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="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
183
- <div class="ttc" id="classSVF_1_1MemSSA_html_a552bb17f0435e012b7393fb641c19298"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a552bb17f0435e012b7393fb641c19298">SVF::MemSSA::hasPHISet</a></div><div class="ttdeci">bool hasPHISet(const BasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00408">MemSSA.h:408</a></div></div>
184
- <div class="ttc" id="classSVF_1_1MemSSA_html_a10743fe9c116ee624387c0473815b800"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a10743fe9c116ee624387c0473815b800">SVF::MemSSA::getFuncEntryChiSet</a></div><div class="ttdeci">CHISet &amp; getFuncEntryChiSet(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00376">MemSSA.h:376</a></div></div>
185
- <div class="ttc" id="classSVF_1_1MemSSA_html_af8c38a7ff8da4206f19c038024606d93"><div class="ttname"><a href="classSVF_1_1MemSSA.html#af8c38a7ff8da4206f19c038024606d93">SVF::MemSSA::getReturnMuSet</a></div><div class="ttdeci">MUSet &amp; getReturnMuSet(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00380">MemSSA.h:380</a></div></div>
186
- <div class="ttc" id="classSVF_1_1MemSSA_html_a606aaf7a76ca71cb32adc9af7291ae6e"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a606aaf7a76ca71cb32adc9af7291ae6e">SVF::MemSSA::AddMSSAPHI</a></div><div class="ttdeci">void AddMSSAPHI(const BasicBlock *bb, const MRSet &amp;mrSet)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00203">MemSSA.h:203</a></div></div>
183
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a552bb17f0435e012b7393fb641c19298"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a552bb17f0435e012b7393fb641c19298">SVF::MemSSA::hasPHISet</a></div><div class="ttdeci">bool hasPHISet(const BasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00414">MemSSA.h:414</a></div></div>
184
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a10743fe9c116ee624387c0473815b800"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a10743fe9c116ee624387c0473815b800">SVF::MemSSA::getFuncEntryChiSet</a></div><div class="ttdeci">CHISet &amp; getFuncEntryChiSet(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00382">MemSSA.h:382</a></div></div>
185
+ <div class="ttc" id="classSVF_1_1MemSSA_html_af8c38a7ff8da4206f19c038024606d93"><div class="ttname"><a href="classSVF_1_1MemSSA.html#af8c38a7ff8da4206f19c038024606d93">SVF::MemSSA::getReturnMuSet</a></div><div class="ttdeci">MUSet &amp; getReturnMuSet(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00386">MemSSA.h:386</a></div></div>
186
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a606aaf7a76ca71cb32adc9af7291ae6e"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a606aaf7a76ca71cb32adc9af7291ae6e">SVF::MemSSA::AddMSSAPHI</a></div><div class="ttdeci">void AddMSSAPHI(const BasicBlock *bb, const MRSet &amp;mrSet)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00209">MemSSA.h:209</a></div></div>
187
187
  <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#l00341">SVFStatements.h:341</a></div></div>
188
188
  <div class="ttc" id="classSVF_1_1CallCHI_html_a69f83ff81ea017d645aadeb46334880f"><div class="ttname"><a href="classSVF_1_1CallCHI.html#a69f83ff81ea017d645aadeb46334880f">SVF::CallCHI::getBasicBlock</a></div><div class="ttdeci">const BasicBlock * getBasicBlock() const</div><div class="ttdoc">Return basic block. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00538">MSSAMuChi.h:538</a></div></div>
189
- <div class="ttc" id="classSVF_1_1MemSSA_html_a0ed34f7a27db045c624c5db61d53132b"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a0ed34f7a27db045c624c5db61d53132b">SVF::MemSSA::RenamePhiOps</a></div><div class="ttdeci">void RenamePhiOps(const PHISet &amp;phiSet, u32_t pos, MRVector &amp;)</div><div class="ttdoc">Rename operands (RHS) of phis. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00279">MemSSA.h:279</a></div></div>
190
- <div class="ttc" id="classSVF_1_1MemSSA_html_a52b1598f44fe6a6e30095f596bf85cb0"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a52b1598f44fe6a6e30095f596bf85cb0">SVF::MemSSA::dt</a></div><div class="ttdeci">DominatorTree * dt</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00118">MemSSA.h:118</a></div></div>
191
- <div class="ttc" id="classSVF_1_1MemSSA_html_a06081aa029b1fe3f9427f85a0261fd43"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a06081aa029b1fe3f9427f85a0261fd43">SVF::MemSSA::getCallSiteToMuSetMap</a></div><div class="ttdeci">CallSiteToMUSetMap &amp; getCallSiteToMuSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00428">MemSSA.h:428</a></div></div>
192
- <div class="ttc" id="classSVF_1_1MemSSA_html_a959e932912b924ec91e1526947493204"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a959e932912b924ec91e1526947493204">SVF::MemSSA::getCHISet</a></div><div class="ttdeci">CHISet &amp; getCHISet(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00400">MemSSA.h:400</a></div></div>
193
- <div class="ttc" id="classSVF_1_1MemSSA_html_abae2396bf8a37a22be9365d368fe455c"><div class="ttname"><a href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">SVF::MemSSA::funToReturnMuSetMap</a></div><div class="ttdeci">FunToReturnMuSetMap funToReturnMuSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00137">MemSSA.h:137</a></div></div>
194
- <div class="ttc" id="classSVF_1_1MemSSA_html_a397c835c15c15e18697beca2ff27a73f"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a397c835c15c15e18697beca2ff27a73f">SVF::MemSSA::AddLoadMU</a></div><div class="ttdeci">void AddLoadMU(const BasicBlock *bb, const LoadStmt *load, const MemRegion *mr)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00208">MemSSA.h:208</a></div></div>
189
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a0ed34f7a27db045c624c5db61d53132b"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a0ed34f7a27db045c624c5db61d53132b">SVF::MemSSA::RenamePhiOps</a></div><div class="ttdeci">void RenamePhiOps(const PHISet &amp;phiSet, u32_t pos, MRVector &amp;)</div><div class="ttdoc">Rename operands (RHS) of phis. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00285">MemSSA.h:285</a></div></div>
190
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a52b1598f44fe6a6e30095f596bf85cb0"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a52b1598f44fe6a6e30095f596bf85cb0">SVF::MemSSA::dt</a></div><div class="ttdeci">DominatorTree * dt</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00124">MemSSA.h:124</a></div></div>
191
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a06081aa029b1fe3f9427f85a0261fd43"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a06081aa029b1fe3f9427f85a0261fd43">SVF::MemSSA::getCallSiteToMuSetMap</a></div><div class="ttdeci">CallSiteToMUSetMap &amp; getCallSiteToMuSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00434">MemSSA.h:434</a></div></div>
192
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a959e932912b924ec91e1526947493204"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a959e932912b924ec91e1526947493204">SVF::MemSSA::getCHISet</a></div><div class="ttdeci">CHISet &amp; getCHISet(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00406">MemSSA.h:406</a></div></div>
193
+ <div class="ttc" id="classSVF_1_1MemSSA_html_abae2396bf8a37a22be9365d368fe455c"><div class="ttname"><a href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">SVF::MemSSA::funToReturnMuSetMap</a></div><div class="ttdeci">FunToReturnMuSetMap funToReturnMuSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00143">MemSSA.h:143</a></div></div>
194
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a397c835c15c15e18697beca2ff27a73f"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a397c835c15c15e18697beca2ff27a73f">SVF::MemSSA::AddLoadMU</a></div><div class="ttdeci">void AddLoadMU(const BasicBlock *bb, const LoadStmt *load, const MemRegion *mr)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00214">MemSSA.h:214</a></div></div>
195
195
  <div class="ttc" id="classSVF_1_1MemSSA_html_a749df6d6b28dd1bae569989bffeb7746"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a749df6d6b28dd1bae569989bffeb7746">SVF::MemSSA::dumpMSSA</a></div><div class="ttdeci">void dumpMSSA(OutStream &amp;Out=SVFUtil::outs())</div><div class="ttdoc">Print Memory SSA. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00592">MemSSA.cpp:592</a></div></div>
196
- <div class="ttc" id="classSVF_1_1MemSSA_html_afd4787df4466c24948d8384e3a756198"><div class="ttname"><a href="classSVF_1_1MemSSA.html#afd4787df4466c24948d8384e3a756198">SVF::MemSSA::getFunToEntryChiSetMap</a></div><div class="ttdeci">FunToEntryChiSetMap &amp; getFunToEntryChiSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00424">MemSSA.h:424</a></div></div>
196
+ <div class="ttc" id="classSVF_1_1MemSSA_html_afd4787df4466c24948d8384e3a756198"><div class="ttname"><a href="classSVF_1_1MemSSA.html#afd4787df4466c24948d8384e3a756198">SVF::MemSSA::getFunToEntryChiSetMap</a></div><div class="ttdeci">FunToEntryChiSetMap &amp; getFunToEntryChiSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00430">MemSSA.h:430</a></div></div>
197
197
  <div class="ttc" id="classSVF_1_1CallCHI_html"><div class="ttname"><a href="classSVF_1_1CallCHI.html">SVF::CallCHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00521">MSSAMuChi.h:521</a></div></div>
198
- <div class="ttc" id="classSVF_1_1MemSSA_html_ae09603b40c7359c4cd2f644d3efc40cc"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ae09603b40c7359c4cd2f644d3efc40cc">SVF::MemSSA::~MemSSA</a></div><div class="ttdeci">virtual ~MemSSA()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00308">MemSSA.h:308</a></div></div>
199
- <div class="ttc" id="classSVF_1_1MemRegion_html"><div class="ttname"><a href="classSVF_1_1MemRegion.html">SVF::MemRegion</a></div><div class="ttdoc">Memory Region class. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00051">MemRegion.h:51</a></div></div>
200
- <div class="ttc" id="classSVF_1_1MemSSA_html_a503f2fda873c330ef2cc5561f396ea6e"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a503f2fda873c330ef2cc5561f396ea6e">SVF::MemSSA::CHI</a></div><div class="ttdeci">MSSACHI&lt; Condition &gt; CHI</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00057">MemSSA.h:57</a></div></div>
198
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ae09603b40c7359c4cd2f644d3efc40cc"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ae09603b40c7359c4cd2f644d3efc40cc">SVF::MemSSA::~MemSSA</a></div><div class="ttdeci">virtual ~MemSSA()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00314">MemSSA.h:314</a></div></div>
199
+ <div class="ttc" id="classSVF_1_1MemRegion_html"><div class="ttname"><a href="classSVF_1_1MemRegion.html">SVF::MemRegion</a></div><div class="ttdoc">Memory Region class. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00055">MemRegion.h:55</a></div></div>
200
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a503f2fda873c330ef2cc5561f396ea6e"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a503f2fda873c330ef2cc5561f396ea6e">SVF::MemSSA::CHI</a></div><div class="ttdeci">MSSACHI&lt; Condition &gt; CHI</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00063">MemSSA.h:63</a></div></div>
201
201
  <div class="ttc" id="classSVF_1_1MemSSA_html_a67175188232e08f5c5374f92ff61810f"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a67175188232e08f5c5374f92ff61810f">SVF::MemSSA::getFunRetMuNum</a></div><div class="ttdeci">u32_t getFunRetMuNum() const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00525">MemSSA.cpp:525</a></div></div>
202
- <div class="ttc" id="classSVF_1_1MemSSA_html_a37b84780f57cbee50cf957cfbab195c1"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a37b84780f57cbee50cf957cfbab195c1">SVF::MemSSA::MRSet</a></div><div class="ttdeci">MRGenerator::MRSet MRSet</div><div class="ttdoc">Define mem region set. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00069">MemSSA.h:69</a></div></div>
203
- <div class="ttc" id="classSVF_1_1MemSSA_html_ad40617a1907b9a6b8cc24888ce54a0ac"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">SVF::MemSSA::getPTA</a></div><div class="ttdeci">BVDataPTAImpl * getPTA() const</div><div class="ttdoc">Return PTA. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00315">MemSSA.h:315</a></div></div>
202
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a37b84780f57cbee50cf957cfbab195c1"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a37b84780f57cbee50cf957cfbab195c1">SVF::MemSSA::MRSet</a></div><div class="ttdeci">MRGenerator::MRSet MRSet</div><div class="ttdoc">Define mem region set. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00075">MemSSA.h:75</a></div></div>
203
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ad40617a1907b9a6b8cc24888ce54a0ac"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">SVF::MemSSA::getPTA</a></div><div class="ttdeci">BVDataPTAImpl * getPTA() const</div><div class="ttdoc">Return PTA. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00321">MemSSA.h:321</a></div></div>
204
204
  <div class="ttc" id="classSVF_1_1MemSSA_html_aafc83f7f22ebf3b3683607440c488bef"><div class="ttname"><a href="classSVF_1_1MemSSA.html#aafc83f7f22ebf3b3683607440c488bef">SVF::MemSSA::getLoadMuNum</a></div><div class="ttdeci">u32_t getLoadMuNum() const</div><div class="ttdoc">Stat methods. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00474">MemSSA.cpp:474</a></div></div>
205
- <div class="ttc" id="classSVF_1_1MemSSA_html_a3cfc6d7134f98e5876c16c6c043a3d92"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a3cfc6d7134f98e5876c16c6c043a3d92">SVF::MemSSA::FunToReturnMuSetMap</a></div><div class="ttdeci">Map&lt; const SVFFunction *, MUSet &gt; FunToReturnMuSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00083">MemSSA.h:83</a></div></div>
206
- <div class="ttc" id="classSVF_1_1MemSSA_html_a56ffeb1f76c73766d06aedd60235c8d9"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a56ffeb1f76c73766d06aedd60235c8d9">SVF::MemSSA::CALLCHI</a></div><div class="ttdeci">CallCHI&lt; Condition &gt; CALLCHI</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00060">MemSSA.h:60</a></div></div>
207
- <div class="ttc" id="classSVF_1_1MemSSA_html_a4e11797df16b0b612191607180acc0c5"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a4e11797df16b0b612191607180acc0c5">SVF::MemSSA::AddStoreCHI</a></div><div class="ttdeci">void AddStoreCHI(const BasicBlock *bb, const StoreStmt *store, const MRSet &amp;mrSet)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00188">MemSSA.h:188</a></div></div>
208
- <div class="ttc" id="classSVF_1_1MemSSA_html_acfee1bb5534026ce991a1ab5e796c6b9"><div class="ttname"><a href="classSVF_1_1MemSSA.html#acfee1bb5534026ce991a1ab5e796c6b9">SVF::MemSSA::StoreToChiSetMap</a></div><div class="ttdeci">Map&lt; const StoreStmt *, CHISet &gt; StoreToChiSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00075">MemSSA.h:75</a></div></div>
209
- <div class="ttc" id="classSVF_1_1MemSSA_html_a8a5d3597f3dba9744e170cc8c32bf25f"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a8a5d3597f3dba9744e170cc8c32bf25f">SVF::MemSSA::PHISet</a></div><div class="ttdeci">Set&lt; PHI * &gt; PHISet</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00066">MemSSA.h:66</a></div></div>
205
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a3cfc6d7134f98e5876c16c6c043a3d92"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a3cfc6d7134f98e5876c16c6c043a3d92">SVF::MemSSA::FunToReturnMuSetMap</a></div><div class="ttdeci">Map&lt; const SVFFunction *, MUSet &gt; FunToReturnMuSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00089">MemSSA.h:89</a></div></div>
206
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a56ffeb1f76c73766d06aedd60235c8d9"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a56ffeb1f76c73766d06aedd60235c8d9">SVF::MemSSA::CALLCHI</a></div><div class="ttdeci">CallCHI&lt; Condition &gt; CALLCHI</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00066">MemSSA.h:66</a></div></div>
207
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a4e11797df16b0b612191607180acc0c5"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a4e11797df16b0b612191607180acc0c5">SVF::MemSSA::AddStoreCHI</a></div><div class="ttdeci">void AddStoreCHI(const BasicBlock *bb, const StoreStmt *store, const MRSet &amp;mrSet)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00194">MemSSA.h:194</a></div></div>
208
+ <div class="ttc" id="classSVF_1_1MemSSA_html_acfee1bb5534026ce991a1ab5e796c6b9"><div class="ttname"><a href="classSVF_1_1MemSSA.html#acfee1bb5534026ce991a1ab5e796c6b9">SVF::MemSSA::StoreToChiSetMap</a></div><div class="ttdeci">Map&lt; const StoreStmt *, CHISet &gt; StoreToChiSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00081">MemSSA.h:81</a></div></div>
209
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a8a5d3597f3dba9744e170cc8c32bf25f"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a8a5d3597f3dba9744e170cc8c32bf25f">SVF::MemSSA::PHISet</a></div><div class="ttdeci">Set&lt; PHI * &gt; PHISet</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00072">MemSSA.h:72</a></div></div>
210
210
  <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>
211
211
  <div class="ttc" id="namespaceSVF_html_a8bd74fdcb0e58d0249003df9c3fb8b31"><div class="ttname"><a href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">SVF::OutStream</a></div><div class="ttdeci">std::ostream OutStream</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00083">SVFBasicTypes.h:83</a></div></div>
212
- <div class="ttc" id="classSVF_1_1MemSSA_html_ae4c7b17d8da8278dca362af79f9f268d"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ae4c7b17d8da8278dca362af79f9f268d">SVF::MemSSA::mr2VerStackMap</a></div><div class="ttdeci">MemRegToVerStackMap mr2VerStackMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00139">MemSSA.h:139</a></div></div>
213
- <div class="ttc" id="classSVF_1_1MemSSA_html_a8f121e686d36748e4528d0ea66dcaa24"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a8f121e686d36748e4528d0ea66dcaa24">SVF::MemSSA::AddCallSiteMU</a></div><div class="ttdeci">void AddCallSiteMU(const CallICFGNode *cs, const MRSet &amp;mrSet)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00193">MemSSA.h:193</a></div></div>
214
- <div class="ttc" id="classSVF_1_1MemSSA_html_a445d282890dbd2fb51e903255af1cc3e"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a445d282890dbd2fb51e903255af1cc3e">SVF::MemSSA::SVFStmtList</a></div><div class="ttdeci">SVFIR::SVFStmtList SVFStmtList</div><div class="ttdoc">SVFIR edge list. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00097">MemSSA.h:97</a></div></div>
212
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ae4c7b17d8da8278dca362af79f9f268d"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ae4c7b17d8da8278dca362af79f9f268d">SVF::MemSSA::mr2VerStackMap</a></div><div class="ttdeci">MemRegToVerStackMap mr2VerStackMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00145">MemSSA.h:145</a></div></div>
213
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a8f121e686d36748e4528d0ea66dcaa24"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a8f121e686d36748e4528d0ea66dcaa24">SVF::MemSSA::AddCallSiteMU</a></div><div class="ttdeci">void AddCallSiteMU(const CallICFGNode *cs, const MRSet &amp;mrSet)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00199">MemSSA.h:199</a></div></div>
214
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a445d282890dbd2fb51e903255af1cc3e"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a445d282890dbd2fb51e903255af1cc3e">SVF::MemSSA::SVFStmtList</a></div><div class="ttdeci">SVFIR::SVFStmtList SVFStmtList</div><div class="ttdoc">SVFIR edge list. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00103">MemSSA.h:103</a></div></div>
215
215
  <div class="ttc" id="classSVF_1_1MSSAPHI_html"><div class="ttname"><a href="classSVF_1_1MSSAPHI.html">SVF::MSSAPHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00629">MSSAMuChi.h:629</a></div></div>
216
216
  <div class="ttc" id="classSVF_1_1MSSAMU_html_a2af1e639aabbc5997aa4e6526f6595fb"><div class="ttname"><a href="classSVF_1_1MSSAMU.html#a2af1e639aabbc5997aa4e6526f6595fb">SVF::MSSAMU::setVer</a></div><div class="ttdeci">void setVer(MRVer *v)</div><div class="ttdoc">Set Ver. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00131">MSSAMuChi.h:131</a></div></div>
217
- <div class="ttc" id="classSVF_1_1MemSSA_html_a3c7b5fa73fdc7c805ee3673fbe812b44"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a3c7b5fa73fdc7c805ee3673fbe812b44">SVF::MemSSA::timeOfInsertingPHI</a></div><div class="ttdeci">static double timeOfInsertingPHI</div><div class="ttdoc">Time for inserting phis. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00103">MemSSA.h:103</a></div></div>
217
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a3c7b5fa73fdc7c805ee3673fbe812b44"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a3c7b5fa73fdc7c805ee3673fbe812b44">SVF::MemSSA::timeOfInsertingPHI</a></div><div class="ttdeci">static double timeOfInsertingPHI</div><div class="ttdoc">Time for inserting phis. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00109">MemSSA.h:109</a></div></div>
218
218
  <div class="ttc" id="classSVF_1_1MemSSA_html_acc6f72d96cf29e36093ba08ea86b8983"><div class="ttname"><a href="classSVF_1_1MemSSA.html#acc6f72d96cf29e36093ba08ea86b8983">SVF::MemSSA::insertPHI</a></div><div class="ttdeci">virtual void insertPHI(const SVFFunction &amp;fun)</div><div class="ttdoc">Insert phi for candidate regions in a fucntion. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00213">MemSSA.cpp:213</a></div></div>
219
- <div class="ttc" id="classSVF_1_1MemSSA_html_af7991c1393ef3c8b090833bc27036a49"><div class="ttname"><a href="classSVF_1_1MemSSA.html#af7991c1393ef3c8b090833bc27036a49">SVF::MemSSA::AddCallSiteCHI</a></div><div class="ttdeci">void AddCallSiteCHI(const CallICFGNode *cs, const MemRegion *mr)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00227">MemSSA.h:227</a></div></div>
220
- <div class="ttc" id="classSVF_1_1MemSSA_html_ac0797f2ee7b59ae720095a4836533671"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671">SVF::MemSSA::MemPartition</a></div><div class="ttdeci">MemPartition</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00107">MemSSA.h:107</a></div></div>
221
- <div class="ttc" id="classSVF_1_1MemSSA_html_a94164c59384ef04f98a3713b504fca35"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a94164c59384ef04f98a3713b504fca35">SVF::MemSSA::LoadToMUSetMap</a></div><div class="ttdeci">Map&lt; const LoadStmt *, MUSet &gt; LoadToMUSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00074">MemSSA.h:74</a></div></div>
219
+ <div class="ttc" id="classSVF_1_1MemSSA_html_af7991c1393ef3c8b090833bc27036a49"><div class="ttname"><a href="classSVF_1_1MemSSA.html#af7991c1393ef3c8b090833bc27036a49">SVF::MemSSA::AddCallSiteCHI</a></div><div class="ttdeci">void AddCallSiteCHI(const CallICFGNode *cs, const MemRegion *mr)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00233">MemSSA.h:233</a></div></div>
220
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ac0797f2ee7b59ae720095a4836533671"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ac0797f2ee7b59ae720095a4836533671">SVF::MemSSA::MemPartition</a></div><div class="ttdeci">MemPartition</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00113">MemSSA.h:113</a></div></div>
221
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a94164c59384ef04f98a3713b504fca35"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a94164c59384ef04f98a3713b504fca35">SVF::MemSSA::LoadToMUSetMap</a></div><div class="ttdeci">Map&lt; const LoadStmt *, MUSet &gt; LoadToMUSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00080">MemSSA.h:80</a></div></div>
222
222
  <div class="ttc" id="classSVF_1_1MSSACHI_html"><div class="ttname"><a href="classSVF_1_1MSSACHI.html">SVF::MSSACHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00396">MSSAMuChi.h:396</a></div></div>
223
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a98ac3bf264e6a85d172c2c4264ea908f"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">SVF::MRGenerator::MRSet</a></div><div class="ttdeci">OrderedSet&lt; const MemRegion *, MemRegion::equalMemRegion &gt; MRSet</div><div class="ttdoc">Get typedef from Pointer Analysis. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00137">MemRegion.h:137</a></div></div>
223
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a98ac3bf264e6a85d172c2c4264ea908f"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">SVF::MRGenerator::MRSet</a></div><div class="ttdeci">OrderedSet&lt; const MemRegion *, MemRegion::equalMemRegion &gt; MRSet</div><div class="ttdoc">Get typedef from Pointer Analysis. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00141">MemRegion.h:141</a></div></div>
224
224
  <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>
225
- <div class="ttc" id="classSVF_1_1MemSSA_html_a59314f6ce17919574d687a08a38b55ec"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">SVF::MemSSA::funToEntryChiSetMap</a></div><div class="ttdeci">FunToEntryChiSetMap funToEntryChiSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00136">MemSSA.h:136</a></div></div>
226
- <div class="ttc" id="classSVF_1_1MemSSA_html_adbaf4715d5d4c9d0be1e934178efe13e"><div class="ttname"><a href="classSVF_1_1MemSSA.html#adbaf4715d5d4c9d0be1e934178efe13e">SVF::MemSSA::AddCallSiteMU</a></div><div class="ttdeci">void AddCallSiteMU(const CallICFGNode *cs, const MemRegion *mr)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00221">MemSSA.h:221</a></div></div>
227
- <div class="ttc" id="classSVF_1_1MemSSA_html_abfb338ce36ad46a9654d50dd6e2b07f1"><div class="ttname"><a href="classSVF_1_1MemSSA.html#abfb338ce36ad46a9654d50dd6e2b07f1">SVF::MemSSA::hasCHI</a></div><div class="ttdeci">bool hasCHI(const PAGEdge *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00343">MemSSA.h:343</a></div></div>
228
- <div class="ttc" id="classSVF_1_1MemSSA_html_a44cbdb1231c2709c24d19ad2bae2475a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a44cbdb1231c2709c24d19ad2bae2475a">SVF::MemSSA::getFunToRetMuSetMap</a></div><div class="ttdeci">FunToReturnMuSetMap &amp; getFunToRetMuSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00420">MemSSA.h:420</a></div></div>
225
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a59314f6ce17919574d687a08a38b55ec"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">SVF::MemSSA::funToEntryChiSetMap</a></div><div class="ttdeci">FunToEntryChiSetMap funToEntryChiSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00142">MemSSA.h:142</a></div></div>
226
+ <div class="ttc" id="classSVF_1_1MemSSA_html_adbaf4715d5d4c9d0be1e934178efe13e"><div class="ttname"><a href="classSVF_1_1MemSSA.html#adbaf4715d5d4c9d0be1e934178efe13e">SVF::MemSSA::AddCallSiteMU</a></div><div class="ttdeci">void AddCallSiteMU(const CallICFGNode *cs, const MemRegion *mr)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00227">MemSSA.h:227</a></div></div>
227
+ <div class="ttc" id="classSVF_1_1MemSSA_html_abfb338ce36ad46a9654d50dd6e2b07f1"><div class="ttname"><a href="classSVF_1_1MemSSA.html#abfb338ce36ad46a9654d50dd6e2b07f1">SVF::MemSSA::hasCHI</a></div><div class="ttdeci">bool hasCHI(const PAGEdge *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00349">MemSSA.h:349</a></div></div>
228
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a44cbdb1231c2709c24d19ad2bae2475a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a44cbdb1231c2709c24d19ad2bae2475a">SVF::MemSSA::getFunToRetMuSetMap</a></div><div class="ttdeci">FunToReturnMuSetMap &amp; getFunToRetMuSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00426">MemSSA.h:426</a></div></div>
229
229
  <div class="ttc" id="namespaceSVF_html_aedf0d6718ca176e0b9e17ab4b30729c6"><div class="ttname"><a href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">SVF::OrderedMap</a></div><div class="ttdeci">std::map&lt; Key, Value, Compare, Allocator &gt; OrderedMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00117">SVFBasicTypes.h:117</a></div></div>
230
230
  </div><!-- fragment --></div><!-- contents -->
231
231
  <!-- start footer part -->