svf-tools 1.0.613 → 1.0.615

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 (542) hide show
  1. package/CMakeLists.txt +13 -0
  2. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +7 -6
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +15 -15
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +22 -22
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +16 -16
  9. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +6 -6
  10. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +7 -7
  11. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +6 -6
  12. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +1 -1
  14. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +5 -5
  15. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +11 -11
  16. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +1 -1
  17. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +5 -5
  19. package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
  20. package/SVF-doxygen/html/html/CSC_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +14 -14
  22. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
  24. package/SVF-doxygen/html/html/ConsG_8h_source.html +9 -9
  25. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +18 -18
  26. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +9 -9
  27. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +4 -4
  28. package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
  29. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +8 -8
  30. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +4 -6
  32. package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
  33. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +9 -9
  34. package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
  35. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +22 -22
  36. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +21 -21
  40. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
  41. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  42. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +10 -10
  43. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
  44. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +13 -13
  45. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +27 -28
  46. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +65 -65
  47. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
  48. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  49. package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
  50. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  51. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
  52. package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
  53. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +6 -6
  54. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h_source.html +3 -3
  55. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +24 -29
  56. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +8 -8
  57. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  58. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
  59. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
  60. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +9 -9
  61. package/SVF-doxygen/html/html/LocationSet_8h_source.html +3 -3
  62. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +5 -5
  63. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +3 -3
  64. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
  66. package/SVF-doxygen/html/html/MHP_8h_source.html +5 -5
  67. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +17 -17
  68. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +8 -8
  69. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
  70. package/SVF-doxygen/html/html/MTA_8cpp_source.html +12 -17
  71. package/SVF-doxygen/html/html/MTA_8h_source.html +3 -4
  72. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +10 -10
  73. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +34 -34
  75. package/SVF-doxygen/html/html/MemRegion_8h_source.html +7 -7
  76. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +16 -15
  77. package/SVF-doxygen/html/html/MemSSA_8h_source.html +53 -52
  78. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +7 -8
  79. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +7 -7
  80. package/SVF-doxygen/html/html/Options_8cpp_source.html +52 -53
  81. package/SVF-doxygen/html/html/Options_8h_source.html +53 -54
  82. package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
  83. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +3 -3
  84. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +3 -3
  86. package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
  87. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +33 -33
  88. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +91 -95
  89. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +31 -39
  90. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +85 -92
  91. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +20 -20
  92. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +16 -16
  93. package/SVF-doxygen/html/html/PointsTo_8cpp.html +1 -0
  94. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +51 -51
  95. package/SVF-doxygen/html/html/PointsTo_8h_source.html +38 -38
  96. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +6 -6
  97. package/SVF-doxygen/html/html/SCC_8h_source.html +4 -4
  98. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +11 -22
  99. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +14 -17
  100. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  101. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  102. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -7
  103. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +21 -19
  104. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +5 -5
  105. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +18 -18
  106. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +49 -62
  107. package/SVF-doxygen/html/html/SVFG_8h_source.html +45 -45
  108. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +12 -12
  109. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +8 -8
  110. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +3 -3
  111. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +10 -16
  112. package/SVF-doxygen/html/html/SVFIR_8h_source.html +83 -83
  113. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +19 -19
  114. package/SVF-doxygen/html/html/SVFType_8h.html +22 -22
  115. package/SVF-doxygen/html/html/SVFType_8h_source.html +76 -77
  116. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +5 -5
  117. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +11 -11
  118. package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +5 -5
  119. package/SVF-doxygen/html/html/SVFValue_8h_source.html +6 -6
  120. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  121. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +3 -3
  122. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +6 -6
  123. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +4 -4
  124. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +15 -15
  125. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -3
  126. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +69 -71
  127. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
  128. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +39 -39
  129. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  130. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
  131. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +49 -51
  132. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +13 -13
  133. package/SVF-doxygen/html/html/TCT_8cpp_source.html +4 -4
  134. package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
  135. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +8 -8
  136. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +3 -3
  137. package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
  138. package/SVF-doxygen/html/html/VFG_8cpp_source.html +17 -17
  139. package/SVF-doxygen/html/html/VFG_8h_source.html +5 -5
  140. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +8 -8
  141. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +33 -33
  142. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
  143. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +11 -11
  144. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +12 -12
  145. package/SVF-doxygen/html/html/WPAPass_8h_source.html +2 -2
  146. package/SVF-doxygen/html/html/WPASolver_8h_source.html +25 -25
  147. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
  148. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -5
  149. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -5
  150. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +2 -2
  151. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +2 -2
  152. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +2 -2
  153. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +187 -188
  155. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +104 -107
  156. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +163 -164
  157. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +47 -50
  158. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +194 -195
  159. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +45 -48
  160. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +204 -205
  161. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +35 -38
  162. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +17 -17
  163. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +191 -192
  164. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +29 -32
  165. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +122 -123
  166. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +158 -219
  167. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -2
  168. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +137 -138
  169. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +57 -49
  170. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +138 -139
  171. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +34 -34
  172. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +7 -7
  173. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +140 -141
  175. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +30 -30
  176. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +8 -8
  177. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +2 -2
  178. package/SVF-doxygen/html/html/classSVF_1_1CallSite-members.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +10 -10
  180. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -2
  181. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +114 -114
  182. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +6 -6
  183. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +8 -8
  184. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +28 -28
  185. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
  186. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +6 -6
  187. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +4 -4
  188. package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +17 -31
  190. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +10 -10
  191. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +40 -40
  192. package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +15 -15
  193. package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +4 -4
  194. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +11 -11
  195. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
  196. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
  197. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +2 -2
  198. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +228 -229
  200. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +62 -65
  201. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
  202. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +17 -17
  203. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +194 -195
  204. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +55 -55
  205. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +219 -220
  206. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +335 -342
  207. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +57 -57
  208. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +6 -6
  209. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +2 -2
  210. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +2 -2
  211. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
  212. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
  213. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +2 -2
  214. package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +1 -1
  215. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +6 -6
  216. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +2 -2
  217. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +4 -4
  218. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +4 -4
  219. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
  220. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +8 -8
  221. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis-members.html +1 -1
  222. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +20 -14
  223. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +4 -4
  224. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +108 -94
  225. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
  226. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +36 -36
  227. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +2 -2
  228. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +12 -12
  229. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +25 -25
  230. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +3 -3
  231. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +26 -26
  232. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +87 -87
  233. package/SVF-doxygen/html/html/classSVF_1_1MTA-members.html +2 -2
  234. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +27 -33
  235. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +21 -21
  236. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +14 -14
  237. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder-members.html +41 -43
  238. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +57 -80
  239. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
  240. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +54 -54
  241. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +4 -4
  242. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +4 -3
  243. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +170 -143
  244. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +16 -16
  245. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +2 -2
  246. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData-members.html +3 -3
  247. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +13 -15
  248. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +7 -7
  249. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +2 -2
  250. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +8 -8
  251. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +17 -18
  253. package/SVF-doxygen/html/html/classSVF_1_1Options.html +53 -79
  254. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  255. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
  256. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -2
  257. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +3 -3
  258. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +3 -3
  259. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +4 -4
  260. package/SVF-doxygen/html/html/classSVF_1_1PTData.html +11 -11
  261. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData-members.html +28 -28
  262. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +174 -177
  263. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData-members.html +17 -17
  264. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +99 -102
  265. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData-members.html +30 -30
  266. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +125 -127
  267. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData-members.html +13 -13
  268. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +83 -86
  269. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +1 -1
  270. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +122 -122
  271. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData-members.html +22 -22
  272. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +137 -140
  273. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +56 -56
  274. package/SVF-doxygen/html/html/classSVF_1_1PointsTo-members.html +16 -16
  275. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +183 -178
  276. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator-members.html +7 -7
  277. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +87 -65
  278. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +6 -6
  279. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +3 -3
  280. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +1 -1
  281. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument-members.html +1 -1
  282. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument.html +4 -4
  283. package/SVF-doxygen/html/html/classSVF_1_1SVFArrayType.html +6 -6
  284. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +3 -3
  285. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +13 -16
  286. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue-members.html +1 -1
  287. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue.html +2 -2
  288. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst-members.html +1 -1
  289. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +2 -2
  290. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant-members.html +1 -1
  291. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant.html +3 -3
  292. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData-members.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData.html +2 -2
  294. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP-members.html +1 -1
  295. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP.html +2 -2
  296. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt-members.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt.html +2 -2
  298. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr-members.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr.html +2 -2
  300. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +1 -1
  301. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +5 -7
  302. package/SVF-doxygen/html/html/classSVF_1_1SVFFunctionType.html +9 -9
  303. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +2 -2
  304. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +211 -236
  305. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder-members.html +7 -9
  306. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +50 -138
  307. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +9 -9
  308. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +82 -82
  309. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +5 -5
  310. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue-members.html +1 -1
  311. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +2 -2
  312. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
  313. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +203 -215
  314. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +13 -13
  315. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +79 -79
  316. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction-members.html +1 -1
  317. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +4 -4
  318. package/SVF-doxygen/html/html/classSVF_1_1SVFIntergerType.html +5 -5
  319. package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo-members.html +1 -1
  320. package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo.html +5 -5
  321. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue-members.html +1 -1
  322. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue.html +2 -2
  323. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +0 -4
  324. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +5 -5
  325. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue-members.html +1 -1
  326. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue.html +3 -3
  327. package/SVF-doxygen/html/html/classSVF_1_1SVFPointerType.html +9 -9
  328. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +19 -19
  329. package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +5 -5
  330. package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +38 -38
  331. package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +1 -1
  332. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +4 -5
  333. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +1 -1
  334. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst-members.html +1 -1
  335. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst.html +2 -2
  336. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +9 -9
  337. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +12 -14
  338. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +42 -68
  339. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector-members.html +1 -1
  340. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +108 -109
  341. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator-members.html +1 -1
  342. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +50 -50
  343. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +6 -6
  344. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +146 -146
  345. package/SVF-doxygen/html/html/classSVF_1_1StInfo-members.html +5 -5
  346. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +48 -61
  347. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +178 -179
  348. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +35 -38
  349. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
  350. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +20 -20
  351. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +42 -46
  352. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +10 -10
  353. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +8 -8
  354. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +169 -170
  355. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +31 -34
  356. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
  357. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +28 -28
  358. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +263 -264
  359. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +112 -115
  360. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +41 -41
  361. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
  362. package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +9 -9
  363. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver-members.html +2 -2
  364. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +9 -9
  365. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver-members.html +2 -2
  366. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +15 -15
  367. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +25 -25
  368. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver-members.html +2 -2
  369. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +17 -17
  370. package/SVF-doxygen/html/html/classSVF_1_1WPASolver-members.html +2 -2
  371. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +76 -81
  372. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +2 -2
  373. package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
  374. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  375. package/SVF-doxygen/html/html/functions.html +1 -1
  376. package/SVF-doxygen/html/html/functions_0x7e.html +16 -16
  377. package/SVF-doxygen/html/html/functions_a.html +7 -7
  378. package/SVF-doxygen/html/html/functions_b.html +6 -6
  379. package/SVF-doxygen/html/html/functions_c.html +27 -27
  380. package/SVF-doxygen/html/html/functions_d.html +10 -11
  381. package/SVF-doxygen/html/html/functions_e.html +2 -2
  382. package/SVF-doxygen/html/html/functions_f.html +6 -6
  383. package/SVF-doxygen/html/html/functions_func.html +6 -6
  384. package/SVF-doxygen/html/html/functions_func_0x7e.html +16 -16
  385. package/SVF-doxygen/html/html/functions_func_b.html +6 -6
  386. package/SVF-doxygen/html/html/functions_func_c.html +27 -27
  387. package/SVF-doxygen/html/html/functions_func_d.html +10 -11
  388. package/SVF-doxygen/html/html/functions_func_e.html +2 -2
  389. package/SVF-doxygen/html/html/functions_func_f.html +5 -5
  390. package/SVF-doxygen/html/html/functions_func_g.html +22 -22
  391. package/SVF-doxygen/html/html/functions_func_h.html +3 -3
  392. package/SVF-doxygen/html/html/functions_func_i.html +3 -3
  393. package/SVF-doxygen/html/html/functions_func_o.html +3 -3
  394. package/SVF-doxygen/html/html/functions_func_p.html +5 -5
  395. package/SVF-doxygen/html/html/functions_func_r.html +5 -8
  396. package/SVF-doxygen/html/html/functions_func_s.html +6 -6
  397. package/SVF-doxygen/html/html/functions_func_t.html +1 -1
  398. package/SVF-doxygen/html/html/functions_func_u.html +23 -23
  399. package/SVF-doxygen/html/html/functions_g.html +25 -28
  400. package/SVF-doxygen/html/html/functions_h.html +3 -3
  401. package/SVF-doxygen/html/html/functions_i.html +6 -6
  402. package/SVF-doxygen/html/html/functions_m.html +1 -1
  403. package/SVF-doxygen/html/html/functions_o.html +13 -13
  404. package/SVF-doxygen/html/html/functions_p.html +19 -19
  405. package/SVF-doxygen/html/html/functions_r.html +11 -12
  406. package/SVF-doxygen/html/html/functions_s.html +33 -36
  407. package/SVF-doxygen/html/html/functions_t.html +12 -12
  408. package/SVF-doxygen/html/html/functions_type_t.html +1 -1
  409. package/SVF-doxygen/html/html/functions_u.html +26 -23
  410. package/SVF-doxygen/html/html/functions_v.html +6 -6
  411. package/SVF-doxygen/html/html/functions_vars.html +1 -1
  412. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  413. package/SVF-doxygen/html/html/functions_vars_g.html +0 -3
  414. package/SVF-doxygen/html/html/functions_vars_i.html +1 -1
  415. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  416. package/SVF-doxygen/html/html/functions_vars_p.html +2 -2
  417. package/SVF-doxygen/html/html/functions_vars_s.html +5 -8
  418. package/SVF-doxygen/html/html/functions_vars_t.html +1 -1
  419. package/SVF-doxygen/html/html/functions_vars_u.html +3 -0
  420. package/SVF-doxygen/html/html/functions_w.html +3 -7
  421. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  422. package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
  423. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  424. package/SVF-doxygen/html/html/namespaceSVF.html +35 -35
  425. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +2 -2
  426. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +4 -4
  427. package/SVF-doxygen/html/html/saber_8cpp.html +1 -5
  428. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -5
  429. package/SVF-doxygen/html/html/search/all_0.js +1 -1
  430. package/SVF-doxygen/html/html/search/all_1.js +4 -4
  431. package/SVF-doxygen/html/html/search/all_10.js +15 -15
  432. package/SVF-doxygen/html/html/search/all_11.js +1 -2
  433. package/SVF-doxygen/html/html/search/all_12.js +20 -21
  434. package/SVF-doxygen/html/html/search/all_13.js +8 -8
  435. package/SVF-doxygen/html/html/search/all_14.js +13 -12
  436. package/SVF-doxygen/html/html/search/all_15.js +4 -4
  437. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  438. package/SVF-doxygen/html/html/search/all_19.js +16 -16
  439. package/SVF-doxygen/html/html/search/all_2.js +6 -6
  440. package/SVF-doxygen/html/html/search/all_3.js +14 -14
  441. package/SVF-doxygen/html/html/search/all_4.js +5 -5
  442. package/SVF-doxygen/html/html/search/all_5.js +2 -2
  443. package/SVF-doxygen/html/html/search/all_6.js +5 -5
  444. package/SVF-doxygen/html/html/search/all_7.js +11 -12
  445. package/SVF-doxygen/html/html/search/all_8.js +3 -3
  446. package/SVF-doxygen/html/html/search/all_9.js +4 -4
  447. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  448. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  449. package/SVF-doxygen/html/html/search/all_d.js +3 -3
  450. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  451. package/SVF-doxygen/html/html/search/all_f.js +5 -5
  452. package/SVF-doxygen/html/html/search/functions_0.js +4 -4
  453. package/SVF-doxygen/html/html/search/functions_1.js +6 -6
  454. package/SVF-doxygen/html/html/search/functions_10.js +1 -2
  455. package/SVF-doxygen/html/html/search/functions_11.js +11 -11
  456. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  457. package/SVF-doxygen/html/html/search/functions_13.js +12 -12
  458. package/SVF-doxygen/html/html/search/functions_17.js +16 -16
  459. package/SVF-doxygen/html/html/search/functions_2.js +14 -14
  460. package/SVF-doxygen/html/html/search/functions_3.js +5 -5
  461. package/SVF-doxygen/html/html/search/functions_4.js +2 -2
  462. package/SVF-doxygen/html/html/search/functions_5.js +4 -4
  463. package/SVF-doxygen/html/html/search/functions_6.js +11 -11
  464. package/SVF-doxygen/html/html/search/functions_7.js +3 -3
  465. package/SVF-doxygen/html/html/search/functions_8.js +3 -3
  466. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  467. package/SVF-doxygen/html/html/search/functions_e.js +3 -3
  468. package/SVF-doxygen/html/html/search/functions_f.js +5 -5
  469. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  470. package/SVF-doxygen/html/html/search/variables_0.js +1 -1
  471. package/SVF-doxygen/html/html/search/variables_10.js +2 -2
  472. package/SVF-doxygen/html/html/search/variables_12.js +5 -6
  473. package/SVF-doxygen/html/html/search/variables_13.js +3 -3
  474. package/SVF-doxygen/html/html/search/variables_14.js +1 -0
  475. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  476. package/SVF-doxygen/html/html/search/variables_7.js +0 -1
  477. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  478. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  479. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  480. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +14 -14
  481. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
  482. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  483. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
  484. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
  485. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  486. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement-members.html +1 -1
  487. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +47 -57
  488. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  489. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1PointsTo_01_4.html +1 -1
  490. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +5 -5
  491. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  492. package/SVF-doxygen/html/html/svf-ex_8cpp.html +6 -7
  493. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -7
  494. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  495. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  496. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  497. package/build.sh +2 -2
  498. package/include/DDA/DDAPass.h +1 -1
  499. package/include/DDA/FlowDDA.h +1 -1
  500. package/include/Graphs/ICFG.h +1 -1
  501. package/include/Graphs/SVFG.h +3 -4
  502. package/include/Graphs/SVFGOPT.h +7 -7
  503. package/include/MSSA/MemSSA.h +2 -0
  504. package/include/MSSA/SVFGBuilder.h +5 -14
  505. package/include/MTA/MTA.h +2 -2
  506. package/include/MemoryModel/MutablePointsToDS.h +3 -3
  507. package/include/MemoryModel/PersistentPointsToCache.h +7 -8
  508. package/include/MemoryModel/PersistentPointsToDS.h +93 -93
  509. package/include/MemoryModel/PointerAnalysisImpl.h +17 -28
  510. package/include/MemoryModel/PointsTo.h +24 -24
  511. package/include/SABER/SrcSnkDDA.h +10 -13
  512. package/include/SVF-LLVM/LLVMLoopAnalysis.h +2 -1
  513. package/include/SVF-LLVM/LLVMModule.h +6 -6
  514. package/include/SVFIR/SVFIR.h +3 -5
  515. package/include/SVFIR/SVFType.h +6 -8
  516. package/include/SVFIR/SVFValue.h +5 -5
  517. package/include/Util/Options.h +0 -1
  518. package/include/Util/SparseBitVector.h +6 -14
  519. package/include/WPA/FlowSensitive.h +13 -20
  520. package/include/WPA/WPASolver.h +5 -9
  521. package/lib/DDA/DDAPass.cpp +4 -4
  522. package/lib/Graphs/CFLGraph.cpp +3 -0
  523. package/lib/Graphs/SVFG.cpp +1 -1
  524. package/lib/MSSA/MemSSA.cpp +5 -3
  525. package/lib/MSSA/SVFGBuilder.cpp +9 -27
  526. package/lib/MTA/MTA.cpp +4 -4
  527. package/lib/MemoryModel/PointerAnalysisImpl.cpp +10 -10
  528. package/lib/MemoryModel/PointsTo.cpp +23 -19
  529. package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +3 -4
  530. package/lib/SVF-LLVM/LLVMModule.cpp +32 -21
  531. package/lib/SVFIR/SVFIR.cpp +1 -1
  532. package/lib/SVFIR/SymbolTableInfo.cpp +4 -15
  533. package/lib/Util/Options.cpp +0 -6
  534. package/lib/WPA/AndersenSFR.cpp +1 -1
  535. package/lib/WPA/FlowSensitive.cpp +1 -1
  536. package/package.json +1 -1
  537. package/tools/CFL/cfl.cpp +5 -4
  538. package/tools/DDA/dda.cpp +3 -2
  539. package/tools/Example/svf-ex.cpp +3 -2
  540. package/tools/MTA/mta.cpp +6 -4
  541. package/tools/SABER/saber.cpp +7 -5
  542. package/tools/WPA/wpa.cpp +3 -2
@@ -355,6 +355,8 @@ Private Attributes</h2></td></tr>
355
355
  <tr class="separator:ae4c7b17d8da8278dca362af79f9f268d"><td class="memSeparator" colspan="2">&#160;</td></tr>
356
356
  <tr class="memitem:a22e2dd0fc78877bdedd207a40540a634"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MemSSA.html#ae1aca020147c270deca2a1241e3847d0">MemRegToCounterMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MemSSA.html#a22e2dd0fc78877bdedd207a40540a634">mr2CounterMap</a></td></tr>
357
357
  <tr class="separator:a22e2dd0fc78877bdedd207a40540a634"><td class="memSeparator" colspan="2">&#160;</td></tr>
358
+ <tr class="memitem:a6e5ac4f390528f8ee3cdc8e0e221ee71"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::unique_ptr&lt; <a class="el" href="classSVF_1_1MRVer.html">MRVer</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MemSSA.html#a6e5ac4f390528f8ee3cdc8e0e221ee71">usedMRVers</a></td></tr>
359
+ <tr class="separator:a6e5ac4f390528f8ee3cdc8e0e221ee71"><td class="memSeparator" colspan="2">&#160;</td></tr>
358
360
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
359
361
  <tr class="memitem:acf840b71b67cabe831f01f2d358f27fa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MemSSA.html#a37b84780f57cbee50cf957cfbab195c1">MRSet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MemSSA.html#acf840b71b67cabe831f01f2d358f27fa">usedRegs</a></td></tr>
360
362
  <tr class="memdesc:acf840b71b67cabe831f01f2d358f27fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">The following three set are used for prune SSA phi insertion. <a href="#acf840b71b67cabe831f01f2d358f27fa">More...</a><br /></td></tr>
@@ -908,7 +910,7 @@ Private Attributes</h2></td></tr>
908
910
  <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>
909
911
  <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>
910
912
  <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#l00123">MemSSA.h:123</a></div></div>
911
- <div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00446">SVFType.h:446</a></div></div>
913
+ <div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
912
914
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ac23f71c1307cda9cba44acc40059f0a3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac23f71c1307cda9cba44acc40059f0a3">SVF::PointerAnalysis::getAnalysisTy</a></div><div class="ttdeci">PTATY getAnalysisTy() const</div><div class="ttdoc">Type of pointer analysis. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00188">PointerAnalysis.h:188</a></div></div>
913
915
  <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>
914
916
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85adb3d4cbd8c38c1c498bc51198626a790"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85adb3d4cbd8c38c1c498bc51198626a790">SVF::PointerAnalysis::Default_PTA</a></div><div class="ttdoc">default pta without any analysis </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00090">PointerAnalysis.h:90</a></div></div>
@@ -947,8 +949,8 @@ Private Attributes</h2></td></tr>
947
949
 
948
950
  <p>Destructor. </p>
949
951
 
950
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00299">299</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
951
- <div class="fragment"><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a3d6096aeb4155444b532b02bb8559113">destroy</a>();</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; }</div><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#l00368">MemSSA.cpp:368</a></div></div>
952
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00301">301</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
953
+ <div class="fragment"><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; <a class="code" href="classSVF_1_1MemSSA.html#a3d6096aeb4155444b532b02bb8559113">destroy</a>();</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div><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#l00370">MemSSA.cpp:370</a></div></div>
952
954
  </div><!-- fragment -->
953
955
  </div>
954
956
  </div>
@@ -987,8 +989,8 @@ Private Attributes</h2></td></tr>
987
989
  </table>
988
990
  </div><div class="memdoc">
989
991
 
990
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00202">202</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
991
- <div class="fragment"><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">for</span> (MRSet::iterator iter = mrSet.begin(), eiter = mrSet.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#ad8011273feaf046bf7f3a3f3b904a91d">AddCallSiteCHI</a>(cs,*iter);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div><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#l00202">MemSSA.h:202</a></div></div>
992
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00204">204</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
993
+ <div class="fragment"><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="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>
992
994
  </div><!-- fragment -->
993
995
  </div>
994
996
  </div>
@@ -1026,11 +1028,11 @@ Private Attributes</h2></td></tr>
1026
1028
  </table>
1027
1029
  </div><div class="memdoc">
1028
1030
 
1029
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00231">231</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1030
- <div class="fragment"><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a56ffeb1f76c73766d06aedd60235c8d9">CALLCHI</a>* 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="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>[cs].insert(chi);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390">collectRegUses</a>(mr);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a35bdf8364527f3e556b0a32a8259ee45">collectRegDefs</a>(chi-&gt;getBasicBlock(),mr);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div><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#l00137">MemSSA.h:137</a></div></div>
1031
- <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#l00173">MemSSA.h:173</a></div></div>
1031
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00233">233</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1032
+ <div class="fragment"><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; <a class="code" href="classSVF_1_1MemSSA.html#a56ffeb1f76c73766d06aedd60235c8d9">CALLCHI</a>* 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; <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>[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#a35bdf8364527f3e556b0a32a8259ee45">collectRegDefs</a>(chi-&gt;getBasicBlock(),mr);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><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#l00137">MemSSA.h:137</a></div></div>
1033
+ <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>
1032
1034
  <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>
1033
- <div class="ttc" id="classSVF_1_1MemSSA_html_a35bdf8364527f3e556b0a32a8259ee45"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a35bdf8364527f3e556b0a32a8259ee45">SVF::MemSSA::collectRegDefs</a></div><div class="ttdeci">void collectRegDefs(const SVFBasicBlock *bb, const MemRegion *mr)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00178">MemSSA.h:178</a></div></div>
1035
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a35bdf8364527f3e556b0a32a8259ee45"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a35bdf8364527f3e556b0a32a8259ee45">SVF::MemSSA::collectRegDefs</a></div><div class="ttdeci">void collectRegDefs(const SVFBasicBlock *bb, const MemRegion *mr)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00180">MemSSA.h:180</a></div></div>
1034
1036
  </div><!-- fragment -->
1035
1037
  </div>
1036
1038
  </div>
@@ -1068,8 +1070,8 @@ Private Attributes</h2></td></tr>
1068
1070
  </table>
1069
1071
  </div><div class="memdoc">
1070
1072
 
1071
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00197">197</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1072
- <div class="fragment"><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">for</span> (MRSet::iterator iter = mrSet.begin(), eiter = mrSet.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a8f121e686d36748e4528d0ea66dcaa24">AddCallSiteMU</a>(cs,*iter);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div><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#l00197">MemSSA.h:197</a></div></div>
1073
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00199">199</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1074
+ <div class="fragment"><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="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>
1073
1075
  </div><!-- fragment -->
1074
1076
  </div>
1075
1077
  </div>
@@ -1107,8 +1109,8 @@ Private Attributes</h2></td></tr>
1107
1109
  </table>
1108
1110
  </div><div class="memdoc">
1109
1111
 
1110
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00225">225</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1111
- <div class="fragment"><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a7be50dd82679b45a8c400f5a12056a25">CALLMU</a>* 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="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>[cs].insert(mu);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390">collectRegUses</a>(mr);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><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#l00173">MemSSA.h:173</a></div></div>
1112
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00227">227</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1113
+ <div class="fragment"><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; <a class="code" href="classSVF_1_1MemSSA.html#a7be50dd82679b45a8c400f5a12056a25">CALLMU</a>* 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; <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>[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="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>
1112
1114
  <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>
1113
1115
  <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#l00136">MemSSA.h:136</a></div></div>
1114
1116
  </div><!-- fragment -->
@@ -1156,8 +1158,8 @@ Private Attributes</h2></td></tr>
1156
1158
 
1157
1159
  <p>Add methods for mus/chis/phis. </p>
1158
1160
 
1159
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00187">187</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1160
- <div class="fragment"><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">for</span> (MRSet::iterator iter = mrSet.begin(), eiter = mrSet.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a426a9befa6646c88fc5d11a09da2d27a">AddLoadMU</a>(bb,load,*iter);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div><div class="ttc" id="classSVF_1_1MemSSA_html_a426a9befa6646c88fc5d11a09da2d27a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a426a9befa6646c88fc5d11a09da2d27a">SVF::MemSSA::AddLoadMU</a></div><div class="ttdeci">void AddLoadMU(const SVFBasicBlock *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#l00187">MemSSA.h:187</a></div></div>
1161
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00189">189</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1162
+ <div class="fragment"><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#a426a9befa6646c88fc5d11a09da2d27a">AddLoadMU</a>(bb,load,*iter);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="ttc" id="classSVF_1_1MemSSA_html_a426a9befa6646c88fc5d11a09da2d27a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a426a9befa6646c88fc5d11a09da2d27a">SVF::MemSSA::AddLoadMU</a></div><div class="ttdeci">void AddLoadMU(const SVFBasicBlock *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>
1161
1163
  </div><!-- fragment -->
1162
1164
  </div>
1163
1165
  </div>
@@ -1201,8 +1203,8 @@ Private Attributes</h2></td></tr>
1201
1203
  </table>
1202
1204
  </div><div class="memdoc">
1203
1205
 
1204
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00212">212</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1205
- <div class="fragment"><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a4717016109fd3bc80f3095d11afff5b1">LOADMU</a>* 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="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>[load].insert(mu);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390">collectRegUses</a>(mr);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div><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#l00173">MemSSA.h:173</a></div></div>
1206
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00214">214</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1207
+ <div class="fragment"><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; <a class="code" href="classSVF_1_1MemSSA.html#a4717016109fd3bc80f3095d11afff5b1">LOADMU</a>* 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; <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>[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="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>
1206
1208
  <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#l00134">MemSSA.h:134</a></div></div>
1207
1209
  <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>
1208
1210
  </div><!-- fragment -->
@@ -1242,8 +1244,8 @@ Private Attributes</h2></td></tr>
1242
1244
  </table>
1243
1245
  </div><div class="memdoc">
1244
1246
 
1245
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00207">207</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1246
- <div class="fragment"><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">for</span> (MRSet::iterator iter = mrSet.begin(), eiter = mrSet.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#ae1e97a53e1267cf357515d64fd916e1d">AddMSSAPHI</a>(bb,*iter);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="ttc" id="classSVF_1_1MemSSA_html_ae1e97a53e1267cf357515d64fd916e1d"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ae1e97a53e1267cf357515d64fd916e1d">SVF::MemSSA::AddMSSAPHI</a></div><div class="ttdeci">void AddMSSAPHI(const SVFBasicBlock *bb, const MRSet &amp;mrSet)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00207">MemSSA.h:207</a></div></div>
1247
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00209">209</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1248
+ <div class="fragment"><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#ae1e97a53e1267cf357515d64fd916e1d">AddMSSAPHI</a>(bb,*iter);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="ttc" id="classSVF_1_1MemSSA_html_ae1e97a53e1267cf357515d64fd916e1d"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ae1e97a53e1267cf357515d64fd916e1d">SVF::MemSSA::AddMSSAPHI</a></div><div class="ttdeci">void AddMSSAPHI(const SVFBasicBlock *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>
1247
1249
  </div><!-- fragment -->
1248
1250
  </div>
1249
1251
  </div>
@@ -1281,8 +1283,8 @@ Private Attributes</h2></td></tr>
1281
1283
  </table>
1282
1284
  </div><div class="memdoc">
1283
1285
 
1284
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00238">238</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1285
- <div class="fragment"><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>[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="l00241"></a><span class="lineno"> 241</span>&#160; }</div><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#l00138">MemSSA.h:138</a></div></div>
1286
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00240">240</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1287
+ <div class="fragment"><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; <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>[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="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#l00138">MemSSA.h:138</a></div></div>
1286
1288
  <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>
1287
1289
  </div><!-- fragment -->
1288
1290
  </div>
@@ -1327,8 +1329,8 @@ Private Attributes</h2></td></tr>
1327
1329
  </table>
1328
1330
  </div><div class="memdoc">
1329
1331
 
1330
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00192">192</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1331
- <div class="fragment"><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">for</span> (MRSet::iterator iter = mrSet.begin(), eiter = mrSet.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a3a2dde7ee3aaf6f66038a6b5ae7255a0">AddStoreCHI</a>(bb,store,*iter);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="ttc" id="classSVF_1_1MemSSA_html_a3a2dde7ee3aaf6f66038a6b5ae7255a0"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a3a2dde7ee3aaf6f66038a6b5ae7255a0">SVF::MemSSA::AddStoreCHI</a></div><div class="ttdeci">void AddStoreCHI(const SVFBasicBlock *bb, const StoreStmt *store, const MRSet &amp;mrSet)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00192">MemSSA.h:192</a></div></div>
1332
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00194">194</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1333
+ <div class="fragment"><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#a3a2dde7ee3aaf6f66038a6b5ae7255a0">AddStoreCHI</a>(bb,store,*iter);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div><div class="ttc" id="classSVF_1_1MemSSA_html_a3a2dde7ee3aaf6f66038a6b5ae7255a0"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a3a2dde7ee3aaf6f66038a6b5ae7255a0">SVF::MemSSA::AddStoreCHI</a></div><div class="ttdeci">void AddStoreCHI(const SVFBasicBlock *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>
1332
1334
  </div><!-- fragment -->
1333
1335
  </div>
1334
1336
  </div>
@@ -1372,11 +1374,11 @@ Private Attributes</h2></td></tr>
1372
1374
  </table>
1373
1375
  </div><div class="memdoc">
1374
1376
 
1375
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00218">218</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1376
- <div class="fragment"><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a150e9d53ced1c143bba2d1026f739fa4">STORECHI</a>* 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="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>[store].insert(chi);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a8032c530b44e264544881d53d2fac390">collectRegUses</a>(mr);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a35bdf8364527f3e556b0a32a8259ee45">collectRegDefs</a>(bb,mr);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><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>
1377
- <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#l00173">MemSSA.h:173</a></div></div>
1377
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00220">220</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1378
+ <div class="fragment"><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a150e9d53ced1c143bba2d1026f739fa4">STORECHI</a>* 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; <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>[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#a35bdf8364527f3e556b0a32a8259ee45">collectRegDefs</a>(bb,mr);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div><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>
1379
+ <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>
1378
1380
  <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#l00135">MemSSA.h:135</a></div></div>
1379
- <div class="ttc" id="classSVF_1_1MemSSA_html_a35bdf8364527f3e556b0a32a8259ee45"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a35bdf8364527f3e556b0a32a8259ee45">SVF::MemSSA::collectRegDefs</a></div><div class="ttdeci">void collectRegDefs(const SVFBasicBlock *bb, const MemRegion *mr)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00178">MemSSA.h:178</a></div></div>
1381
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a35bdf8364527f3e556b0a32a8259ee45"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a35bdf8364527f3e556b0a32a8259ee45">SVF::MemSSA::collectRegDefs</a></div><div class="ttdeci">void collectRegDefs(const SVFBasicBlock *bb, const MemRegion *mr)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00180">MemSSA.h:180</a></div></div>
1380
1382
  </div><!-- fragment -->
1381
1383
  </div>
1382
1384
  </div>
@@ -1415,15 +1417,15 @@ Private Attributes</h2></td></tr>
1415
1417
  <div class="ttc" id="classSVF_1_1SVFValue_html_a68b40576b24c4cb81cc3ba75550f4654"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a68b40576b24c4cb81cc3ba75550f4654">SVF::SVFValue::getName</a></div><div class="ttdeci">virtual const std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00210">SVFValue.h:210</a></div></div>
1416
1418
  <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#l00250">MemSSA.cpp:250</a></div></div>
1417
1419
  <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#l00123">MemSSA.h:123</a></div></div>
1418
- <div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00446">SVFType.h:446</a></div></div>
1419
- <div class="ttc" id="SVFType_8h_html_a385e9d80a013723304b329454d32e8b1"><div class="ttname"><a href="SVFType_8h.html#a385e9d80a013723304b329454d32e8b1">DMSSA</a></div><div class="ttdeci">#define DMSSA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00435">SVFType.h:435</a></div></div>
1420
+ <div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
1421
+ <div class="ttc" id="SVFType_8h_html_a385e9d80a013723304b329454d32e8b1"><div class="ttname"><a href="SVFType_8h.html#a385e9d80a013723304b329454d32e8b1">DMSSA</a></div><div class="ttdeci">#define DMSSA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00433">SVFType.h:433</a></div></div>
1420
1422
  <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>
1421
1423
  <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>
1422
1424
  <div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
1423
1425
  <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#l00152">MemSSA.h:152</a></div></div>
1424
1426
  <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>
1425
1427
  <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#l00114">MemSSA.cpp:114</a></div></div>
1426
- <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00419">SVFType.h:419</a></div></div>
1428
+ <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00417">SVFType.h:417</a></div></div>
1427
1429
  <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>
1428
1430
  <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#l00202">MemSSA.cpp:202</a></div></div>
1429
1431
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00295">SVFUtil.h:295</a></div></div>
@@ -1464,8 +1466,8 @@ Private Attributes</h2></td></tr>
1464
1466
  </table>
1465
1467
  </div><div class="memdoc">
1466
1468
 
1467
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00178">178</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1468
- <div class="fragment"><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#ae64f97a984765a43f05df26b57a43a43">varKills</a>.insert(mr);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#add1d4ff17d0860906d2f5f7172176121">reg2BBMap</a>[mr].push_back(bb);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div><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#l00154">MemSSA.h:154</a></div></div>
1469
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00180">180</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1470
+ <div class="fragment"><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; <a class="code" href="classSVF_1_1MemSSA.html#ae64f97a984765a43f05df26b57a43a43">varKills</a>.insert(mr);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#add1d4ff17d0860906d2f5f7172176121">reg2BBMap</a>[mr].push_back(bb);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div><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#l00154">MemSSA.h:154</a></div></div>
1469
1471
  <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#l00152">MemSSA.h:152</a></div></div>
1470
1472
  </div><!-- fragment -->
1471
1473
  </div>
@@ -1496,8 +1498,8 @@ Private Attributes</h2></td></tr>
1496
1498
 
1497
1499
  <p>Collect region uses and region defs according to mus/chis, in order to insert phis. </p>
1498
1500
 
1499
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00173">173</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1500
- <div class="fragment"><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span> (0 == <a class="code" href="classSVF_1_1MemSSA.html#ae64f97a984765a43f05df26b57a43a43">varKills</a>.count(mr))</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#acf840b71b67cabe831f01f2d358f27fa">usedRegs</a>.insert(mr);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div><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#l00150">MemSSA.h:150</a></div></div>
1501
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00175">175</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1502
+ <div class="fragment"><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 == <a class="code" href="classSVF_1_1MemSSA.html#ae64f97a984765a43f05df26b57a43a43">varKills</a>.count(mr))</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#acf840b71b67cabe831f01f2d358f27fa">usedRegs</a>.insert(mr);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><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#l00150">MemSSA.h:150</a></div></div>
1501
1503
  <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#l00154">MemSSA.h:154</a></div></div>
1502
1504
  </div><!-- fragment -->
1503
1505
  </div>
@@ -1538,8 +1540,8 @@ Private Attributes</h2></td></tr>
1538
1540
  <div class="ttc" id="classSVF_1_1SVFValue_html_a68b40576b24c4cb81cc3ba75550f4654"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a68b40576b24c4cb81cc3ba75550f4654">SVF::SVFValue::getName</a></div><div class="ttdeci">virtual const std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00210">SVFValue.h:210</a></div></div>
1539
1541
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a364ad1e34d09a92cdc0cfe530c84880f"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a364ad1e34d09a92cdc0cfe530c84880f">SVF::MRGenerator::getStoreMRSet</a></div><div class="ttdeci">MRSet &amp; getStoreMRSet(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00451">MemRegion.h:451</a></div></div>
1540
1542
  <div class="ttc" id="classSVF_1_1MemSSA_html_a0e4aa3519d1805cfee0190ec43155beb"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a0e4aa3519d1805cfee0190ec43155beb">SVF::MemSSA::BBList</a></div><div class="ttdeci">std::vector&lt; const SVFBasicBlock * &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>
1541
- <div class="ttc" id="classSVF_1_1MemSSA_html_a3a2dde7ee3aaf6f66038a6b5ae7255a0"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a3a2dde7ee3aaf6f66038a6b5ae7255a0">SVF::MemSSA::AddStoreCHI</a></div><div class="ttdeci">void AddStoreCHI(const SVFBasicBlock *bb, const StoreStmt *store, const MRSet &amp;mrSet)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00192">MemSSA.h:192</a></div></div>
1542
- <div class="ttc" id="SVFType_8h_html_a385e9d80a013723304b329454d32e8b1"><div class="ttname"><a href="SVFType_8h.html#a385e9d80a013723304b329454d32e8b1">DMSSA</a></div><div class="ttdeci">#define DMSSA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00435">SVFType.h:435</a></div></div>
1543
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a3a2dde7ee3aaf6f66038a6b5ae7255a0"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a3a2dde7ee3aaf6f66038a6b5ae7255a0">SVF::MemSSA::AddStoreCHI</a></div><div class="ttdeci">void AddStoreCHI(const SVFBasicBlock *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>
1544
+ <div class="ttc" id="SVFType_8h_html_a385e9d80a013723304b329454d32e8b1"><div class="ttname"><a href="SVFType_8h.html#a385e9d80a013723304b329454d32e8b1">DMSSA</a></div><div class="ttdeci">#define DMSSA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00433">SVFType.h:433</a></div></div>
1543
1545
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a7d66a341805af7ec4e4893e5a7e0bc2d"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7d66a341805af7ec4e4893e5a7e0bc2d">SVF::MRGenerator::hasModMRSet</a></div><div class="ttdeci">bool hasModMRSet(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00459">MemRegion.h:459</a></div></div>
1544
1546
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a4ee12b940608c34ee81b07cdc8d35538"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a4ee12b940608c34ee81b07cdc8d35538">SVF::MRGenerator::getCallSiteModMRSet</a></div><div class="ttdeci">MRSet &amp; getCallSiteModMRSet(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00467">MemRegion.h:467</a></div></div>
1545
1547
  <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>
@@ -1550,7 +1552,7 @@ Private Attributes</h2></td></tr>
1550
1552
  <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#l00154">MemSSA.h:154</a></div></div>
1551
1553
  <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>
1552
1554
  <div class="ttc" id="classSVF_1_1MRGenerator_html_abcb903f5d5f323f319fc58f9df697f63"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#abcb903f5d5f323f319fc58f9df697f63">SVF::MRGenerator::hasSVFStmtList</a></div><div class="ttdeci">bool hasSVFStmtList(const SVFInstruction *inst)</div><div class="ttdoc">Whether this instruction has SVFIR Edge. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00150">MemRegion.cpp:150</a></div></div>
1553
- <div class="ttc" id="classSVF_1_1MemSSA_html_a426a9befa6646c88fc5d11a09da2d27a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a426a9befa6646c88fc5d11a09da2d27a">SVF::MemSSA::AddLoadMU</a></div><div class="ttdeci">void AddLoadMU(const SVFBasicBlock *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#l00187">MemSSA.h:187</a></div></div>
1555
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a426a9befa6646c88fc5d11a09da2d27a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a426a9befa6646c88fc5d11a09da2d27a">SVF::MemSSA::AddLoadMU</a></div><div class="ttdeci">void AddLoadMU(const SVFBasicBlock *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>
1554
1556
  <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>
1555
1557
  <div class="ttc" id="classSVF_1_1SVFFunction_html_a97b0ad9fd31d7982f44a839605566347"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a97b0ad9fd31d7982f44a839605566347">SVF::SVFFunction::isNotRetFunction</a></div><div class="ttdeci">bool isNotRetFunction() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00414">SVFValue.h:414</a></div></div>
1556
1558
  <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#l00383">SVFStatements.h:383</a></div></div>
@@ -1559,7 +1561,7 @@ Private Attributes</h2></td></tr>
1559
1561
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a7465657df2a376abc79147893d5e62aa"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7465657df2a376abc79147893d5e62aa">SVF::MRGenerator::getPAGEdgesFromInst</a></div><div class="ttdeci">SVFStmtList &amp; getPAGEdgesFromInst(const SVFInstruction *inst)</div><div class="ttdoc">Given an instruction, get all its the PAGEdge (statement) in sequence. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00159">MemRegion.cpp:159</a></div></div>
1560
1562
  <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>
1561
1563
  <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>
1562
- <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#l00202">MemSSA.h:202</a></div></div>
1564
+ <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>
1563
1565
  <div class="ttc" id="classSVF_1_1SVFFunction_html_a90e39f78f4908f8a8ef3948d9158791c"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a90e39f78f4908f8a8ef3948d9158791c">SVF::SVFFunction::getReachableBBs</a></div><div class="ttdeci">const std::vector&lt; const SVFBasicBlock * &gt; &amp; getReachableBBs() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00404">SVFValue.h:404</a></div></div>
1564
1566
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a4af4db2fe43846609d2ed1d7022b1be1"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a4af4db2fe43846609d2ed1d7022b1be1">SVF::SVFUtil::isNonInstricCallSite</a></div><div class="ttdeci">bool isNonInstricCallSite(const SVFInstruction *inst)</div><div class="ttdoc">Whether an instruction is a callsite in the application code, excluding llvm intrinsic calls...</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00186">SVFUtil.h:186</a></div></div>
1565
1567
  <div class="ttc" id="classSVF_1_1MRGenerator_html_acd4694a030755b7491a6ef55d9ba2682"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#acd4694a030755b7491a6ef55d9ba2682">SVF::MRGenerator::getCallSiteRefMRSet</a></div><div class="ttdeci">MRSet &amp; getCallSiteRefMRSet(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00463">MemRegion.h:463</a></div></div>
@@ -1570,11 +1572,11 @@ Private Attributes</h2></td></tr>
1570
1572
  <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>
1571
1573
  <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_a73b7029f85e3762033f49c953d4b95ca"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a73b7029f85e3762033f49c953d4b95ca">SVF::SVFBasicBlock::const_iterator</a></div><div class="ttdeci">std::vector&lt; const SVFInstruction * &gt;::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00476">SVFValue.h:476</a></div></div>
1572
1574
  <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>
1573
- <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00165">SVFIR.h:165</a></div></div>
1575
+ <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00163">SVFIR.h:163</a></div></div>
1574
1576
  <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#l00143">MemSSA.h:143</a></div></div>
1575
- <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#l00197">MemSSA.h:197</a></div></div>
1577
+ <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>
1576
1578
  <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>
1577
- <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00419">SVFType.h:419</a></div></div>
1579
+ <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00417">SVFType.h:417</a></div></div>
1578
1580
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a19da5768681a21c52a6c43761814a157"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a19da5768681a21c52a6c43761814a157">SVF::MRGenerator::getLoadMRSet</a></div><div class="ttdeci">MRSet &amp; getLoadMRSet(const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00447">MemRegion.h:447</a></div></div>
1579
1581
  <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>
1580
1582
  <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#l00140">MemSSA.h:140</a></div></div>
@@ -1607,8 +1609,8 @@ Private Attributes</h2></td></tr>
1607
1609
  <p>Release the memory. </p>
1608
1610
  <p>Clean up memory </p>
1609
1611
 
1610
- <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00368">368</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
1611
- <div class="fragment"><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;{</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"> 371</span>&#160; <span class="keywordflow">for</span> (LoadToMUSetMap::iterator iter = <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>.begin(), eiter =</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; {</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">for</span> (MUSet::iterator it = iter-&gt;second.begin(), eit =</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; iter-&gt;second.end(); it != eit; ++it)</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"> 377</span>&#160; <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; }</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"> 380</span>&#160;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">for</span> (StoreToChiSetMap::iterator iter = <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>.begin(), eiter =</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>.end(); iter != eiter; ++iter)</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">for</span> (CHISet::iterator it = iter-&gt;second.begin(), eit =</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; iter-&gt;second.end(); it != eit; ++it)</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; {</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; }</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;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">for</span> (CallSiteToMUSetMap::iterator iter = <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>.begin(),</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; eiter = <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>.end(); iter != eiter; ++iter)</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">for</span> (MUSet::iterator it = iter-&gt;second.begin(), eit =</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; iter-&gt;second.end(); it != eit; ++it)</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; {</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; }</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;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">for</span> (CallSiteToCHISetMap::iterator iter = <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>.begin(),</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; eiter = <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>.end(); iter != eiter; ++iter)</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">for</span> (CHISet::iterator it = iter-&gt;second.begin(), eit =</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; iter-&gt;second.end(); it != eit; ++it)</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; }</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"> 410</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">for</span> (FunToEntryChiSetMap::iterator iter = <a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>.begin(),</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; eiter = <a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>.end(); iter != eiter; ++iter)</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">for</span> (CHISet::iterator it = iter-&gt;second.begin(), eit =</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; iter-&gt;second.end(); it != eit; ++it)</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</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;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">for</span> (FunToReturnMuSetMap::iterator iter = <a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>.begin(),</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; eiter = <a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>.end(); iter != eiter; ++iter)</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">for</span> (MUSet::iterator it = iter-&gt;second.begin(), eit =</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; iter-&gt;second.end(); it != eit; ++it)</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</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;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">for</span> (BBToPhiSetMap::iterator iter = <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>.begin(), eiter =</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>.end(); iter != eiter; ++iter)</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">for</span> (PHISet::iterator it = iter-&gt;second.begin(), eit =</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; iter-&gt;second.end(); it != eit; ++it)</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; }</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;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1MemSSA.html#a4fc930040ec54eb60629da18fb6a4d04">stat</a>;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a4fc930040ec54eb60629da18fb6a4d04">stat</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;}</div><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#l00137">MemSSA.h:137</a></div></div>
1612
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00370">370</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
1613
+ <div class="fragment"><div class="line"><a name="l00371"></a><span class="lineno"> 371</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"> 373</span>&#160; <span class="keywordflow">for</span> (LoadToMUSetMap::iterator iter = <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>.begin(), eiter =</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>.end(); iter != eiter; ++iter)</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"> 376</span>&#160; <span class="keywordflow">for</span> (MUSet::iterator it = iter-&gt;second.begin(), eit =</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; iter-&gt;second.end(); it != eit; ++it)</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; {</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">delete</span> *it;</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"> 382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">for</span> (StoreToChiSetMap::iterator iter = <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>.begin(), eiter =</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>.end(); iter != eiter; ++iter)</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"> 386</span>&#160; <span class="keywordflow">for</span> (CHISet::iterator it = iter-&gt;second.begin(), eit =</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; iter-&gt;second.end(); it != eit; ++it)</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</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"> 392</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">for</span> (CallSiteToMUSetMap::iterator iter = <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>.begin(),</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; eiter = <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>.end(); iter != eiter; ++iter)</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">for</span> (MUSet::iterator it = iter-&gt;second.begin(), eit =</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; iter-&gt;second.end(); it != eit; ++it)</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; }</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">for</span> (CallSiteToCHISetMap::iterator iter = <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>.begin(),</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; eiter = <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>.end(); iter != eiter; ++iter)</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">for</span> (CHISet::iterator it = iter-&gt;second.begin(), eit =</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; iter-&gt;second.end(); it != eit; ++it)</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; {</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; }</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;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">for</span> (FunToEntryChiSetMap::iterator iter = <a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>.begin(),</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; eiter = <a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>.end(); iter != eiter; ++iter)</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"> 416</span>&#160; <span class="keywordflow">for</span> (CHISet::iterator it = iter-&gt;second.begin(), eit =</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; iter-&gt;second.end(); it != eit; ++it)</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; {</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</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;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">for</span> (FunToReturnMuSetMap::iterator iter = <a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>.begin(),</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; eiter = <a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>.end(); iter != eiter; ++iter)</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">for</span> (MUSet::iterator it = iter-&gt;second.begin(), eit =</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; iter-&gt;second.end(); it != eit; ++it)</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; }</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;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">for</span> (BBToPhiSetMap::iterator iter = <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>.begin(), eiter =</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>.end(); iter != eiter; ++iter)</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">for</span> (PHISet::iterator it = iter-&gt;second.begin(), eit =</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; iter-&gt;second.end(); it != eit; ++it)</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; {</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; }</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"> 442</span>&#160;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1MemSSA.html#a4fc930040ec54eb60629da18fb6a4d04">stat</a>;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a4fc930040ec54eb60629da18fb6a4d04">stat</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;}</div><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#l00137">MemSSA.h:137</a></div></div>
1612
1614
  <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#l00123">MemSSA.h:123</a></div></div>
1613
1615
  <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#l00138">MemSSA.h:138</a></div></div>
1614
1616
  <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>
@@ -1640,10 +1642,10 @@ Private Attributes</h2></td></tr>
1640
1642
  <p>Print Memory SSA. </p>
1641
1643
  <p>Print SSA </p>
1642
1644
 
1643
- <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00578">578</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
1644
- <div class="fragment"><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;{</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#a709371b13dcf500277f8bc275bdb23c7">SVFModule::iterator</a> fit = <a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ad8b71cebf46deaf60e2cd4f6d6bb9433">getModule</a>()-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a5486697889c6cca4f9f426650defc255">begin</a>(), efit = <a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ad8b71cebf46deaf60e2cd4f6d6bb9433">getModule</a>()-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a58d03edb6ff85f4943135478f113df31">end</a>();</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; fit != efit; ++fit)</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; {</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = *fit;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a4ac0e6b77fc9ccc18b269268b3cd046d">Options::MSSAFun</a>!=<span class="stringliteral">&quot;&quot;</span> &amp;&amp; <a class="code" href="classSVF_1_1Options.html#a4ac0e6b77fc9ccc18b269268b3cd046d">Options::MSSAFun</a>!=fun-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a68b40576b24c4cb81cc3ba75550f4654">getName</a>())</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; Out &lt;&lt; <span class="stringliteral">&quot;==========FUNCTION: &quot;</span> &lt;&lt; fun-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a68b40576b24c4cb81cc3ba75550f4654">getName</a>() &lt;&lt; <span class="stringliteral">&quot;==========\n&quot;</span>;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="comment">// dump function entry chi nodes</span></div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MemSSA.html#aec75259d035e3b5589e6fcbbcdfe4b2c">hasFuncEntryChi</a>(fun))</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; {</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4">CHISet</a> &amp; entry_chis = <a class="code" href="classSVF_1_1MemSSA.html#a10743fe9c116ee624387c0473815b800">getFuncEntryChiSet</a>(fun);</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">for</span> (CHISet::iterator chi_it = entry_chis.begin(); chi_it != entry_chis.end(); chi_it++)</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; {</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; (*chi_it)-&gt;dump();</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; }</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; }</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFFunction.html#aaec097379a345ab0e80b6a9c50508f48">SVFFunction::const_iterator</a> bit = fun-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a49a6e9c0661135ceda2dd4d84c4b24ae">begin</a>(), ebit = fun-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a2f274c3af098ae6a5919246b1b88e7b7">end</a>();</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; bit != ebit; ++bit)</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; {</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb = *bit;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; Out &lt;&lt; bb-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a68b40576b24c4cb81cc3ba75550f4654">getName</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a8a5d3597f3dba9744e170cc8c32bf25f">PHISet</a>&amp; phiSet = <a class="code" href="classSVF_1_1MemSSA.html#a82ab0d35c95aeefbc4dfc8eb59033dca">getPHISet</a>(bb);</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">for</span>(PHISet::iterator pi = phiSet.begin(), epi = phiSet.end(); pi !=epi; ++pi)</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; {</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; (*pi)-&gt;dump();</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; }</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordtype">bool</span> last_is_chi = <span class="keyword">false</span>;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFBasicBlock.html#a73b7029f85e3762033f49c953d4b95ca">SVFBasicBlock::const_iterator</a> it = bb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ac9cb2f17e42c40ca81b49c8b63a855fc">begin</a>(), eit = bb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ab65173c2668b80643cb96e8133e5ea0a">end</a>();</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; it != eit; ++it)</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; {</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst = *it;</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keywordtype">bool</span> isAppCall = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a4af4db2fe43846609d2ed1d7022b1be1">isNonInstricCallSite</a>(inst) &amp;&amp; !<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(inst);</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keywordflow">if</span> (isAppCall || <a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(inst))</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; {</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(inst);</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MemSSA.html#af5e356e82c3f93b65bd89908e0f465dc">hasMU</a>(cs))</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; {</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordflow">if</span> (!last_is_chi)</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; {</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; Out &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; }</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordflow">for</span> (MUSet::iterator mit = <a class="code" href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">getMUSet</a>(cs).begin(), emit = <a class="code" href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">getMUSet</a>(cs).end();</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; mit != emit; ++mit)</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; {</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; (*mit)-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#a3c193da05d6dee7313a141ae3ab43e97">dump</a>();</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; }</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; }</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; Out &lt;&lt; inst-&gt;<a class="code" href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">toString</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MemSSA.html#abfb338ce36ad46a9654d50dd6e2b07f1">hasCHI</a>(cs))</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; {</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keywordflow">for</span> (CHISet::iterator cit = <a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(cs).begin(), ecit = <a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(cs).end();</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; cit != ecit; ++cit)</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; {</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; (*cit)-&gt;dump();</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; }</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; Out &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; last_is_chi = <span class="keyword">true</span>;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; }</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; last_is_chi = <span class="keyword">false</span>;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; }</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; {</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordtype">bool</span> dump_preamble = <span class="keyword">false</span>;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a445d282890dbd2fb51e903255af1cc3e">SVFStmtList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>-&gt;<a class="code" href="classSVF_1_1MRGenerator.html#a7465657df2a376abc79147893d5e62aa">getPAGEdgesFromInst</a>(inst);</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keywordflow">for</span>(SVFStmtList::const_iterator bit = pagEdgeList.begin(), ebit= pagEdgeList.end();</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; bit!=ebit; ++bit)</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; {</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *bit;</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</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;(edge))</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; {</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">MUSet</a>&amp; muSet = <a class="code" href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">getMUSet</a>(load);</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keywordflow">for</span>(MUSet::iterator it = muSet.begin(), eit = muSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; {</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="keywordflow">if</span> (!dump_preamble &amp;&amp; !last_is_chi)</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; {</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; Out &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; dump_preamble = <span class="keyword">true</span>;</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; }</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; (*it)-&gt;dump();</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; }</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; }</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; }</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; Out &lt;&lt; inst-&gt;<a class="code" href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">toString</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <span class="keywordtype">bool</span> has_chi = <span class="keyword">false</span>;</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="keywordflow">for</span>(SVFStmtList::const_iterator bit = pagEdgeList.begin(), ebit= pagEdgeList.end();</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; bit!=ebit; ++bit)</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; {</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *bit;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</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;(edge))</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; {</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4">CHISet</a>&amp; chiSet = <a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(store);</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keywordflow">for</span>(CHISet::iterator it = chiSet.begin(), eit = chiSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; {</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; has_chi = <span class="keyword">true</span>;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; (*it)-&gt;dump();</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; }</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; }</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; }</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordflow">if</span> (has_chi)</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; {</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; Out &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; last_is_chi = <span class="keyword">true</span>;</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; }</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; last_is_chi = <span class="keyword">false</span>;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; }</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; }</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; }</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="comment">// dump return mu nodes</span></div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MemSSA.html#a3400d9a921672b3872656acecc3eac9f">hasReturnMu</a>(fun))</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; {</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">MUSet</a> &amp; return_mus = <a class="code" href="classSVF_1_1MemSSA.html#af8c38a7ff8da4206f19c038024606d93">getReturnMuSet</a>(fun);</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keywordflow">for</span> (MUSet::iterator mu_it = return_mus.begin(); mu_it != return_mus.end(); mu_it++)</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; {</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; (*mu_it)-&gt;dump();</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; }</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; }</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; }</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;}</div><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#l00383">MemSSA.h:383</a></div></div>
1645
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00580">580</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
1646
+ <div class="fragment"><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;{</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#a709371b13dcf500277f8bc275bdb23c7">SVFModule::iterator</a> fit = <a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ad8b71cebf46deaf60e2cd4f6d6bb9433">getModule</a>()-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a5486697889c6cca4f9f426650defc255">begin</a>(), efit = <a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ad8b71cebf46deaf60e2cd4f6d6bb9433">getModule</a>()-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a58d03edb6ff85f4943135478f113df31">end</a>();</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; fit != efit; ++fit)</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; {</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = *fit;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a4ac0e6b77fc9ccc18b269268b3cd046d">Options::MSSAFun</a>!=<span class="stringliteral">&quot;&quot;</span> &amp;&amp; <a class="code" href="classSVF_1_1Options.html#a4ac0e6b77fc9ccc18b269268b3cd046d">Options::MSSAFun</a>!=fun-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a68b40576b24c4cb81cc3ba75550f4654">getName</a>())</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; Out &lt;&lt; <span class="stringliteral">&quot;==========FUNCTION: &quot;</span> &lt;&lt; fun-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a68b40576b24c4cb81cc3ba75550f4654">getName</a>() &lt;&lt; <span class="stringliteral">&quot;==========\n&quot;</span>;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="comment">// dump function entry chi nodes</span></div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MemSSA.html#aec75259d035e3b5589e6fcbbcdfe4b2c">hasFuncEntryChi</a>(fun))</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; {</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4">CHISet</a> &amp; entry_chis = <a class="code" href="classSVF_1_1MemSSA.html#a10743fe9c116ee624387c0473815b800">getFuncEntryChiSet</a>(fun);</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">for</span> (CHISet::iterator chi_it = entry_chis.begin(); chi_it != entry_chis.end(); chi_it++)</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; {</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; (*chi_it)-&gt;dump();</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; }</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; }</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFFunction.html#aaec097379a345ab0e80b6a9c50508f48">SVFFunction::const_iterator</a> bit = fun-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a49a6e9c0661135ceda2dd4d84c4b24ae">begin</a>(), ebit = fun-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a2f274c3af098ae6a5919246b1b88e7b7">end</a>();</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; bit != ebit; ++bit)</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; {</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb = *bit;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; Out &lt;&lt; bb-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a68b40576b24c4cb81cc3ba75550f4654">getName</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a8a5d3597f3dba9744e170cc8c32bf25f">PHISet</a>&amp; phiSet = <a class="code" href="classSVF_1_1MemSSA.html#a82ab0d35c95aeefbc4dfc8eb59033dca">getPHISet</a>(bb);</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keywordflow">for</span>(PHISet::iterator pi = phiSet.begin(), epi = phiSet.end(); pi !=epi; ++pi)</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; {</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; (*pi)-&gt;dump();</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; }</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="keywordtype">bool</span> last_is_chi = <span class="keyword">false</span>;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFBasicBlock.html#a73b7029f85e3762033f49c953d4b95ca">SVFBasicBlock::const_iterator</a> it = bb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ac9cb2f17e42c40ca81b49c8b63a855fc">begin</a>(), eit = bb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ab65173c2668b80643cb96e8133e5ea0a">end</a>();</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; it != eit; ++it)</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; {</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst = *it;</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="keywordtype">bool</span> isAppCall = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a4af4db2fe43846609d2ed1d7022b1be1">isNonInstricCallSite</a>(inst) &amp;&amp; !<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(inst);</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keywordflow">if</span> (isAppCall || <a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(inst))</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; {</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(inst);</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MemSSA.html#af5e356e82c3f93b65bd89908e0f465dc">hasMU</a>(cs))</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; {</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">if</span> (!last_is_chi)</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; {</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; Out &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; }</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">for</span> (MUSet::iterator mit = <a class="code" href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">getMUSet</a>(cs).begin(), emit = <a class="code" href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">getMUSet</a>(cs).end();</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; mit != emit; ++mit)</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; {</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; (*mit)-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#a3c193da05d6dee7313a141ae3ab43e97">dump</a>();</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; }</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; }</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; Out &lt;&lt; inst-&gt;<a class="code" href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">toString</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MemSSA.html#abfb338ce36ad46a9654d50dd6e2b07f1">hasCHI</a>(cs))</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; {</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keywordflow">for</span> (CHISet::iterator cit = <a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(cs).begin(), ecit = <a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(cs).end();</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; cit != ecit; ++cit)</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; {</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; (*cit)-&gt;dump();</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; }</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; Out &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; last_is_chi = <span class="keyword">true</span>;</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; }</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; last_is_chi = <span class="keyword">false</span>;</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; }</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; {</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keywordtype">bool</span> dump_preamble = <span class="keyword">false</span>;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a445d282890dbd2fb51e903255af1cc3e">SVFStmtList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>-&gt;<a class="code" href="classSVF_1_1MRGenerator.html#a7465657df2a376abc79147893d5e62aa">getPAGEdgesFromInst</a>(inst);</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keywordflow">for</span>(SVFStmtList::const_iterator bit = pagEdgeList.begin(), ebit= pagEdgeList.end();</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; bit!=ebit; ++bit)</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; {</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *bit;</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</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;(edge))</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; {</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">MUSet</a>&amp; muSet = <a class="code" href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">getMUSet</a>(load);</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="keywordflow">for</span>(MUSet::iterator it = muSet.begin(), eit = muSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; {</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keywordflow">if</span> (!dump_preamble &amp;&amp; !last_is_chi)</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; {</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; Out &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; dump_preamble = <span class="keyword">true</span>;</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; }</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; (*it)-&gt;dump();</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; }</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; }</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; }</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; Out &lt;&lt; inst-&gt;<a class="code" href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">toString</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keywordtype">bool</span> has_chi = <span class="keyword">false</span>;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <span class="keywordflow">for</span>(SVFStmtList::const_iterator bit = pagEdgeList.begin(), ebit= pagEdgeList.end();</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; bit!=ebit; ++bit)</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; {</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *bit;</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</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;(edge))</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; {</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4">CHISet</a>&amp; chiSet = <a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(store);</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <span class="keywordflow">for</span>(CHISet::iterator it = chiSet.begin(), eit = chiSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; {</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; has_chi = <span class="keyword">true</span>;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; (*it)-&gt;dump();</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; }</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; }</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; }</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keywordflow">if</span> (has_chi)</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; {</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; Out &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; last_is_chi = <span class="keyword">true</span>;</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; }</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; last_is_chi = <span class="keyword">false</span>;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; }</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; }</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; }</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="comment">// dump return mu nodes</span></div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MemSSA.html#a3400d9a921672b3872656acecc3eac9f">hasReturnMu</a>(fun))</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; {</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">MUSet</a> &amp; return_mus = <a class="code" href="classSVF_1_1MemSSA.html#af8c38a7ff8da4206f19c038024606d93">getReturnMuSet</a>(fun);</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">for</span> (MUSet::iterator mu_it = return_mus.begin(); mu_it != return_mus.end(); mu_it++)</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; {</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; (*mu_it)-&gt;dump();</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; }</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; }</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; }</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;}</div><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#l00385">MemSSA.h:385</a></div></div>
1645
1647
  <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_ab65173c2668b80643cb96e8133e5ea0a"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ab65173c2668b80643cb96e8133e5ea0a">SVF::SVFBasicBlock::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00522">SVFValue.h:522</a></div></div>
1646
- <div class="ttc" id="classSVF_1_1MemSSA_html_a82ab0d35c95aeefbc4dfc8eb59033dca"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a82ab0d35c95aeefbc4dfc8eb59033dca">SVF::MemSSA::getPHISet</a></div><div class="ttdeci">PHISet &amp; getPHISet(const SVFBasicBlock *bb)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00395">MemSSA.h:395</a></div></div>
1648
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a82ab0d35c95aeefbc4dfc8eb59033dca"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a82ab0d35c95aeefbc4dfc8eb59033dca">SVF::MemSSA::getPHISet</a></div><div class="ttdeci">PHISet &amp; getPHISet(const SVFBasicBlock *bb)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00397">MemSSA.h:397</a></div></div>
1647
1649
  <div class="ttc" id="classSVF_1_1SVFFunction_html_aaec097379a345ab0e80b6a9c50508f48"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#aaec097379a345ab0e80b6a9c50508f48">SVF::SVFFunction::const_iterator</a></div><div class="ttdeci">std::vector&lt; const SVFBasicBlock * &gt;::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00262">SVFValue.h:262</a></div></div>
1648
1650
  <div class="ttc" id="classSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00570">SVFValue.h:570</a></div></div>
1649
1651
  <div class="ttc" id="classSVF_1_1SVFValue_html_a68b40576b24c4cb81cc3ba75550f4654"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a68b40576b24c4cb81cc3ba75550f4654">SVF::SVFValue::getName</a></div><div class="ttdeci">virtual const std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00210">SVFValue.h:210</a></div></div>
@@ -1653,23 +1655,23 @@ Private Attributes</h2></td></tr>
1653
1655
  <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>
1654
1656
  <div class="ttc" id="classSVF_1_1ICFG_html_aa41516cdd2be5066adf22798a4fe2213"><div class="ttname"><a href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00236">ICFG.cpp:236</a></div></div>
1655
1657
  <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>
1656
- <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#l00379">MemSSA.h:379</a></div></div>
1658
+ <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#l00381">MemSSA.h:381</a></div></div>
1657
1659
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ad8b71cebf46deaf60e2cd4f6d6bb9433"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ad8b71cebf46deaf60e2cd4f6d6bb9433">SVF::PointerAnalysis::getModule</a></div><div class="ttdeci">SVFModule * getModule() const</div><div class="ttdoc">Module. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00213">PointerAnalysis.h:213</a></div></div>
1658
1660
  <div class="ttc" id="classSVF_1_1SVFFunction_html_a49a6e9c0661135ceda2dd4d84c4b24ae"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a49a6e9c0661135ceda2dd4d84c4b24ae">SVF::SVFFunction::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00389">SVFValue.h:389</a></div></div>
1659
1661
  <div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00680">LLVMUtil.cpp:680</a></div></div>
1660
1662
  <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>
1661
1663
  <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#l00383">SVFStatements.h:383</a></div></div>
1662
1664
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
1663
- <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#l00358">MemSSA.h:358</a></div></div>
1664
- <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#l00323">MemSSA.h:323</a></div></div>
1665
+ <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#l00360">MemSSA.h:360</a></div></div>
1666
+ <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#l00325">MemSSA.h:325</a></div></div>
1665
1667
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a7465657df2a376abc79147893d5e62aa"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7465657df2a376abc79147893d5e62aa">SVF::MRGenerator::getPAGEdgesFromInst</a></div><div class="ttdeci">SVFStmtList &amp; getPAGEdgesFromInst(const SVFInstruction *inst)</div><div class="ttdoc">Given an instruction, get all its the PAGEdge (statement) in sequence. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00159">MemRegion.cpp:159</a></div></div>
1666
1668
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a93ac673b885633849fa484938405ca75"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">SVF::SVFUtil::isHeapAllocExtCall</a></div><div class="ttdeci">bool isHeapAllocExtCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00447">SVFUtil.h:447</a></div></div>
1667
- <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#l00362">MemSSA.h:362</a></div></div>
1669
+ <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#l00364">MemSSA.h:364</a></div></div>
1668
1670
  <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>
1669
1671
  <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>
1670
1672
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a4af4db2fe43846609d2ed1d7022b1be1"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a4af4db2fe43846609d2ed1d7022b1be1">SVF::SVFUtil::isNonInstricCallSite</a></div><div class="ttdeci">bool isNonInstricCallSite(const SVFInstruction *inst)</div><div class="ttdoc">Whether an instruction is a callsite in the application code, excluding llvm intrinsic calls...</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00186">SVFUtil.h:186</a></div></div>
1671
- <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#l00367">MemSSA.h:367</a></div></div>
1672
- <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#l00371">MemSSA.h:371</a></div></div>
1673
+ <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#l00369">MemSSA.h:369</a></div></div>
1674
+ <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#l00373">MemSSA.h:373</a></div></div>
1673
1675
  <div class="ttc" id="classSVF_1_1SVFModule_html_a58d03edb6ff85f4943135478f113df31"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a58d03edb6ff85f4943135478f113df31">SVF::SVFModule::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00135">SVFModule.h:135</a></div></div>
1674
1676
  <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_ac9cb2f17e42c40ca81b49c8b63a855fc"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ac9cb2f17e42c40ca81b49c8b63a855fc">SVF::SVFBasicBlock::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00517">SVFValue.h:517</a></div></div>
1675
1677
  <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#l00346">SVFStatements.h:346</a></div></div>
@@ -1678,13 +1680,13 @@ Private Attributes</h2></td></tr>
1678
1680
  <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_a73b7029f85e3762033f49c953d4b95ca"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a73b7029f85e3762033f49c953d4b95ca">SVF::SVFBasicBlock::const_iterator</a></div><div class="ttdeci">std::vector&lt; const SVFInstruction * &gt;::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00476">SVFValue.h:476</a></div></div>
1679
1681
  <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>
1680
1682
  <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>
1681
- <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00165">SVFIR.h:165</a></div></div>
1683
+ <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00163">SVFIR.h:163</a></div></div>
1682
1684
  <div class="ttc" id="classSVF_1_1SVFFunction_html_a2f274c3af098ae6a5919246b1b88e7b7"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a2f274c3af098ae6a5919246b1b88e7b7">SVF::SVFFunction::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00394">SVFValue.h:394</a></div></div>
1683
1685
  <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>
1684
1686
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00295">SVFUtil.h:295</a></div></div>
1685
1687
  <div class="ttc" id="classSVF_1_1ICFGNode_html_a3c193da05d6dee7313a141ae3ab43e97"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#a3c193da05d6dee7313a141ae3ab43e97">SVF::ICFGNode::dump</a></div><div class="ttdeci">void dump() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00070">ICFG.cpp:70</a></div></div>
1686
1688
  <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>
1687
- <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#l00334">MemSSA.h:334</a></div></div>
1689
+ <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#l00336">MemSSA.h:336</a></div></div>
1688
1690
  </div><!-- fragment -->
1689
1691
  </div>
1690
1692
  </div>
@@ -1704,8 +1706,8 @@ Private Attributes</h2></td></tr>
1704
1706
  </div><div class="memdoc">
1705
1707
  <p>Get PHI numbers </p>
1706
1708
 
1707
- <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00562">562</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
1708
- <div class="fragment"><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;{</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = 0;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; BBToPhiSetMap::const_iterator it = <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>.begin();</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; BBToPhiSetMap::const_iterator eit = <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>.end();</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">for</span> (; it != eit; it++)</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; {</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemSSA.html#a8a5d3597f3dba9744e170cc8c32bf25f">PHISet</a> &amp; phiSet = it-&gt;second;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; num+= phiSet.size();</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; }</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">return</span> num;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;}</div><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#l00138">MemSSA.h:138</a></div></div>
1709
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00564">564</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
1710
+ <div class="fragment"><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;{</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = 0;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; BBToPhiSetMap::const_iterator it = <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>.begin();</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; BBToPhiSetMap::const_iterator eit = <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>.end();</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">for</span> (; it != eit; it++)</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; {</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemSSA.html#a8a5d3597f3dba9744e170cc8c32bf25f">PHISet</a> &amp; phiSet = it-&gt;second;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; num+= phiSet.size();</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; }</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">return</span> num;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;}</div><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#l00138">MemSSA.h:138</a></div></div>
1709
1711
  <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="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
1710
1712
  <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>
1711
1713
  </div><!-- fragment -->
@@ -1734,8 +1736,8 @@ Private Attributes</h2></td></tr>
1734
1736
  </table>
1735
1737
  </div><div class="memdoc">
1736
1738
 
1737
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00427">427</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1738
- <div class="fragment"><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; }</div><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#l00138">MemSSA.h:138</a></div></div>
1739
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00429">429</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1740
+ <div class="fragment"><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; }</div><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#l00138">MemSSA.h:138</a></div></div>
1739
1741
  </div><!-- fragment -->
1740
1742
  </div>
1741
1743
  </div>
@@ -1755,8 +1757,8 @@ Private Attributes</h2></td></tr>
1755
1757
  </div><div class="memdoc">
1756
1758
  <p>Get <a class="el" href="classSVF_1_1CallCHI.html">CallCHI</a> numbers </p>
1757
1759
 
1758
- <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00545">545</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
1759
- <div class="fragment"><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;{</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = 0;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; CallSiteToCHISetMap::const_iterator it = <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>.begin();</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; CallSiteToCHISetMap::const_iterator eit = <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>.end();</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">for</span> (; it != eit; it++)</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; {</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4">CHISet</a> &amp; chiSet = it-&gt;second;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; num+= chiSet.size();</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; }</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">return</span> num;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;}</div><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#l00137">MemSSA.h:137</a></div></div>
1760
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00547">547</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
1761
+ <div class="fragment"><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;{</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = 0;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; CallSiteToCHISetMap::const_iterator it = <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>.begin();</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; CallSiteToCHISetMap::const_iterator eit = <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>.end();</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keywordflow">for</span> (; it != eit; it++)</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; {</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4">CHISet</a> &amp; chiSet = it-&gt;second;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; num+= chiSet.size();</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; }</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">return</span> num;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;}</div><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#l00137">MemSSA.h:137</a></div></div>
1760
1762
  <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="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
1761
1763
  <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>
1762
1764
  </div><!-- fragment -->
@@ -1778,8 +1780,8 @@ Private Attributes</h2></td></tr>
1778
1780
  </div><div class="memdoc">
1779
1781
  <p>Get <a class="el" href="classSVF_1_1CallMU.html">CallMU</a> numbers </p>
1780
1782
 
1781
- <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00528">528</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
1782
- <div class="fragment"><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;{</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = 0;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; CallSiteToMUSetMap::const_iterator it = <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>.begin();</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; CallSiteToMUSetMap::const_iterator eit = <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>.end();</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">for</span> (; it != eit; it++)</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; {</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">MUSet</a> &amp; muSet = it-&gt;second;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; num+= muSet.size();</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; }</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">return</span> num;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;}</div><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="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
1783
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00530">530</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
1784
+ <div class="fragment"><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;{</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = 0;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; CallSiteToMUSetMap::const_iterator it = <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>.begin();</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; CallSiteToMUSetMap::const_iterator eit = <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>.end();</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">for</span> (; it != eit; it++)</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; {</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">MUSet</a> &amp; muSet = it-&gt;second;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; num+= muSet.size();</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; }</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">return</span> num;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;}</div><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="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
1783
1785
  <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>
1784
1786
  <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#l00136">MemSSA.h:136</a></div></div>
1785
1787
  </div><!-- fragment -->
@@ -1808,8 +1810,8 @@ Private Attributes</h2></td></tr>
1808
1810
  </table>
1809
1811
  </div><div class="memdoc">
1810
1812
 
1811
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00423">423</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1812
- <div class="fragment"><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; {</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; }</div><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#l00137">MemSSA.h:137</a></div></div>
1813
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00425">425</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1814
+ <div class="fragment"><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div><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#l00137">MemSSA.h:137</a></div></div>
1813
1815
  </div><!-- fragment -->
1814
1816
  </div>
1815
1817
  </div>
@@ -1836,8 +1838,8 @@ Private Attributes</h2></td></tr>
1836
1838
  </table>
1837
1839
  </div><div class="memdoc">
1838
1840
 
1839
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00419">419</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1840
- <div class="fragment"><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; {</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div><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#l00136">MemSSA.h:136</a></div></div>
1841
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00421">421</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1842
+ <div class="fragment"><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div><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#l00136">MemSSA.h:136</a></div></div>
1841
1843
  </div><!-- fragment -->
1842
1844
  </div>
1843
1845
  </div>
@@ -1865,8 +1867,8 @@ Private Attributes</h2></td></tr>
1865
1867
  </table>
1866
1868
  </div><div class="memdoc">
1867
1869
 
1868
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00383">383</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1869
- <div class="fragment"><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>[st];</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; }</div><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#l00135">MemSSA.h:135</a></div></div>
1870
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00385">385</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1871
+ <div class="fragment"><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; {</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>[st];</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; }</div><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#l00135">MemSSA.h:135</a></div></div>
1870
1872
  </div><!-- fragment -->
1871
1873
  </div>
1872
1874
  </div>
@@ -1894,8 +1896,8 @@ Private Attributes</h2></td></tr>
1894
1896
  </table>
1895
1897
  </div><div class="memdoc">
1896
1898
 
1897
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00391">391</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1898
- <div class="fragment"><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; {</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>[cs];</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; }</div><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#l00137">MemSSA.h:137</a></div></div>
1899
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00393">393</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1900
+ <div class="fragment"><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; {</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>[cs];</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div><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#l00137">MemSSA.h:137</a></div></div>
1899
1901
  </div><!-- fragment -->
1900
1902
  </div>
1901
1903
  </div>
@@ -1923,8 +1925,8 @@ Private Attributes</h2></td></tr>
1923
1925
  </table>
1924
1926
  </div><div class="memdoc">
1925
1927
 
1926
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00367">367</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1927
- <div class="fragment"><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; {</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>[fun];</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; }</div><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#l00140">MemSSA.h:140</a></div></div>
1928
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00369">369</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
1929
+ <div class="fragment"><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>[fun];</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; }</div><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#l00140">MemSSA.h:140</a></div></div>
1928
1930
  </div><!-- fragment -->
1929
1931
  </div>
1930
1932
  </div>
@@ -1944,8 +1946,8 @@ Private Attributes</h2></td></tr>
1944
1946
  </div><div class="memdoc">
1945
1947
  <p>Get <a class="el" href="classSVF_1_1EntryCHI.html">EntryCHI</a> numbers </p>
1946
1948
 
1947
- <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00494">494</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
1948
- <div class="fragment"><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;{</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = 0;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; FunToEntryChiSetMap::const_iterator it = <a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>.begin();</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; FunToEntryChiSetMap::const_iterator eit = <a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>.end();</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">for</span> (; it != eit; it++)</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; {</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4">CHISet</a>&amp; chiSet = it-&gt;second;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; num += chiSet.size();</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; }</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">return</span> num;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;}</div><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="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
1949
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00496">496</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
1950
+ <div class="fragment"><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;{</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = 0;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; FunToEntryChiSetMap::const_iterator it = <a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>.begin();</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; FunToEntryChiSetMap::const_iterator eit = <a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>.end();</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">for</span> (; it != eit; it++)</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; {</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4">CHISet</a>&amp; chiSet = it-&gt;second;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; num += chiSet.size();</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; }</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">return</span> num;</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;}</div><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="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
1949
1951
  <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>
1950
1952
  <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#l00140">MemSSA.h:140</a></div></div>
1951
1953
  </div><!-- fragment -->
@@ -1967,8 +1969,8 @@ Private Attributes</h2></td></tr>
1967
1969
  </div><div class="memdoc">
1968
1970
  <p>Get <a class="el" href="classSVF_1_1RetMU.html">RetMU</a> numbers </p>
1969
1971
 
1970
- <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00511">511</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
1971
- <div class="fragment"><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;{</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = 0;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; FunToReturnMuSetMap::const_iterator it = <a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>.begin();</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; FunToReturnMuSetMap::const_iterator eit = <a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>.end();</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">for</span> (; it != eit; it++)</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; {</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">MUSet</a> &amp; muSet = it-&gt;second;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; num+= muSet.size();</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; }</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">return</span> num;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;}</div><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="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
1972
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00513">513</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
1973
+ <div class="fragment"><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;{</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = 0;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; FunToReturnMuSetMap::const_iterator it = <a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>.begin();</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; FunToReturnMuSetMap::const_iterator eit = <a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>.end();</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">for</span> (; it != eit; it++)</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; {</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">MUSet</a> &amp; muSet = it-&gt;second;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; num+= muSet.size();</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; }</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">return</span> num;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;}</div><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="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
1972
1974
  <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>
1973
1975
  <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#l00141">MemSSA.h:141</a></div></div>
1974
1976
  </div><!-- fragment -->
@@ -1997,8 +1999,8 @@ Private Attributes</h2></td></tr>
1997
1999
  </table>
1998
2000
  </div><div class="memdoc">
1999
2001
 
2000
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00415">415</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2001
- <div class="fragment"><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</div><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#l00140">MemSSA.h:140</a></div></div>
2002
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00417">417</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2003
+ <div class="fragment"><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; {</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div><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#l00140">MemSSA.h:140</a></div></div>
2002
2004
  </div><!-- fragment -->
2003
2005
  </div>
2004
2006
  </div>
@@ -2025,8 +2027,8 @@ Private Attributes</h2></td></tr>
2025
2027
  </table>
2026
2028
  </div><div class="memdoc">
2027
2029
 
2028
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00411">411</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2029
- <div class="fragment"><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; {</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; }</div><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#l00141">MemSSA.h:141</a></div></div>
2030
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00413">413</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2031
+ <div class="fragment"><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; }</div><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#l00141">MemSSA.h:141</a></div></div>
2030
2032
  </div><!-- fragment -->
2031
2033
  </div>
2032
2034
  </div>
@@ -2048,8 +2050,8 @@ Private Attributes</h2></td></tr>
2048
2050
  <p>Stat methods. </p>
2049
2051
  <p>Get loadMU numbers </p>
2050
2052
 
2051
- <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00460">460</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
2052
- <div class="fragment"><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; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = 0;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; LoadToMUSetMap::const_iterator it = <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>.begin();</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; LoadToMUSetMap::const_iterator eit = <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>.end();</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">for</span> (; it != eit; it++)</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">MUSet</a> &amp; muSet = it-&gt;second;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; num+= muSet.size();</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; }</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">return</span> num;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;}</div><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="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
2053
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00462">462</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
2054
+ <div class="fragment"><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;{</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = 0;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; LoadToMUSetMap::const_iterator it = <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>.begin();</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; LoadToMUSetMap::const_iterator eit = <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>.end();</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">for</span> (; it != eit; it++)</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; {</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">MUSet</a> &amp; muSet = it-&gt;second;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; num+= muSet.size();</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; }</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">return</span> num;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;}</div><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="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
2053
2055
  <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#l00134">MemSSA.h:134</a></div></div>
2054
2056
  <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>
2055
2057
  </div><!-- fragment -->
@@ -2078,8 +2080,8 @@ Private Attributes</h2></td></tr>
2078
2080
  </table>
2079
2081
  </div><div class="memdoc">
2080
2082
 
2081
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00403">403</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2082
- <div class="fragment"><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; {</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; }</div><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#l00134">MemSSA.h:134</a></div></div>
2083
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00405">405</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2084
+ <div class="fragment"><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; }</div><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#l00134">MemSSA.h:134</a></div></div>
2083
2085
  </div><!-- fragment -->
2084
2086
  </div>
2085
2087
  </div>
@@ -2108,8 +2110,8 @@ Private Attributes</h2></td></tr>
2108
2110
 
2109
2111
  <p>Return <a class="el" href="classSVF_1_1MRGenerator.html">MRGenerator</a>. </p>
2110
2112
 
2111
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00311">311</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2112
- <div class="fragment"><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; }</div><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>
2113
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00313">313</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2114
+ <div class="fragment"><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><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>
2113
2115
  </div><!-- fragment -->
2114
2116
  </div>
2115
2117
  </div>
@@ -2139,8 +2141,8 @@ Private Attributes</h2></td></tr>
2139
2141
 
2140
2142
  <p>Get methods of mu/chi/phi. </p>
2141
2143
 
2142
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00379">379</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2143
- <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>[ld];</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; }</div><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#l00134">MemSSA.h:134</a></div></div>
2144
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00381">381</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2145
+ <div class="fragment"><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; {</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>[ld];</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div><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#l00134">MemSSA.h:134</a></div></div>
2144
2146
  </div><!-- fragment -->
2145
2147
  </div>
2146
2148
  </div>
@@ -2168,8 +2170,8 @@ Private Attributes</h2></td></tr>
2168
2170
  </table>
2169
2171
  </div><div class="memdoc">
2170
2172
 
2171
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00387">387</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2172
- <div class="fragment"><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>[cs];</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</div><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#l00136">MemSSA.h:136</a></div></div>
2173
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00389">389</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2174
+ <div class="fragment"><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; {</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>[cs];</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div><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#l00136">MemSSA.h:136</a></div></div>
2173
2175
  </div><!-- fragment -->
2174
2176
  </div>
2175
2177
  </div>
@@ -2228,8 +2230,8 @@ Private Attributes</h2></td></tr>
2228
2230
  </table>
2229
2231
  </div><div class="memdoc">
2230
2232
 
2231
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00395">395</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2232
- <div class="fragment"><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; {</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>[bb];</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; }</div><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#l00138">MemSSA.h:138</a></div></div>
2233
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00397">397</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2234
+ <div class="fragment"><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>[bb];</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; }</div><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#l00138">MemSSA.h:138</a></div></div>
2233
2235
  </div><!-- fragment -->
2234
2236
  </div>
2235
2237
  </div>
@@ -2258,8 +2260,8 @@ Private Attributes</h2></td></tr>
2258
2260
 
2259
2261
  <p>Return PTA. </p>
2260
2262
 
2261
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00306">306</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2262
- <div class="fragment"><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a>;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; }</div><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>
2263
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00308">308</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2264
+ <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div><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>
2263
2265
  </div><!-- fragment -->
2264
2266
  </div>
2265
2267
  </div>
@@ -2287,8 +2289,8 @@ Private Attributes</h2></td></tr>
2287
2289
  </table>
2288
2290
  </div><div class="memdoc">
2289
2291
 
2290
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00371">371</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2291
- <div class="fragment"><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; {</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>[fun];</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div><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#l00141">MemSSA.h:141</a></div></div>
2292
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00373">373</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2293
+ <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>[fun];</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; }</div><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#l00141">MemSSA.h:141</a></div></div>
2292
2294
  </div><!-- fragment -->
2293
2295
  </div>
2294
2296
  </div>
@@ -2308,8 +2310,8 @@ Private Attributes</h2></td></tr>
2308
2310
  </div><div class="memdoc">
2309
2311
  <p>Get <a class="el" href="classSVF_1_1StoreCHI.html">StoreCHI</a> numbers </p>
2310
2312
 
2311
- <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00477">477</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
2312
- <div class="fragment"><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;{</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = 0;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; StoreToChiSetMap::const_iterator it = <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>.begin();</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; StoreToChiSetMap::const_iterator eit = <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>.end();</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">for</span> (; it != eit; it++)</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; {</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4">CHISet</a>&amp; chiSet = it-&gt;second;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; num += chiSet.size();</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; }</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">return</span> num;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;}</div><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="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
2313
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00479">479</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
2314
+ <div class="fragment"><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;{</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = 0;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; StoreToChiSetMap::const_iterator it = <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>.begin();</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; StoreToChiSetMap::const_iterator eit = <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>.end();</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">for</span> (; it != eit; it++)</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; {</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4">CHISet</a>&amp; chiSet = it-&gt;second;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; num += chiSet.size();</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; }</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">return</span> num;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;}</div><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="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
2313
2315
  <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>
2314
2316
  <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#l00135">MemSSA.h:135</a></div></div>
2315
2317
  </div><!-- fragment -->
@@ -2338,8 +2340,8 @@ Private Attributes</h2></td></tr>
2338
2340
  </table>
2339
2341
  </div><div class="memdoc">
2340
2342
 
2341
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00407">407</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2342
- <div class="fragment"><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; {</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; }</div><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#l00135">MemSSA.h:135</a></div></div>
2343
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00409">409</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2344
+ <div class="fragment"><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; }</div><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#l00135">MemSSA.h:135</a></div></div>
2343
2345
  </div><!-- fragment -->
2344
2346
  </div>
2345
2347
  </div>
@@ -2369,8 +2371,8 @@ Private Attributes</h2></td></tr>
2369
2371
 
2370
2372
  <p>Get the last version of the SSA ver of memory region. </p>
2371
2373
 
2372
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00164">164</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2373
- <div class="fragment"><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; std::vector&lt;MRVer*&gt; &amp;stack = <a class="code" href="classSVF_1_1MemSSA.html#ae4c7b17d8da8278dca362af79f9f268d">mr2VerStackMap</a>[mr];</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; assert(!stack.empty() &amp;&amp; <span class="stringliteral">&quot;stack is empty!!&quot;</span>);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span> stack.back();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><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#l00143">MemSSA.h:143</a></div></div>
2374
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00166">166</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2375
+ <div class="fragment"><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 = <a class="code" href="classSVF_1_1MemSSA.html#ae4c7b17d8da8278dca362af79f9f268d">mr2VerStackMap</a>[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="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#l00143">MemSSA.h:143</a></div></div>
2374
2376
  </div><!-- fragment -->
2375
2377
  </div>
2376
2378
  </div>
@@ -2398,8 +2400,8 @@ Private Attributes</h2></td></tr>
2398
2400
  </table>
2399
2401
  </div><div class="memdoc">
2400
2402
 
2401
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00334">334</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2402
- <div class="fragment"><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; <span class="keywordflow">if</span> (<span class="keyword">const</span> StoreStmt* store = SVFUtil::dyn_cast&lt;StoreStmt&gt;(</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; inst))</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordtype">bool</span> has_store = <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>.count(store) != 0;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; assert(has_store &amp;&amp; <span class="stringliteral">&quot;not associated with mem region!&quot;</span>);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">return</span> has_store;</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"> 343</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div><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#l00135">MemSSA.h:135</a></div></div>
2403
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00336">336</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2404
+ <div class="fragment"><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> StoreStmt* store = SVFUtil::dyn_cast&lt;StoreStmt&gt;(</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; inst))</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; {</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordtype">bool</span> has_store = <a class="code" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">store2ChiSetMap</a>.count(store) != 0;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; assert(has_store &amp;&amp; <span class="stringliteral">&quot;not associated with mem region!&quot;</span>);</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">return</span> has_store;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; }</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div><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#l00135">MemSSA.h:135</a></div></div>
2403
2405
  </div><!-- fragment -->
2404
2406
  </div>
2405
2407
  </div>
@@ -2427,8 +2429,8 @@ Private Attributes</h2></td></tr>
2427
2429
  </table>
2428
2430
  </div><div class="memdoc">
2429
2431
 
2430
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00350">350</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2431
- <div class="fragment"><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">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>.find(cs)!=<a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>.end();</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div><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#l00137">MemSSA.h:137</a></div></div>
2432
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00352">352</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2433
+ <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>.find(cs)!=<a class="code" href="classSVF_1_1MemSSA.html#a1be5a6776c8785f26573b597881c8195">callsiteToChiSetMap</a>.end();</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; }</div><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#l00137">MemSSA.h:137</a></div></div>
2432
2434
  </div><!-- fragment -->
2433
2435
  </div>
2434
2436
  </div>
@@ -2458,8 +2460,8 @@ Private Attributes</h2></td></tr>
2458
2460
 
2459
2461
  <p>Has function entry chi or return mu. </p>
2460
2462
 
2461
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00358">358</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2462
- <div class="fragment"><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; {</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>.find(fun) != <a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>.end());</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; }</div><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#l00140">MemSSA.h:140</a></div></div>
2463
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00360">360</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2464
+ <div class="fragment"><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; {</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>.find(fun) != <a class="code" href="classSVF_1_1MemSSA.html#a59314f6ce17919574d687a08a38b55ec">funToEntryChiSetMap</a>.end());</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; }</div><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#l00140">MemSSA.h:140</a></div></div>
2463
2465
  </div><!-- fragment -->
2464
2466
  </div>
2465
2467
  </div>
@@ -2489,8 +2491,8 @@ Private Attributes</h2></td></tr>
2489
2491
 
2490
2492
  <p>Has mu/chi methods. </p>
2491
2493
 
2492
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00323">323</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2493
- <div class="fragment"><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; {</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> LoadStmt* load = SVFUtil::dyn_cast&lt;LoadStmt&gt;(inst))</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; {</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordtype">bool</span> hasMu = <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>.count(load) != 0;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; assert(hasMu &amp;&amp; <span class="stringliteral">&quot;not associated with mem region!&quot;</span>);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">return</span> hasMu;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; }</div><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#l00134">MemSSA.h:134</a></div></div>
2494
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00325">325</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2495
+ <div class="fragment"><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; {</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> LoadStmt* load = SVFUtil::dyn_cast&lt;LoadStmt&gt;(inst))</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordtype">bool</span> hasMu = <a class="code" href="classSVF_1_1MemSSA.html#a5cf94edea3a5c35b3c1d9c6ae4b5f9d6">load2MuSetMap</a>.count(load) != 0;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; assert(hasMu &amp;&amp; <span class="stringliteral">&quot;not associated with mem region!&quot;</span>);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">return</span> hasMu;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; }</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div><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#l00134">MemSSA.h:134</a></div></div>
2494
2496
  </div><!-- fragment -->
2495
2497
  </div>
2496
2498
  </div>
@@ -2518,8 +2520,8 @@ Private Attributes</h2></td></tr>
2518
2520
  </table>
2519
2521
  </div><div class="memdoc">
2520
2522
 
2521
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00346">346</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2522
- <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>.find(cs)!=<a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>.end();</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; }</div><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#l00136">MemSSA.h:136</a></div></div>
2523
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00348">348</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2524
+ <div class="fragment"><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; {</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>.find(cs)!=<a class="code" href="classSVF_1_1MemSSA.html#aba54e534d18f68fbb97b26befd06ba1a">callsiteToMuSetMap</a>.end();</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; }</div><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#l00136">MemSSA.h:136</a></div></div>
2523
2525
  </div><!-- fragment -->
2524
2526
  </div>
2525
2527
  </div>
@@ -2547,8 +2549,8 @@ Private Attributes</h2></td></tr>
2547
2549
  </table>
2548
2550
  </div><div class="memdoc">
2549
2551
 
2550
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00399">399</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2551
- <div class="fragment"><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; {</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>.find(bb)!=<a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>.end();</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; }</div><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#l00138">MemSSA.h:138</a></div></div>
2552
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00401">401</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2553
+ <div class="fragment"><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; {</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>.find(bb)!=<a class="code" href="classSVF_1_1MemSSA.html#a190061a6f7423461f4292fc326330f23">bb2PhiSetMap</a>.end();</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; }</div><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#l00138">MemSSA.h:138</a></div></div>
2552
2554
  </div><!-- fragment -->
2553
2555
  </div>
2554
2556
  </div>
@@ -2576,8 +2578,8 @@ Private Attributes</h2></td></tr>
2576
2578
  </table>
2577
2579
  </div><div class="memdoc">
2578
2580
 
2579
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00362">362</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2580
- <div class="fragment"><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; {</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>.find(fun) != <a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>.end());</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div><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#l00141">MemSSA.h:141</a></div></div>
2581
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00364">364</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2582
+ <div class="fragment"><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>.find(fun) != <a class="code" href="classSVF_1_1MemSSA.html#abae2396bf8a37a22be9365d368fe455c">funToReturnMuSetMap</a>.end());</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div><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#l00141">MemSSA.h:141</a></div></div>
2581
2583
  </div><!-- fragment -->
2582
2584
  </div>
2583
2585
  </div>
@@ -2611,20 +2613,20 @@ Private Attributes</h2></td></tr>
2611
2613
  <div class="fragment"><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;{</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a385e9d80a013723304b329454d32e8b1">DMSSA</a>,</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t insert phi for function &quot;</span> &lt;&lt; fun.<a class="code" href="classSVF_1_1SVFValue.html#a68b40576b24c4cb81cc3ba75550f4654">getName</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFBasicBlock*,Set&lt;const SVFBasicBlock*&gt;</a>&gt;&amp; df = fun.<a class="code" href="classSVF_1_1SVFFunction.html#a65d9c963b658fbcc67bdf949d5644e65">getDomFrontierMap</a>();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="comment">// record whether a phi of mr has already been inserted into the bb.</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#acfe05b5b026ed41039540b11fe345734">BBToMRSetMap</a> bb2MRSetMap;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="comment">// start inserting phi node</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">for</span> (MRSet::iterator iter = <a class="code" href="classSVF_1_1MemSSA.html#acf840b71b67cabe831f01f2d358f27fa">usedRegs</a>.begin(), eiter = <a class="code" href="classSVF_1_1MemSSA.html#acf840b71b67cabe831f01f2d358f27fa">usedRegs</a>.end();</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; iter != eiter; ++iter)</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; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr = *iter;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a0e4aa3519d1805cfee0190ec43155beb">BBList</a> bbs = <a class="code" href="classSVF_1_1MemSSA.html#add1d4ff17d0860906d2f5f7172176121">reg2BBMap</a>[mr];</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">while</span> (!bbs.empty())</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"> 221</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb = bbs.<a class="code" href="classSVF_1_1SVFBasicBlock.html#ad05f85ce931d4479f71d1947a25599dc">back</a>();</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; bbs.pop_back();</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFBasicBlock*,Set&lt;const SVFBasicBlock*&gt;</a>&gt;::const_iterator it = df.find(bb);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">if</span>(it == df.end())</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(<span class="stringliteral">&quot;bb not in the dominance frontier map??&quot;</span>);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">continue</span>;</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; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const SVFBasicBlock*&gt;</a>&amp; domSet = it-&gt;second;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* pbb : domSet)</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="comment">// if we never insert this phi node before</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">if</span> (0 == bb2MRSetMap[pbb].<a class="code" href="cJSON_8h.html#ad43c3812e6d13e0518d9f8b8f463ffcf">count</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; bb2MRSetMap[pbb].insert(mr);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="comment">// insert phi node</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#ae1e97a53e1267cf357515d64fd916e1d">AddMSSAPHI</a>(pbb,mr);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="comment">// continue to insert phi in its iterative dominate frontiers</span></div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; bbs.push_back(pbb);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</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; }</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</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;}</div><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#l00150">MemSSA.h:150</a></div></div>
2612
2614
  <div class="ttc" id="classSVF_1_1SVFValue_html_a68b40576b24c4cb81cc3ba75550f4654"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a68b40576b24c4cb81cc3ba75550f4654">SVF::SVFValue::getName</a></div><div class="ttdeci">virtual const std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00210">SVFValue.h:210</a></div></div>
2613
2615
  <div class="ttc" id="classSVF_1_1MemSSA_html_a0e4aa3519d1805cfee0190ec43155beb"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a0e4aa3519d1805cfee0190ec43155beb">SVF::MemSSA::BBList</a></div><div class="ttdeci">std::vector&lt; const SVFBasicBlock * &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>
2614
- <div class="ttc" id="SVFType_8h_html_a385e9d80a013723304b329454d32e8b1"><div class="ttname"><a href="SVFType_8h.html#a385e9d80a013723304b329454d32e8b1">DMSSA</a></div><div class="ttdeci">#define DMSSA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00435">SVFType.h:435</a></div></div>
2616
+ <div class="ttc" id="SVFType_8h_html_a385e9d80a013723304b329454d32e8b1"><div class="ttname"><a href="SVFType_8h.html#a385e9d80a013723304b329454d32e8b1">DMSSA</a></div><div class="ttdeci">#define DMSSA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00433">SVFType.h:433</a></div></div>
2615
2617
  <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="SVFType_8h_source.html#l00099">SVFType.h:99</a></div></div>
2616
2618
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a077caa1b10ab84d101d79fc7ea50db2d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVF::SVFUtil::writeWrnMsg</a></div><div class="ttdeci">void writeWrnMsg(std::string msg)</div><div class="ttdoc">Writes a message run through wrnMsg. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00066">SVFUtil.cpp:66</a></div></div>
2617
2619
  <div class="ttc" id="classSVF_1_1SVFFunction_html_a65d9c963b658fbcc67bdf949d5644e65"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a65d9c963b658fbcc67bdf949d5644e65">SVF::SVFFunction::getDomFrontierMap</a></div><div class="ttdeci">const Map&lt; const SVFBasicBlock *, BBSet &gt; &amp; getDomFrontierMap() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00449">SVFValue.h:449</a></div></div>
2618
2620
  <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="SVFType_8h_source.html#l00094">SVFType.h:94</a></div></div>
2619
2621
  <div class="ttc" id="classSVF_1_1MemSSA_html_acfe05b5b026ed41039540b11fe345734"><div class="ttname"><a href="classSVF_1_1MemSSA.html#acfe05b5b026ed41039540b11fe345734">SVF::MemSSA::BBToMRSetMap</a></div><div class="ttdeci">Map&lt; const SVFBasicBlock *, MRSet &gt; BBToMRSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00094">MemSSA.h:94</a></div></div>
2620
- <div class="ttc" id="classSVF_1_1MemSSA_html_ae1e97a53e1267cf357515d64fd916e1d"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ae1e97a53e1267cf357515d64fd916e1d">SVF::MemSSA::AddMSSAPHI</a></div><div class="ttdeci">void AddMSSAPHI(const SVFBasicBlock *bb, const MRSet &amp;mrSet)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00207">MemSSA.h:207</a></div></div>
2622
+ <div class="ttc" id="classSVF_1_1MemSSA_html_ae1e97a53e1267cf357515d64fd916e1d"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ae1e97a53e1267cf357515d64fd916e1d">SVF::MemSSA::AddMSSAPHI</a></div><div class="ttdeci">void AddMSSAPHI(const SVFBasicBlock *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>
2621
2623
  <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>
2622
2624
  <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#l00152">MemSSA.h:152</a></div></div>
2623
2625
  <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_ad05f85ce931d4479f71d1947a25599dc"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ad05f85ce931d4479f71d1947a25599dc">SVF::SVFBasicBlock::back</a></div><div class="ttdeci">const SVFInstruction * back() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00542">SVFValue.h:542</a></div></div>
2624
2626
  <div class="ttc" id="cJSON_8h_html_ad43c3812e6d13e0518d9f8b8f463ffcf"><div class="ttname"><a href="cJSON_8h.html#ad43c3812e6d13e0518d9f8b8f463ffcf">count</a></div><div class="ttdeci">int count</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00216">cJSON.h:216</a></div></div>
2625
2627
  <div class="ttc" id="classSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00471">SVFValue.h:471</a></div></div>
2626
2628
  <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>
2627
- <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00419">SVFType.h:419</a></div></div>
2629
+ <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00417">SVFType.h:417</a></div></div>
2628
2630
  </div><!-- fragment -->
2629
2631
  </div>
2630
2632
  </div>
@@ -2665,8 +2667,9 @@ Private Attributes</h2></td></tr>
2665
2667
  <p>Get a new SSA name of a memory region. </p>
2666
2668
 
2667
2669
  <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00351">351</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
2668
- <div class="fragment"><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;{</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; assert(0 != <a class="code" href="classSVF_1_1MemSSA.html#a22e2dd0fc78877bdedd207a40540a634">mr2CounterMap</a>.count(mr)</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; &amp;&amp; <span class="stringliteral">&quot;did not find initial version in map? &quot;</span>);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; assert(0 != <a class="code" href="classSVF_1_1MemSSA.html#ae4c7b17d8da8278dca362af79f9f268d">mr2VerStackMap</a>.count(mr)</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; &amp;&amp; <span class="stringliteral">&quot;did not find initial stack in map? &quot;</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; <a class="code" href="namespaceSVF.html#a39df0130e37e97db2ff7620bbb2a72f5">MRVERSION</a> version = <a class="code" href="classSVF_1_1MemSSA.html#a22e2dd0fc78877bdedd207a40540a634">mr2CounterMap</a>[mr];</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a22e2dd0fc78877bdedd207a40540a634">mr2CounterMap</a>[mr] = version + 1;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* mrVer = <span class="keyword">new</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>(mr, version, def);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#ae4c7b17d8da8278dca362af79f9f268d">mr2VerStackMap</a>[mr].push_back(mrVer);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">return</span> mrVer;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;}</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>
2670
+ <div class="fragment"><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;{</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; assert(0 != <a class="code" href="classSVF_1_1MemSSA.html#a22e2dd0fc78877bdedd207a40540a634">mr2CounterMap</a>.count(mr)</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; &amp;&amp; <span class="stringliteral">&quot;did not find initial version in map? &quot;</span>);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; assert(0 != <a class="code" href="classSVF_1_1MemSSA.html#ae4c7b17d8da8278dca362af79f9f268d">mr2VerStackMap</a>.count(mr)</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; &amp;&amp; <span class="stringliteral">&quot;did not find initial stack in map? &quot;</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; <a class="code" href="namespaceSVF.html#a39df0130e37e97db2ff7620bbb2a72f5">MRVERSION</a> version = <a class="code" href="classSVF_1_1MemSSA.html#a22e2dd0fc78877bdedd207a40540a634">mr2CounterMap</a>[mr];</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a22e2dd0fc78877bdedd207a40540a634">mr2CounterMap</a>[mr] = version + 1;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keyword">auto</span> mrVer = std::make_unique&lt;MRVer&gt;(mr, version, def);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keyword">auto</span> mrVerPtr = mrVer.get();</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#ae4c7b17d8da8278dca362af79f9f268d">mr2VerStackMap</a>[mr].push_back(mrVerPtr);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a6e5ac4f390528f8ee3cdc8e0e221ee71">usedMRVers</a>.push_back(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(mrVer));</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">return</span> mrVerPtr;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;}</div><div class="ttc" id="classSVF_1_1MemSSA_html_a6e5ac4f390528f8ee3cdc8e0e221ee71"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a6e5ac4f390528f8ee3cdc8e0e221ee71">SVF::MemSSA::usedMRVers</a></div><div class="ttdeci">std::vector&lt; std::unique_ptr&lt; MRVer &gt; &gt; usedMRVers</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00157">MemSSA.h:157</a></div></div>
2669
2671
  <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#l00144">MemSSA.h:144</a></div></div>
2672
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a72502f7f536418621485e90ab98c2016"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">SVF::SVFUtil::move</a></div><div class="ttdeci">constexpr std::remove_reference&lt; T &gt;::type &amp;&amp; move(T &amp;&amp;t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00657">SVFUtil.h:657</a></div></div>
2670
2673
  <div class="ttc" id="namespaceSVF_html_a39df0130e37e97db2ff7620bbb2a72f5"><div class="ttname"><a href="namespaceSVF.html#a39df0130e37e97db2ff7620bbb2a72f5">SVF::MRVERSION</a></div><div class="ttdeci">NodeID MRVERSION</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00052">MemRegion.h:52</a></div></div>
2671
2674
  <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#l00143">MemSSA.h:143</a></div></div>
2672
2675
  </div><!-- fragment -->
@@ -2690,8 +2693,8 @@ Private Attributes</h2></td></tr>
2690
2693
  <p>Perform statistics. </p>
2691
2694
  <p>Perform statistics </p>
2692
2695
 
2693
- <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00451">451</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
2694
- <div class="fragment"><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;{</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">printStat</a>())</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a4fc930040ec54eb60629da18fb6a4d04">stat</a>-&gt;<a class="code" href="classSVF_1_1MemSSAStat.html#a8b4b9466a676d2391c71d38e8be16bc9">performStat</a>();</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;}</div><div class="ttc" id="classSVF_1_1MemSSAStat_html_a8b4b9466a676d2391c71d38e8be16bc9"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#a8b4b9466a676d2391c71d38e8be16bc9">SVF::MemSSAStat::performStat</a></div><div class="ttdeci">virtual void performStat() override</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#l00074">SVFGStat.cpp:74</a></div></div>
2696
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00453">453</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
2697
+ <div class="fragment"><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;{</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">printStat</a>())</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a4fc930040ec54eb60629da18fb6a4d04">stat</a>-&gt;<a class="code" href="classSVF_1_1MemSSAStat.html#a8b4b9466a676d2391c71d38e8be16bc9">performStat</a>();</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;}</div><div class="ttc" id="classSVF_1_1MemSSAStat_html_a8b4b9466a676d2391c71d38e8be16bc9"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#a8b4b9466a676d2391c71d38e8be16bc9">SVF::MemSSAStat::performStat</a></div><div class="ttdeci">virtual void performStat() override</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#l00074">SVFGStat.cpp:74</a></div></div>
2695
2698
  <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#l00123">MemSSA.h:123</a></div></div>
2696
2699
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a4880571f57542afc50da506dfe273183"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">SVF::PointerAnalysis::printStat</a></div><div class="ttdeci">bool printStat()</div><div class="ttdoc">Whether print statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00362">PointerAnalysis.h:362</a></div></div>
2697
2700
  <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>
@@ -2734,8 +2737,8 @@ Private Attributes</h2></td></tr>
2734
2737
 
2735
2738
  <p>Rename chi set. </p>
2736
2739
 
2737
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00258">258</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2738
- <div class="fragment"><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">for</span> (CHISet::const_iterator cit = chiSet.begin(), ecit = chiSet.end();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; cit != ecit; ++cit)</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a503f2fda873c330ef2cc5561f396ea6e">CHI</a>* chi = (*cit);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; chi-&gt;setOpVer(<a class="code" href="classSVF_1_1MemSSA.html#ad550a453d5b2daa6c72e7752f6b5ea79">getTopStackVer</a>(chi-&gt;getMR()));</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; chi-&gt;setResVer(<a class="code" href="classSVF_1_1MemSSA.html#a381a35d48ce2f8e348ddbbb9ce526ca8">newSSAName</a>(chi-&gt;getMR(),chi));</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; memRegs.push_back(chi-&gt;getMR());</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div><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#l00164">MemSSA.h:164</a></div></div>
2740
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00260">260</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2741
+ <div class="fragment"><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; <a class="code" href="classSVF_1_1MemSSA.html#a503f2fda873c330ef2cc5561f396ea6e">CHI</a>* chi = (*cit);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; chi-&gt;setOpVer(<a class="code" href="classSVF_1_1MemSSA.html#ad550a453d5b2daa6c72e7752f6b5ea79">getTopStackVer</a>(chi-&gt;getMR()));</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; chi-&gt;setResVer(<a class="code" href="classSVF_1_1MemSSA.html#a381a35d48ce2f8e348ddbbb9ce526ca8">newSSAName</a>(chi-&gt;getMR(),chi));</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; memRegs.push_back(chi-&gt;getMR());</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="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>
2739
2742
  <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#l00351">MemSSA.cpp:351</a></div></div>
2740
2743
  <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>
2741
2744
  </div><!-- fragment -->
@@ -2768,9 +2771,9 @@ Private Attributes</h2></td></tr>
2768
2771
  <p>Rename mus, chis and phis. </p>
2769
2772
  <p>Rename mu set </p>
2770
2773
 
2771
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00247">247</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2772
- <div class="fragment"><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; {</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">for</span> (MUSet::const_iterator mit = muSet.begin(), emit = muSet.end();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; mit != emit; ++mit)</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; <a class="code" href="classSVF_1_1MemSSA.html#a2b4f3b19b32ac61dd1932faa82b93d8b">MU</a>* mu = (*mit);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; mu-&gt;setVer(<a class="code" href="classSVF_1_1MemSSA.html#ad550a453d5b2daa6c72e7752f6b5ea79">getTopStackVer</a>(mu-&gt;getMR()));</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div><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>
2773
- <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#l00164">MemSSA.h:164</a></div></div>
2774
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00249">249</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2775
+ <div class="fragment"><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; <a class="code" href="classSVF_1_1MemSSA.html#a2b4f3b19b32ac61dd1932faa82b93d8b">MU</a>* mu = (*mit);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; mu-&gt;setVer(<a class="code" href="classSVF_1_1MemSSA.html#ad550a453d5b2daa6c72e7752f6b5ea79">getTopStackVer</a>(mu-&gt;getMR()));</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="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>
2776
+ <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>
2774
2777
  </div><!-- fragment -->
2775
2778
  </div>
2776
2779
  </div>
@@ -2816,8 +2819,8 @@ Private Attributes</h2></td></tr>
2816
2819
 
2817
2820
  <p>Rename operands (RHS) of phis. </p>
2818
2821
 
2819
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00283">283</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2820
- <div class="fragment"><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">for</span> (PHISet::const_iterator iter = phiSet.begin(), eiter = phiSet.end();</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; iter != eiter; ++iter)</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; <a class="code" href="classSVF_1_1MemSSA.html#a8e948ea7778158107657fdd8195530e1">PHI</a>* phi = *iter;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; phi-&gt;setOpVer(<a class="code" href="classSVF_1_1MemSSA.html#ad550a453d5b2daa6c72e7752f6b5ea79">getTopStackVer</a>(phi-&gt;getMR()), pos);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div><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#l00164">MemSSA.h:164</a></div></div>
2822
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00285">285</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2823
+ <div class="fragment"><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; <a class="code" href="classSVF_1_1MemSSA.html#a8e948ea7778158107657fdd8195530e1">PHI</a>* phi = *iter;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; phi-&gt;setOpVer(<a class="code" href="classSVF_1_1MemSSA.html#ad550a453d5b2daa6c72e7752f6b5ea79">getTopStackVer</a>(phi-&gt;getMR()), 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="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>
2821
2824
  <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>
2822
2825
  </div><!-- fragment -->
2823
2826
  </div>
@@ -2858,8 +2861,8 @@ Private Attributes</h2></td></tr>
2858
2861
 
2859
2862
  <p>Rename result (LHS) of phis. </p>
2860
2863
 
2861
- <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00271">271</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2862
- <div class="fragment"><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">for</span> (PHISet::const_iterator iter = phiSet.begin(), eiter = phiSet.end();</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; iter != eiter; ++iter)</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; <a class="code" href="classSVF_1_1MemSSA.html#a8e948ea7778158107657fdd8195530e1">PHI</a>* phi = *iter;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; phi-&gt;setResVer(<a class="code" href="classSVF_1_1MemSSA.html#a381a35d48ce2f8e348ddbbb9ce526ca8">newSSAName</a>(phi-&gt;getMR(),phi));</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; memRegs.push_back(phi-&gt;getMR());</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div><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#l00351">MemSSA.cpp:351</a></div></div>
2864
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00273">273</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
2865
+ <div class="fragment"><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; <a class="code" href="classSVF_1_1MemSSA.html#a8e948ea7778158107657fdd8195530e1">PHI</a>* phi = *iter;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; phi-&gt;setResVer(<a class="code" href="classSVF_1_1MemSSA.html#a381a35d48ce2f8e348ddbbb9ce526ca8">newSSAName</a>(phi-&gt;getMR(),phi));</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; memRegs.push_back(phi-&gt;getMR());</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="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#l00351">MemSSA.cpp:351</a></div></div>
2863
2866
  <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>
2864
2867
  </div><!-- fragment -->
2865
2868
  </div>
@@ -2893,11 +2896,11 @@ Private Attributes</h2></td></tr>
2893
2896
 
2894
2897
  <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00250">250</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
2895
2898
  <div class="fragment"><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="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a385e9d80a013723304b329454d32e8b1">DMSSA</a>,</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t ssa rename for function &quot;</span> &lt;&lt; fun.<a class="code" href="classSVF_1_1SVFValue.html#a68b40576b24c4cb81cc3ba75550f4654">getName</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</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; <a class="code" href="classSVF_1_1MemSSA.html#aeb7fc6c7880db45f6d0a90912ac5b5f7">SSARenameBB</a>(*fun.<a class="code" href="classSVF_1_1SVFFunction.html#a793f485e92d12cf407f2ffa41861eb3d">getEntryBlock</a>());</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFValue_html_a68b40576b24c4cb81cc3ba75550f4654"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a68b40576b24c4cb81cc3ba75550f4654">SVF::SVFValue::getName</a></div><div class="ttdeci">virtual const std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00210">SVFValue.h:210</a></div></div>
2896
- <div class="ttc" id="SVFType_8h_html_a385e9d80a013723304b329454d32e8b1"><div class="ttname"><a href="SVFType_8h.html#a385e9d80a013723304b329454d32e8b1">DMSSA</a></div><div class="ttdeci">#define DMSSA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00435">SVFType.h:435</a></div></div>
2899
+ <div class="ttc" id="SVFType_8h_html_a385e9d80a013723304b329454d32e8b1"><div class="ttname"><a href="SVFType_8h.html#a385e9d80a013723304b329454d32e8b1">DMSSA</a></div><div class="ttdeci">#define DMSSA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00433">SVFType.h:433</a></div></div>
2897
2900
  <div class="ttc" id="classSVF_1_1MemSSA_html_aeb7fc6c7880db45f6d0a90912ac5b5f7"><div class="ttname"><a href="classSVF_1_1MemSSA.html#aeb7fc6c7880db45f6d0a90912ac5b5f7">SVF::MemSSA::SSARenameBB</a></div><div class="ttdeci">virtual void SSARenameBB(const SVFBasicBlock &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#l00263">MemSSA.cpp:263</a></div></div>
2898
2901
  <div class="ttc" id="classSVF_1_1SVFFunction_html_a793f485e92d12cf407f2ffa41861eb3d"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a793f485e92d12cf407f2ffa41861eb3d">SVF::SVFFunction::getEntryBlock</a></div><div class="ttdeci">const SVFBasicBlock * getEntryBlock() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00367">SVFValue.h:367</a></div></div>
2899
2902
  <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>
2900
- <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00419">SVFType.h:419</a></div></div>
2903
+ <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00417">SVFType.h:417</a></div></div>
2901
2904
  </div><!-- fragment -->
2902
2905
  </div>
2903
2906
  </div>
@@ -2929,44 +2932,44 @@ Private Attributes</h2></td></tr>
2929
2932
  <p>Renaming for each memory regions See the renaming algorithm in book Engineering A Compiler (Figure 9.12) </p>
2930
2933
 
2931
2934
  <p class="definition">Definition at line <a class="el" href="MemSSA_8cpp_source.html#l00263">263</a> of file <a class="el" href="MemSSA_8cpp_source.html">MemSSA.cpp</a>.</p>
2932
- <div class="fragment"><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="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="comment">// record which mem region needs to pop stack</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a7c3fda6f082231350524c2d7c16f067e">MRVector</a> memRegs;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="comment">// rename phi result op</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="comment">// for each r = phi (...)</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="comment">// rewrite r as new name</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MemSSA.html#a41bc86b7dc4d400d83c1f19ede4936ed">hasPHISet</a>(&amp;bb))</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a630be375832b1477989af85dce6760f3">RenamePhiRes</a>(<a class="code" href="classSVF_1_1MemSSA.html#a82ab0d35c95aeefbc4dfc8eb59033dca">getPHISet</a>(&amp;bb),memRegs);</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; <span class="comment">// process mu and chi</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="comment">// for each mu(r)</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="comment">// rewrite r with top mrver of stack(r)</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="comment">// for each r = chi(r&#39;)</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="comment">// rewrite r&#39; with top mrver of stack(r)</span></div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="comment">// rewrite r with new name</span></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; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFBasicBlock.html#a73b7029f85e3762033f49c953d4b95ca">SVFBasicBlock::const_iterator</a> it = bb.<a class="code" href="classSVF_1_1SVFBasicBlock.html#ac9cb2f17e42c40ca81b49c8b63a855fc">begin</a>(), eit = bb.<a class="code" href="classSVF_1_1SVFBasicBlock.html#ab65173c2668b80643cb96e8133e5ea0a">end</a>();</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; it != eit; ++it)</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="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst = *it;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>-&gt;<a class="code" href="classSVF_1_1MRGenerator.html#abcb903f5d5f323f319fc58f9df697f63">hasSVFStmtList</a>(inst))</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; <a class="code" href="classSVF_1_1MemSSA.html#a445d282890dbd2fb51e903255af1cc3e">SVFStmtList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>-&gt;<a class="code" href="classSVF_1_1MRGenerator.html#a7465657df2a376abc79147893d5e62aa">getPAGEdgesFromInst</a>(inst);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">for</span>(SVFStmtList::const_iterator bit = pagEdgeList.begin(), ebit= pagEdgeList.end();</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; bit!=ebit; ++bit)</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="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* inst = *bit;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</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="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a2527b76b92dffa8f8513ebfdcc8d8133">RenameMuSet</a>(<a class="code" href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">getMUSet</a>(load));</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">else</span> <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;(inst))</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a6066364112e665c33cbf2ec50ae1e3a8">RenameChiSet</a>(<a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(store),memRegs);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</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"> 302</span>&#160; }</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a4af4db2fe43846609d2ed1d7022b1be1">isNonInstricCallSite</a>(inst))</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(inst);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>-&gt;<a class="code" href="classSVF_1_1MRGenerator.html#af06e8ac43efdedb97a2008cd93fc32d6">hasRefMRSet</a>(cs))</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a2527b76b92dffa8f8513ebfdcc8d8133">RenameMuSet</a>(<a class="code" href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">getMUSet</a>(cs));</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="keywordflow">if</span>(<a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>-&gt;<a class="code" href="classSVF_1_1MRGenerator.html#a7d66a341805af7ec4e4893e5a7e0bc2d">hasModMRSet</a>(cs))</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a6066364112e665c33cbf2ec50ae1e3a8">RenameChiSet</a>(<a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(cs),memRegs);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(inst-&gt;isRetInst())</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = bb.<a class="code" href="classSVF_1_1SVFBasicBlock.html#af48d08d3adf7dd3ed69d97e4df360059">getParent</a>();</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a2527b76b92dffa8f8513ebfdcc8d8133">RenameMuSet</a>(<a class="code" href="classSVF_1_1MemSSA.html#af8c38a7ff8da4206f19c038024606d93">getReturnMuSet</a>(fun));</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="comment">// fill phi operands of succ basic blocks</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succ : bb.<a class="code" href="classSVF_1_1SVFBasicBlock.html#a66f51cd41e93ad055c4a0c2874e73fae">getSuccessors</a>())</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos = bb.<a class="code" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">getBBPredecessorPos</a>(succ);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MemSSA.html#a41bc86b7dc4d400d83c1f19ede4936ed">hasPHISet</a>(succ))</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a0ed34f7a27db045c624c5db61d53132b">RenamePhiOps</a>(<a class="code" href="classSVF_1_1MemSSA.html#a82ab0d35c95aeefbc4dfc8eb59033dca">getPHISet</a>(succ),pos,memRegs);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</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="comment">// for succ basic block in dominator tree</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = bb.<a class="code" href="classSVF_1_1SVFBasicBlock.html#af48d08d3adf7dd3ed69d97e4df360059">getParent</a>();</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFBasicBlock*,Set&lt;const SVFBasicBlock*&gt;</a>&gt;&amp; dtBBsMap = fun-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a68f988a0db99bd36e53253cb88f9d09f">getDomTreeMap</a>();</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFBasicBlock*,Set&lt;const SVFBasicBlock*&gt;</a>&gt;::const_iterator mapIter = dtBBsMap.find(&amp;bb);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">if</span> (mapIter != dtBBsMap.end())</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const SVFBasicBlock*&gt;</a>&amp; dtBBs = mapIter-&gt;second;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* dtbb : dtBBs)</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; {</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#aeb7fc6c7880db45f6d0a90912ac5b5f7">SSARenameBB</a>(*dtbb);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; }</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="comment">// for each r = chi(..), and r = phi(..)</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="comment">// pop ver stack(r)</span></div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">while</span> (!memRegs.empty())</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; {</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr = memRegs.back();</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; memRegs.pop_back();</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#ae4c7b17d8da8278dca362af79f9f268d">mr2VerStackMap</a>[mr].pop_back();</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;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;}</div><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#l00383">MemSSA.h:383</a></div></div>
2935
+ <div class="fragment"><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="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="comment">// record which mem region needs to pop stack</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a7c3fda6f082231350524c2d7c16f067e">MRVector</a> memRegs;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="comment">// rename phi result op</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="comment">// for each r = phi (...)</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="comment">// rewrite r as new name</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MemSSA.html#a41bc86b7dc4d400d83c1f19ede4936ed">hasPHISet</a>(&amp;bb))</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a630be375832b1477989af85dce6760f3">RenamePhiRes</a>(<a class="code" href="classSVF_1_1MemSSA.html#a82ab0d35c95aeefbc4dfc8eb59033dca">getPHISet</a>(&amp;bb),memRegs);</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; <span class="comment">// process mu and chi</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="comment">// for each mu(r)</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="comment">// rewrite r with top mrver of stack(r)</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="comment">// for each r = chi(r&#39;)</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="comment">// rewrite r&#39; with top mrver of stack(r)</span></div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="comment">// rewrite r with new name</span></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; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFBasicBlock.html#a73b7029f85e3762033f49c953d4b95ca">SVFBasicBlock::const_iterator</a> it = bb.<a class="code" href="classSVF_1_1SVFBasicBlock.html#ac9cb2f17e42c40ca81b49c8b63a855fc">begin</a>(), eit = bb.<a class="code" href="classSVF_1_1SVFBasicBlock.html#ab65173c2668b80643cb96e8133e5ea0a">end</a>();</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; it != eit; ++it)</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="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst = *it;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>-&gt;<a class="code" href="classSVF_1_1MRGenerator.html#abcb903f5d5f323f319fc58f9df697f63">hasSVFStmtList</a>(inst))</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; <a class="code" href="classSVF_1_1MemSSA.html#a445d282890dbd2fb51e903255af1cc3e">SVFStmtList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>-&gt;<a class="code" href="classSVF_1_1MRGenerator.html#a7465657df2a376abc79147893d5e62aa">getPAGEdgesFromInst</a>(inst);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">for</span>(SVFStmtList::const_iterator bit = pagEdgeList.begin(), ebit= pagEdgeList.end();</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; bit!=ebit; ++bit)</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="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* inst = *bit;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</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="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a2527b76b92dffa8f8513ebfdcc8d8133">RenameMuSet</a>(<a class="code" href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">getMUSet</a>(load));</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">else</span> <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;(inst))</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a6066364112e665c33cbf2ec50ae1e3a8">RenameChiSet</a>(<a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(store),memRegs);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</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"> 302</span>&#160; }</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a4af4db2fe43846609d2ed1d7022b1be1">isNonInstricCallSite</a>(inst))</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(inst);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>-&gt;<a class="code" href="classSVF_1_1MRGenerator.html#af06e8ac43efdedb97a2008cd93fc32d6">hasRefMRSet</a>(cs))</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a2527b76b92dffa8f8513ebfdcc8d8133">RenameMuSet</a>(<a class="code" href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">getMUSet</a>(cs));</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="keywordflow">if</span>(<a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>-&gt;<a class="code" href="classSVF_1_1MRGenerator.html#a7d66a341805af7ec4e4893e5a7e0bc2d">hasModMRSet</a>(cs))</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a6066364112e665c33cbf2ec50ae1e3a8">RenameChiSet</a>(<a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(cs),memRegs);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(inst-&gt;isRetInst())</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = bb.<a class="code" href="classSVF_1_1SVFBasicBlock.html#af48d08d3adf7dd3ed69d97e4df360059">getParent</a>();</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a2527b76b92dffa8f8513ebfdcc8d8133">RenameMuSet</a>(<a class="code" href="classSVF_1_1MemSSA.html#af8c38a7ff8da4206f19c038024606d93">getReturnMuSet</a>(fun));</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="comment">// fill phi operands of succ basic blocks</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succ : bb.<a class="code" href="classSVF_1_1SVFBasicBlock.html#a66f51cd41e93ad055c4a0c2874e73fae">getSuccessors</a>())</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos = bb.<a class="code" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">getBBPredecessorPos</a>(succ);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MemSSA.html#a41bc86b7dc4d400d83c1f19ede4936ed">hasPHISet</a>(succ))</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a0ed34f7a27db045c624c5db61d53132b">RenamePhiOps</a>(<a class="code" href="classSVF_1_1MemSSA.html#a82ab0d35c95aeefbc4dfc8eb59033dca">getPHISet</a>(succ),pos,memRegs);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</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="comment">// for succ basic block in dominator tree</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = bb.<a class="code" href="classSVF_1_1SVFBasicBlock.html#af48d08d3adf7dd3ed69d97e4df360059">getParent</a>();</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFBasicBlock*,Set&lt;const SVFBasicBlock*&gt;</a>&gt;&amp; dtBBsMap = fun-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a68f988a0db99bd36e53253cb88f9d09f">getDomTreeMap</a>();</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFBasicBlock*,Set&lt;const SVFBasicBlock*&gt;</a>&gt;::const_iterator mapIter = dtBBsMap.find(&amp;bb);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">if</span> (mapIter != dtBBsMap.end())</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const SVFBasicBlock*&gt;</a>&amp; dtBBs = mapIter-&gt;second;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* dtbb : dtBBs)</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; {</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#aeb7fc6c7880db45f6d0a90912ac5b5f7">SSARenameBB</a>(*dtbb);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; }</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="comment">// for each r = chi(..), and r = phi(..)</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="comment">// pop ver stack(r)</span></div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">while</span> (!memRegs.empty())</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; {</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr = memRegs.back();</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; memRegs.pop_back();</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#ae4c7b17d8da8278dca362af79f9f268d">mr2VerStackMap</a>[mr].pop_back();</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;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;}</div><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#l00385">MemSSA.h:385</a></div></div>
2933
2936
  <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_ab65173c2668b80643cb96e8133e5ea0a"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ab65173c2668b80643cb96e8133e5ea0a">SVF::SVFBasicBlock::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00522">SVFValue.h:522</a></div></div>
2934
- <div class="ttc" id="classSVF_1_1MemSSA_html_a82ab0d35c95aeefbc4dfc8eb59033dca"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a82ab0d35c95aeefbc4dfc8eb59033dca">SVF::MemSSA::getPHISet</a></div><div class="ttdeci">PHISet &amp; getPHISet(const SVFBasicBlock *bb)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00395">MemSSA.h:395</a></div></div>
2937
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a82ab0d35c95aeefbc4dfc8eb59033dca"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a82ab0d35c95aeefbc4dfc8eb59033dca">SVF::MemSSA::getPHISet</a></div><div class="ttdeci">PHISet &amp; getPHISet(const SVFBasicBlock *bb)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00397">MemSSA.h:397</a></div></div>
2935
2938
  <div class="ttc" id="classSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00570">SVFValue.h:570</a></div></div>
2936
2939
  <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="SVFValue_8h_source.html#l00257">SVFValue.h:257</a></div></div>
2937
2940
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a7d66a341805af7ec4e4893e5a7e0bc2d"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7d66a341805af7ec4e4893e5a7e0bc2d">SVF::MRGenerator::hasModMRSet</a></div><div class="ttdeci">bool hasModMRSet(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00459">MemRegion.h:459</a></div></div>
2938
2941
  <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="SVFType_8h_source.html#l00099">SVFType.h:99</a></div></div>
2939
- <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#l00271">MemSSA.h:271</a></div></div>
2942
+ <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>
2940
2943
  <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="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
2941
2944
  <div class="ttc" id="classSVF_1_1MemSSA_html_aeb7fc6c7880db45f6d0a90912ac5b5f7"><div class="ttname"><a href="classSVF_1_1MemSSA.html#aeb7fc6c7880db45f6d0a90912ac5b5f7">SVF::MemSSA::SSARenameBB</a></div><div class="ttdeci">virtual void SSARenameBB(const SVFBasicBlock &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#l00263">MemSSA.cpp:263</a></div></div>
2942
2945
  <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>
2943
2946
  <div class="ttc" id="classSVF_1_1ICFG_html_aa41516cdd2be5066adf22798a4fe2213"><div class="ttname"><a href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00236">ICFG.cpp:236</a></div></div>
2944
- <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#l00379">MemSSA.h:379</a></div></div>
2947
+ <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#l00381">MemSSA.h:381</a></div></div>
2945
2948
  <div class="ttc" id="classSVF_1_1MRGenerator_html_af06e8ac43efdedb97a2008cd93fc32d6"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af06e8ac43efdedb97a2008cd93fc32d6">SVF::MRGenerator::hasRefMRSet</a></div><div class="ttdeci">bool hasRefMRSet(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00455">MemRegion.h:455</a></div></div>
2946
- <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#l00258">MemSSA.h:258</a></div></div>
2949
+ <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>
2947
2950
  <div class="ttc" id="classSVF_1_1MRGenerator_html_abcb903f5d5f323f319fc58f9df697f63"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#abcb903f5d5f323f319fc58f9df697f63">SVF::MRGenerator::hasSVFStmtList</a></div><div class="ttdeci">bool hasSVFStmtList(const SVFInstruction *inst)</div><div class="ttdoc">Whether this instruction has SVFIR Edge. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00150">MemRegion.cpp:150</a></div></div>
2948
2951
  <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="SVFType_8h_source.html#l00094">SVFType.h:94</a></div></div>
2949
2952
  <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_a59a4b7d815f624e448afe3ac0e9d18f5"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVF::SVFBasicBlock::getBBPredecessorPos</a></div><div class="ttdeci">u32_t getBBPredecessorPos(const SVFBasicBlock *succbb)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00205">SVFValue.cpp:205</a></div></div>
2950
2953
  <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#l00383">SVFStatements.h:383</a></div></div>
2951
2954
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
2952
- <div class="ttc" id="classSVF_1_1MemSSA_html_a41bc86b7dc4d400d83c1f19ede4936ed"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a41bc86b7dc4d400d83c1f19ede4936ed">SVF::MemSSA::hasPHISet</a></div><div class="ttdeci">bool hasPHISet(const SVFBasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00399">MemSSA.h:399</a></div></div>
2955
+ <div class="ttc" id="classSVF_1_1MemSSA_html_a41bc86b7dc4d400d83c1f19ede4936ed"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a41bc86b7dc4d400d83c1f19ede4936ed">SVF::MemSSA::hasPHISet</a></div><div class="ttdeci">bool hasPHISet(const SVFBasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00401">MemSSA.h:401</a></div></div>
2953
2956
  <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>
2954
2957
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a7465657df2a376abc79147893d5e62aa"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7465657df2a376abc79147893d5e62aa">SVF::MRGenerator::getPAGEdgesFromInst</a></div><div class="ttdeci">SVFStmtList &amp; getPAGEdgesFromInst(const SVFInstruction *inst)</div><div class="ttdoc">Given an instruction, get all its the PAGEdge (statement) in sequence. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00159">MemRegion.cpp:159</a></div></div>
2955
2958
  <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_af48d08d3adf7dd3ed69d97e4df360059"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#af48d08d3adf7dd3ed69d97e4df360059">SVF::SVFBasicBlock::getParent</a></div><div class="ttdeci">const SVFFunction * getParent() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00527">SVFValue.h:527</a></div></div>
2956
- <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#l00247">MemSSA.h:247</a></div></div>
2959
+ <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>
2957
2960
  <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>
2958
2961
  <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>
2959
2962
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a4af4db2fe43846609d2ed1d7022b1be1"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a4af4db2fe43846609d2ed1d7022b1be1">SVF::SVFUtil::isNonInstricCallSite</a></div><div class="ttdeci">bool isNonInstricCallSite(const SVFInstruction *inst)</div><div class="ttdoc">Whether an instruction is a callsite in the application code, excluding llvm intrinsic calls...</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00186">SVFUtil.h:186</a></div></div>
2960
- <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#l00371">MemSSA.h:371</a></div></div>
2963
+ <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#l00373">MemSSA.h:373</a></div></div>
2961
2964
  <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_ac9cb2f17e42c40ca81b49c8b63a855fc"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ac9cb2f17e42c40ca81b49c8b63a855fc">SVF::SVFBasicBlock::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00517">SVFValue.h:517</a></div></div>
2962
2965
  <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#l00346">SVFStatements.h:346</a></div></div>
2963
- <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#l00283">MemSSA.h:283</a></div></div>
2966
+ <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>
2964
2967
  <div class="ttc" id="classSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00471">SVFValue.h:471</a></div></div>
2965
2968
  <div class="ttc" id="classSVF_1_1SVFFunction_html_a68f988a0db99bd36e53253cb88f9d09f"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a68f988a0db99bd36e53253cb88f9d09f">SVF::SVFFunction::getDomTreeMap</a></div><div class="ttdeci">const Map&lt; const SVFBasicBlock *, BBSet &gt; &amp; getDomTreeMap() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00444">SVFValue.h:444</a></div></div>
2966
2969
  <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>
2967
2970
  <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_a73b7029f85e3762033f49c953d4b95ca"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a73b7029f85e3762033f49c953d4b95ca">SVF::SVFBasicBlock::const_iterator</a></div><div class="ttdeci">std::vector&lt; const SVFInstruction * &gt;::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00476">SVFValue.h:476</a></div></div>
2968
2971
  <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>
2969
- <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00165">SVFIR.h:165</a></div></div>
2972
+ <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00163">SVFIR.h:163</a></div></div>
2970
2973
  <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#l00143">MemSSA.h:143</a></div></div>
2971
2974
  <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>
2972
2975
  <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>
@@ -3393,6 +3396,30 @@ Private Attributes</h2></td></tr>
3393
3396
 
3394
3397
  <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00110">110</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
3395
3398
 
3399
+ </div>
3400
+ </div>
3401
+ <a id="a6e5ac4f390528f8ee3cdc8e0e221ee71"></a>
3402
+ <h2 class="memtitle"><span class="permalink"><a href="#a6e5ac4f390528f8ee3cdc8e0e221ee71">&#9670;&nbsp;</a></span>usedMRVers</h2>
3403
+
3404
+ <div class="memitem">
3405
+ <div class="memproto">
3406
+ <table class="mlabels">
3407
+ <tr>
3408
+ <td class="mlabels-left">
3409
+ <table class="memname">
3410
+ <tr>
3411
+ <td class="memname">std::vector&lt;std::unique_ptr&lt;<a class="el" href="classSVF_1_1MRVer.html">MRVer</a>&gt; &gt; SVF::MemSSA::usedMRVers</td>
3412
+ </tr>
3413
+ </table>
3414
+ </td>
3415
+ <td class="mlabels-right">
3416
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
3417
+ </tr>
3418
+ </table>
3419
+ </div><div class="memdoc">
3420
+
3421
+ <p class="definition">Definition at line <a class="el" href="MemSSA_8h_source.html#l00157">157</a> of file <a class="el" href="MemSSA_8h_source.html">MemSSA.h</a>.</p>
3422
+
3396
3423
  </div>
3397
3424
  </div>
3398
3425
  <a id="acf840b71b67cabe831f01f2d358f27fa"></a>