svf-tools 1.0.284 → 1.0.285

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 (388) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +2 -2
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +8 -8
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +5 -5
  5. package/SVF-doxygen/html/html/BasicTypes_8h_source.html +2 -2
  6. package/SVF-doxygen/html/html/CHG_8cpp_source.html +5 -5
  7. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +2 -2
  8. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
  9. package/SVF-doxygen/html/html/Conditions_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  11. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
  12. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +4 -4
  13. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
  14. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +1 -1
  15. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
  16. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +3 -3
  17. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +1 -1
  18. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
  19. package/SVF-doxygen/html/html/ExternalPAG_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +2 -2
  21. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  22. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +3 -3
  23. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +3 -3
  25. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
  26. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +5 -5
  27. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +3 -3
  28. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +3 -3
  29. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +5 -5
  31. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  32. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +1 -1
  33. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +6 -6
  34. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +2 -2
  35. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +4 -4
  36. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +1 -1
  37. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +7 -7
  38. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +3 -3
  39. package/SVF-doxygen/html/html/LocationSet_8h_source.html +3 -3
  40. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +2 -2
  41. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +7 -7
  42. package/SVF-doxygen/html/html/MHP_8cpp_source.html +3 -3
  43. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +5 -5
  44. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
  45. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +1 -1
  46. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +7 -7
  47. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +5 -5
  48. package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
  49. package/SVF-doxygen/html/html/MemModel_8cpp_source.html +1 -1
  50. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +15 -15
  51. package/SVF-doxygen/html/html/MemPartition_8h_source.html +11 -11
  52. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +103 -34
  53. package/SVF-doxygen/html/html/MemRegion_8h.html +3 -3
  54. package/SVF-doxygen/html/html/MemRegion_8h_source.html +97 -109
  55. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +43 -42
  56. package/SVF-doxygen/html/html/MemSSA_8h_source.html +46 -47
  57. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +3 -3
  58. package/SVF-doxygen/html/html/PAGBuilder_8cpp_source.html +5 -5
  59. package/SVF-doxygen/html/html/PAG_8cpp_source.html +3 -3
  60. package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
  61. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
  62. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +1 -1
  63. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +29 -29
  64. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +7 -7
  65. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp.html +2 -2
  66. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +19 -21
  67. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +81 -81
  68. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +8 -8
  69. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +1 -1
  70. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +8 -8
  71. package/SVF-doxygen/html/html/SVFGBuilder_8h.html +2 -1
  72. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +20 -19
  73. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +3 -3
  74. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +3 -3
  75. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -7
  76. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -4
  77. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +21 -21
  78. package/SVF-doxygen/html/html/SVFG_8cpp.html +1 -0
  79. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +46 -45
  80. package/SVF-doxygen/html/html/SVFG_8h_source.html +12 -13
  81. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
  82. package/SVF-doxygen/html/html/SVFUtil_8cpp.html +9 -8
  83. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +34 -33
  84. package/SVF-doxygen/html/html/SVFUtil_8h.html +14 -2
  85. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +43 -36
  86. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  87. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -3
  88. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -2
  89. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  90. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +6 -6
  91. package/SVF-doxygen/html/html/TCT_8cpp_source.html +2 -2
  92. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +2 -2
  93. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +2 -2
  94. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  95. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +9 -9
  96. package/SVF-doxygen/html/html/VFG_8cpp_source.html +3 -3
  97. package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
  98. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
  99. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +3 -3
  100. package/SVF-doxygen/html/html/annotated.html +16 -16
  101. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +5 -5
  102. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +4 -4
  103. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
  104. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
  105. package/SVF-doxygen/html/html/classSVF_1_1AddrPE.html +1 -1
  106. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +58 -59
  107. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +19 -22
  108. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +48 -49
  109. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +9 -12
  110. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +60 -61
  111. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +2 -5
  112. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +63 -64
  113. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +2 -5
  114. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +59 -60
  115. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +2 -5
  116. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +63 -64
  117. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +5 -8
  118. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +67 -68
  119. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +2 -5
  120. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +3 -3
  121. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +58 -59
  122. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +2 -5
  123. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiffWithType-members.html +64 -65
  124. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiffWithType.html +4 -7
  125. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +2 -2
  126. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +2 -2
  127. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +135 -138
  128. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPPE.html +1 -1
  129. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +3 -3
  130. package/SVF-doxygen/html/html/classSVF_1_1BranchCondManager.html +2 -2
  131. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +6 -6
  132. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +2 -2
  133. package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +2 -2
  134. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +2 -2
  135. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +2 -2
  136. package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +2 -2
  137. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  138. package/SVF-doxygen/html/html/classSVF_1_1CmpPE.html +1 -1
  139. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +3 -3
  140. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +115 -115
  141. package/SVF-doxygen/html/html/classSVF_1_1CondPointsToSet.html +1 -1
  142. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +10 -10
  143. package/SVF-doxygen/html/html/classSVF_1_1CopyPE.html +1 -1
  144. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
  145. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
  146. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +1 -1
  147. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +1 -1
  148. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +1 -1
  149. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +3 -3
  150. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +63 -62
  151. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +94 -92
  152. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
  153. package/SVF-doxygen/html/html/classSVF_1_1EntryCHI.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1ExternalPAG.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1FIObjPN.html +1 -1
  156. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +65 -66
  157. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +2 -5
  158. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +4 -4
  159. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +51 -52
  160. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +10 -13
  161. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +62 -63
  162. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +35 -38
  163. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +5 -5
  164. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +74 -75
  165. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +17 -20
  166. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +3 -3
  167. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +5 -5
  168. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +1 -1
  169. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +1 -1
  170. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +2 -2
  171. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +1 -1
  172. package/SVF-doxygen/html/html/classSVF_1_1GepPE.html +1 -1
  173. package/SVF-doxygen/html/html/classSVF_1_1GepValPN.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +7 -7
  175. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +7 -7
  176. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +1 -1
  177. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +3 -3
  178. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +2 -2
  179. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +71 -70
  180. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +88 -86
  181. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +3 -3
  182. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  183. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +1 -1
  184. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +71 -70
  185. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +126 -124
  186. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +2 -2
  187. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +3 -3
  188. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +13 -13
  190. package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +2 -2
  191. package/SVF-doxygen/html/html/classSVF_1_1LoadPE.html +1 -1
  192. package/SVF-doxygen/html/html/classSVF_1_1LocSymTableInfo.html +1 -1
  193. package/SVF-doxygen/html/html/classSVF_1_1LocationSet-members.html +1 -1
  194. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +11 -11
  195. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +3 -3
  196. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +8 -8
  197. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +5 -5
  198. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +76 -75
  199. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +515 -506
  200. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +2 -2
  201. package/SVF-doxygen/html/html/classSVF_1_1MSSACHI.html +2 -2
  202. package/SVF-doxygen/html/html/classSVF_1_1MSSADEF.html +1 -1
  203. package/SVF-doxygen/html/html/classSVF_1_1MSSAMU.html +2 -2
  204. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHI.html +1 -1
  205. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +5 -5
  206. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +2 -2
  207. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
  208. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +14 -14
  209. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +14 -14
  210. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +3 -3
  211. package/SVF-doxygen/html/html/classSVF_1_1MemRegion-members.html +9 -10
  212. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +38 -56
  213. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +1 -1
  214. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +132 -132
  215. package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +5 -5
  216. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +21 -21
  217. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +1 -1
  218. package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +2 -2
  219. package/SVF-doxygen/html/html/classSVF_1_1NormalGepPE.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1ObjPN.html +1 -1
  221. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilder.html +6 -6
  222. package/SVF-doxygen/html/html/classSVF_1_1PAGNode.html +1 -1
  223. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
  224. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +3 -3
  225. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +2 -2
  227. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +1 -1
  228. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +3 -3
  229. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +4 -4
  230. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +2 -2
  231. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +9 -9
  232. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +28 -27
  233. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +144 -111
  234. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +21 -21
  235. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +1 -1
  236. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +5 -5
  237. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +1 -1
  238. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +2 -2
  239. package/SVF-doxygen/html/html/classSVF_1_1RetMU.html +2 -2
  240. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  241. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +4 -4
  242. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +4 -4
  243. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +62 -62
  244. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +37 -37
  245. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +6 -6
  246. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +49 -49
  247. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +1 -1
  248. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +4 -4
  249. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +15 -15
  250. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
  251. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +52 -53
  252. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +6 -9
  253. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +2 -2
  254. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +2 -2
  255. package/SVF-doxygen/html/html/classSVF_1_1StorePE.html +1 -1
  256. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +5 -5
  257. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +2 -2
  258. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  259. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  260. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +3 -3
  261. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +2 -2
  262. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +2 -2
  263. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +51 -52
  264. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +3 -6
  265. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +10 -10
  266. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPPE.html +1 -1
  267. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  268. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +2 -2
  269. package/SVF-doxygen/html/html/classSVF_1_1ValPN.html +1 -1
  270. package/SVF-doxygen/html/html/classSVF_1_1VariantGepPE.html +1 -1
  271. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +82 -83
  272. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +5 -8
  273. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
  274. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +7 -7
  275. package/SVF-doxygen/html/html/classes.html +2 -2
  276. package/SVF-doxygen/html/html/functions_a.html +10 -10
  277. package/SVF-doxygen/html/html/functions_c.html +11 -11
  278. package/SVF-doxygen/html/html/functions_e.html +4 -7
  279. package/SVF-doxygen/html/html/functions_f.html +17 -14
  280. package/SVF-doxygen/html/html/functions_func.html +10 -10
  281. package/SVF-doxygen/html/html/functions_func_c.html +5 -5
  282. package/SVF-doxygen/html/html/functions_func_g.html +33 -30
  283. package/SVF-doxygen/html/html/functions_func_h.html +1 -1
  284. package/SVF-doxygen/html/html/functions_func_i.html +1 -1
  285. package/SVF-doxygen/html/html/functions_func_m.html +2 -2
  286. package/SVF-doxygen/html/html/functions_func_o.html +3 -3
  287. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  288. package/SVF-doxygen/html/html/functions_func_s.html +1 -1
  289. package/SVF-doxygen/html/html/functions_g.html +30 -27
  290. package/SVF-doxygen/html/html/functions_h.html +1 -1
  291. package/SVF-doxygen/html/html/functions_i.html +7 -7
  292. package/SVF-doxygen/html/html/functions_l.html +4 -4
  293. package/SVF-doxygen/html/html/functions_m.html +2 -2
  294. package/SVF-doxygen/html/html/functions_o.html +7 -9
  295. package/SVF-doxygen/html/html/functions_p.html +17 -13
  296. package/SVF-doxygen/html/html/functions_r.html +8 -4
  297. package/SVF-doxygen/html/html/functions_s.html +7 -7
  298. package/SVF-doxygen/html/html/functions_t.html +3 -3
  299. package/SVF-doxygen/html/html/functions_type_c.html +1 -1
  300. package/SVF-doxygen/html/html/functions_type_e.html +0 -3
  301. package/SVF-doxygen/html/html/functions_type_f.html +4 -1
  302. package/SVF-doxygen/html/html/functions_type_l.html +1 -1
  303. package/SVF-doxygen/html/html/functions_type_p.html +3 -3
  304. package/SVF-doxygen/html/html/functions_type_s.html +1 -1
  305. package/SVF-doxygen/html/html/functions_vars_c.html +5 -5
  306. package/SVF-doxygen/html/html/functions_vars_f.html +3 -3
  307. package/SVF-doxygen/html/html/functions_vars_i.html +1 -1
  308. package/SVF-doxygen/html/html/functions_vars_p.html +1 -1
  309. package/SVF-doxygen/html/html/globals_s.html +3 -3
  310. package/SVF-doxygen/html/html/hierarchy.html +2 -2
  311. package/SVF-doxygen/html/html/menudata.js +1 -0
  312. package/SVF-doxygen/html/html/namespaceSVF.html +3 -3
  313. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +250 -122
  314. package/SVF-doxygen/html/html/namespacemembers_c.html +3 -0
  315. package/SVF-doxygen/html/html/namespacemembers_e.html +3 -0
  316. package/SVF-doxygen/html/html/namespacemembers_func.html +23 -10
  317. package/SVF-doxygen/html/html/namespacemembers_m.html +3 -0
  318. package/SVF-doxygen/html/html/namespacemembers_p.html +4 -1
  319. package/SVF-doxygen/html/html/namespacemembers_type_e.html +3 -0
  320. package/SVF-doxygen/html/html/namespacemembers_type_p.html +1 -1
  321. package/SVF-doxygen/html/html/search/all_1.js +10 -10
  322. package/SVF-doxygen/html/html/search/all_10.js +12 -11
  323. package/SVF-doxygen/html/html/search/all_12.js +2 -2
  324. package/SVF-doxygen/html/html/search/all_13.js +7 -7
  325. package/SVF-doxygen/html/html/search/all_14.js +4 -4
  326. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  327. package/SVF-doxygen/html/html/search/all_3.js +12 -11
  328. package/SVF-doxygen/html/html/search/all_5.js +2 -1
  329. package/SVF-doxygen/html/html/search/all_6.js +4 -3
  330. package/SVF-doxygen/html/html/search/all_7.js +14 -13
  331. package/SVF-doxygen/html/html/search/all_8.js +1 -1
  332. package/SVF-doxygen/html/html/search/all_9.js +4 -4
  333. package/SVF-doxygen/html/html/search/all_c.js +2 -2
  334. package/SVF-doxygen/html/html/search/all_d.js +5 -4
  335. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  336. package/SVF-doxygen/html/html/search/all_f.js +3 -3
  337. package/SVF-doxygen/html/html/search/classes_4.js +2 -1
  338. package/SVF-doxygen/html/html/search/functions_0.js +10 -10
  339. package/SVF-doxygen/html/html/search/functions_10.js +2 -2
  340. package/SVF-doxygen/html/html/search/functions_2.js +6 -5
  341. package/SVF-doxygen/html/html/search/functions_6.js +14 -13
  342. package/SVF-doxygen/html/html/search/functions_7.js +1 -1
  343. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  344. package/SVF-doxygen/html/html/search/functions_b.js +3 -2
  345. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  346. package/SVF-doxygen/html/html/search/functions_e.js +2 -1
  347. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  348. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  349. package/SVF-doxygen/html/html/search/typedefs_4.js +2 -1
  350. package/SVF-doxygen/html/html/search/typedefs_5.js +2 -1
  351. package/SVF-doxygen/html/html/search/typedefs_b.js +1 -1
  352. package/SVF-doxygen/html/html/search/typedefs_f.js +3 -3
  353. package/SVF-doxygen/html/html/search/variables_10.js +1 -1
  354. package/SVF-doxygen/html/html/search/variables_14.js +2 -2
  355. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  356. package/SVF-doxygen/html/html/search/variables_3.js +5 -5
  357. package/SVF-doxygen/html/html/search/variables_6.js +3 -3
  358. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  359. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  360. package/SVF-doxygen/html/html/search/variables_e.js +2 -2
  361. package/SVF-doxygen/html/html/structSVF_1_1MemRegion_1_1equalMemRegion.html +3 -3
  362. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1equalNodeBS-members.html +81 -0
  363. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1equalNodeBS.html +134 -0
  364. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1equalPointsTo.html +3 -3
  365. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  366. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +1 -1
  367. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PAG_01_5_01_4.html +1 -1
  368. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  369. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  370. package/include/Graphs/SVFG.h +4 -4
  371. package/include/Graphs/SVFGOPT.h +4 -4
  372. package/include/MSSA/MemPartition.h +10 -10
  373. package/include/MSSA/MemRegion.h +40 -64
  374. package/include/MSSA/MemSSA.h +1 -4
  375. package/include/MSSA/SVFGBuilder.h +1 -0
  376. package/include/MemoryModel/LocationSet.h +3 -3
  377. package/include/MemoryModel/PersistentPointsToCache.h +19 -8
  378. package/include/MemoryModel/PointerAnalysisImpl.h +3 -4
  379. package/include/Util/SVFUtil.h +44 -1
  380. package/lib/Graphs/SVFG.cpp +12 -12
  381. package/lib/Graphs/SVFGOPT.cpp +6 -6
  382. package/lib/MSSA/MemPartition.cpp +31 -31
  383. package/lib/MSSA/MemRegion.cpp +59 -35
  384. package/lib/MSSA/MemSSA.cpp +5 -0
  385. package/lib/MemoryModel/LocationSet.cpp +2 -2
  386. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -4
  387. package/lib/Util/SVFUtil.cpp +3 -2
  388. package/package.json +1 -1
@@ -97,12 +97,14 @@ Public Types</h2></td></tr>
97
97
  <tr class="separator:a98ac3bf264e6a85d172c2c4264ea908f"><td class="memSeparator" colspan="2">&#160;</td></tr>
98
98
  <tr class="memitem:a82be01b460a498c07fb6a8aba853ed31"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="classSVF_1_1PAGEdge.html">PAGEdge</a> *, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a82be01b460a498c07fb6a8aba853ed31">PAGEdgeToFunMap</a></td></tr>
99
99
  <tr class="separator:a82be01b460a498c07fb6a8aba853ed31"><td class="memSeparator" colspan="2">&#160;</td></tr>
100
- <tr class="memitem:a2a9b87b7b9a567a7fd94e9267f3eb054"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">OrderedSet</a>&lt; <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>, <a class="el" href="structSVF_1_1SVFUtil_1_1equalPointsTo.html">SVFUtil::equalPointsTo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a2a9b87b7b9a567a7fd94e9267f3eb054">PointsToList</a></td></tr>
101
- <tr class="separator:a2a9b87b7b9a567a7fd94e9267f3eb054"><td class="memSeparator" colspan="2">&#160;</td></tr>
102
- <tr class="memitem:a71b584c7e0feb3014ad5f74eb31467bb"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *, <a class="el" href="classSVF_1_1MRGenerator.html#a2a9b87b7b9a567a7fd94e9267f3eb054">PointsToList</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a71b584c7e0feb3014ad5f74eb31467bb">FunToPointsToMap</a></td></tr>
103
- <tr class="separator:a71b584c7e0feb3014ad5f74eb31467bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
104
- <tr class="memitem:a429b45a55b948d6d1ffd73ea0ac6c04c"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap</a>&lt; <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>, <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>, <a class="el" href="structSVF_1_1SVFUtil_1_1equalPointsTo.html">SVFUtil::equalPointsTo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a429b45a55b948d6d1ffd73ea0ac6c04c">PtsToRepPtsSetMap</a></td></tr>
105
- <tr class="separator:a429b45a55b948d6d1ffd73ea0ac6c04c"><td class="memSeparator" colspan="2">&#160;</td></tr>
100
+ <tr class="memitem:a8b254a0c5063e25f297d1b00fb0b515e"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">OrderedSet</a>&lt; <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>, <a class="el" href="structSVF_1_1SVFUtil_1_1equalNodeBS.html">SVFUtil::equalNodeBS</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a8b254a0c5063e25f297d1b00fb0b515e">PointsToList</a></td></tr>
101
+ <tr class="separator:a8b254a0c5063e25f297d1b00fb0b515e"><td class="memSeparator" colspan="2">&#160;</td></tr>
102
+ <tr class="memitem:ad492e2940936fc7df06127f0cb94d47a"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#ad492e2940936fc7df06127f0cb94d47a">FunToPointsToMap</a></td></tr>
103
+ <tr class="separator:ad492e2940936fc7df06127f0cb94d47a"><td class="memSeparator" colspan="2">&#160;</td></tr>
104
+ <tr class="memitem:a6b8bbb60126105cc77c1a6a4c46677fd"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *, <a class="el" href="classSVF_1_1MRGenerator.html#a8b254a0c5063e25f297d1b00fb0b515e">PointsToList</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a6b8bbb60126105cc77c1a6a4c46677fd">FunToPointsTosMap</a></td></tr>
105
+ <tr class="separator:a6b8bbb60126105cc77c1a6a4c46677fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
106
+ <tr class="memitem:a665836fd866c6393fc4a251eb4929dae"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap</a>&lt; <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>, <a class="el" href="structSVF_1_1SVFUtil_1_1equalNodeBS.html">SVFUtil::equalNodeBS</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a665836fd866c6393fc4a251eb4929dae">PtsToRepPtsSetMap</a></td></tr>
107
+ <tr class="separator:a665836fd866c6393fc4a251eb4929dae"><td class="memSeparator" colspan="2">&#160;</td></tr>
106
108
  <tr class="memitem:a090070379a09460aef0c07270d32d27b"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *, <a class="el" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a090070379a09460aef0c07270d32d27b">FunToMRsMap</a></td></tr>
107
109
  <tr class="memdesc:a090070379a09460aef0c07270d32d27b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a function to its region set. <a href="#a090070379a09460aef0c07270d32d27b">More...</a><br /></td></tr>
108
110
  <tr class="separator:a090070379a09460aef0c07270d32d27b"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -122,13 +124,13 @@ Public Types</h2></td></tr>
122
124
  <tr class="memitem:a71b5ce2c754ffff5a84fdb0c3aa16819"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a> *, <a class="el" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a71b5ce2c754ffff5a84fdb0c3aa16819">CallSiteToMRsMap</a></td></tr>
123
125
  <tr class="separator:a71b5ce2c754ffff5a84fdb0c3aa16819"><td class="memSeparator" colspan="2">&#160;</td></tr>
124
126
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
125
- <tr class="memitem:af500450901135fd31ceb2ab497ca1086"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="classSVF_1_1LoadPE.html">LoadPE</a> *, <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#af500450901135fd31ceb2ab497ca1086">LoadsToPointsToMap</a></td></tr>
126
- <tr class="memdesc:af500450901135fd31ceb2ab497ca1086"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map loads/stores/callsites to their cpts set. <a href="#af500450901135fd31ceb2ab497ca1086">More...</a><br /></td></tr>
127
- <tr class="separator:af500450901135fd31ceb2ab497ca1086"><td class="memSeparator" colspan="2">&#160;</td></tr>
128
- <tr class="memitem:a4e246650818afd8be99a5ed6e23c4cd7"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="classSVF_1_1StorePE.html">StorePE</a> *, <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a4e246650818afd8be99a5ed6e23c4cd7">StoresToPointsToMap</a></td></tr>
129
- <tr class="separator:a4e246650818afd8be99a5ed6e23c4cd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
130
- <tr class="memitem:ae73349361642cbc0c5f4be0b8bf96090"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a> *, <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#ae73349361642cbc0c5f4be0b8bf96090">CallSiteToPointsToMap</a></td></tr>
131
- <tr class="separator:ae73349361642cbc0c5f4be0b8bf96090"><td class="memSeparator" colspan="2">&#160;</td></tr>
127
+ <tr class="memitem:a7b9b1c326d075a9be473680fef6a9616"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="classSVF_1_1LoadPE.html">LoadPE</a> *, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a7b9b1c326d075a9be473680fef6a9616">LoadsToPointsToMap</a></td></tr>
128
+ <tr class="memdesc:a7b9b1c326d075a9be473680fef6a9616"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map loads/stores/callsites to their cpts set. <a href="#a7b9b1c326d075a9be473680fef6a9616">More...</a><br /></td></tr>
129
+ <tr class="separator:a7b9b1c326d075a9be473680fef6a9616"><td class="memSeparator" colspan="2">&#160;</td></tr>
130
+ <tr class="memitem:a45e786ca09aa6cbfcf17d8e5a166a801"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="classSVF_1_1StorePE.html">StorePE</a> *, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a45e786ca09aa6cbfcf17d8e5a166a801">StoresToPointsToMap</a></td></tr>
131
+ <tr class="separator:a45e786ca09aa6cbfcf17d8e5a166a801"><td class="memSeparator" colspan="2">&#160;</td></tr>
132
+ <tr class="memitem:a9d22e9d113393c536c5fe473fd76f388"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a> *, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a9d22e9d113393c536c5fe473fd76f388">CallSiteToPointsToMap</a></td></tr>
133
+ <tr class="separator:a9d22e9d113393c536c5fe473fd76f388"><td class="memSeparator" colspan="2">&#160;</td></tr>
132
134
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
133
135
  <tr class="memitem:ab01e492f002c73e2c89eb0b4c8f9647d"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#ab01e492f002c73e2c89eb0b4c8f9647d">FunToNodeBSMap</a></td></tr>
134
136
  <tr class="memdesc:ab01e492f002c73e2c89eb0b4c8f9647d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maps Mod-Ref analysis. <a href="#ab01e492f002c73e2c89eb0b4c8f9647d">More...</a><br /></td></tr>
@@ -141,12 +143,12 @@ Public Types</h2></td></tr>
141
143
  Public Member Functions</h2></td></tr>
142
144
  <tr class="memitem:a1f69924c587c4e68a029fd4e86cffacf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a1f69924c587c4e68a029fd4e86cffacf">getMRSet</a> ()</td></tr>
143
145
  <tr class="separator:a1f69924c587c4e68a029fd4e86cffacf"><td class="memSeparator" colspan="2">&#160;</td></tr>
144
- <tr class="memitem:a2e039a855c8e421e80cc7b015211a192"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a2e039a855c8e421e80cc7b015211a192">getRepPointsTo</a> (const <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;cpts) const</td></tr>
145
- <tr class="memdesc:a2e039a855c8e421e80cc7b015211a192"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get superset cpts set. <a href="#a2e039a855c8e421e80cc7b015211a192">More...</a><br /></td></tr>
146
- <tr class="separator:a2e039a855c8e421e80cc7b015211a192"><td class="memSeparator" colspan="2">&#160;</td></tr>
147
- <tr class="memitem:a7ecde80ed05d425a19bf7fe0c5feff84"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1MemRegion.html">MemRegion</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a7ecde80ed05d425a19bf7fe0c5feff84">getMR</a> (const <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;cpts) const</td></tr>
148
- <tr class="memdesc:a7ecde80ed05d425a19bf7fe0c5feff84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a memory region according to cpts. <a href="#a7ecde80ed05d425a19bf7fe0c5feff84">More...</a><br /></td></tr>
149
- <tr class="separator:a7ecde80ed05d425a19bf7fe0c5feff84"><td class="memSeparator" colspan="2">&#160;</td></tr>
146
+ <tr class="memitem:a98b3481580be48cff7e93bf3c8a29dac"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a98b3481580be48cff7e93bf3c8a29dac">getRepPointsTo</a> (const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;cpts) const</td></tr>
147
+ <tr class="memdesc:a98b3481580be48cff7e93bf3c8a29dac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get superset cpts set. <a href="#a98b3481580be48cff7e93bf3c8a29dac">More...</a><br /></td></tr>
148
+ <tr class="separator:a98b3481580be48cff7e93bf3c8a29dac"><td class="memSeparator" colspan="2">&#160;</td></tr>
149
+ <tr class="memitem:a55d38020bbece70847f7e72bb02bc4af"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1MemRegion.html">MemRegion</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a55d38020bbece70847f7e72bb02bc4af">getMR</a> (const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;cpts) const</td></tr>
150
+ <tr class="memdesc:a55d38020bbece70847f7e72bb02bc4af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a memory region according to cpts. <a href="#a55d38020bbece70847f7e72bb02bc4af">More...</a><br /></td></tr>
151
+ <tr class="separator:a55d38020bbece70847f7e72bb02bc4af"><td class="memSeparator" colspan="2">&#160;</td></tr>
150
152
  <tr class="memitem:ad34e796ebc49f5749de39e81374dc7a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#ad34e796ebc49f5749de39e81374dc7a7">getMRNum</a> () const</td></tr>
151
153
  <tr class="separator:ad34e796ebc49f5749de39e81374dc7a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
152
154
  <tr class="memitem:a46e08638c8b5e6f6755de045c94862c4"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a46e08638c8b5e6f6755de045c94862c4">~MRGenerator</a> ()</td></tr>
@@ -158,12 +160,12 @@ Public Member Functions</h2></td></tr>
158
160
  <tr class="memitem:a3121380139c7ae96d2045d66203253b6"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a3121380139c7ae96d2045d66203253b6">getFunction</a> (const <a class="el" href="classSVF_1_1PAGEdge.html">PAGEdge</a> *pagEdge) const</td></tr>
159
161
  <tr class="memdesc:a3121380139c7ae96d2045d66203253b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the function which <a class="el" href="classSVF_1_1PAG.html">PAG</a> Edge located. <a href="#a3121380139c7ae96d2045d66203253b6">More...</a><br /></td></tr>
160
162
  <tr class="separator:a3121380139c7ae96d2045d66203253b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
161
- <tr class="memitem:abe76a16b9eedc9f8ffca6bc39cfb5c7e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#abe76a16b9eedc9f8ffca6bc39cfb5c7e">hasPAGEdgeList</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
162
- <tr class="memdesc:abe76a16b9eedc9f8ffca6bc39cfb5c7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether this instruction has <a class="el" href="classSVF_1_1PAG.html">PAG</a> Edge. <a href="#abe76a16b9eedc9f8ffca6bc39cfb5c7e">More...</a><br /></td></tr>
163
- <tr class="separator:abe76a16b9eedc9f8ffca6bc39cfb5c7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
164
- <tr class="memitem:a2eda764e59d9b5e7620d2cf26562615a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">PAGEdgeList</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a2eda764e59d9b5e7620d2cf26562615a">getPAGEdgesFromInst</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
165
- <tr class="memdesc:a2eda764e59d9b5e7620d2cf26562615a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given an instruction, get all its the <a class="el" href="classSVF_1_1PAGEdge.html">PAGEdge</a> (statement) in sequence. <a href="#a2eda764e59d9b5e7620d2cf26562615a">More...</a><br /></td></tr>
166
- <tr class="separator:a2eda764e59d9b5e7620d2cf26562615a"><td class="memSeparator" colspan="2">&#160;</td></tr>
163
+ <tr class="memitem:a8832a53d8f6a5eb0a07551ca19c5513d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a8832a53d8f6a5eb0a07551ca19c5513d">hasPAGEdgeList</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
164
+ <tr class="memdesc:a8832a53d8f6a5eb0a07551ca19c5513d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether this instruction has <a class="el" href="classSVF_1_1PAG.html">PAG</a> Edge. <a href="#a8832a53d8f6a5eb0a07551ca19c5513d">More...</a><br /></td></tr>
165
+ <tr class="separator:a8832a53d8f6a5eb0a07551ca19c5513d"><td class="memSeparator" colspan="2">&#160;</td></tr>
166
+ <tr class="memitem:a5875a7f064e468d5eceba737eeb44791"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">PAGEdgeList</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a5875a7f064e468d5eceba737eeb44791">getPAGEdgesFromInst</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
167
+ <tr class="memdesc:a5875a7f064e468d5eceba737eeb44791"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given an instruction, get all its the <a class="el" href="classSVF_1_1PAGEdge.html">PAGEdge</a> (statement) in sequence. <a href="#a5875a7f064e468d5eceba737eeb44791">More...</a><br /></td></tr>
168
+ <tr class="separator:a5875a7f064e468d5eceba737eeb44791"><td class="memSeparator" colspan="2">&#160;</td></tr>
167
169
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
168
170
  <tr class="memitem:a64ba36ddcd304f6543e416c552763879"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a64ba36ddcd304f6543e416c552763879">getFunMRSet</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
169
171
  <tr class="memdesc:a64ba36ddcd304f6543e416c552763879"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get Memory Region set. <a href="#a64ba36ddcd304f6543e416c552763879">More...</a><br /></td></tr>
@@ -181,11 +183,11 @@ Public Member Functions</h2></td></tr>
181
183
  <tr class="memitem:acb78098bf1fc8c3a80720a3dff3a0a1d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#acb78098bf1fc8c3a80720a3dff3a0a1d">getCallSiteModMRSet</a> (const <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a> *cs)</td></tr>
182
184
  <tr class="separator:acb78098bf1fc8c3a80720a3dff3a0a1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
183
185
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
184
- <tr class="memitem:a1658aacb68aacb4785266263c1641a6a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a1658aacb68aacb4785266263c1641a6a">getModInfoForCall</a> (const <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a> *cs)</td></tr>
185
- <tr class="memdesc:a1658aacb68aacb4785266263c1641a6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">getModRefInfo APIs <a href="#a1658aacb68aacb4785266263c1641a6a">More...</a><br /></td></tr>
186
- <tr class="separator:a1658aacb68aacb4785266263c1641a6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
187
- <tr class="memitem:afc17f566f57656cf17c08665602b4849"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#afc17f566f57656cf17c08665602b4849">getRefInfoForCall</a> (const <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a> *cs)</td></tr>
188
- <tr class="separator:afc17f566f57656cf17c08665602b4849"><td class="memSeparator" colspan="2">&#160;</td></tr>
186
+ <tr class="memitem:af0d1a34ce38e9b20ee6fc7b27fcd5198"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#af0d1a34ce38e9b20ee6fc7b27fcd5198">getModInfoForCall</a> (const <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a> *cs)</td></tr>
187
+ <tr class="memdesc:af0d1a34ce38e9b20ee6fc7b27fcd5198"><td class="mdescLeft">&#160;</td><td class="mdescRight">getModRefInfo APIs <a href="#af0d1a34ce38e9b20ee6fc7b27fcd5198">More...</a><br /></td></tr>
188
+ <tr class="separator:af0d1a34ce38e9b20ee6fc7b27fcd5198"><td class="memSeparator" colspan="2">&#160;</td></tr>
189
+ <tr class="memitem:acbc431cc7fb72135e592d74709ea7a77"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#acbc431cc7fb72135e592d74709ea7a77">getRefInfoForCall</a> (const <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a> *cs)</td></tr>
190
+ <tr class="separator:acbc431cc7fb72135e592d74709ea7a77"><td class="memSeparator" colspan="2">&#160;</td></tr>
189
191
  <tr class="memitem:a455e0ba173141ac8ce76a655ac52205f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a7e833aa9feaf931fb44fb1e3fd502a6c">ModRefInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a455e0ba173141ac8ce76a655ac52205f">getModRefInfo</a> (const <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a> *cs)</td></tr>
190
192
  <tr class="separator:a455e0ba173141ac8ce76a655ac52205f"><td class="memSeparator" colspan="2">&#160;</td></tr>
191
193
  <tr class="memitem:a9f1d1604fb884e5c99702556915396f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a7e833aa9feaf931fb44fb1e3fd502a6c">ModRefInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a9f1d1604fb884e5c99702556915396f9">getModRefInfo</a> (const <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a> *cs, const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</td></tr>
@@ -195,11 +197,11 @@ Public Member Functions</h2></td></tr>
195
197
  </table><table class="memberdecls">
196
198
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
197
199
  Protected Member Functions</h2></td></tr>
198
- <tr class="memitem:a1023eb17f1a46eee9a948490a4c8fdd5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a1023eb17f1a46eee9a948490a4c8fdd5">MRGenerator</a> (<a class="el" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a> *p, bool ptrOnly)</td></tr>
199
- <tr class="separator:a1023eb17f1a46eee9a948490a4c8fdd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
200
- <tr class="memitem:a42708b4ce8b5548e156a0e6d01602cc2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a42708b4ce8b5548e156a0e6d01602cc2">createMR</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun, const <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;cpts)</td></tr>
201
- <tr class="memdesc:a42708b4ce8b5548e156a0e6d01602cc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a memory region and put in into functions which use it. <a href="#a42708b4ce8b5548e156a0e6d01602cc2">More...</a><br /></td></tr>
202
- <tr class="separator:a42708b4ce8b5548e156a0e6d01602cc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
200
+ <tr class="memitem:ac8fedbb65a582135354c939183d48f46"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#ac8fedbb65a582135354c939183d48f46">MRGenerator</a> (<a class="el" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a> *p, bool ptrOnly)</td></tr>
201
+ <tr class="separator:ac8fedbb65a582135354c939183d48f46"><td class="memSeparator" colspan="2">&#160;</td></tr>
202
+ <tr class="memitem:ac18324bd2b862c3cdbf65494bf69ecb5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#ac18324bd2b862c3cdbf65494bf69ecb5">createMR</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun, const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;cpts)</td></tr>
203
+ <tr class="memdesc:ac18324bd2b862c3cdbf65494bf69ecb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a memory region and put in into functions which use it. <a href="#ac18324bd2b862c3cdbf65494bf69ecb5">More...</a><br /></td></tr>
204
+ <tr class="separator:ac18324bd2b862c3cdbf65494bf69ecb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
203
205
  <tr class="memitem:afdae3e11009966856736d9aa1e2ad5bd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#afdae3e11009966856736d9aa1e2ad5bd">collectGlobals</a> ()</td></tr>
204
206
  <tr class="memdesc:afdae3e11009966856736d9aa1e2ad5bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Collect all global variables for later escape analysis. <a href="#afdae3e11009966856736d9aa1e2ad5bd">More...</a><br /></td></tr>
205
207
  <tr class="separator:afdae3e11009966856736d9aa1e2ad5bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -215,21 +217,21 @@ Protected Member Functions</h2></td></tr>
215
217
  <tr class="memitem:a9c1da53188729eb743e1a33bbad87af7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a9c1da53188729eb743e1a33bbad87af7">updateAliasMRs</a> ()</td></tr>
216
218
  <tr class="memdesc:a9c1da53188729eb743e1a33bbad87af7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update aliased regions for loads/stores/callsites. <a href="#a9c1da53188729eb743e1a33bbad87af7">More...</a><br /></td></tr>
217
219
  <tr class="separator:a9c1da53188729eb743e1a33bbad87af7"><td class="memSeparator" colspan="2">&#160;</td></tr>
218
- <tr class="memitem:a4d20ddfe5cb90d91fd86276a3f010b87"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a4d20ddfe5cb90d91fd86276a3f010b87">sortPointsTo</a> (const <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;cpts)</td></tr>
219
- <tr class="memdesc:a4d20ddfe5cb90d91fd86276a3f010b87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given a condition pts, insert into cptsToRepCPtsMap for region generation. <a href="#a4d20ddfe5cb90d91fd86276a3f010b87">More...</a><br /></td></tr>
220
- <tr class="separator:a4d20ddfe5cb90d91fd86276a3f010b87"><td class="memSeparator" colspan="2">&#160;</td></tr>
221
- <tr class="memitem:acd1759ce72edc748e6628d7e82458473"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#acd1759ce72edc748e6628d7e82458473">isAliasedMR</a> (const <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;cpts, const <a class="el" href="classSVF_1_1MemRegion.html">MemRegion</a> *mr)</td></tr>
222
- <tr class="memdesc:acd1759ce72edc748e6628d7e82458473"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether a region is aliased with a conditional points-to. <a href="#acd1759ce72edc748e6628d7e82458473">More...</a><br /></td></tr>
223
- <tr class="separator:acd1759ce72edc748e6628d7e82458473"><td class="memSeparator" colspan="2">&#160;</td></tr>
224
- <tr class="memitem:a6426e7a9a6324b8b2f8a9bcf4aab1fc1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a6426e7a9a6324b8b2f8a9bcf4aab1fc1">getAliasMemRegions</a> (<a class="el" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> &amp;aliasMRs, const <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;cpts, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
225
- <tr class="memdesc:a6426e7a9a6324b8b2f8a9bcf4aab1fc1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get all aliased mem regions from function fun according to cpts. <a href="#a6426e7a9a6324b8b2f8a9bcf4aab1fc1">More...</a><br /></td></tr>
226
- <tr class="separator:a6426e7a9a6324b8b2f8a9bcf4aab1fc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
227
- <tr class="memitem:a2a7012e9f2e84ac1c5f7ed61daa67ac7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a2a7012e9f2e84ac1c5f7ed61daa67ac7">getMRsForLoad</a> (<a class="el" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> &amp;aliasMRs, const <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;cpts, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *)</td></tr>
228
- <tr class="memdesc:a2a7012e9f2e84ac1c5f7ed61daa67ac7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get memory regions for a load statement according to cpts. <a href="#a2a7012e9f2e84ac1c5f7ed61daa67ac7">More...</a><br /></td></tr>
229
- <tr class="separator:a2a7012e9f2e84ac1c5f7ed61daa67ac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
230
- <tr class="memitem:af4eda1f51e3f58c8cccddee474972fe9"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#af4eda1f51e3f58c8cccddee474972fe9">getMRsForCallSiteRef</a> (<a class="el" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> &amp;aliasMRs, const <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;cpts, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *)</td></tr>
231
- <tr class="memdesc:af4eda1f51e3f58c8cccddee474972fe9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get memory regions for call site ref according to cpts. <a href="#af4eda1f51e3f58c8cccddee474972fe9">More...</a><br /></td></tr>
232
- <tr class="separator:af4eda1f51e3f58c8cccddee474972fe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
220
+ <tr class="memitem:a66d94d15fb94e90a771f6b3dd7c0ecdd"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a66d94d15fb94e90a771f6b3dd7c0ecdd">sortPointsTo</a> (const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;cpts)</td></tr>
221
+ <tr class="memdesc:a66d94d15fb94e90a771f6b3dd7c0ecdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given a condition pts, insert into cptsToRepCPtsMap for region generation. <a href="#a66d94d15fb94e90a771f6b3dd7c0ecdd">More...</a><br /></td></tr>
222
+ <tr class="separator:a66d94d15fb94e90a771f6b3dd7c0ecdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
223
+ <tr class="memitem:a28130cc55ab317d383ba6593f323b12a"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a28130cc55ab317d383ba6593f323b12a">isAliasedMR</a> (const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;cpts, const <a class="el" href="classSVF_1_1MemRegion.html">MemRegion</a> *mr)</td></tr>
224
+ <tr class="memdesc:a28130cc55ab317d383ba6593f323b12a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether a region is aliased with a conditional points-to. <a href="#a28130cc55ab317d383ba6593f323b12a">More...</a><br /></td></tr>
225
+ <tr class="separator:a28130cc55ab317d383ba6593f323b12a"><td class="memSeparator" colspan="2">&#160;</td></tr>
226
+ <tr class="memitem:ad740188222439c089907fa6c6c951f02"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#ad740188222439c089907fa6c6c951f02">getAliasMemRegions</a> (<a class="el" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> &amp;aliasMRs, const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;cpts, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
227
+ <tr class="memdesc:ad740188222439c089907fa6c6c951f02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get all aliased mem regions from function fun according to cpts. <a href="#ad740188222439c089907fa6c6c951f02">More...</a><br /></td></tr>
228
+ <tr class="separator:ad740188222439c089907fa6c6c951f02"><td class="memSeparator" colspan="2">&#160;</td></tr>
229
+ <tr class="memitem:abe8d6217250d227e743e4b581497aae8"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#abe8d6217250d227e743e4b581497aae8">getMRsForLoad</a> (<a class="el" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> &amp;aliasMRs, const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;cpts, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *)</td></tr>
230
+ <tr class="memdesc:abe8d6217250d227e743e4b581497aae8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get memory regions for a load statement according to cpts. <a href="#abe8d6217250d227e743e4b581497aae8">More...</a><br /></td></tr>
231
+ <tr class="separator:abe8d6217250d227e743e4b581497aae8"><td class="memSeparator" colspan="2">&#160;</td></tr>
232
+ <tr class="memitem:a02c60ceb7c9c37bcf83c739aa4083acc"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a02c60ceb7c9c37bcf83c739aa4083acc">getMRsForCallSiteRef</a> (<a class="el" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> &amp;aliasMRs, const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;cpts, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *)</td></tr>
233
+ <tr class="memdesc:a02c60ceb7c9c37bcf83c739aa4083acc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get memory regions for call site ref according to cpts. <a href="#a02c60ceb7c9c37bcf83c739aa4083acc">More...</a><br /></td></tr>
234
+ <tr class="separator:a02c60ceb7c9c37bcf83c739aa4083acc"><td class="memSeparator" colspan="2">&#160;</td></tr>
233
235
  <tr class="memitem:adc9d530e6f010596d91cd3711dc1358b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#adc9d530e6f010596d91cd3711dc1358b">modRefAnalysis</a> (<a class="el" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a> *callGraphNode, <a class="el" href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">WorkList</a> &amp;worklist)</td></tr>
234
236
  <tr class="memdesc:adc9d530e6f010596d91cd3711dc1358b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mod-Ref analysis for callsite invoking this callGraphNode. <a href="#adc9d530e6f010596d91cd3711dc1358b">More...</a><br /></td></tr>
235
237
  <tr class="separator:adc9d530e6f010596d91cd3711dc1358b"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -237,21 +239,21 @@ Protected Member Functions</h2></td></tr>
237
239
  <tr class="memdesc:a123a2ea51b04f1398b9ee66567f5014a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get Mod-Ref of a callee function. <a href="#a123a2ea51b04f1398b9ee66567f5014a">More...</a><br /></td></tr>
238
240
  <tr class="separator:a123a2ea51b04f1398b9ee66567f5014a"><td class="memSeparator" colspan="2">&#160;</td></tr>
239
241
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
240
- <tr class="memitem:ae439967f24dbb6dbc11287592eb0d30c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#ae439967f24dbb6dbc11287592eb0d30c">addCPtsToStore</a> (<a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;cpts, const <a class="el" href="classSVF_1_1StorePE.html">StorePE</a> *st, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
241
- <tr class="memdesc:ae439967f24dbb6dbc11287592eb0d30c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add cpts to store/load. <a href="#ae439967f24dbb6dbc11287592eb0d30c">More...</a><br /></td></tr>
242
- <tr class="separator:ae439967f24dbb6dbc11287592eb0d30c"><td class="memSeparator" colspan="2">&#160;</td></tr>
243
- <tr class="memitem:a4d71379ec4350d6fde0c12336c1b92d8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a4d71379ec4350d6fde0c12336c1b92d8">addCPtsToLoad</a> (<a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;cpts, const <a class="el" href="classSVF_1_1LoadPE.html">LoadPE</a> *ld, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
244
- <tr class="separator:a4d71379ec4350d6fde0c12336c1b92d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
245
- <tr class="memitem:a2416e15c41fce38dfa63318a8f64e11f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a2416e15c41fce38dfa63318a8f64e11f">addCPtsToCallSiteRefs</a> (<a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;cpts, const <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a> *cs)</td></tr>
246
- <tr class="separator:a2416e15c41fce38dfa63318a8f64e11f"><td class="memSeparator" colspan="2">&#160;</td></tr>
247
- <tr class="memitem:ae2594115874771c93963846f3276e1fb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#ae2594115874771c93963846f3276e1fb">addCPtsToCallSiteMods</a> (<a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;cpts, const <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a> *cs)</td></tr>
248
- <tr class="separator:ae2594115874771c93963846f3276e1fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
242
+ <tr class="memitem:aa9900773ce82da953385df2e6487200e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#aa9900773ce82da953385df2e6487200e">addCPtsToStore</a> (<a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;cpts, const <a class="el" href="classSVF_1_1StorePE.html">StorePE</a> *st, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
243
+ <tr class="memdesc:aa9900773ce82da953385df2e6487200e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add cpts to store/load. <a href="#aa9900773ce82da953385df2e6487200e">More...</a><br /></td></tr>
244
+ <tr class="separator:aa9900773ce82da953385df2e6487200e"><td class="memSeparator" colspan="2">&#160;</td></tr>
245
+ <tr class="memitem:a4cd3d3af2cfad7b5c086f00ab8e68169"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a4cd3d3af2cfad7b5c086f00ab8e68169">addCPtsToLoad</a> (<a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;cpts, const <a class="el" href="classSVF_1_1LoadPE.html">LoadPE</a> *ld, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
246
+ <tr class="separator:a4cd3d3af2cfad7b5c086f00ab8e68169"><td class="memSeparator" colspan="2">&#160;</td></tr>
247
+ <tr class="memitem:a77cf2b1959581da2b0cdf88291664ff3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a77cf2b1959581da2b0cdf88291664ff3">addCPtsToCallSiteRefs</a> (<a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;cpts, const <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a> *cs)</td></tr>
248
+ <tr class="separator:a77cf2b1959581da2b0cdf88291664ff3"><td class="memSeparator" colspan="2">&#160;</td></tr>
249
+ <tr class="memitem:a3c9e58dee18cde9a6e1575e34955af78"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a3c9e58dee18cde9a6e1575e34955af78">addCPtsToCallSiteMods</a> (<a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;cpts, const <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a> *cs)</td></tr>
250
+ <tr class="separator:a3c9e58dee18cde9a6e1575e34955af78"><td class="memSeparator" colspan="2">&#160;</td></tr>
249
251
  <tr class="memitem:a1cb94c8a0379eb30c99f0c3cb2bfebaf"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a1cb94c8a0379eb30c99f0c3cb2bfebaf">hasCPtsList</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun) const</td></tr>
250
252
  <tr class="separator:a1cb94c8a0379eb30c99f0c3cb2bfebaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
251
- <tr class="memitem:a6d86c8ebe87cb54f39e52daa7ffb0e2e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a2a9b87b7b9a567a7fd94e9267f3eb054">PointsToList</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a6d86c8ebe87cb54f39e52daa7ffb0e2e">getPointsToList</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
253
+ <tr class="memitem:a6d86c8ebe87cb54f39e52daa7ffb0e2e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a8b254a0c5063e25f297d1b00fb0b515e">PointsToList</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a6d86c8ebe87cb54f39e52daa7ffb0e2e">getPointsToList</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
252
254
  <tr class="separator:a6d86c8ebe87cb54f39e52daa7ffb0e2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
253
- <tr class="memitem:ad8333efeda532f0d403352ad6a4987e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a71b584c7e0feb3014ad5f74eb31467bb">FunToPointsToMap</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#ad8333efeda532f0d403352ad6a4987e9">getFunToPointsToList</a> ()</td></tr>
254
- <tr class="separator:ad8333efeda532f0d403352ad6a4987e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
255
+ <tr class="memitem:a1331e6f0941838064d77a5adaa5c6303"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a6b8bbb60126105cc77c1a6a4c46677fd">FunToPointsTosMap</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a1331e6f0941838064d77a5adaa5c6303">getFunToPointsToList</a> ()</td></tr>
256
+ <tr class="separator:a1331e6f0941838064d77a5adaa5c6303"><td class="memSeparator" colspan="2">&#160;</td></tr>
255
257
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
256
258
  <tr class="memitem:a899c81db92c6bcf24f6f9b769e02e5bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a899c81db92c6bcf24f6f9b769e02e5bf">addRefSideEffectOfFunction</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun, const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;refs)</td></tr>
257
259
  <tr class="memdesc:a899c81db92c6bcf24f6f9b769e02e5bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add/Get methods for side-effect of functions and callsites. <a href="#a899c81db92c6bcf24f6f9b769e02e5bf">More...</a><br /></td></tr>
@@ -289,7 +291,7 @@ Protected Attributes</h2></td></tr>
289
291
  <tr class="memitem:af94bd8155a23273aab2396334d905119"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a></td></tr>
290
292
  <tr class="memdesc:af94bd8155a23273aab2396334d905119"><td class="mdescLeft">&#160;</td><td class="mdescRight">A set of All memory regions. <a href="#af94bd8155a23273aab2396334d905119">More...</a><br /></td></tr>
291
293
  <tr class="separator:af94bd8155a23273aab2396334d905119"><td class="memSeparator" colspan="2">&#160;</td></tr>
292
- <tr class="memitem:ab4d1ff0357d389a65ff1c2112ce631a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a429b45a55b948d6d1ffd73ea0ac6c04c">PtsToRepPtsSetMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a></td></tr>
294
+ <tr class="memitem:ab4d1ff0357d389a65ff1c2112ce631a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a665836fd866c6393fc4a251eb4929dae">PtsToRepPtsSetMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a></td></tr>
293
295
  <tr class="memdesc:ab4d1ff0357d389a65ff1c2112ce631a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a condition pts to its rep conditional pts (super set points-to) <a href="#ab4d1ff0357d389a65ff1c2112ce631a1">More...</a><br /></td></tr>
294
296
  <tr class="separator:ab4d1ff0357d389a65ff1c2112ce631a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
295
297
  </table><table class="memberdecls">
@@ -342,42 +344,42 @@ Private Attributes</h2></td></tr>
342
344
  <tr class="memitem:adf8d477e5f622855799842134145ecc4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a71b5ce2c754ffff5a84fdb0c3aa16819">CallSiteToMRsMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#adf8d477e5f622855799842134145ecc4">callsiteToModMRsMap</a></td></tr>
343
345
  <tr class="memdesc:adf8d477e5f622855799842134145ecc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a callsite to its mods regions. <a href="#adf8d477e5f622855799842134145ecc4">More...</a><br /></td></tr>
344
346
  <tr class="separator:adf8d477e5f622855799842134145ecc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
345
- <tr class="memitem:af47e15d6b8c15d547a718f3577513975"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#af500450901135fd31ceb2ab497ca1086">LoadsToPointsToMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#af47e15d6b8c15d547a718f3577513975">loadsToPointsToMap</a></td></tr>
347
+ <tr class="memitem:af47e15d6b8c15d547a718f3577513975"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a7b9b1c326d075a9be473680fef6a9616">LoadsToPointsToMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#af47e15d6b8c15d547a718f3577513975">loadsToPointsToMap</a></td></tr>
346
348
  <tr class="memdesc:af47e15d6b8c15d547a718f3577513975"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a load <a class="el" href="classSVF_1_1PAG.html">PAG</a> Edge to its CPts set map. <a href="#af47e15d6b8c15d547a718f3577513975">More...</a><br /></td></tr>
347
349
  <tr class="separator:af47e15d6b8c15d547a718f3577513975"><td class="memSeparator" colspan="2">&#160;</td></tr>
348
- <tr class="memitem:a7d86f708743a59aa31c0a9fd6de45dac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a4e246650818afd8be99a5ed6e23c4cd7">StoresToPointsToMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a7d86f708743a59aa31c0a9fd6de45dac">storesToPointsToMap</a></td></tr>
350
+ <tr class="memitem:a7d86f708743a59aa31c0a9fd6de45dac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a45e786ca09aa6cbfcf17d8e5a166a801">StoresToPointsToMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a7d86f708743a59aa31c0a9fd6de45dac">storesToPointsToMap</a></td></tr>
349
351
  <tr class="memdesc:a7d86f708743a59aa31c0a9fd6de45dac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a store <a class="el" href="classSVF_1_1PAG.html">PAG</a> Edge to its CPts set map. <a href="#a7d86f708743a59aa31c0a9fd6de45dac">More...</a><br /></td></tr>
350
352
  <tr class="separator:a7d86f708743a59aa31c0a9fd6de45dac"><td class="memSeparator" colspan="2">&#160;</td></tr>
351
- <tr class="memitem:a34967cda51699f948a581b9f88fa3b10"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#ae73349361642cbc0c5f4be0b8bf96090">CallSiteToPointsToMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a34967cda51699f948a581b9f88fa3b10">callsiteToRefPointsToMap</a></td></tr>
353
+ <tr class="memitem:a34967cda51699f948a581b9f88fa3b10"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a9d22e9d113393c536c5fe473fd76f388">CallSiteToPointsToMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a34967cda51699f948a581b9f88fa3b10">callsiteToRefPointsToMap</a></td></tr>
352
354
  <tr class="memdesc:a34967cda51699f948a581b9f88fa3b10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a callsite to it refs cpts set. <a href="#a34967cda51699f948a581b9f88fa3b10">More...</a><br /></td></tr>
353
355
  <tr class="separator:a34967cda51699f948a581b9f88fa3b10"><td class="memSeparator" colspan="2">&#160;</td></tr>
354
- <tr class="memitem:ab8df193e84009e406c301731d17dc7b9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#ae73349361642cbc0c5f4be0b8bf96090">CallSiteToPointsToMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#ab8df193e84009e406c301731d17dc7b9">callsiteToModPointsToMap</a></td></tr>
356
+ <tr class="memitem:ab8df193e84009e406c301731d17dc7b9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a9d22e9d113393c536c5fe473fd76f388">CallSiteToPointsToMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#ab8df193e84009e406c301731d17dc7b9">callsiteToModPointsToMap</a></td></tr>
355
357
  <tr class="memdesc:ab8df193e84009e406c301731d17dc7b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a callsite to it mods cpts set. <a href="#ab8df193e84009e406c301731d17dc7b9">More...</a><br /></td></tr>
356
358
  <tr class="separator:ab8df193e84009e406c301731d17dc7b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
357
- <tr class="memitem:acaf48288039d19bf0bb9f2e506fbfd8d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a71b584c7e0feb3014ad5f74eb31467bb">FunToPointsToMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#acaf48288039d19bf0bb9f2e506fbfd8d">funToPointsToMap</a></td></tr>
358
- <tr class="memdesc:acaf48288039d19bf0bb9f2e506fbfd8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a function to all of its conditional points-to sets. <a href="#acaf48288039d19bf0bb9f2e506fbfd8d">More...</a><br /></td></tr>
359
- <tr class="separator:acaf48288039d19bf0bb9f2e506fbfd8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
359
+ <tr class="memitem:a05c7a5ddbe3079f63be76c35298d1c2b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a6b8bbb60126105cc77c1a6a4c46677fd">FunToPointsTosMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a05c7a5ddbe3079f63be76c35298d1c2b">funToPointsToMap</a></td></tr>
360
+ <tr class="memdesc:a05c7a5ddbe3079f63be76c35298d1c2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a function to all of its conditional points-to sets. <a href="#a05c7a5ddbe3079f63be76c35298d1c2b">More...</a><br /></td></tr>
361
+ <tr class="separator:a05c7a5ddbe3079f63be76c35298d1c2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
360
362
  <tr class="memitem:ab250a4950269f57027d8e8ef10089f58"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a82be01b460a498c07fb6a8aba853ed31">PAGEdgeToFunMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58">pagEdgeToFunMap</a></td></tr>
361
363
  <tr class="memdesc:ab250a4950269f57027d8e8ef10089f58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a <a class="el" href="classSVF_1_1PAGEdge.html">PAGEdge</a> to its fun. <a href="#ab250a4950269f57027d8e8ef10089f58">More...</a><br /></td></tr>
362
364
  <tr class="separator:ab250a4950269f57027d8e8ef10089f58"><td class="memSeparator" colspan="2">&#160;</td></tr>
363
- <tr class="memitem:afe018918c8acc83cd128b4c56ff42075"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#ab01e492f002c73e2c89eb0b4c8f9647d">FunToNodeBSMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#afe018918c8acc83cd128b4c56ff42075">funToRefsMap</a></td></tr>
364
- <tr class="memdesc:afe018918c8acc83cd128b4c56ff42075"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a function to its indirect uses of memory objects. <a href="#afe018918c8acc83cd128b4c56ff42075">More...</a><br /></td></tr>
365
- <tr class="separator:afe018918c8acc83cd128b4c56ff42075"><td class="memSeparator" colspan="2">&#160;</td></tr>
366
- <tr class="memitem:aeb185d6d9c7bfe4b98c7440db6b8bbc4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#ab01e492f002c73e2c89eb0b4c8f9647d">FunToNodeBSMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#aeb185d6d9c7bfe4b98c7440db6b8bbc4">funToModsMap</a></td></tr>
367
- <tr class="memdesc:aeb185d6d9c7bfe4b98c7440db6b8bbc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a function to its indirect defs of memory objects. <a href="#aeb185d6d9c7bfe4b98c7440db6b8bbc4">More...</a><br /></td></tr>
368
- <tr class="separator:aeb185d6d9c7bfe4b98c7440db6b8bbc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
369
- <tr class="memitem:a08779053af9db71ba0bc24710a7e198c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a55ca7850e00f57a8a4b83bc969493046">CallSiteToNodeBSMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a08779053af9db71ba0bc24710a7e198c">csToRefsMap</a></td></tr>
370
- <tr class="memdesc:a08779053af9db71ba0bc24710a7e198c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a callsite to its indirect uses of memory objects. <a href="#a08779053af9db71ba0bc24710a7e198c">More...</a><br /></td></tr>
371
- <tr class="separator:a08779053af9db71ba0bc24710a7e198c"><td class="memSeparator" colspan="2">&#160;</td></tr>
372
- <tr class="memitem:a72222bae993142be1881c34660646b82"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a55ca7850e00f57a8a4b83bc969493046">CallSiteToNodeBSMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a72222bae993142be1881c34660646b82">csToModsMap</a></td></tr>
373
- <tr class="memdesc:a72222bae993142be1881c34660646b82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a callsite to its indirect defs of memory objects. <a href="#a72222bae993142be1881c34660646b82">More...</a><br /></td></tr>
374
- <tr class="separator:a72222bae993142be1881c34660646b82"><td class="memSeparator" colspan="2">&#160;</td></tr>
375
- <tr class="memitem:a145cccd6355dd479e8a0c744584cef9a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a55ca7850e00f57a8a4b83bc969493046">CallSiteToNodeBSMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a145cccd6355dd479e8a0c744584cef9a">csToCallSiteArgsPtsMap</a></td></tr>
376
- <tr class="memdesc:a145cccd6355dd479e8a0c744584cef9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a callsite to all its object might pass into its callees. <a href="#a145cccd6355dd479e8a0c744584cef9a">More...</a><br /></td></tr>
377
- <tr class="separator:a145cccd6355dd479e8a0c744584cef9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
378
- <tr class="memitem:a9368636daea4542fa36fff822ff39104"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a55ca7850e00f57a8a4b83bc969493046">CallSiteToNodeBSMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a9368636daea4542fa36fff822ff39104">csToCallSiteRetPtsMap</a></td></tr>
379
- <tr class="memdesc:a9368636daea4542fa36fff822ff39104"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a callsite to all its object might return from its callees. <a href="#a9368636daea4542fa36fff822ff39104">More...</a><br /></td></tr>
380
- <tr class="separator:a9368636daea4542fa36fff822ff39104"><td class="memSeparator" colspan="2">&#160;</td></tr>
365
+ <tr class="memitem:af6d58e2971c4a8d3ee03f9dfd9072a3a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#ad492e2940936fc7df06127f0cb94d47a">FunToPointsToMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#af6d58e2971c4a8d3ee03f9dfd9072a3a">funToRefsMap</a></td></tr>
366
+ <tr class="memdesc:af6d58e2971c4a8d3ee03f9dfd9072a3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a function to its indirect uses of memory objects. <a href="#af6d58e2971c4a8d3ee03f9dfd9072a3a">More...</a><br /></td></tr>
367
+ <tr class="separator:af6d58e2971c4a8d3ee03f9dfd9072a3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
368
+ <tr class="memitem:a2c94bfa19ad8d1d6360b12693c8b891d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#ad492e2940936fc7df06127f0cb94d47a">FunToPointsToMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a2c94bfa19ad8d1d6360b12693c8b891d">funToModsMap</a></td></tr>
369
+ <tr class="memdesc:a2c94bfa19ad8d1d6360b12693c8b891d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a function to its indirect defs of memory objects. <a href="#a2c94bfa19ad8d1d6360b12693c8b891d">More...</a><br /></td></tr>
370
+ <tr class="separator:a2c94bfa19ad8d1d6360b12693c8b891d"><td class="memSeparator" colspan="2">&#160;</td></tr>
371
+ <tr class="memitem:ac7b5ca3fd950e1a940f875ac135640f6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a9d22e9d113393c536c5fe473fd76f388">CallSiteToPointsToMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#ac7b5ca3fd950e1a940f875ac135640f6">csToRefsMap</a></td></tr>
372
+ <tr class="memdesc:ac7b5ca3fd950e1a940f875ac135640f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a callsite to its indirect uses of memory objects. <a href="#ac7b5ca3fd950e1a940f875ac135640f6">More...</a><br /></td></tr>
373
+ <tr class="separator:ac7b5ca3fd950e1a940f875ac135640f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
374
+ <tr class="memitem:a603f993995e7d6961e203a195bb56029"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a9d22e9d113393c536c5fe473fd76f388">CallSiteToPointsToMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a603f993995e7d6961e203a195bb56029">csToModsMap</a></td></tr>
375
+ <tr class="memdesc:a603f993995e7d6961e203a195bb56029"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a callsite to its indirect defs of memory objects. <a href="#a603f993995e7d6961e203a195bb56029">More...</a><br /></td></tr>
376
+ <tr class="separator:a603f993995e7d6961e203a195bb56029"><td class="memSeparator" colspan="2">&#160;</td></tr>
377
+ <tr class="memitem:afe91b57b451d7788364493549e015acf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a9d22e9d113393c536c5fe473fd76f388">CallSiteToPointsToMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#afe91b57b451d7788364493549e015acf">csToCallSiteArgsPtsMap</a></td></tr>
378
+ <tr class="memdesc:afe91b57b451d7788364493549e015acf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a callsite to all its object might pass into its callees. <a href="#afe91b57b451d7788364493549e015acf">More...</a><br /></td></tr>
379
+ <tr class="separator:afe91b57b451d7788364493549e015acf"><td class="memSeparator" colspan="2">&#160;</td></tr>
380
+ <tr class="memitem:a21550f978f42ac3cbb32cbc426ff5cb1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#a9d22e9d113393c536c5fe473fd76f388">CallSiteToPointsToMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a21550f978f42ac3cbb32cbc426ff5cb1">csToCallSiteRetPtsMap</a></td></tr>
381
+ <tr class="memdesc:a21550f978f42ac3cbb32cbc426ff5cb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a callsite to all its object might return from its callees. <a href="#a21550f978f42ac3cbb32cbc426ff5cb1">More...</a><br /></td></tr>
382
+ <tr class="separator:a21550f978f42ac3cbb32cbc426ff5cb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
381
383
  <tr class="memitem:a0e46c7beb580ace3a652ac9e1c419b48"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MRGenerator.html#ab075a7c7fbc60f678b3fee8bbc06194d">NodeToPTSSMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MRGenerator.html#a0e46c7beb580ace3a652ac9e1c419b48">cachedPtsChainMap</a></td></tr>
382
384
  <tr class="memdesc:a0e46c7beb580ace3a652ac9e1c419b48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a pointer to its cached points-to chain;. <a href="#a0e46c7beb580ace3a652ac9e1c419b48">More...</a><br /></td></tr>
383
385
  <tr class="separator:a0e46c7beb580ace3a652ac9e1c419b48"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -388,7 +390,7 @@ Private Attributes</h2></td></tr>
388
390
  <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
389
391
  <div class="textblock"><p>Memory Region Partitioning </p>
390
392
 
391
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00132">132</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
393
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00126">126</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
392
394
  </div><h2 class="groupheader">Member Typedef Documentation</h2>
393
395
  <a id="a71b5ce2c754ffff5a84fdb0c3aa16819"></a>
394
396
  <h2 class="memtitle"><span class="permalink"><a href="#a71b5ce2c754ffff5a84fdb0c3aa16819">&#9670;&nbsp;</a></span>CallSiteToMRsMap</h2>
@@ -402,7 +404,7 @@ Private Attributes</h2></td></tr>
402
404
  </table>
403
405
  </div><div class="memdoc">
404
406
 
405
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00155">155</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
407
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00150">150</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
406
408
 
407
409
  </div>
408
410
  </div>
@@ -420,23 +422,23 @@ Private Attributes</h2></td></tr>
420
422
 
421
423
  <p>Map a callsite to its indirect refs/mods of memory objects. </p>
422
424
 
423
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00170">170</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
425
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00165">165</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
424
426
 
425
427
  </div>
426
428
  </div>
427
- <a id="ae73349361642cbc0c5f4be0b8bf96090"></a>
428
- <h2 class="memtitle"><span class="permalink"><a href="#ae73349361642cbc0c5f4be0b8bf96090">&#9670;&nbsp;</a></span>CallSiteToPointsToMap</h2>
429
+ <a id="a9d22e9d113393c536c5fe473fd76f388"></a>
430
+ <h2 class="memtitle"><span class="permalink"><a href="#a9d22e9d113393c536c5fe473fd76f388">&#9670;&nbsp;</a></span>CallSiteToPointsToMap</h2>
429
431
 
430
432
  <div class="memitem">
431
433
  <div class="memproto">
432
434
  <table class="memname">
433
435
  <tr>
434
- <td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt;const <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>*, <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>&gt; <a class="el" href="classSVF_1_1MRGenerator.html#ae73349361642cbc0c5f4be0b8bf96090">SVF::MRGenerator::CallSiteToPointsToMap</a></td>
436
+ <td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt;const <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>*, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&gt; <a class="el" href="classSVF_1_1MRGenerator.html#a9d22e9d113393c536c5fe473fd76f388">SVF::MRGenerator::CallSiteToPointsToMap</a></td>
435
437
  </tr>
436
438
  </table>
437
439
  </div><div class="memdoc">
438
440
 
439
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00162">162</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
441
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00157">157</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
440
442
 
441
443
  </div>
442
444
  </div>
@@ -454,7 +456,7 @@ Private Attributes</h2></td></tr>
454
456
 
455
457
  <p>Map a function to its region set. </p>
456
458
 
457
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00149">149</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
459
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00144">144</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
458
460
 
459
461
  </div>
460
462
  </div>
@@ -473,23 +475,39 @@ Private Attributes</h2></td></tr>
473
475
  <p>Maps Mod-Ref analysis. </p>
474
476
  <p>Map a function to its indirect refs/mods of memory objects </p>
475
477
 
476
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00168">168</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
478
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00163">163</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
479
+
480
+ </div>
481
+ </div>
482
+ <a id="ad492e2940936fc7df06127f0cb94d47a"></a>
483
+ <h2 class="memtitle"><span class="permalink"><a href="#ad492e2940936fc7df06127f0cb94d47a">&#9670;&nbsp;</a></span>FunToPointsToMap</h2>
484
+
485
+ <div class="memitem">
486
+ <div class="memproto">
487
+ <table class="memname">
488
+ <tr>
489
+ <td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt;const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a>*, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&gt; <a class="el" href="classSVF_1_1MRGenerator.html#ad492e2940936fc7df06127f0cb94d47a">SVF::MRGenerator::FunToPointsToMap</a></td>
490
+ </tr>
491
+ </table>
492
+ </div><div class="memdoc">
493
+
494
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00139">139</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
477
495
 
478
496
  </div>
479
497
  </div>
480
- <a id="a71b584c7e0feb3014ad5f74eb31467bb"></a>
481
- <h2 class="memtitle"><span class="permalink"><a href="#a71b584c7e0feb3014ad5f74eb31467bb">&#9670;&nbsp;</a></span>FunToPointsToMap</h2>
498
+ <a id="a6b8bbb60126105cc77c1a6a4c46677fd"></a>
499
+ <h2 class="memtitle"><span class="permalink"><a href="#a6b8bbb60126105cc77c1a6a4c46677fd">&#9670;&nbsp;</a></span>FunToPointsTosMap</h2>
482
500
 
483
501
  <div class="memitem">
484
502
  <div class="memproto">
485
503
  <table class="memname">
486
504
  <tr>
487
- <td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt;const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a>*, <a class="el" href="classSVF_1_1MRGenerator.html#a2a9b87b7b9a567a7fd94e9267f3eb054">PointsToList</a> &gt; <a class="el" href="classSVF_1_1MRGenerator.html#a71b584c7e0feb3014ad5f74eb31467bb">SVF::MRGenerator::FunToPointsToMap</a></td>
505
+ <td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt;const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a>*, <a class="el" href="classSVF_1_1MRGenerator.html#a8b254a0c5063e25f297d1b00fb0b515e">PointsToList</a>&gt; <a class="el" href="classSVF_1_1MRGenerator.html#a6b8bbb60126105cc77c1a6a4c46677fd">SVF::MRGenerator::FunToPointsTosMap</a></td>
488
506
  </tr>
489
507
  </table>
490
508
  </div><div class="memdoc">
491
509
 
492
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00145">145</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
510
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00140">140</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
493
511
 
494
512
  </div>
495
513
  </div>
@@ -506,25 +524,25 @@ Private Attributes</h2></td></tr>
506
524
  </div><div class="memdoc">
507
525
  <p>Map loads/stores to its mem regions, TODO:visitAtomicCmpXchgInst, visitAtomicRMWInst?? </p>
508
526
 
509
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00153">153</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
527
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00148">148</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
510
528
 
511
529
  </div>
512
530
  </div>
513
- <a id="af500450901135fd31ceb2ab497ca1086"></a>
514
- <h2 class="memtitle"><span class="permalink"><a href="#af500450901135fd31ceb2ab497ca1086">&#9670;&nbsp;</a></span>LoadsToPointsToMap</h2>
531
+ <a id="a7b9b1c326d075a9be473680fef6a9616"></a>
532
+ <h2 class="memtitle"><span class="permalink"><a href="#a7b9b1c326d075a9be473680fef6a9616">&#9670;&nbsp;</a></span>LoadsToPointsToMap</h2>
515
533
 
516
534
  <div class="memitem">
517
535
  <div class="memproto">
518
536
  <table class="memname">
519
537
  <tr>
520
- <td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt;const <a class="el" href="classSVF_1_1LoadPE.html">LoadPE</a>*, <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>&gt; <a class="el" href="classSVF_1_1MRGenerator.html#af500450901135fd31ceb2ab497ca1086">SVF::MRGenerator::LoadsToPointsToMap</a></td>
538
+ <td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt;const <a class="el" href="classSVF_1_1LoadPE.html">LoadPE</a>*, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&gt; <a class="el" href="classSVF_1_1MRGenerator.html#a7b9b1c326d075a9be473680fef6a9616">SVF::MRGenerator::LoadsToPointsToMap</a></td>
521
539
  </tr>
522
540
  </table>
523
541
  </div><div class="memdoc">
524
542
 
525
543
  <p>Map loads/stores/callsites to their cpts set. </p>
526
544
 
527
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00160">160</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
545
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00155">155</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
528
546
 
529
547
  </div>
530
548
  </div>
@@ -543,7 +561,7 @@ Private Attributes</h2></td></tr>
543
561
  <p>Get typedef from Pointer Analysis. </p>
544
562
  <p>Define mem region set </p>
545
563
 
546
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00142">142</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
564
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00136">136</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
547
565
 
548
566
  </div>
549
567
  </div>
@@ -559,7 +577,7 @@ Private Attributes</h2></td></tr>
559
577
  </table>
560
578
  </div><div class="memdoc">
561
579
 
562
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00173">173</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
580
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00168">168</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
563
581
 
564
582
  </div>
565
583
  </div>
@@ -577,7 +595,7 @@ Private Attributes</h2></td></tr>
577
595
 
578
596
  <p><a class="el" href="classSVF_1_1PAG.html">PAG</a> edge list. </p>
579
597
 
580
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00176">176</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
598
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00171">171</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
581
599
 
582
600
  </div>
583
601
  </div>
@@ -593,39 +611,39 @@ Private Attributes</h2></td></tr>
593
611
  </table>
594
612
  </div><div class="memdoc">
595
613
 
596
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00143">143</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
614
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00137">137</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
597
615
 
598
616
  </div>
599
617
  </div>
600
- <a id="a2a9b87b7b9a567a7fd94e9267f3eb054"></a>
601
- <h2 class="memtitle"><span class="permalink"><a href="#a2a9b87b7b9a567a7fd94e9267f3eb054">&#9670;&nbsp;</a></span>PointsToList</h2>
618
+ <a id="a8b254a0c5063e25f297d1b00fb0b515e"></a>
619
+ <h2 class="memtitle"><span class="permalink"><a href="#a8b254a0c5063e25f297d1b00fb0b515e">&#9670;&nbsp;</a></span>PointsToList</h2>
602
620
 
603
621
  <div class="memitem">
604
622
  <div class="memproto">
605
623
  <table class="memname">
606
624
  <tr>
607
- <td class="memname">typedef <a class="el" href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">OrderedSet</a>&lt;<a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>, <a class="el" href="structSVF_1_1SVFUtil_1_1equalPointsTo.html">SVFUtil::equalPointsTo</a>&gt; <a class="el" href="classSVF_1_1MRGenerator.html#a2a9b87b7b9a567a7fd94e9267f3eb054">SVF::MRGenerator::PointsToList</a></td>
625
+ <td class="memname">typedef <a class="el" href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">OrderedSet</a>&lt;<a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>, <a class="el" href="structSVF_1_1SVFUtil_1_1equalNodeBS.html">SVFUtil::equalNodeBS</a>&gt; <a class="el" href="classSVF_1_1MRGenerator.html#a8b254a0c5063e25f297d1b00fb0b515e">SVF::MRGenerator::PointsToList</a></td>
608
626
  </tr>
609
627
  </table>
610
628
  </div><div class="memdoc">
611
629
 
612
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00144">144</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
630
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00138">138</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
613
631
 
614
632
  </div>
615
633
  </div>
616
- <a id="a429b45a55b948d6d1ffd73ea0ac6c04c"></a>
617
- <h2 class="memtitle"><span class="permalink"><a href="#a429b45a55b948d6d1ffd73ea0ac6c04c">&#9670;&nbsp;</a></span>PtsToRepPtsSetMap</h2>
634
+ <a id="a665836fd866c6393fc4a251eb4929dae"></a>
635
+ <h2 class="memtitle"><span class="permalink"><a href="#a665836fd866c6393fc4a251eb4929dae">&#9670;&nbsp;</a></span>PtsToRepPtsSetMap</h2>
618
636
 
619
637
  <div class="memitem">
620
638
  <div class="memproto">
621
639
  <table class="memname">
622
640
  <tr>
623
- <td class="memname">typedef <a class="el" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap</a>&lt;<a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>, <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>, <a class="el" href="structSVF_1_1SVFUtil_1_1equalPointsTo.html">SVFUtil::equalPointsTo</a> &gt; <a class="el" href="classSVF_1_1MRGenerator.html#a429b45a55b948d6d1ffd73ea0ac6c04c">SVF::MRGenerator::PtsToRepPtsSetMap</a></td>
641
+ <td class="memname">typedef <a class="el" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap</a>&lt;<a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>, <a class="el" href="structSVF_1_1SVFUtil_1_1equalNodeBS.html">SVFUtil::equalNodeBS</a>&gt; <a class="el" href="classSVF_1_1MRGenerator.html#a665836fd866c6393fc4a251eb4929dae">SVF::MRGenerator::PtsToRepPtsSetMap</a></td>
624
642
  </tr>
625
643
  </table>
626
644
  </div><div class="memdoc">
627
645
 
628
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00146">146</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
646
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00141">141</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
629
647
 
630
648
  </div>
631
649
  </div>
@@ -643,7 +661,7 @@ Private Attributes</h2></td></tr>
643
661
 
644
662
  <p>Call Graph SCC. </p>
645
663
 
646
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00178">178</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
664
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00173">173</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
647
665
 
648
666
  </div>
649
667
  </div>
@@ -659,23 +677,23 @@ Private Attributes</h2></td></tr>
659
677
  </table>
660
678
  </div><div class="memdoc">
661
679
 
662
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00154">154</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
680
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00149">149</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
663
681
 
664
682
  </div>
665
683
  </div>
666
- <a id="a4e246650818afd8be99a5ed6e23c4cd7"></a>
667
- <h2 class="memtitle"><span class="permalink"><a href="#a4e246650818afd8be99a5ed6e23c4cd7">&#9670;&nbsp;</a></span>StoresToPointsToMap</h2>
684
+ <a id="a45e786ca09aa6cbfcf17d8e5a166a801"></a>
685
+ <h2 class="memtitle"><span class="permalink"><a href="#a45e786ca09aa6cbfcf17d8e5a166a801">&#9670;&nbsp;</a></span>StoresToPointsToMap</h2>
668
686
 
669
687
  <div class="memitem">
670
688
  <div class="memproto">
671
689
  <table class="memname">
672
690
  <tr>
673
- <td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt;const <a class="el" href="classSVF_1_1StorePE.html">StorePE</a>*, <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>&gt; <a class="el" href="classSVF_1_1MRGenerator.html#a4e246650818afd8be99a5ed6e23c4cd7">SVF::MRGenerator::StoresToPointsToMap</a></td>
691
+ <td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt;const <a class="el" href="classSVF_1_1StorePE.html">StorePE</a>*, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&gt; <a class="el" href="classSVF_1_1MRGenerator.html#a45e786ca09aa6cbfcf17d8e5a166a801">SVF::MRGenerator::StoresToPointsToMap</a></td>
674
692
  </tr>
675
693
  </table>
676
694
  </div><div class="memdoc">
677
695
 
678
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00161">161</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
696
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00156">156</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
679
697
 
680
698
  </div>
681
699
  </div>
@@ -691,13 +709,13 @@ Private Attributes</h2></td></tr>
691
709
  </table>
692
710
  </div><div class="memdoc">
693
711
 
694
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00136">136</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
712
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00130">130</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
695
713
 
696
714
  </div>
697
715
  </div>
698
716
  <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
699
- <a id="a1023eb17f1a46eee9a948490a4c8fdd5"></a>
700
- <h2 class="memtitle"><span class="permalink"><a href="#a1023eb17f1a46eee9a948490a4c8fdd5">&#9670;&nbsp;</a></span>MRGenerator()</h2>
717
+ <a id="ac8fedbb65a582135354c939183d48f46"></a>
718
+ <h2 class="memtitle"><span class="permalink"><a href="#ac8fedbb65a582135354c939183d48f46">&#9670;&nbsp;</a></span>MRGenerator()</h2>
701
719
 
702
720
  <div class="memitem">
703
721
  <div class="memproto">
@@ -706,7 +724,7 @@ Private Attributes</h2></td></tr>
706
724
  <td class="mlabels-left">
707
725
  <table class="memname">
708
726
  <tr>
709
- <td class="memname">SVF::MRGenerator::MRGenerator </td>
727
+ <td class="memname">MRGenerator::MRGenerator </td>
710
728
  <td>(</td>
711
729
  <td class="paramtype"><a class="el" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a> *&#160;</td>
712
730
  <td class="paramname"><em>p</em>, </td>
@@ -725,18 +743,18 @@ Private Attributes</h2></td></tr>
725
743
  </table>
726
744
  </td>
727
745
  <td class="mlabels-right">
728
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
746
+ <span class="mlabels"><span class="mlabel">protected</span></span> </td>
729
747
  </tr>
730
748
  </table>
731
749
  </div><div class="memdoc">
732
750
 
733
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00275">275</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
734
- <div class="fragment"><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_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>(p), <a class="code" href="classSVF_1_1MRGenerator.html#a6a62d2dede5d2506c19b2d058d1cd9d3">ptrOnlyMSSA</a>(ptrOnly)</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_1MRGenerator.html#a05005a166c39b1adea492655d77db519">callGraph</a> = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>();</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">callGraphSCC</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1MRGenerator.html#af8d52e6c9884c6e1abc6dbcbc5e32629">SCC</a>(<a class="code" href="classSVF_1_1MRGenerator.html#a05005a166c39b1adea492655d77db519">callGraph</a>);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_aa3a12cf1f761d25b9213bc6e50d89ba5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">SVF::MRGenerator::callGraphSCC</a></div><div class="ttdeci">SCC * callGraphSCC</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00198">MemRegion.h:198</a></div></div>
735
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a05005a166c39b1adea492655d77db519"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a05005a166c39b1adea492655d77db519">SVF::MRGenerator::callGraph</a></div><div class="ttdeci">PTACallGraph * callGraph</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00199">MemRegion.h:199</a></div></div>
751
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00042">42</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
752
+ <div class="fragment"><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; :</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>(p), <a class="code" href="classSVF_1_1MRGenerator.html#a6a62d2dede5d2506c19b2d058d1cd9d3">ptrOnlyMSSA</a>(ptrOnly)</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a05005a166c39b1adea492655d77db519">callGraph</a> = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">callGraphSCC</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1MRGenerator.html#af8d52e6c9884c6e1abc6dbcbc5e32629">SCC</a>(<a class="code" href="classSVF_1_1MRGenerator.html#a05005a166c39b1adea492655d77db519">callGraph</a>);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_aa3a12cf1f761d25b9213bc6e50d89ba5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">SVF::MRGenerator::callGraphSCC</a></div><div class="ttdeci">SCC * callGraphSCC</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00193">MemRegion.h:193</a></div></div>
753
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a05005a166c39b1adea492655d77db519"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a05005a166c39b1adea492655d77db519">SVF::MRGenerator::callGraph</a></div><div class="ttdeci">PTACallGraph * callGraph</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00194">MemRegion.h:194</a></div></div>
736
754
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00177">PointerAnalysis.h:177</a></div></div>
737
- <div class="ttc" id="classSVF_1_1MRGenerator_html_af8d52e6c9884c6e1abc6dbcbc5e32629"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af8d52e6c9884c6e1abc6dbcbc5e32629">SVF::MRGenerator::SCC</a></div><div class="ttdeci">SCCDetection&lt; PTACallGraph * &gt; SCC</div><div class="ttdoc">Call Graph SCC. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00178">MemRegion.h:178</a></div></div>
738
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a6a62d2dede5d2506c19b2d058d1cd9d3"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a6a62d2dede5d2506c19b2d058d1cd9d3">SVF::MRGenerator::ptrOnlyMSSA</a></div><div class="ttdeci">bool ptrOnlyMSSA</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00200">MemRegion.h:200</a></div></div>
739
- <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00197">MemRegion.h:197</a></div></div>
755
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_af8d52e6c9884c6e1abc6dbcbc5e32629"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af8d52e6c9884c6e1abc6dbcbc5e32629">SVF::MRGenerator::SCC</a></div><div class="ttdeci">SCCDetection&lt; PTACallGraph * &gt; SCC</div><div class="ttdoc">Call Graph SCC. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00173">MemRegion.h:173</a></div></div>
756
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a6a62d2dede5d2506c19b2d058d1cd9d3"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a6a62d2dede5d2506c19b2d058d1cd9d3">SVF::MRGenerator::ptrOnlyMSSA</a></div><div class="ttdeci">bool ptrOnlyMSSA</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00195">MemRegion.h:195</a></div></div>
757
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00192">MemRegion.h:192</a></div></div>
740
758
  </div><!-- fragment -->
741
759
  </div>
742
760
  </div>
@@ -765,14 +783,14 @@ Private Attributes</h2></td></tr>
765
783
 
766
784
  <p>Destructor. </p>
767
785
 
768
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00431">431</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
769
- <div class="fragment"><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; <a class="code" href="classSVF_1_1MRGenerator.html#ac253d88de2a0cb9624c70d2bcfdac36e">destroy</a>();</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_ac253d88de2a0cb9624c70d2bcfdac36e"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ac253d88de2a0cb9624c70d2bcfdac36e">SVF::MRGenerator::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Clean up memory. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00046">MemRegion.cpp:46</a></div></div>
786
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00421">421</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
787
+ <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; <a class="code" href="classSVF_1_1MRGenerator.html#ac253d88de2a0cb9624c70d2bcfdac36e">destroy</a>();</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_ac253d88de2a0cb9624c70d2bcfdac36e"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ac253d88de2a0cb9624c70d2bcfdac36e">SVF::MRGenerator::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Clean up memory. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00052">MemRegion.cpp:52</a></div></div>
770
788
  </div><!-- fragment -->
771
789
  </div>
772
790
  </div>
773
791
  <h2 class="groupheader">Member Function Documentation</h2>
774
- <a id="ae2594115874771c93963846f3276e1fb"></a>
775
- <h2 class="memtitle"><span class="permalink"><a href="#ae2594115874771c93963846f3276e1fb">&#9670;&nbsp;</a></span>addCPtsToCallSiteMods()</h2>
792
+ <a id="a3c9e58dee18cde9a6e1575e34955af78"></a>
793
+ <h2 class="memtitle"><span class="permalink"><a href="#a3c9e58dee18cde9a6e1575e34955af78">&#9670;&nbsp;</a></span>addCPtsToCallSiteMods()</h2>
776
794
 
777
795
  <div class="memitem">
778
796
  <div class="memproto">
@@ -783,7 +801,7 @@ Private Attributes</h2></td></tr>
783
801
  <tr>
784
802
  <td class="memname">void SVF::MRGenerator::addCPtsToCallSiteMods </td>
785
803
  <td>(</td>
786
- <td class="paramtype"><a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;&#160;</td>
804
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;&#160;</td>
787
805
  <td class="paramname"><em>cpts</em>, </td>
788
806
  </tr>
789
807
  <tr>
@@ -805,14 +823,14 @@ Private Attributes</h2></td></tr>
805
823
  </table>
806
824
  </div><div class="memdoc">
807
825
 
808
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00363">363</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
809
- <div class="fragment"><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; {</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ab8df193e84009e406c301731d17dc7b9">callsiteToModPointsToMap</a>[cs] |= cpts;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#acaf48288039d19bf0bb9f2e506fbfd8d">funToPointsToMap</a>[cs-&gt;getCaller()].insert(cpts);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_acaf48288039d19bf0bb9f2e506fbfd8d"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#acaf48288039d19bf0bb9f2e506fbfd8d">SVF::MRGenerator::funToPointsToMap</a></div><div class="ttdeci">FunToPointsToMap funToPointsToMap</div><div class="ttdoc">Map a function to all of its conditional points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00222">MemRegion.h:222</a></div></div>
810
- <div class="ttc" id="classSVF_1_1MRGenerator_html_ab8df193e84009e406c301731d17dc7b9"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ab8df193e84009e406c301731d17dc7b9">SVF::MRGenerator::callsiteToModPointsToMap</a></div><div class="ttdeci">CallSiteToPointsToMap callsiteToModPointsToMap</div><div class="ttdoc">Map a callsite to it mods cpts set. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00219">MemRegion.h:219</a></div></div>
826
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00353">353</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
827
+ <div class="fragment"><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ab8df193e84009e406c301731d17dc7b9">callsiteToModPointsToMap</a>[cs] |= cpts;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a05c7a5ddbe3079f63be76c35298d1c2b">funToPointsToMap</a>[cs-&gt;getCaller()].insert(cpts);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_ab8df193e84009e406c301731d17dc7b9"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ab8df193e84009e406c301731d17dc7b9">SVF::MRGenerator::callsiteToModPointsToMap</a></div><div class="ttdeci">CallSiteToPointsToMap callsiteToModPointsToMap</div><div class="ttdoc">Map a callsite to it mods cpts set. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00214">MemRegion.h:214</a></div></div>
828
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a05c7a5ddbe3079f63be76c35298d1c2b"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a05c7a5ddbe3079f63be76c35298d1c2b">SVF::MRGenerator::funToPointsToMap</a></div><div class="ttdeci">FunToPointsTosMap funToPointsToMap</div><div class="ttdoc">Map a function to all of its conditional points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00217">MemRegion.h:217</a></div></div>
811
829
  </div><!-- fragment -->
812
830
  </div>
813
831
  </div>
814
- <a id="a2416e15c41fce38dfa63318a8f64e11f"></a>
815
- <h2 class="memtitle"><span class="permalink"><a href="#a2416e15c41fce38dfa63318a8f64e11f">&#9670;&nbsp;</a></span>addCPtsToCallSiteRefs()</h2>
832
+ <a id="a77cf2b1959581da2b0cdf88291664ff3"></a>
833
+ <h2 class="memtitle"><span class="permalink"><a href="#a77cf2b1959581da2b0cdf88291664ff3">&#9670;&nbsp;</a></span>addCPtsToCallSiteRefs()</h2>
816
834
 
817
835
  <div class="memitem">
818
836
  <div class="memproto">
@@ -823,7 +841,7 @@ Private Attributes</h2></td></tr>
823
841
  <tr>
824
842
  <td class="memname">void SVF::MRGenerator::addCPtsToCallSiteRefs </td>
825
843
  <td>(</td>
826
- <td class="paramtype"><a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;&#160;</td>
844
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;&#160;</td>
827
845
  <td class="paramname"><em>cpts</em>, </td>
828
846
  </tr>
829
847
  <tr>
@@ -845,14 +863,14 @@ Private Attributes</h2></td></tr>
845
863
  </table>
846
864
  </div><div class="memdoc">
847
865
 
848
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00358">358</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
849
- <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; <a class="code" href="classSVF_1_1MRGenerator.html#a34967cda51699f948a581b9f88fa3b10">callsiteToRefPointsToMap</a>[cs] |= cpts;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#acaf48288039d19bf0bb9f2e506fbfd8d">funToPointsToMap</a>[cs-&gt;getCaller()].insert(cpts);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_acaf48288039d19bf0bb9f2e506fbfd8d"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#acaf48288039d19bf0bb9f2e506fbfd8d">SVF::MRGenerator::funToPointsToMap</a></div><div class="ttdeci">FunToPointsToMap funToPointsToMap</div><div class="ttdoc">Map a function to all of its conditional points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00222">MemRegion.h:222</a></div></div>
850
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a34967cda51699f948a581b9f88fa3b10"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a34967cda51699f948a581b9f88fa3b10">SVF::MRGenerator::callsiteToRefPointsToMap</a></div><div class="ttdeci">CallSiteToPointsToMap callsiteToRefPointsToMap</div><div class="ttdoc">Map a callsite to it refs cpts set. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00217">MemRegion.h:217</a></div></div>
866
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00348">348</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
867
+ <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; <a class="code" href="classSVF_1_1MRGenerator.html#a34967cda51699f948a581b9f88fa3b10">callsiteToRefPointsToMap</a>[cs] |= cpts;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a05c7a5ddbe3079f63be76c35298d1c2b">funToPointsToMap</a>[cs-&gt;getCaller()].insert(cpts);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a34967cda51699f948a581b9f88fa3b10"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a34967cda51699f948a581b9f88fa3b10">SVF::MRGenerator::callsiteToRefPointsToMap</a></div><div class="ttdeci">CallSiteToPointsToMap callsiteToRefPointsToMap</div><div class="ttdoc">Map a callsite to it refs cpts set. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00212">MemRegion.h:212</a></div></div>
868
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a05c7a5ddbe3079f63be76c35298d1c2b"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a05c7a5ddbe3079f63be76c35298d1c2b">SVF::MRGenerator::funToPointsToMap</a></div><div class="ttdeci">FunToPointsTosMap funToPointsToMap</div><div class="ttdoc">Map a function to all of its conditional points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00217">MemRegion.h:217</a></div></div>
851
869
  </div><!-- fragment -->
852
870
  </div>
853
871
  </div>
854
- <a id="a4d71379ec4350d6fde0c12336c1b92d8"></a>
855
- <h2 class="memtitle"><span class="permalink"><a href="#a4d71379ec4350d6fde0c12336c1b92d8">&#9670;&nbsp;</a></span>addCPtsToLoad()</h2>
872
+ <a id="a4cd3d3af2cfad7b5c086f00ab8e68169"></a>
873
+ <h2 class="memtitle"><span class="permalink"><a href="#a4cd3d3af2cfad7b5c086f00ab8e68169">&#9670;&nbsp;</a></span>addCPtsToLoad()</h2>
856
874
 
857
875
  <div class="memitem">
858
876
  <div class="memproto">
@@ -863,7 +881,7 @@ Private Attributes</h2></td></tr>
863
881
  <tr>
864
882
  <td class="memname">void SVF::MRGenerator::addCPtsToLoad </td>
865
883
  <td>(</td>
866
- <td class="paramtype"><a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;&#160;</td>
884
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;&#160;</td>
867
885
  <td class="paramname"><em>cpts</em>, </td>
868
886
  </tr>
869
887
  <tr>
@@ -891,15 +909,15 @@ Private Attributes</h2></td></tr>
891
909
  </table>
892
910
  </div><div class="memdoc">
893
911
 
894
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00352">352</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
895
- <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; <a class="code" href="classSVF_1_1MRGenerator.html#af47e15d6b8c15d547a718f3577513975">loadsToPointsToMap</a>[ld] = cpts;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#acaf48288039d19bf0bb9f2e506fbfd8d">funToPointsToMap</a>[fun].insert(cpts);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a899c81db92c6bcf24f6f9b769e02e5bf">addRefSideEffectOfFunction</a>(fun,cpts);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_acaf48288039d19bf0bb9f2e506fbfd8d"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#acaf48288039d19bf0bb9f2e506fbfd8d">SVF::MRGenerator::funToPointsToMap</a></div><div class="ttdeci">FunToPointsToMap funToPointsToMap</div><div class="ttdoc">Map a function to all of its conditional points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00222">MemRegion.h:222</a></div></div>
896
- <div class="ttc" id="classSVF_1_1MRGenerator_html_af47e15d6b8c15d547a718f3577513975"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af47e15d6b8c15d547a718f3577513975">SVF::MRGenerator::loadsToPointsToMap</a></div><div class="ttdeci">LoadsToPointsToMap loadsToPointsToMap</div><div class="ttdoc">Map a load PAG Edge to its CPts set map. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00213">MemRegion.h:213</a></div></div>
897
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a899c81db92c6bcf24f6f9b769e02e5bf"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a899c81db92c6bcf24f6f9b769e02e5bf">SVF::MRGenerator::addRefSideEffectOfFunction</a></div><div class="ttdeci">void addRefSideEffectOfFunction(const SVFFunction *fun, const NodeBS &amp;refs)</div><div class="ttdoc">Add/Get methods for side-effect of functions and callsites. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00383">MemRegion.cpp:383</a></div></div>
912
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00342">342</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
913
+ <div class="fragment"><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; <a class="code" href="classSVF_1_1MRGenerator.html#af47e15d6b8c15d547a718f3577513975">loadsToPointsToMap</a>[ld] = cpts;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a05c7a5ddbe3079f63be76c35298d1c2b">funToPointsToMap</a>[fun].insert(cpts);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a899c81db92c6bcf24f6f9b769e02e5bf">addRefSideEffectOfFunction</a>(fun,cpts);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a05c7a5ddbe3079f63be76c35298d1c2b"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a05c7a5ddbe3079f63be76c35298d1c2b">SVF::MRGenerator::funToPointsToMap</a></div><div class="ttdeci">FunToPointsTosMap funToPointsToMap</div><div class="ttdoc">Map a function to all of its conditional points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00217">MemRegion.h:217</a></div></div>
914
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_af47e15d6b8c15d547a718f3577513975"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af47e15d6b8c15d547a718f3577513975">SVF::MRGenerator::loadsToPointsToMap</a></div><div class="ttdeci">LoadsToPointsToMap loadsToPointsToMap</div><div class="ttdoc">Map a load PAG Edge to its CPts set map. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00208">MemRegion.h:208</a></div></div>
915
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a899c81db92c6bcf24f6f9b769e02e5bf"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a899c81db92c6bcf24f6f9b769e02e5bf">SVF::MRGenerator::addRefSideEffectOfFunction</a></div><div class="ttdeci">void addRefSideEffectOfFunction(const SVFFunction *fun, const NodeBS &amp;refs)</div><div class="ttdoc">Add/Get methods for side-effect of functions and callsites. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00407">MemRegion.cpp:407</a></div></div>
898
916
  </div><!-- fragment -->
899
917
  </div>
900
918
  </div>
901
- <a id="ae439967f24dbb6dbc11287592eb0d30c"></a>
902
- <h2 class="memtitle"><span class="permalink"><a href="#ae439967f24dbb6dbc11287592eb0d30c">&#9670;&nbsp;</a></span>addCPtsToStore()</h2>
919
+ <a id="aa9900773ce82da953385df2e6487200e"></a>
920
+ <h2 class="memtitle"><span class="permalink"><a href="#aa9900773ce82da953385df2e6487200e">&#9670;&nbsp;</a></span>addCPtsToStore()</h2>
903
921
 
904
922
  <div class="memitem">
905
923
  <div class="memproto">
@@ -910,7 +928,7 @@ Private Attributes</h2></td></tr>
910
928
  <tr>
911
929
  <td class="memname">void SVF::MRGenerator::addCPtsToStore </td>
912
930
  <td>(</td>
913
- <td class="paramtype"><a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;&#160;</td>
931
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;&#160;</td>
914
932
  <td class="paramname"><em>cpts</em>, </td>
915
933
  </tr>
916
934
  <tr>
@@ -940,10 +958,10 @@ Private Attributes</h2></td></tr>
940
958
 
941
959
  <p>Add cpts to store/load. </p>
942
960
 
943
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00346">346</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
944
- <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; <a class="code" href="classSVF_1_1MRGenerator.html#a7d86f708743a59aa31c0a9fd6de45dac">storesToPointsToMap</a>[st] = cpts;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#acaf48288039d19bf0bb9f2e506fbfd8d">funToPointsToMap</a>[fun].insert(cpts);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a39604645ca9ba10607ada3872b14705a">addModSideEffectOfFunction</a>(fun,cpts);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_acaf48288039d19bf0bb9f2e506fbfd8d"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#acaf48288039d19bf0bb9f2e506fbfd8d">SVF::MRGenerator::funToPointsToMap</a></div><div class="ttdeci">FunToPointsToMap funToPointsToMap</div><div class="ttdoc">Map a function to all of its conditional points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00222">MemRegion.h:222</a></div></div>
945
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a7d86f708743a59aa31c0a9fd6de45dac"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7d86f708743a59aa31c0a9fd6de45dac">SVF::MRGenerator::storesToPointsToMap</a></div><div class="ttdeci">StoresToPointsToMap storesToPointsToMap</div><div class="ttdoc">Map a store PAG Edge to its CPts set map. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00215">MemRegion.h:215</a></div></div>
946
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a39604645ca9ba10607ada3872b14705a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a39604645ca9ba10607ada3872b14705a">SVF::MRGenerator::addModSideEffectOfFunction</a></div><div class="ttdeci">void addModSideEffectOfFunction(const SVFFunction *fun, const NodeBS &amp;mods)</div><div class="ttdoc">Add indirect def an memory object in the function. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00395">MemRegion.cpp:395</a></div></div>
961
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00336">336</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
962
+ <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; <a class="code" href="classSVF_1_1MRGenerator.html#a7d86f708743a59aa31c0a9fd6de45dac">storesToPointsToMap</a>[st] = cpts;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a05c7a5ddbe3079f63be76c35298d1c2b">funToPointsToMap</a>[fun].insert(cpts);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a39604645ca9ba10607ada3872b14705a">addModSideEffectOfFunction</a>(fun,cpts);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a7d86f708743a59aa31c0a9fd6de45dac"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7d86f708743a59aa31c0a9fd6de45dac">SVF::MRGenerator::storesToPointsToMap</a></div><div class="ttdeci">StoresToPointsToMap storesToPointsToMap</div><div class="ttdoc">Map a store PAG Edge to its CPts set map. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00210">MemRegion.h:210</a></div></div>
963
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a05c7a5ddbe3079f63be76c35298d1c2b"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a05c7a5ddbe3079f63be76c35298d1c2b">SVF::MRGenerator::funToPointsToMap</a></div><div class="ttdeci">FunToPointsTosMap funToPointsToMap</div><div class="ttdoc">Map a function to all of its conditional points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00217">MemRegion.h:217</a></div></div>
964
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a39604645ca9ba10607ada3872b14705a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a39604645ca9ba10607ada3872b14705a">SVF::MRGenerator::addModSideEffectOfFunction</a></div><div class="ttdeci">void addModSideEffectOfFunction(const SVFFunction *fun, const NodeBS &amp;mods)</div><div class="ttdoc">Add indirect def an memory object in the function. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00419">MemRegion.cpp:419</a></div></div>
947
965
  </div><!-- fragment -->
948
966
  </div>
949
967
  </div>
@@ -984,13 +1002,13 @@ Private Attributes</h2></td></tr>
984
1002
  <p>Add indirect def an memory object in the function. </p>
985
1003
  <p>Add indirect def an memory object in the function </p>
986
1004
 
987
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00423">423</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
988
- <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">if</span>(!mods.empty())</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; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> modset = mods;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; modset &amp;= (<a class="code" href="classSVF_1_1MRGenerator.html#a373b57017e99ee8466d1c8a363adaeef">getCallSiteArgsPts</a>(cs) | <a class="code" href="classSVF_1_1MRGenerator.html#aac03d1d2e10543e100530f99165b4388">getCallSiteRetPts</a>(cs));</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#add22c9a95478dea21148e87c8dfc584a">getEscapObjviaGlobals</a>(modset,mods);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a39604645ca9ba10607ada3872b14705a">addModSideEffectOfFunction</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">getCaller</a>(),modset);</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_1MRGenerator.html#a72222bae993142be1881c34660646b82">csToModsMap</a>[cs] |= modset;</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">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a72222bae993142be1881c34660646b82"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a72222bae993142be1881c34660646b82">SVF::MRGenerator::csToModsMap</a></div><div class="ttdeci">CallSiteToNodeBSMap csToModsMap</div><div class="ttdoc">Map a callsite to its indirect defs of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00233">MemRegion.h:233</a></div></div>
989
- <div class="ttc" id="classSVF_1_1CallBlockNode_html_a5bab98a0b8cf0a804d53abd994e922c0"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">SVF::CallBlockNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00400">ICFGNode.h:400</a></div></div>
990
- <div class="ttc" id="classSVF_1_1MRGenerator_html_aac03d1d2e10543e100530f99165b4388"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aac03d1d2e10543e100530f99165b4388">SVF::MRGenerator::getCallSiteRetPts</a></div><div class="ttdeci">NodeBS &amp; getCallSiteRetPts(const CallBlockNode *cs)</div><div class="ttdoc">Return the pts chain of the return parameter of the callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00260">MemRegion.h:260</a></div></div>
991
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a373b57017e99ee8466d1c8a363adaeef"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a373b57017e99ee8466d1c8a363adaeef">SVF::MRGenerator::getCallSiteArgsPts</a></div><div class="ttdeci">NodeBS &amp; getCallSiteArgsPts(const CallBlockNode *cs)</div><div class="ttdoc">Return the pts chain of all callsite arguments. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00255">MemRegion.h:255</a></div></div>
992
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a39604645ca9ba10607ada3872b14705a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a39604645ca9ba10607ada3872b14705a">SVF::MRGenerator::addModSideEffectOfFunction</a></div><div class="ttdeci">void addModSideEffectOfFunction(const SVFFunction *fun, const NodeBS &amp;mods)</div><div class="ttdoc">Add indirect def an memory object in the function. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00395">MemRegion.cpp:395</a></div></div>
993
- <div class="ttc" id="classSVF_1_1MRGenerator_html_add22c9a95478dea21148e87c8dfc584a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#add22c9a95478dea21148e87c8dfc584a">SVF::MRGenerator::getEscapObjviaGlobals</a></div><div class="ttdeci">void getEscapObjviaGlobals(NodeBS &amp;globs, const NodeBS &amp;pts)</div><div class="ttdoc">Get all the objects in callee&amp;#39;s modref escaped via global objects (the chain pts of globals) ...</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00537">MemRegion.cpp:537</a></div></div>
1005
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00447">447</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1006
+ <div class="fragment"><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;{</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">if</span>(!mods.empty())</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> modset = mods;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; modset &amp;= (<a class="code" href="classSVF_1_1MRGenerator.html#a373b57017e99ee8466d1c8a363adaeef">getCallSiteArgsPts</a>(cs) | <a class="code" href="classSVF_1_1MRGenerator.html#aac03d1d2e10543e100530f99165b4388">getCallSiteRetPts</a>(cs));</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#add22c9a95478dea21148e87c8dfc584a">getEscapObjviaGlobals</a>(modset,mods);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a39604645ca9ba10607ada3872b14705a">addModSideEffectOfFunction</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">getCaller</a>(),modset);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a603f993995e7d6961e203a195bb56029">csToModsMap</a>[cs] |= modset;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; }</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;}</div><div class="ttc" id="classSVF_1_1CallBlockNode_html_a5bab98a0b8cf0a804d53abd994e922c0"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">SVF::CallBlockNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00400">ICFGNode.h:400</a></div></div>
1007
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_aac03d1d2e10543e100530f99165b4388"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aac03d1d2e10543e100530f99165b4388">SVF::MRGenerator::getCallSiteRetPts</a></div><div class="ttdeci">NodeBS &amp; getCallSiteRetPts(const CallBlockNode *cs)</div><div class="ttdoc">Return the pts chain of the return parameter of the callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00255">MemRegion.h:255</a></div></div>
1008
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a603f993995e7d6961e203a195bb56029"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a603f993995e7d6961e203a195bb56029">SVF::MRGenerator::csToModsMap</a></div><div class="ttdeci">CallSiteToPointsToMap csToModsMap</div><div class="ttdoc">Map a callsite to its indirect defs of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00228">MemRegion.h:228</a></div></div>
1009
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a373b57017e99ee8466d1c8a363adaeef"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a373b57017e99ee8466d1c8a363adaeef">SVF::MRGenerator::getCallSiteArgsPts</a></div><div class="ttdeci">NodeBS &amp; getCallSiteArgsPts(const CallBlockNode *cs)</div><div class="ttdoc">Return the pts chain of all callsite arguments. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00250">MemRegion.h:250</a></div></div>
1010
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a39604645ca9ba10607ada3872b14705a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a39604645ca9ba10607ada3872b14705a">SVF::MRGenerator::addModSideEffectOfFunction</a></div><div class="ttdeci">void addModSideEffectOfFunction(const SVFFunction *fun, const NodeBS &amp;mods)</div><div class="ttdoc">Add indirect def an memory object in the function. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00419">MemRegion.cpp:419</a></div></div>
1011
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_add22c9a95478dea21148e87c8dfc584a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#add22c9a95478dea21148e87c8dfc584a">SVF::MRGenerator::getEscapObjviaGlobals</a></div><div class="ttdeci">void getEscapObjviaGlobals(NodeBS &amp;globs, const NodeBS &amp;pts)</div><div class="ttdoc">Get all the objects in callee&amp;#39;s modref escaped via global objects (the chain pts of globals) ...</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00561">MemRegion.cpp:561</a></div></div>
994
1012
  <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
995
1013
  </div><!-- fragment -->
996
1014
  </div>
@@ -1032,9 +1050,9 @@ Private Attributes</h2></td></tr>
1032
1050
  <p>Add indirect def an memory object in the function. </p>
1033
1051
  <p>Add indirect def an memory object in the function </p>
1034
1052
 
1035
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00395">395</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1036
- <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">for</span>(NodeBS::iterator it = mods.begin(), eit = mods.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="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#a2cf20660f2fd686fa3cabd046c4a10bf">isNonLocalObject</a>(*it,fun))</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#aeb185d6d9c7bfe4b98c7440db6b8bbc4">funToModsMap</a>[fun].<span class="keyword">set</span>(*it);</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="ttc" id="classSVF_1_1MRGenerator_html_aeb185d6d9c7bfe4b98c7440db6b8bbc4"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aeb185d6d9c7bfe4b98c7440db6b8bbc4">SVF::MRGenerator::funToModsMap</a></div><div class="ttdeci">FunToNodeBSMap funToModsMap</div><div class="ttdoc">Map a function to its indirect defs of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00229">MemRegion.h:229</a></div></div>
1037
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a2cf20660f2fd686fa3cabd046c4a10bf"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a2cf20660f2fd686fa3cabd046c4a10bf">SVF::MRGenerator::isNonLocalObject</a></div><div class="ttdeci">bool isNonLocalObject(NodeID id, const SVFFunction *curFun) const</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00552">MemRegion.cpp:552</a></div></div>
1053
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00419">419</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1054
+ <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">for</span>(NodeBS::iterator it = mods.begin(), eit = mods.end(); it!=eit; ++it)</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">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#a2cf20660f2fd686fa3cabd046c4a10bf">isNonLocalObject</a>(*it,fun))</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a2c94bfa19ad8d1d6360b12693c8b891d">funToModsMap</a>[fun].<span class="keyword">set</span>(*it);</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;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a2cf20660f2fd686fa3cabd046c4a10bf"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a2cf20660f2fd686fa3cabd046c4a10bf">SVF::MRGenerator::isNonLocalObject</a></div><div class="ttdeci">bool isNonLocalObject(NodeID id, const SVFFunction *curFun) const</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00576">MemRegion.cpp:576</a></div></div>
1055
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a2c94bfa19ad8d1d6360b12693c8b891d"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a2c94bfa19ad8d1d6360b12693c8b891d">SVF::MRGenerator::funToModsMap</a></div><div class="ttdeci">FunToPointsToMap funToModsMap</div><div class="ttdoc">Map a function to its indirect defs of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00224">MemRegion.h:224</a></div></div>
1038
1056
  </div><!-- fragment -->
1039
1057
  </div>
1040
1058
  </div>
@@ -1075,13 +1093,13 @@ Private Attributes</h2></td></tr>
1075
1093
  <p>Add indirect uses an memory object in the function. </p>
1076
1094
  <p>Add indirect uses an memory object in the function </p>
1077
1095
 
1078
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00407">407</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1079
- <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">if</span>(!refs.empty())</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; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> refset = refs;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; refset &amp;= <a class="code" href="classSVF_1_1MRGenerator.html#a373b57017e99ee8466d1c8a363adaeef">getCallSiteArgsPts</a>(cs);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#add22c9a95478dea21148e87c8dfc584a">getEscapObjviaGlobals</a>(refset,refs);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a899c81db92c6bcf24f6f9b769e02e5bf">addRefSideEffectOfFunction</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">getCaller</a>(),refset);</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_1MRGenerator.html#a08779053af9db71ba0bc24710a7e198c">csToRefsMap</a>[cs] |= refset;</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="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;}</div><div class="ttc" id="classSVF_1_1CallBlockNode_html_a5bab98a0b8cf0a804d53abd994e922c0"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">SVF::CallBlockNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00400">ICFGNode.h:400</a></div></div>
1080
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a08779053af9db71ba0bc24710a7e198c"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a08779053af9db71ba0bc24710a7e198c">SVF::MRGenerator::csToRefsMap</a></div><div class="ttdeci">CallSiteToNodeBSMap csToRefsMap</div><div class="ttdoc">Map a callsite to its indirect uses of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00231">MemRegion.h:231</a></div></div>
1081
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a373b57017e99ee8466d1c8a363adaeef"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a373b57017e99ee8466d1c8a363adaeef">SVF::MRGenerator::getCallSiteArgsPts</a></div><div class="ttdeci">NodeBS &amp; getCallSiteArgsPts(const CallBlockNode *cs)</div><div class="ttdoc">Return the pts chain of all callsite arguments. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00255">MemRegion.h:255</a></div></div>
1082
- <div class="ttc" id="classSVF_1_1MRGenerator_html_add22c9a95478dea21148e87c8dfc584a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#add22c9a95478dea21148e87c8dfc584a">SVF::MRGenerator::getEscapObjviaGlobals</a></div><div class="ttdeci">void getEscapObjviaGlobals(NodeBS &amp;globs, const NodeBS &amp;pts)</div><div class="ttdoc">Get all the objects in callee&amp;#39;s modref escaped via global objects (the chain pts of globals) ...</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00537">MemRegion.cpp:537</a></div></div>
1096
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00431">431</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1097
+ <div class="fragment"><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">if</span>(!refs.empty())</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> refset = refs;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; refset &amp;= <a class="code" href="classSVF_1_1MRGenerator.html#a373b57017e99ee8466d1c8a363adaeef">getCallSiteArgsPts</a>(cs);</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#add22c9a95478dea21148e87c8dfc584a">getEscapObjviaGlobals</a>(refset,refs);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a899c81db92c6bcf24f6f9b769e02e5bf">addRefSideEffectOfFunction</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">getCaller</a>(),refset);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#ac7b5ca3fd950e1a940f875ac135640f6">csToRefsMap</a>[cs] |= refset;</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="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;}</div><div class="ttc" id="classSVF_1_1CallBlockNode_html_a5bab98a0b8cf0a804d53abd994e922c0"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">SVF::CallBlockNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00400">ICFGNode.h:400</a></div></div>
1098
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_ac7b5ca3fd950e1a940f875ac135640f6"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ac7b5ca3fd950e1a940f875ac135640f6">SVF::MRGenerator::csToRefsMap</a></div><div class="ttdeci">CallSiteToPointsToMap csToRefsMap</div><div class="ttdoc">Map a callsite to its indirect uses of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00226">MemRegion.h:226</a></div></div>
1099
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a373b57017e99ee8466d1c8a363adaeef"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a373b57017e99ee8466d1c8a363adaeef">SVF::MRGenerator::getCallSiteArgsPts</a></div><div class="ttdeci">NodeBS &amp; getCallSiteArgsPts(const CallBlockNode *cs)</div><div class="ttdoc">Return the pts chain of all callsite arguments. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00250">MemRegion.h:250</a></div></div>
1100
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_add22c9a95478dea21148e87c8dfc584a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#add22c9a95478dea21148e87c8dfc584a">SVF::MRGenerator::getEscapObjviaGlobals</a></div><div class="ttdeci">void getEscapObjviaGlobals(NodeBS &amp;globs, const NodeBS &amp;pts)</div><div class="ttdoc">Get all the objects in callee&amp;#39;s modref escaped via global objects (the chain pts of globals) ...</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00561">MemRegion.cpp:561</a></div></div>
1083
1101
  <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
1084
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a899c81db92c6bcf24f6f9b769e02e5bf"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a899c81db92c6bcf24f6f9b769e02e5bf">SVF::MRGenerator::addRefSideEffectOfFunction</a></div><div class="ttdeci">void addRefSideEffectOfFunction(const SVFFunction *fun, const NodeBS &amp;refs)</div><div class="ttdoc">Add/Get methods for side-effect of functions and callsites. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00383">MemRegion.cpp:383</a></div></div>
1102
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a899c81db92c6bcf24f6f9b769e02e5bf"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a899c81db92c6bcf24f6f9b769e02e5bf">SVF::MRGenerator::addRefSideEffectOfFunction</a></div><div class="ttdeci">void addRefSideEffectOfFunction(const SVFFunction *fun, const NodeBS &amp;refs)</div><div class="ttdoc">Add/Get methods for side-effect of functions and callsites. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00407">MemRegion.cpp:407</a></div></div>
1085
1103
  </div><!-- fragment -->
1086
1104
  </div>
1087
1105
  </div>
@@ -1122,9 +1140,9 @@ Private Attributes</h2></td></tr>
1122
1140
  <p>Add/Get methods for side-effect of functions and callsites. </p>
1123
1141
  <p>Add indirect uses an memory object in the function </p>
1124
1142
 
1125
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00383">383</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1126
- <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">for</span>(NodeBS::iterator it = refs.begin(), eit = refs.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="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#a2cf20660f2fd686fa3cabd046c4a10bf">isNonLocalObject</a>(*it,fun))</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afe018918c8acc83cd128b4c56ff42075">funToRefsMap</a>[fun].<span class="keyword">set</span>(*it);</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="ttc" id="classSVF_1_1MRGenerator_html_afe018918c8acc83cd128b4c56ff42075"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afe018918c8acc83cd128b4c56ff42075">SVF::MRGenerator::funToRefsMap</a></div><div class="ttdeci">FunToNodeBSMap funToRefsMap</div><div class="ttdoc">Map a function to its indirect uses of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00227">MemRegion.h:227</a></div></div>
1127
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a2cf20660f2fd686fa3cabd046c4a10bf"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a2cf20660f2fd686fa3cabd046c4a10bf">SVF::MRGenerator::isNonLocalObject</a></div><div class="ttdeci">bool isNonLocalObject(NodeID id, const SVFFunction *curFun) const</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00552">MemRegion.cpp:552</a></div></div>
1143
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00407">407</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1144
+ <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">for</span>(NodeBS::iterator it = refs.begin(), eit = refs.end(); it!=eit; ++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; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#a2cf20660f2fd686fa3cabd046c4a10bf">isNonLocalObject</a>(*it,fun))</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#af6d58e2971c4a8d3ee03f9dfd9072a3a">funToRefsMap</a>[fun].<span class="keyword">set</span>(*it);</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;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_af6d58e2971c4a8d3ee03f9dfd9072a3a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af6d58e2971c4a8d3ee03f9dfd9072a3a">SVF::MRGenerator::funToRefsMap</a></div><div class="ttdeci">FunToPointsToMap funToRefsMap</div><div class="ttdoc">Map a function to its indirect uses of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00222">MemRegion.h:222</a></div></div>
1145
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a2cf20660f2fd686fa3cabd046c4a10bf"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a2cf20660f2fd686fa3cabd046c4a10bf">SVF::MRGenerator::isNonLocalObject</a></div><div class="ttdeci">bool isNonLocalObject(NodeID id, const SVFFunction *curFun) const</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00576">MemRegion.cpp:576</a></div></div>
1128
1146
  </div><!-- fragment -->
1129
1147
  </div>
1130
1148
  </div>
@@ -1155,32 +1173,31 @@ Private Attributes</h2></td></tr>
1155
1173
  <p>collect the pts chain of the callsite arguments</p>
1156
1174
  <p>collect the pts chain of the return argument </p>
1157
1175
 
1158
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00455">455</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1159
- <div class="fragment"><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;{</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; argsPts = <a class="code" href="classSVF_1_1MRGenerator.html#a145cccd6355dd479e8a0c744584cef9a">csToCallSiteArgsPtsMap</a>[cs];</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <a class="code" href="classSVF_1_1PAG.html">PAG</a>* pag = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>();</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* callBlockNode = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#ad274c5c15ac51cea5d09ad08febe8c14">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">getCallBlockNode</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>());</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <a class="code" href="classSVF_1_1RetBlockNode.html">RetBlockNode</a>* retBlockNode = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#ad274c5c15ac51cea5d09ad08febe8c14">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a6d66c83cb1656d0f8ec8b8b65a9e9c41">getRetBlockNode</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>());</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">WorkList</a> worklist;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">if</span> (pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a157df68295822a17ad07a850a230bae1">hasCallSiteArgsMap</a>(callBlockNode))</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAG.html#a1aedb70211aa31a4741615e611d64397">PAG::PAGNodeList</a>&amp; args = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#a4dac2dc4756bf3f84e6fa034a8b906da">getCallSiteArgsList</a>(callBlockNode);</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">for</span>(PAG::PAGNodeList::const_iterator itA = args.begin(), ieA = args.end(); itA!=ieA; ++itA)</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_1PAGNode.html">PAGNode</a>* node = *itA;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">if</span>(node-&gt;<a class="code" href="classSVF_1_1PAGNode.html#afa5f1f6b3b7ffff2c417d58db7ef6bc2">isPointer</a>())</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; worklist.push(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; }</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; }</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">while</span>(!worklist.empty())</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; {</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = worklist.pop();</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>&amp; tmp = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(nodeId);</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">for</span>(PointsTo::iterator it = tmp.begin(), eit = tmp.end(); it!=eit; ++it)</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; argsPts |= <a class="code" href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">CollectPtsChain</a>(*it);</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; }</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; retPts = <a class="code" href="classSVF_1_1MRGenerator.html#a9368636daea4542fa36fff822ff39104">csToCallSiteRetPtsMap</a>[cs];</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="keywordflow">if</span> (<a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#a0ed3da89d9cba90888e04969dc43f5a3">callsiteHasRet</a>(retBlockNode))</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; {</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#ae455de4db007a5bebffd3a9c16e0b107">getCallSiteRet</a>(retBlockNode);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">if</span>(node-&gt;<a class="code" href="classSVF_1_1PAGNode.html#afa5f1f6b3b7ffff2c417d58db7ef6bc2">isPointer</a>())</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; {</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>&amp; tmp = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">for</span>(PointsTo::iterator it = tmp.begin(), eit = tmp.end(); it!=eit; ++it)</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; retPts |= <a class="code" href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">CollectPtsChain</a>(*it);</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; }</div><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;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;}</div><div class="ttc" id="classSVF_1_1PAG_html_a157df68295822a17ad07a850a230bae1"><div class="ttname"><a href="classSVF_1_1PAG.html#a157df68295822a17ad07a850a230bae1">SVF::PAG::hasCallSiteArgsMap</a></div><div class="ttdeci">bool hasCallSiteArgsMap(const CallBlockNode *cs) const</div><div class="ttdoc">Callsite has argument list. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00388">PAG.h:388</a></div></div>
1176
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00479">479</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1177
+ <div class="fragment"><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;{</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; argsPts = <a class="code" href="classSVF_1_1MRGenerator.html#afe91b57b451d7788364493549e015acf">csToCallSiteArgsPtsMap</a>[cs];</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="code" href="classSVF_1_1PAG.html">PAG</a>* pag = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>();</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* callBlockNode = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#ad274c5c15ac51cea5d09ad08febe8c14">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">getCallBlockNode</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>());</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <a class="code" href="classSVF_1_1RetBlockNode.html">RetBlockNode</a>* retBlockNode = pag-&gt;<a class="code" href="classSVF_1_1PAG.html#ad274c5c15ac51cea5d09ad08febe8c14">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a6d66c83cb1656d0f8ec8b8b65a9e9c41">getRetBlockNode</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>());</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; <a class="code" href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">WorkList</a> worklist;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">if</span> (pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a157df68295822a17ad07a850a230bae1">hasCallSiteArgsMap</a>(callBlockNode))</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; {</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAG.html#a1aedb70211aa31a4741615e611d64397">PAG::PAGNodeList</a>&amp; args = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#a4dac2dc4756bf3f84e6fa034a8b906da">getCallSiteArgsList</a>(callBlockNode);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">for</span>(PAG::PAGNodeList::const_iterator itA = args.begin(), ieA = args.end(); itA!=ieA; ++itA)</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; {</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node = *itA;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">if</span>(node-&gt;<a class="code" href="classSVF_1_1PAGNode.html#afa5f1f6b3b7ffff2c417d58db7ef6bc2">isPointer</a>())</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; worklist.push(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; }</div><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;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">while</span>(!worklist.empty())</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; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = worklist.pop();</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; tmp = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(nodeId);</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">for</span>(NodeBS::iterator it = tmp.begin(), eit = tmp.end(); it!=eit; ++it)</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; argsPts |= <a class="code" href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">CollectPtsChain</a>(*it);</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;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; retPts = <a class="code" href="classSVF_1_1MRGenerator.html#a21550f978f42ac3cbb32cbc426ff5cb1">csToCallSiteRetPtsMap</a>[cs];</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#a0ed3da89d9cba90888e04969dc43f5a3">callsiteHasRet</a>(retBlockNode))</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; {</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#ae455de4db007a5bebffd3a9c16e0b107">getCallSiteRet</a>(retBlockNode);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">if</span>(node-&gt;<a class="code" href="classSVF_1_1PAGNode.html#afa5f1f6b3b7ffff2c417d58db7ef6bc2">isPointer</a>())</div><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; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; tmp = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">for</span>(NodeBS::iterator it = tmp.begin(), eit = tmp.end(); it!=eit; ++it)</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; retPts |= <a class="code" href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">CollectPtsChain</a>(*it);</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; }</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;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;}</div><div class="ttc" id="classSVF_1_1PAG_html_a157df68295822a17ad07a850a230bae1"><div class="ttname"><a href="classSVF_1_1PAG.html#a157df68295822a17ad07a850a230bae1">SVF::PAG::hasCallSiteArgsMap</a></div><div class="ttdeci">bool hasCallSiteArgsMap(const CallBlockNode *cs) const</div><div class="ttdoc">Callsite has argument list. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00388">PAG.h:388</a></div></div>
1160
1178
  <div class="ttc" id="classSVF_1_1PAG_html_ad274c5c15ac51cea5d09ad08febe8c14"><div class="ttname"><a href="classSVF_1_1PAG.html#ad274c5c15ac51cea5d09ad08febe8c14">SVF::PAG::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00135">PAG.h:135</a></div></div>
1161
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a9368636daea4542fa36fff822ff39104"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a9368636daea4542fa36fff822ff39104">SVF::MRGenerator::csToCallSiteRetPtsMap</a></div><div class="ttdeci">CallSiteToNodeBSMap csToCallSiteRetPtsMap</div><div class="ttdoc">Map a callsite to all its object might return from its callees. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00237">MemRegion.h:237</a></div></div>
1162
1179
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
1163
1180
  <div class="ttc" id="classSVF_1_1ICFG_html_a7d10e8a815c836a070d35850f817a18c"><div class="ttname"><a href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">SVF::ICFG::getCallBlockNode</a></div><div class="ttdeci">CallBlockNode * getCallBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00197">ICFG.cpp:197</a></div></div>
1164
1181
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_aaf6b41f44da3a4caea1fa395e41edf71"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">PAG * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00204">PointerAnalysis.h:204</a></div></div>
1165
1182
  <div class="ttc" id="classSVF_1_1PAG_html"><div class="ttname"><a href="classSVF_1_1PAG.html">SVF::PAG</a></div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00047">PAG.h:47</a></div></div>
1166
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a145cccd6355dd479e8a0c744584cef9a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a145cccd6355dd479e8a0c744584cef9a">SVF::MRGenerator::csToCallSiteArgsPtsMap</a></div><div class="ttdeci">CallSiteToNodeBSMap csToCallSiteArgsPtsMap</div><div class="ttdoc">Map a callsite to all its object might pass into its callees. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00235">MemRegion.h:235</a></div></div>
1167
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a81bd687d34eea884dfcf68274fcec7b5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">SVF::MRGenerator::CollectPtsChain</a></div><div class="ttdeci">NodeBS &amp; CollectPtsChain(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00503">MemRegion.cpp:503</a></div></div>
1183
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a81bd687d34eea884dfcf68274fcec7b5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">SVF::MRGenerator::CollectPtsChain</a></div><div class="ttdeci">NodeBS &amp; CollectPtsChain(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00527">MemRegion.cpp:527</a></div></div>
1168
1184
  <div class="ttc" id="classSVF_1_1PAG_html_a4dac2dc4756bf3f84e6fa034a8b906da"><div class="ttname"><a href="classSVF_1_1PAG.html#a4dac2dc4756bf3f84e6fa034a8b906da">SVF::PAG::getCallSiteArgsList</a></div><div class="ttdeci">const PAGNodeList &amp; getCallSiteArgsList(const CallBlockNode *cs) const</div><div class="ttdoc">Get callsite argument list. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00398">PAG.h:398</a></div></div>
1169
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00101">PointerAnalysisImpl.h:101</a></div></div>
1185
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00098">PointerAnalysisImpl.h:98</a></div></div>
1170
1186
  <div class="ttc" id="classSVF_1_1PAG_html_a0ed3da89d9cba90888e04969dc43f5a3"><div class="ttname"><a href="classSVF_1_1PAG.html#a0ed3da89d9cba90888e04969dc43f5a3">SVF::PAG::callsiteHasRet</a></div><div class="ttdeci">bool callsiteHasRet(const RetBlockNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00416">PAG.h:416</a></div></div>
1171
1187
  <div class="ttc" id="classSVF_1_1RetBlockNode_html"><div class="ttname"><a href="classSVF_1_1RetBlockNode.html">SVF::RetBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00459">ICFGNode.h:459</a></div></div>
1172
1188
  <div class="ttc" id="classSVF_1_1PAG_html_a1aedb70211aa31a4741615e611d64397"><div class="ttname"><a href="classSVF_1_1PAG.html#a1aedb70211aa31a4741615e611d64397">SVF::PAG::PAGNodeList</a></div><div class="ttdeci">std::vector&lt; const PAGNode * &gt; PAGNodeList</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00057">PAG.h:57</a></div></div>
1173
1189
  <div class="ttc" id="classSVF_1_1PAG_html_ae455de4db007a5bebffd3a9c16e0b107"><div class="ttname"><a href="classSVF_1_1PAG.html#ae455de4db007a5bebffd3a9c16e0b107">SVF::PAG::getCallSiteRet</a></div><div class="ttdeci">const PAGNode * getCallSiteRet(const RetBlockNode *cs) const</div><div class="ttdoc">Get callsite return. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00410">PAG.h:410</a></div></div>
1174
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a68d50c752252bd40c402c7b99b95f0fc"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">SVF::MRGenerator::WorkList</a></div><div class="ttdeci">FIFOWorkList&lt; NodeID &gt; WorkList</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00136">MemRegion.h:136</a></div></div>
1190
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a68d50c752252bd40c402c7b99b95f0fc"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">SVF::MRGenerator::WorkList</a></div><div class="ttdeci">FIFOWorkList&lt; NodeID &gt; WorkList</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00130">MemRegion.h:130</a></div></div>
1175
1191
  <div class="ttc" id="classSVF_1_1PAGNode_html"><div class="ttname"><a href="classSVF_1_1PAGNode.html">SVF::PAGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00045">PAGNode.h:45</a></div></div>
1176
1192
  <div class="ttc" id="classSVF_1_1CallBlockNode_html_ad3d50024efcfa94b1246c982b43aff2f"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">SVF::CallBlockNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00381">ICFGNode.h:381</a></div></div>
1177
1193
  <div class="ttc" id="classSVF_1_1ICFG_html_a6d66c83cb1656d0f8ec8b8b65a9e9c41"><div class="ttname"><a href="classSVF_1_1ICFG.html#a6d66c83cb1656d0f8ec8b8b65a9e9c41">SVF::ICFG::getRetBlockNode</a></div><div class="ttdeci">RetBlockNode * getRetBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00210">ICFG.cpp:210</a></div></div>
1178
- <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00197">MemRegion.h:197</a></div></div>
1194
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00192">MemRegion.h:192</a></div></div>
1179
1195
  <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00164">GenericGraph.h:164</a></div></div>
1180
1196
  <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
1197
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_afe91b57b451d7788364493549e015acf"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afe91b57b451d7788364493549e015acf">SVF::MRGenerator::csToCallSiteArgsPtsMap</a></div><div class="ttdeci">CallSiteToPointsToMap csToCallSiteArgsPtsMap</div><div class="ttdoc">Map a callsite to all its object might pass into its callees. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00230">MemRegion.h:230</a></div></div>
1181
1198
  <div class="ttc" id="classSVF_1_1CallBlockNode_html"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html">SVF::CallBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
1182
- <div class="ttc" id="namespaceSVF_html_a0c6594b4bae7924369bb61943c1da4fb"><div class="ttname"><a href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">SVF::PointsTo</a></div><div class="ttdeci">NodeBS PointsTo</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00088">SVFBasicTypes.h:88</a></div></div>
1183
1199
  <div class="ttc" id="classSVF_1_1PAGNode_html_afa5f1f6b3b7ffff2c417d58db7ef6bc2"><div class="ttname"><a href="classSVF_1_1PAGNode.html#afa5f1f6b3b7ffff2c417d58db7ef6bc2">SVF::PAGNode::isPointer</a></div><div class="ttdeci">virtual bool isPointer() const</div><div class="ttdoc">Whether it is a pointer. </div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00114">PAGNode.h:114</a></div></div>
1200
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a21550f978f42ac3cbb32cbc426ff5cb1"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a21550f978f42ac3cbb32cbc426ff5cb1">SVF::MRGenerator::csToCallSiteRetPtsMap</a></div><div class="ttdeci">CallSiteToPointsToMap csToCallSiteRetPtsMap</div><div class="ttdoc">Map a callsite to all its object might return from its callees. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00232">MemRegion.h:232</a></div></div>
1184
1201
  </div><!-- fragment -->
1185
1202
  </div>
1186
1203
  </div>
@@ -1210,16 +1227,16 @@ Private Attributes</h2></td></tr>
1210
1227
  <p>Collect all global variables for later escape analysis. </p>
1211
1228
  <p>Collect globals for escape analysis </p>
1212
1229
 
1213
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00099">99</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1214
- <div class="fragment"><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="classSVF_1_1PAG.html">PAG</a>* pag = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">PAG::iterator</a> nIter = pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); nIter != pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); ++nIter)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a>* obj = SVFUtil::dyn_cast&lt;ObjPN&gt;(nIter-&gt;second))</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">if</span> (obj-&gt;getMemObj()-&gt;isGlobalObj())</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#af46b82e45aa1ecdfb397325971206541">allGlobals</a>.set(nIter-&gt;first);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#af46b82e45aa1ecdfb397325971206541">allGlobals</a> |= <a class="code" href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">CollectPtsChain</a>(nIter-&gt;first);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
1230
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00105">105</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1231
+ <div class="fragment"><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="classSVF_1_1PAG.html">PAG</a>* pag = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>();</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">PAG::iterator</a> nIter = pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); nIter != pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); ++nIter)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a>* obj = SVFUtil::dyn_cast&lt;ObjPN&gt;(nIter-&gt;second))</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span> (obj-&gt;getMemObj()-&gt;isGlobalObj())</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#af46b82e45aa1ecdfb397325971206541">allGlobals</a>.set(nIter-&gt;first);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#af46b82e45aa1ecdfb397325971206541">allGlobals</a> |= <a class="code" href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">CollectPtsChain</a>(nIter-&gt;first);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
1215
1232
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_aaf6b41f44da3a4caea1fa395e41edf71"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">PAG * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00204">PointerAnalysis.h:204</a></div></div>
1216
1233
  <div class="ttc" id="classSVF_1_1PAG_html"><div class="ttname"><a href="classSVF_1_1PAG.html">SVF::PAG</a></div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00047">PAG.h:47</a></div></div>
1217
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a81bd687d34eea884dfcf68274fcec7b5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">SVF::MRGenerator::CollectPtsChain</a></div><div class="ttdeci">NodeBS &amp; CollectPtsChain(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00503">MemRegion.cpp:503</a></div></div>
1218
- <div class="ttc" id="classSVF_1_1MRGenerator_html_af46b82e45aa1ecdfb397325971206541"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af46b82e45aa1ecdfb397325971206541">SVF::MRGenerator::allGlobals</a></div><div class="ttdeci">NodeBS allGlobals</div><div class="ttdoc">All global variable PAG node ids. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00243">MemRegion.h:243</a></div></div>
1234
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a81bd687d34eea884dfcf68274fcec7b5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">SVF::MRGenerator::CollectPtsChain</a></div><div class="ttdeci">NodeBS &amp; CollectPtsChain(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00527">MemRegion.cpp:527</a></div></div>
1235
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_af46b82e45aa1ecdfb397325971206541"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af46b82e45aa1ecdfb397325971206541">SVF::MRGenerator::allGlobals</a></div><div class="ttdeci">NodeBS allGlobals</div><div class="ttdoc">All global variable PAG node ids. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00238">MemRegion.h:238</a></div></div>
1219
1236
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00369">GenericGraph.h:369</a></div></div>
1220
1237
  <div class="ttc" id="classSVF_1_1GenericGraph_html_ac213302cf5c7cdf3b66f7b18649d0fbc"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVF::GenericGraph&lt; PAGNode, PAGEdge &gt;::iterator</a></div><div class="ttdeci">IDToNodeMapTy::iterator iterator</div><div class="ttdoc">Node Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00337">GenericGraph.h:337</a></div></div>
1221
1238
  <div class="ttc" id="classSVF_1_1ObjPN_html"><div class="ttname"><a href="classSVF_1_1ObjPN.html">SVF::ObjPN</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00319">PAGNode.h:319</a></div></div>
1222
- <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00197">MemRegion.h:197</a></div></div>
1239
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00192">MemRegion.h:192</a></div></div>
1223
1240
  </div><!-- fragment -->
1224
1241
  </div>
1225
1242
  </div>
@@ -1253,33 +1270,33 @@ Private Attributes</h2></td></tr>
1253
1270
  <p>Get mod-ref of all callsites calling callGraphNode</p>
1254
1271
  <p>mods are treated as both def and use of memory objects </p>
1255
1272
 
1256
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00204">204</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1257
- <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;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;\t\tCollect Callsite PointsTo \n&quot;</span>));</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">for</span>(PAG::CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#a4309ced29efb4f351dafb867206bb38b">getCallSiteSet</a>().begin(),</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; eit = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#a4309ced29efb4f351dafb867206bb38b">getCallSiteSet</a>().end(); it!=eit; ++it)</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ac43b3f895efd160c7dd5860c0dfd1625">collectCallSitePts</a>((*it));</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</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; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;\t\tPerform Callsite Mod-Ref \n&quot;</span>));</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_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">WorkList</a> worklist;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ab3d3ca72d2cddf5336d00dc623f33401">getCallGraphSCCRevTopoOrder</a>(worklist);</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="keywordflow">while</span>(!worklist.empty())</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> callGraphNodeID = worklist.pop();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; subNodes = <a class="code" href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">callGraphSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">subNodes</a>(callGraphNodeID);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">for</span>(NodeBS::iterator it = subNodes.begin(), eit = subNodes.end(); it!=eit; ++it)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* subCallGraphNode = <a class="code" href="classSVF_1_1MRGenerator.html#a05005a166c39b1adea492655d77db519">callGraph</a>-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(*it);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#adc9d530e6f010596d91cd3711dc1358b">modRefAnalysis</a>(subCallGraphNode,worklist);</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; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;\t\tAdd PointsTo to Callsites \n&quot;</span>));</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs : <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;getCallSiteSet())</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* callBlockNode = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#ad274c5c15ac51cea5d09ad08febe8c14">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">getCallBlockNode</a>(cs.getInstruction());</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#ac91b6f0f33a95ba35cc23e0e4657732a">hasRefSideEffectOfCallSite</a>(callBlockNode))</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; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> refs = <a class="code" href="classSVF_1_1MRGenerator.html#ae2cc7d7d6ab427acb0352b388c7a4acc">getRefSideEffectOfCallSite</a>(callBlockNode);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a2416e15c41fce38dfa63318a8f64e11f">addCPtsToCallSiteRefs</a>(refs,callBlockNode);</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; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#a07dc868039c5e2764b3cc34faff6d94a">hasModSideEffectOfCallSite</a>(callBlockNode))</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; {</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> mods = <a class="code" href="classSVF_1_1MRGenerator.html#aebd6abbf574392abce426dc796d2ee56">getModSideEffectOfCallSite</a>(callBlockNode);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ae2594115874771c93963846f3276e1fb">addCPtsToCallSiteMods</a>(mods,callBlockNode);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a2416e15c41fce38dfa63318a8f64e11f">addCPtsToCallSiteRefs</a>(mods,callBlockNode);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_aa3a12cf1f761d25b9213bc6e50d89ba5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">SVF::MRGenerator::callGraphSCC</a></div><div class="ttdeci">SCC * callGraphSCC</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00198">MemRegion.h:198</a></div></div>
1273
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00228">228</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1274
+ <div class="fragment"><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;{</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;\t\tCollect Callsite PointsTo \n&quot;</span>));</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">for</span>(PAG::CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#a4309ced29efb4f351dafb867206bb38b">getCallSiteSet</a>().begin(),</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; eit = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#a4309ced29efb4f351dafb867206bb38b">getCallSiteSet</a>().end(); it!=eit; ++it)</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ac43b3f895efd160c7dd5860c0dfd1625">collectCallSitePts</a>((*it));</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;\t\tPerform Callsite Mod-Ref \n&quot;</span>));</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; <a class="code" href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">WorkList</a> worklist;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ab3d3ca72d2cddf5336d00dc623f33401">getCallGraphSCCRevTopoOrder</a>(worklist);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">while</span>(!worklist.empty())</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> callGraphNodeID = worklist.pop();</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; subNodes = <a class="code" href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">callGraphSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">subNodes</a>(callGraphNodeID);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">for</span>(NodeBS::iterator it = subNodes.begin(), eit = subNodes.end(); it!=eit; ++it)</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_1PTACallGraphNode.html">PTACallGraphNode</a>* subCallGraphNode = <a class="code" href="classSVF_1_1MRGenerator.html#a05005a166c39b1adea492655d77db519">callGraph</a>-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(*it);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#adc9d530e6f010596d91cd3711dc1358b">modRefAnalysis</a>(subCallGraphNode,worklist);</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; }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;\t\tAdd PointsTo to Callsites \n&quot;</span>));</div><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> (<a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs : <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;getCallSiteSet())</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* callBlockNode = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#ad274c5c15ac51cea5d09ad08febe8c14">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">getCallBlockNode</a>(cs.getInstruction());</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#ac91b6f0f33a95ba35cc23e0e4657732a">hasRefSideEffectOfCallSite</a>(callBlockNode))</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="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> refs = <a class="code" href="classSVF_1_1MRGenerator.html#ae2cc7d7d6ab427acb0352b388c7a4acc">getRefSideEffectOfCallSite</a>(callBlockNode);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a77cf2b1959581da2b0cdf88291664ff3">addCPtsToCallSiteRefs</a>(refs,callBlockNode);</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; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#a07dc868039c5e2764b3cc34faff6d94a">hasModSideEffectOfCallSite</a>(callBlockNode))</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; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> mods = <a class="code" href="classSVF_1_1MRGenerator.html#aebd6abbf574392abce426dc796d2ee56">getModSideEffectOfCallSite</a>(callBlockNode);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a3c9e58dee18cde9a6e1575e34955af78">addCPtsToCallSiteMods</a>(mods,callBlockNode);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a77cf2b1959581da2b0cdf88291664ff3">addCPtsToCallSiteRefs</a>(mods,callBlockNode);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_aa3a12cf1f761d25b9213bc6e50d89ba5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">SVF::MRGenerator::callGraphSCC</a></div><div class="ttdeci">SCC * callGraphSCC</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00193">MemRegion.h:193</a></div></div>
1258
1275
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_aaab54c670518d9d6790707f76ea76aa1"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">SVF::PTACallGraph::getCallGraphNode</a></div><div class="ttdeci">PTACallGraphNode * getCallGraphNode(NodeID id) const</div><div class="ttdoc">Get call graph node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00315">PTACallGraph.h:315</a></div></div>
1259
1276
  <div class="ttc" id="classSVF_1_1SCCDetection_html_a6ab5eff6a576e6d8703c1ea29b7f425d"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">SVF::SCCDetection::subNodes</a></div><div class="ttdeci">const NodeBS &amp; subNodes(NodeID n) const</div><div class="ttdoc">get all subnodes in one scc, if size is empty insert itself into the set </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00173">SCC.h:173</a></div></div>
1260
1277
  <div class="ttc" id="classSVF_1_1PAG_html_ad274c5c15ac51cea5d09ad08febe8c14"><div class="ttname"><a href="classSVF_1_1PAG.html#ad274c5c15ac51cea5d09ad08febe8c14">SVF::PAG::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00135">PAG.h:135</a></div></div>
1261
1278
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
1262
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a609eea630a8f88fe9eaba15ce7e48738"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(std::string msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00098">SVFUtil.cpp:98</a></div></div>
1279
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a609eea630a8f88fe9eaba15ce7e48738"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(std::string msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00100">SVFUtil.cpp:100</a></div></div>
1263
1280
  <div class="ttc" id="classSVF_1_1ICFG_html_a7d10e8a815c836a070d35850f817a18c"><div class="ttname"><a href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">SVF::ICFG::getCallBlockNode</a></div><div class="ttdeci">CallBlockNode * getCallBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00197">ICFG.cpp:197</a></div></div>
1264
- <div class="ttc" id="classSVF_1_1MRGenerator_html_ae2cc7d7d6ab427acb0352b388c7a4acc"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ae2cc7d7d6ab427acb0352b388c7a4acc">SVF::MRGenerator::getRefSideEffectOfCallSite</a></div><div class="ttdeci">const NodeBS &amp; getRefSideEffectOfCallSite(const CallBlockNode *cs)</div><div class="ttdoc">Get indirect refs of a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00403">MemRegion.h:403</a></div></div>
1265
- <div class="ttc" id="classSVF_1_1MRGenerator_html_adc9d530e6f010596d91cd3711dc1358b"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#adc9d530e6f010596d91cd3711dc1358b">SVF::MRGenerator::modRefAnalysis</a></div><div class="ttdeci">virtual void modRefAnalysis(PTACallGraphNode *callGraphNode, WorkList &amp;worklist)</div><div class="ttdoc">Mod-Ref analysis for callsite invoking this callGraphNode. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00611">MemRegion.cpp:611</a></div></div>
1281
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_ae2cc7d7d6ab427acb0352b388c7a4acc"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ae2cc7d7d6ab427acb0352b388c7a4acc">SVF::MRGenerator::getRefSideEffectOfCallSite</a></div><div class="ttdeci">const NodeBS &amp; getRefSideEffectOfCallSite(const CallBlockNode *cs)</div><div class="ttdoc">Get indirect refs of a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00393">MemRegion.h:393</a></div></div>
1282
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_adc9d530e6f010596d91cd3711dc1358b"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#adc9d530e6f010596d91cd3711dc1358b">SVF::MRGenerator::modRefAnalysis</a></div><div class="ttdeci">virtual void modRefAnalysis(PTACallGraphNode *callGraphNode, WorkList &amp;worklist)</div><div class="ttdoc">Mod-Ref analysis for callsite invoking this callGraphNode. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00635">MemRegion.cpp:635</a></div></div>
1266
1283
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_aaf6b41f44da3a4caea1fa395e41edf71"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">PAG * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00204">PointerAnalysis.h:204</a></div></div>
1267
- <div class="ttc" id="classSVF_1_1MRGenerator_html_aebd6abbf574392abce426dc796d2ee56"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aebd6abbf574392abce426dc796d2ee56">SVF::MRGenerator::getModSideEffectOfCallSite</a></div><div class="ttdeci">const NodeBS &amp; getModSideEffectOfCallSite(const CallBlockNode *cs)</div><div class="ttdoc">Get indirect mods of a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00408">MemRegion.h:408</a></div></div>
1268
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a07dc868039c5e2764b3cc34faff6d94a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a07dc868039c5e2764b3cc34faff6d94a">SVF::MRGenerator::hasModSideEffectOfCallSite</a></div><div class="ttdeci">bool hasModSideEffectOfCallSite(const CallBlockNode *cs)</div><div class="ttdoc">Has indirect mods of a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00418">MemRegion.h:418</a></div></div>
1269
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a05005a166c39b1adea492655d77db519"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a05005a166c39b1adea492655d77db519">SVF::MRGenerator::callGraph</a></div><div class="ttdeci">PTACallGraph * callGraph</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00199">MemRegion.h:199</a></div></div>
1270
- <div class="ttc" id="classSVF_1_1MRGenerator_html_ac91b6f0f33a95ba35cc23e0e4657732a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ac91b6f0f33a95ba35cc23e0e4657732a">SVF::MRGenerator::hasRefSideEffectOfCallSite</a></div><div class="ttdeci">bool hasRefSideEffectOfCallSite(const CallBlockNode *cs)</div><div class="ttdoc">Has indirect refs of a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00413">MemRegion.h:413</a></div></div>
1271
- <div class="ttc" id="classSVF_1_1MRGenerator_html_ac43b3f895efd160c7dd5860c0dfd1625"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ac43b3f895efd160c7dd5860c0dfd1625">SVF::MRGenerator::collectCallSitePts</a></div><div class="ttdeci">void collectCallSitePts(const CallBlockNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00455">MemRegion.cpp:455</a></div></div>
1272
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a2416e15c41fce38dfa63318a8f64e11f"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a2416e15c41fce38dfa63318a8f64e11f">SVF::MRGenerator::addCPtsToCallSiteRefs</a></div><div class="ttdeci">void addCPtsToCallSiteRefs(PointsTo &amp;cpts, const CallBlockNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00358">MemRegion.h:358</a></div></div>
1284
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_aebd6abbf574392abce426dc796d2ee56"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aebd6abbf574392abce426dc796d2ee56">SVF::MRGenerator::getModSideEffectOfCallSite</a></div><div class="ttdeci">const NodeBS &amp; getModSideEffectOfCallSite(const CallBlockNode *cs)</div><div class="ttdoc">Get indirect mods of a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00398">MemRegion.h:398</a></div></div>
1285
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a07dc868039c5e2764b3cc34faff6d94a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a07dc868039c5e2764b3cc34faff6d94a">SVF::MRGenerator::hasModSideEffectOfCallSite</a></div><div class="ttdeci">bool hasModSideEffectOfCallSite(const CallBlockNode *cs)</div><div class="ttdoc">Has indirect mods of a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00408">MemRegion.h:408</a></div></div>
1286
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a77cf2b1959581da2b0cdf88291664ff3"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a77cf2b1959581da2b0cdf88291664ff3">SVF::MRGenerator::addCPtsToCallSiteRefs</a></div><div class="ttdeci">void addCPtsToCallSiteRefs(NodeBS &amp;cpts, const CallBlockNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00348">MemRegion.h:348</a></div></div>
1287
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a05005a166c39b1adea492655d77db519"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a05005a166c39b1adea492655d77db519">SVF::MRGenerator::callGraph</a></div><div class="ttdeci">PTACallGraph * callGraph</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00194">MemRegion.h:194</a></div></div>
1288
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_ac91b6f0f33a95ba35cc23e0e4657732a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ac91b6f0f33a95ba35cc23e0e4657732a">SVF::MRGenerator::hasRefSideEffectOfCallSite</a></div><div class="ttdeci">bool hasRefSideEffectOfCallSite(const CallBlockNode *cs)</div><div class="ttdoc">Has indirect refs of a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00403">MemRegion.h:403</a></div></div>
1289
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_ac43b3f895efd160c7dd5860c0dfd1625"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ac43b3f895efd160c7dd5860c0dfd1625">SVF::MRGenerator::collectCallSitePts</a></div><div class="ttdeci">void collectCallSitePts(const CallBlockNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00479">MemRegion.cpp:479</a></div></div>
1273
1290
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00088">SymbolTableInfo.cpp:88</a></div></div>
1274
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a68d50c752252bd40c402c7b99b95f0fc"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">SVF::MRGenerator::WorkList</a></div><div class="ttdeci">FIFOWorkList&lt; NodeID &gt; WorkList</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00136">MemRegion.h:136</a></div></div>
1291
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a68d50c752252bd40c402c7b99b95f0fc"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">SVF::MRGenerator::WorkList</a></div><div class="ttdeci">FIFOWorkList&lt; NodeID &gt; WorkList</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00130">MemRegion.h:130</a></div></div>
1275
1292
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a85ab6b592fefc45a0674d3295e01638f"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVF::SVFUtil::outs</a></div><div class="ttdeci">raw_ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00047">SVFUtil.h:47</a></div></div>
1276
1293
  <div class="ttc" id="SVFBasicTypes_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdoc">General debug flag is for each phase of a pass, it is often in a colorful output format. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00147">SVFBasicTypes.h:147</a></div></div>
1277
- <div class="ttc" id="classSVF_1_1MRGenerator_html_ab3d3ca72d2cddf5336d00dc623f33401"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ab3d3ca72d2cddf5336d00dc623f33401">SVF::MRGenerator::getCallGraphSCCRevTopoOrder</a></div><div class="ttdeci">void getCallGraphSCCRevTopoOrder(WorkList &amp;worklist)</div><div class="ttdoc">Get reverse topo call graph scc. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00440">MemRegion.cpp:440</a></div></div>
1278
- <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00197">MemRegion.h:197</a></div></div>
1294
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_ab3d3ca72d2cddf5336d00dc623f33401"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ab3d3ca72d2cddf5336d00dc623f33401">SVF::MRGenerator::getCallGraphSCCRevTopoOrder</a></div><div class="ttdeci">void getCallGraphSCCRevTopoOrder(WorkList &amp;worklist)</div><div class="ttdoc">Get reverse topo call graph scc. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00464">MemRegion.cpp:464</a></div></div>
1295
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00192">MemRegion.h:192</a></div></div>
1279
1296
  <div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00313">BasicTypes.h:313</a></div></div>
1280
1297
  <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
1281
- <div class="ttc" id="classSVF_1_1MRGenerator_html_ae2594115874771c93963846f3276e1fb"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ae2594115874771c93963846f3276e1fb">SVF::MRGenerator::addCPtsToCallSiteMods</a></div><div class="ttdeci">void addCPtsToCallSiteMods(PointsTo &amp;cpts, const CallBlockNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00363">MemRegion.h:363</a></div></div>
1282
1298
  <div class="ttc" id="classSVF_1_1PTACallGraphNode_html"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html">SVF::PTACallGraphNode</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00174">PTACallGraph.h:174</a></div></div>
1299
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a3c9e58dee18cde9a6e1575e34955af78"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a3c9e58dee18cde9a6e1575e34955af78">SVF::MRGenerator::addCPtsToCallSiteMods</a></div><div class="ttdeci">void addCPtsToCallSiteMods(NodeBS &amp;cpts, const CallBlockNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00353">MemRegion.h:353</a></div></div>
1283
1300
  <div class="ttc" id="classSVF_1_1CallBlockNode_html"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html">SVF::CallBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
1284
1301
  <div class="ttc" id="classSVF_1_1PAG_html_a4309ced29efb4f351dafb867206bb38b"><div class="ttname"><a href="classSVF_1_1PAG.html#a4309ced29efb4f351dafb867206bb38b">SVF::PAG::getCallSiteSet</a></div><div class="ttdeci">const CallSiteSet &amp; getCallSiteSet() const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00203">PAG.h:203</a></div></div>
1285
1302
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_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="SVFBasicTypes_8h_source.html#l00142">SVFBasicTypes.h:142</a></div></div>
@@ -1313,28 +1330,28 @@ Private Attributes</h2></td></tr>
1313
1330
  <p>Generate memory regions for loads/stores </p>
1314
1331
  <p>if this function does not have any caller, then we do not care its MSSA </p>
1315
1332
 
1316
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00148">148</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1317
- <div class="fragment"><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;{</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ad8b71cebf46deaf60e2cd4f6d6bb9433">getModule</a>();</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#afcf2978f32e15127fb093405dc17d7f1">SVFModule::const_iterator</a> fi = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a5486697889c6cca4f9f426650defc255">begin</a>(), efi = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a58d03edb6ff85f4943135478f113df31">end</a>(); fi != efi;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; ++fi)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>&amp; fun = **fi;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a50182faec95c6c4635df65a55148b040">Options::IgnoreDeadFun</a> &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6d268e8d588717601345be3a911a7625">isDeadFunction</a>(fun.<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>()))</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">for</span> (Function::const_iterator iter = fun.<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>()-&gt;begin(), eiter = fun.<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>()-&gt;end();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; iter != eiter; ++iter)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>&amp; bb = *iter;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">for</span> (BasicBlock::const_iterator bit = bb.begin(), ebit = bb.end();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; bit != ebit; ++bit)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>&amp; inst = *bit;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">PAGEdgeList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MRGenerator.html#a2eda764e59d9b5e7620d2cf26562615a">getPAGEdgesFromInst</a>(&amp;inst);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">for</span> (PAGEdgeList::iterator bit = pagEdgeList.begin(), ebit =</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; pagEdgeList.end(); bit != ebit; ++bit)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGEdge.html">PAGEdge</a>* inst = *bit;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58">pagEdgeToFunMap</a>[inst] = &amp;fun;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StorePE.html">StorePE</a> *st = SVFUtil::dyn_cast&lt;StorePE&gt;(inst))</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> cpts(<a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(st-&gt;getDstID()));</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">// TODO: change this assertion check later when we have conditional points-to set</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span> (cpts.empty())</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(!cpts.empty() &amp;&amp; <span class="stringliteral">&quot;null pointer!!&quot;</span>);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ae439967f24dbb6dbc11287592eb0d30c">addCPtsToStore</a>(cpts, st, &amp;fun);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadPE.html">LoadPE</a> *ld = SVFUtil::dyn_cast&lt;LoadPE&gt;(inst))</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> cpts(<a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(ld-&gt;getSrcID()));</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="comment">// TODO: change this assertion check later when we have conditional points-to set</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span> (cpts.empty())</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(!cpts.empty() &amp;&amp; <span class="stringliteral">&quot;null pointer!!&quot;</span>);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a4d71379ec4350d6fde0c12336c1b92d8">addCPtsToLoad</a>(cpts, ld, &amp;fun);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;}</div><div class="ttc" id="classSVF_1_1PAGEdge_html"><div class="ttname"><a href="classSVF_1_1PAGEdge.html">SVF::PAGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00047">PAGEdge.h:47</a></div></div>
1333
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00172">172</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1334
+ <div class="fragment"><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;{</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ad8b71cebf46deaf60e2cd4f6d6bb9433">getModule</a>();</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#afcf2978f32e15127fb093405dc17d7f1">SVFModule::const_iterator</a> fi = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a5486697889c6cca4f9f426650defc255">begin</a>(), efi = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a58d03edb6ff85f4943135478f113df31">end</a>(); fi != efi;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; ++fi)</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>&amp; fun = **fi;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a50182faec95c6c4635df65a55148b040">Options::IgnoreDeadFun</a> &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6d268e8d588717601345be3a911a7625">isDeadFunction</a>(fun.<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>()))</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">for</span> (Function::const_iterator iter = fun.<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>()-&gt;begin(), eiter = fun.<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>()-&gt;end();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; iter != eiter; ++iter)</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>&amp; bb = *iter;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">for</span> (BasicBlock::const_iterator bit = bb.begin(), ebit = bb.end();</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; bit != ebit; ++bit)</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>&amp; inst = *bit;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">PAGEdgeList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MRGenerator.html#a5875a7f064e468d5eceba737eeb44791">getPAGEdgesFromInst</a>(&amp;inst);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">for</span> (PAGEdgeList::iterator bit = pagEdgeList.begin(), ebit =</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; pagEdgeList.end(); bit != ebit; ++bit)</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGEdge.html">PAGEdge</a>* inst = *bit;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58">pagEdgeToFunMap</a>[inst] = &amp;fun;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StorePE.html">StorePE</a> *st = SVFUtil::dyn_cast&lt;StorePE&gt;(inst))</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> cpts(<a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(st-&gt;getDstID()));</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">// TODO: change this assertion check later when we have conditional points-to set</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">if</span> (cpts.empty())</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(!cpts.empty() &amp;&amp; <span class="stringliteral">&quot;null pointer!!&quot;</span>);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#aa9900773ce82da953385df2e6487200e">addCPtsToStore</a>(cpts, st, &amp;fun);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadPE.html">LoadPE</a> *ld = SVFUtil::dyn_cast&lt;LoadPE&gt;(inst))</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> cpts(<a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(ld-&gt;getSrcID()));</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="comment">// TODO: change this assertion check later when we have conditional points-to set</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">if</span> (cpts.empty())</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(!cpts.empty() &amp;&amp; <span class="stringliteral">&quot;null pointer!!&quot;</span>);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a4cd3d3af2cfad7b5c086f00ab8e68169">addCPtsToLoad</a>(cpts, ld, &amp;fun);</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; }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;}</div><div class="ttc" id="classSVF_1_1PAGEdge_html"><div class="ttname"><a href="classSVF_1_1PAGEdge.html">SVF::PAGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00047">PAGEdge.h:47</a></div></div>
1318
1335
  <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00077">BasicTypes.h:77</a></div></div>
1319
1336
  <div class="ttc" id="classSVF_1_1SVFModule_html_a5486697889c6cca4f9f426650defc255"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a5486697889c6cca4f9f426650defc255">SVF::SVFModule::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00136">SVFModule.h:136</a></div></div>
1320
1337
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
1321
1338
  <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
1322
1339
  <div class="ttc" id="classSVF_1_1StorePE_html"><div class="ttname"><a href="classSVF_1_1StorePE.html">SVF::StorePE</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00359">PAGEdge.h:359</a></div></div>
1340
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a5875a7f064e468d5eceba737eeb44791"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a5875a7f064e468d5eceba737eeb44791">SVF::MRGenerator::getPAGEdgesFromInst</a></div><div class="ttdeci">PAGEdgeList &amp; getPAGEdgesFromInst(const Instruction *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#l00160">MemRegion.cpp:160</a></div></div>
1323
1341
  <div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00038">SVFModule.h:38</a></div></div>
1324
1342
  <div class="ttc" id="classSVF_1_1Options_html_a50182faec95c6c4635df65a55148b040"><div class="ttname"><a href="classSVF_1_1Options.html#a50182faec95c6c4635df65a55148b040">SVF::Options::IgnoreDeadFun</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; IgnoreDeadFun</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00113">Options.h:113</a></div></div>
1325
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a4d71379ec4350d6fde0c12336c1b92d8"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a4d71379ec4350d6fde0c12336c1b92d8">SVF::MRGenerator::addCPtsToLoad</a></div><div class="ttdeci">void addCPtsToLoad(PointsTo &amp;cpts, const LoadPE *ld, const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00352">MemRegion.h:352</a></div></div>
1326
1343
  <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#l00216">PointerAnalysis.h:216</a></div></div>
1327
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00101">PointerAnalysisImpl.h:101</a></div></div>
1344
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a4cd3d3af2cfad7b5c086f00ab8e68169"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a4cd3d3af2cfad7b5c086f00ab8e68169">SVF::MRGenerator::addCPtsToLoad</a></div><div class="ttdeci">void addCPtsToLoad(NodeBS &amp;cpts, const LoadPE *ld, const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00342">MemRegion.h:342</a></div></div>
1345
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00098">PointerAnalysisImpl.h:98</a></div></div>
1328
1346
  <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00079">BasicTypes.h:79</a></div></div>
1329
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a2eda764e59d9b5e7620d2cf26562615a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a2eda764e59d9b5e7620d2cf26562615a">SVF::MRGenerator::getPAGEdgesFromInst</a></div><div class="ttdeci">PAGEdgeList &amp; getPAGEdgesFromInst(const Instruction *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_8h_source.html#l00487">MemRegion.h:487</a></div></div>
1330
- <div class="ttc" id="classSVF_1_1MRGenerator_html_ab250a4950269f57027d8e8ef10089f58"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58">SVF::MRGenerator::pagEdgeToFunMap</a></div><div class="ttdeci">PAGEdgeToFunMap pagEdgeToFunMap</div><div class="ttdoc">Map a PAGEdge to its fun. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00224">MemRegion.h:224</a></div></div>
1331
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a1715322c61a3f41f1a093098591869d4"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">SVF::MRGenerator::PAGEdgeList</a></div><div class="ttdeci">PAG::PAGEdgeList PAGEdgeList</div><div class="ttdoc">PAG edge list. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00176">MemRegion.h:176</a></div></div>
1347
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_ab250a4950269f57027d8e8ef10089f58"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58">SVF::MRGenerator::pagEdgeToFunMap</a></div><div class="ttdeci">PAGEdgeToFunMap pagEdgeToFunMap</div><div class="ttdoc">Map a PAGEdge to its fun. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00219">MemRegion.h:219</a></div></div>
1348
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_aa9900773ce82da953385df2e6487200e"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aa9900773ce82da953385df2e6487200e">SVF::MRGenerator::addCPtsToStore</a></div><div class="ttdeci">void addCPtsToStore(NodeBS &amp;cpts, const StorePE *st, const SVFFunction *fun)</div><div class="ttdoc">Add cpts to store/load. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00336">MemRegion.h:336</a></div></div>
1349
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a1715322c61a3f41f1a093098591869d4"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">SVF::MRGenerator::PAGEdgeList</a></div><div class="ttdeci">PAG::PAGEdgeList PAGEdgeList</div><div class="ttdoc">PAG edge list. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00171">MemRegion.h:171</a></div></div>
1332
1350
  <div class="ttc" id="classSVF_1_1LoadPE_html"><div class="ttname"><a href="classSVF_1_1LoadPE.html">SVF::LoadPE</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00396">PAGEdge.h:396</a></div></div>
1333
- <div class="ttc" id="classSVF_1_1MRGenerator_html_ae439967f24dbb6dbc11287592eb0d30c"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ae439967f24dbb6dbc11287592eb0d30c">SVF::MRGenerator::addCPtsToStore</a></div><div class="ttdeci">void addCPtsToStore(PointsTo &amp;cpts, const StorePE *st, const SVFFunction *fun)</div><div class="ttdoc">Add cpts to store/load. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00346">MemRegion.h:346</a></div></div>
1334
1351
  <div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00249">BasicTypes.h:249</a></div></div>
1335
- <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00197">MemRegion.h:197</a></div></div>
1352
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00192">MemRegion.h:192</a></div></div>
1353
+ <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
1336
1354
  <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#l00144">SVFModule.h:144</a></div></div>
1337
- <div class="ttc" id="namespaceSVF_html_a0c6594b4bae7924369bb61943c1da4fb"><div class="ttname"><a href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">SVF::PointsTo</a></div><div class="ttdeci">NodeBS PointsTo</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00088">SVFBasicTypes.h:88</a></div></div>
1338
1355
  <div class="ttc" id="classSVF_1_1SVFModule_html_afcf2978f32e15127fb093405dc17d7f1"><div class="ttname"><a href="classSVF_1_1SVFModule.html#afcf2978f32e15127fb093405dc17d7f1">SVF::SVFModule::const_iterator</a></div><div class="ttdeci">FunctionSetType::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00049">SVFModule.h:49</a></div></div>
1339
1356
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6d268e8d588717601345be3a911a7625"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6d268e8d588717601345be3a911a7625">SVF::SVFUtil::isDeadFunction</a></div><div class="ttdeci">bool isDeadFunction(const Function *fun)</div><div class="ttdoc">whether this is a function without any possible caller? </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00125">LLVMUtil.cpp:125</a></div></div>
1340
1357
  </div><!-- fragment -->
@@ -1365,23 +1382,23 @@ Private Attributes</h2></td></tr>
1365
1382
  </div><div class="memdoc">
1366
1383
  <p>Recurisively collect all points-to of the whole struct fields </p>
1367
1384
 
1368
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00503">503</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1369
- <div class="fragment"><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;{</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> baseId = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#ae1e22e620954e3e9ede3f2bf0ac90c36">getBaseObjNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; NodeToPTSSMap::iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#a0e46c7beb580ace3a652ac9e1c419b48">cachedPtsChainMap</a>.find(baseId);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1MRGenerator.html#a0e46c7beb580ace3a652ac9e1c419b48">cachedPtsChainMap</a>.end())</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; {</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>&amp; pts = <a class="code" href="classSVF_1_1MRGenerator.html#a0e46c7beb580ace3a652ac9e1c419b48">cachedPtsChainMap</a>[baseId];</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; pts |= <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#a19c4e63ab6129d4e7aeae8b280bb057b">getFieldsAfterCollapse</a>(baseId);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">WorkList</a> worklist;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">for</span>(PointsTo::iterator it = pts.begin(), eit = pts.end(); it!=eit; ++it)</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(*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="keywordflow">while</span>(!worklist.empty())</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; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = worklist.pop();</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>&amp; tmp = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(nodeId);</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordflow">for</span>(PointsTo::iterator it = tmp.begin(), eit = tmp.end(); it!=eit; ++it)</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; {</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; pts |= <a class="code" href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">CollectPtsChain</a>(*it);</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; }</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; }</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">return</span> pts;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; }</div><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;}</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
1385
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00527">527</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1386
+ <div class="fragment"><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;{</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> baseId = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#ae1e22e620954e3e9ede3f2bf0ac90c36">getBaseObjNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; NodeToPTSSMap::iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#a0e46c7beb580ace3a652ac9e1c419b48">cachedPtsChainMap</a>.find(baseId);</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1MRGenerator.html#a0e46c7beb580ace3a652ac9e1c419b48">cachedPtsChainMap</a>.end())</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">else</span></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; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; pts = <a class="code" href="classSVF_1_1MRGenerator.html#a0e46c7beb580ace3a652ac9e1c419b48">cachedPtsChainMap</a>[baseId];</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; pts |= <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#a19c4e63ab6129d4e7aeae8b280bb057b">getFieldsAfterCollapse</a>(baseId);</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; <a class="code" href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">WorkList</a> worklist;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">for</span>(NodeBS::iterator it = pts.begin(), eit = pts.end(); it!=eit; ++it)</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(*it);</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">while</span>(!worklist.empty())</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; {</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = worklist.pop();</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; tmp = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(nodeId);</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keywordflow">for</span>(NodeBS::iterator it = tmp.begin(), eit = tmp.end(); it!=eit; ++it)</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; {</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; pts |= <a class="code" href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">CollectPtsChain</a>(*it);</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; }</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; }</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">return</span> pts;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; }</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;}</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
1370
1387
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_aaf6b41f44da3a4caea1fa395e41edf71"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">PAG * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00204">PointerAnalysis.h:204</a></div></div>
1371
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a81bd687d34eea884dfcf68274fcec7b5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">SVF::MRGenerator::CollectPtsChain</a></div><div class="ttdeci">NodeBS &amp; CollectPtsChain(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00503">MemRegion.cpp:503</a></div></div>
1388
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a81bd687d34eea884dfcf68274fcec7b5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">SVF::MRGenerator::CollectPtsChain</a></div><div class="ttdeci">NodeBS &amp; CollectPtsChain(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00527">MemRegion.cpp:527</a></div></div>
1372
1389
  <div class="ttc" id="classSVF_1_1PAG_html_a19c4e63ab6129d4e7aeae8b280bb057b"><div class="ttname"><a href="classSVF_1_1PAG.html#a19c4e63ab6129d4e7aeae8b280bb057b">SVF::PAG::getFieldsAfterCollapse</a></div><div class="ttdeci">NodeBS getFieldsAfterCollapse(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00800">PAG.cpp:800</a></div></div>
1373
1390
  <div class="ttc" id="classSVF_1_1FIFOWorkList_html_ad4c6a48b60c870d63049fe7272cc7eb8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(Data data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00159">WorkList.h:159</a></div></div>
1374
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00101">PointerAnalysisImpl.h:101</a></div></div>
1375
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a68d50c752252bd40c402c7b99b95f0fc"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">SVF::MRGenerator::WorkList</a></div><div class="ttdeci">FIFOWorkList&lt; NodeID &gt; WorkList</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00136">MemRegion.h:136</a></div></div>
1391
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00098">PointerAnalysisImpl.h:98</a></div></div>
1392
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a68d50c752252bd40c402c7b99b95f0fc"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">SVF::MRGenerator::WorkList</a></div><div class="ttdeci">FIFOWorkList&lt; NodeID &gt; WorkList</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00130">MemRegion.h:130</a></div></div>
1376
1393
  <div class="ttc" id="classSVF_1_1PAG_html_ae1e22e620954e3e9ede3f2bf0ac90c36"><div class="ttname"><a href="classSVF_1_1PAG.html#ae1e22e620954e3e9ede3f2bf0ac90c36">SVF::PAG::getBaseObjNode</a></div><div class="ttdeci">NodeID getBaseObjNode(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00717">PAG.h:717</a></div></div>
1377
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a0e46c7beb580ace3a652ac9e1c419b48"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a0e46c7beb580ace3a652ac9e1c419b48">SVF::MRGenerator::cachedPtsChainMap</a></div><div class="ttdeci">NodeToPTSSMap cachedPtsChainMap</div><div class="ttdoc">Map a pointer to its cached points-to chain;. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00240">MemRegion.h:240</a></div></div>
1378
- <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00197">MemRegion.h:197</a></div></div>
1379
- <div class="ttc" id="namespaceSVF_html_a0c6594b4bae7924369bb61943c1da4fb"><div class="ttname"><a href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">SVF::PointsTo</a></div><div class="ttdeci">NodeBS PointsTo</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00088">SVFBasicTypes.h:88</a></div></div>
1394
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a0e46c7beb580ace3a652ac9e1c419b48"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a0e46c7beb580ace3a652ac9e1c419b48">SVF::MRGenerator::cachedPtsChainMap</a></div><div class="ttdeci">NodeToPTSSMap cachedPtsChainMap</div><div class="ttdoc">Map a pointer to its cached points-to chain;. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00235">MemRegion.h:235</a></div></div>
1395
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00192">MemRegion.h:192</a></div></div>
1396
+ <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
1380
1397
  </div><!-- fragment -->
1381
1398
  </div>
1382
1399
  </div>
1383
- <a id="a42708b4ce8b5548e156a0e6d01602cc2"></a>
1384
- <h2 class="memtitle"><span class="permalink"><a href="#a42708b4ce8b5548e156a0e6d01602cc2">&#9670;&nbsp;</a></span>createMR()</h2>
1400
+ <a id="ac18324bd2b862c3cdbf65494bf69ecb5"></a>
1401
+ <h2 class="memtitle"><span class="permalink"><a href="#ac18324bd2b862c3cdbf65494bf69ecb5">&#9670;&nbsp;</a></span>createMR()</h2>
1385
1402
 
1386
1403
  <div class="memitem">
1387
1404
  <div class="memproto">
@@ -1398,7 +1415,7 @@ Private Attributes</h2></td></tr>
1398
1415
  <tr>
1399
1416
  <td class="paramkey"></td>
1400
1417
  <td></td>
1401
- <td class="paramtype">const <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;&#160;</td>
1418
+ <td class="paramtype">const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;&#160;</td>
1402
1419
  <td class="paramname"><em>cpts</em>&#160;</td>
1403
1420
  </tr>
1404
1421
  <tr>
@@ -1417,13 +1434,13 @@ Private Attributes</h2></td></tr>
1417
1434
  <p>Generate a memory region and put in into functions which use it. </p>
1418
1435
  <p>Generate a memory region and put in into functions which use it </p>
1419
1436
 
1420
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00064">64</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1421
- <div class="fragment"><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>&amp; repCPts = <a class="code" href="classSVF_1_1MRGenerator.html#a2e039a855c8e421e80cc7b015211a192">getRepPointsTo</a>(cpts);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a> mr(repCPts);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; MRSet::const_iterator mit = <a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.find(&amp;mr);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(mit!=<a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.end())</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr = *mit;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a>&amp; mrs = <a class="code" href="classSVF_1_1MRGenerator.html#a3e74c3706ffcc14f378771b417dcbb96">funToMRsMap</a>[fun];</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(mrs.find(mr)==mrs.end())</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; mrs.insert(mr);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m = <span class="keyword">new</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>(repCPts);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.insert(m);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a3e74c3706ffcc14f378771b417dcbb96">funToMRsMap</a>[fun].insert(m);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a3e74c3706ffcc14f378771b417dcbb96"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a3e74c3706ffcc14f378771b417dcbb96">SVF::MRGenerator::funToMRsMap</a></div><div class="ttdeci">FunToMRsMap funToMRsMap</div><div class="ttdoc">Map a function to all its memory regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00203">MemRegion.h:203</a></div></div>
1422
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a2e039a855c8e421e80cc7b015211a192"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a2e039a855c8e421e80cc7b015211a192">SVF::MRGenerator::getRepPointsTo</a></div><div class="ttdeci">const PointsTo &amp; getRepPointsTo(const PointsTo &amp;cpts) const</div><div class="ttdoc">Get superset cpts set. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00186">MemRegion.h:186</a></div></div>
1423
- <div class="ttc" id="classSVF_1_1MRGenerator_html_af94bd8155a23273aab2396334d905119"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">SVF::MRGenerator::memRegSet</a></div><div class="ttdeci">MRSet memRegSet</div><div class="ttdoc">A set of All memory regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00283">MemRegion.h:283</a></div></div>
1424
- <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#l00048">MemRegion.h:48</a></div></div>
1425
- <div class="ttc" id="namespaceSVF_html_a0c6594b4bae7924369bb61943c1da4fb"><div class="ttname"><a href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">SVF::PointsTo</a></div><div class="ttdeci">NodeBS PointsTo</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00088">SVFBasicTypes.h:88</a></div></div>
1426
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a98ac3bf264e6a85d172c2c4264ea908f"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">SVF::MRGenerator::MRSet</a></div><div class="ttdeci">OrderedSet&lt; const MemRegion *, MemRegion::equalMemRegion &gt; MRSet</div><div class="ttdoc">Get typedef from Pointer Analysis. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00142">MemRegion.h:142</a></div></div>
1437
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00070">70</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1438
+ <div class="fragment"><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;{</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; repCPts = <a class="code" href="classSVF_1_1MRGenerator.html#a98b3481580be48cff7e93bf3c8a29dac">getRepPointsTo</a>(cpts);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a> mr(repCPts);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; MRSet::const_iterator mit = <a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.find(&amp;mr);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span>(mit!=<a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.end())</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr = *mit;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a>&amp; mrs = <a class="code" href="classSVF_1_1MRGenerator.html#a3e74c3706ffcc14f378771b417dcbb96">funToMRsMap</a>[fun];</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span>(mrs.find(mr)==mrs.end())</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; mrs.insert(mr);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m = <span class="keyword">new</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>(repCPts);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.insert(m);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a3e74c3706ffcc14f378771b417dcbb96">funToMRsMap</a>[fun].insert(m);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a3e74c3706ffcc14f378771b417dcbb96"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a3e74c3706ffcc14f378771b417dcbb96">SVF::MRGenerator::funToMRsMap</a></div><div class="ttdeci">FunToMRsMap funToMRsMap</div><div class="ttdoc">Map a function to all its memory regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00198">MemRegion.h:198</a></div></div>
1439
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a98b3481580be48cff7e93bf3c8a29dac"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a98b3481580be48cff7e93bf3c8a29dac">SVF::MRGenerator::getRepPointsTo</a></div><div class="ttdeci">const NodeBS &amp; getRepPointsTo(const NodeBS &amp;cpts) const</div><div class="ttdoc">Get superset cpts set. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00181">MemRegion.h:181</a></div></div>
1440
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_af94bd8155a23273aab2396334d905119"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">SVF::MRGenerator::memRegSet</a></div><div class="ttdeci">MRSet memRegSet</div><div class="ttdoc">A set of All memory regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00273">MemRegion.h:273</a></div></div>
1441
+ <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
1442
+ <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#l00050">MemRegion.h:50</a></div></div>
1443
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a98ac3bf264e6a85d172c2c4264ea908f"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">SVF::MRGenerator::MRSet</a></div><div class="ttdeci">OrderedSet&lt; const MemRegion *, MemRegion::equalMemRegion &gt; MRSet</div><div class="ttdoc">Get typedef from Pointer Analysis. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00136">MemRegion.h:136</a></div></div>
1427
1444
  </div><!-- fragment -->
1428
1445
  </div>
1429
1446
  </div>
@@ -1453,11 +1470,11 @@ Private Attributes</h2></td></tr>
1453
1470
  <p>Clean up memory. </p>
1454
1471
  <p>Clean up memory </p>
1455
1472
 
1456
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00046">46</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1457
- <div class="fragment"><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">for</span> (MRSet::iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.begin(), eit = <a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.end();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; it != eit; ++it)</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">callGraphSCC</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">callGraphSCC</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a05005a166c39b1adea492655d77db519">callGraph</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_aa3a12cf1f761d25b9213bc6e50d89ba5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">SVF::MRGenerator::callGraphSCC</a></div><div class="ttdeci">SCC * callGraphSCC</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00198">MemRegion.h:198</a></div></div>
1458
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a05005a166c39b1adea492655d77db519"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a05005a166c39b1adea492655d77db519">SVF::MRGenerator::callGraph</a></div><div class="ttdeci">PTACallGraph * callGraph</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00199">MemRegion.h:199</a></div></div>
1459
- <div class="ttc" id="classSVF_1_1MRGenerator_html_af94bd8155a23273aab2396334d905119"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">SVF::MRGenerator::memRegSet</a></div><div class="ttdeci">MRSet memRegSet</div><div class="ttdoc">A set of All memory regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00283">MemRegion.h:283</a></div></div>
1460
- <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00197">MemRegion.h:197</a></div></div>
1473
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00052">52</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1474
+ <div class="fragment"><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">for</span> (MRSet::iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.begin(), eit = <a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.end();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; it != eit; ++it)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">callGraphSCC</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">callGraphSCC</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a05005a166c39b1adea492655d77db519">callGraph</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_aa3a12cf1f761d25b9213bc6e50d89ba5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">SVF::MRGenerator::callGraphSCC</a></div><div class="ttdeci">SCC * callGraphSCC</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00193">MemRegion.h:193</a></div></div>
1475
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a05005a166c39b1adea492655d77db519"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a05005a166c39b1adea492655d77db519">SVF::MRGenerator::callGraph</a></div><div class="ttdeci">PTACallGraph * callGraph</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00194">MemRegion.h:194</a></div></div>
1476
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_af94bd8155a23273aab2396334d905119"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">SVF::MRGenerator::memRegSet</a></div><div class="ttdeci">MRSet memRegSet</div><div class="ttdoc">A set of All memory regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00273">MemRegion.h:273</a></div></div>
1477
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00192">MemRegion.h:192</a></div></div>
1461
1478
  </div><!-- fragment -->
1462
1479
  </div>
1463
1480
  </div>
@@ -1491,23 +1508,23 @@ Private Attributes</h2></td></tr>
1491
1508
  <p>Partition memory regions</p>
1492
1509
  <p>attach memory regions for loads/stores/calls </p>
1493
1510
 
1494
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00119">119</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1495
- <div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;Generate Memory Regions \n&quot;</span>));</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afdae3e11009966856736d9aa1e2ad5bd">collectGlobals</a>();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">callGraphSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;\tCollect ModRef For Load/Store \n&quot;</span>));</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a207dfa4c9f044764665478142c6e6b22">collectModRefForLoadStore</a>();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;\tCollect ModRef For const CallBlockNode*\n&quot;</span>));</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a502f8379620378b36bc12d9a91b408d2">collectModRefForCall</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;\tPartition Memory Regions \n&quot;</span>));</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ac0b966ee2065607a24920dd9067b40e9">partitionMRs</a>();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a9c1da53188729eb743e1a33bbad87af7">updateAliasMRs</a>();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_aa3a12cf1f761d25b9213bc6e50d89ba5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">SVF::MRGenerator::callGraphSCC</a></div><div class="ttdeci">SCC * callGraphSCC</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00198">MemRegion.h:198</a></div></div>
1496
- <div class="ttc" id="classSVF_1_1MRGenerator_html_ac0b966ee2065607a24920dd9067b40e9"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ac0b966ee2065607a24920dd9067b40e9">SVF::MRGenerator::partitionMRs</a></div><div class="ttdeci">virtual void partitionMRs()</div><div class="ttdoc">Partition regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00293">MemRegion.cpp:293</a></div></div>
1497
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a609eea630a8f88fe9eaba15ce7e48738"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(std::string msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00098">SVFUtil.cpp:98</a></div></div>
1511
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00125">125</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1512
+ <div class="fragment"><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;{</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;Generate Memory Regions \n&quot;</span>));</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afdae3e11009966856736d9aa1e2ad5bd">collectGlobals</a>();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">callGraphSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>();</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;\tCollect ModRef For Load/Store \n&quot;</span>));</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a207dfa4c9f044764665478142c6e6b22">collectModRefForLoadStore</a>();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;\tCollect ModRef For const CallBlockNode*\n&quot;</span>));</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a502f8379620378b36bc12d9a91b408d2">collectModRefForCall</a>();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;\tPartition Memory Regions \n&quot;</span>));</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ac0b966ee2065607a24920dd9067b40e9">partitionMRs</a>();</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a9c1da53188729eb743e1a33bbad87af7">updateAliasMRs</a>();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_aa3a12cf1f761d25b9213bc6e50d89ba5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">SVF::MRGenerator::callGraphSCC</a></div><div class="ttdeci">SCC * callGraphSCC</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00193">MemRegion.h:193</a></div></div>
1513
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_ac0b966ee2065607a24920dd9067b40e9"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ac0b966ee2065607a24920dd9067b40e9">SVF::MRGenerator::partitionMRs</a></div><div class="ttdeci">virtual void partitionMRs()</div><div class="ttdoc">Partition regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00317">MemRegion.cpp:317</a></div></div>
1514
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a609eea630a8f88fe9eaba15ce7e48738"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(std::string msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00100">SVFUtil.cpp:100</a></div></div>
1498
1515
  <div class="ttc" id="classSVF_1_1SCCDetection_html_a123b5006a6da7053e5e357140da3c5a3"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">SVF::SCCDetection::find</a></div><div class="ttdeci">void find(void)</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00308">SCC.h:308</a></div></div>
1499
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a9c1da53188729eb743e1a33bbad87af7"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a9c1da53188729eb743e1a33bbad87af7">SVF::MRGenerator::updateAliasMRs</a></div><div class="ttdeci">virtual void updateAliasMRs()</div><div class="ttdoc">Update aliased regions for loads/stores/callsites. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00324">MemRegion.cpp:324</a></div></div>
1500
- <div class="ttc" id="classSVF_1_1MRGenerator_html_afdae3e11009966856736d9aa1e2ad5bd"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afdae3e11009966856736d9aa1e2ad5bd">SVF::MRGenerator::collectGlobals</a></div><div class="ttdeci">void collectGlobals()</div><div class="ttdoc">Collect all global variables for later escape analysis. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00099">MemRegion.cpp:99</a></div></div>
1501
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a502f8379620378b36bc12d9a91b408d2"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a502f8379620378b36bc12d9a91b408d2">SVF::MRGenerator::collectModRefForCall</a></div><div class="ttdeci">virtual void collectModRefForCall()</div><div class="ttdoc">Generate regions for calls/rets. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00204">MemRegion.cpp:204</a></div></div>
1516
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a9c1da53188729eb743e1a33bbad87af7"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a9c1da53188729eb743e1a33bbad87af7">SVF::MRGenerator::updateAliasMRs</a></div><div class="ttdeci">virtual void updateAliasMRs()</div><div class="ttdoc">Update aliased regions for loads/stores/callsites. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00348">MemRegion.cpp:348</a></div></div>
1517
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_afdae3e11009966856736d9aa1e2ad5bd"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afdae3e11009966856736d9aa1e2ad5bd">SVF::MRGenerator::collectGlobals</a></div><div class="ttdeci">void collectGlobals()</div><div class="ttdoc">Collect all global variables for later escape analysis. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00105">MemRegion.cpp:105</a></div></div>
1518
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a502f8379620378b36bc12d9a91b408d2"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a502f8379620378b36bc12d9a91b408d2">SVF::MRGenerator::collectModRefForCall</a></div><div class="ttdeci">virtual void collectModRefForCall()</div><div class="ttdoc">Generate regions for calls/rets. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00228">MemRegion.cpp:228</a></div></div>
1502
1519
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a85ab6b592fefc45a0674d3295e01638f"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVF::SVFUtil::outs</a></div><div class="ttdeci">raw_ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00047">SVFUtil.h:47</a></div></div>
1503
1520
  <div class="ttc" id="SVFBasicTypes_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdoc">General debug flag is for each phase of a pass, it is often in a colorful output format. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00147">SVFBasicTypes.h:147</a></div></div>
1504
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a207dfa4c9f044764665478142c6e6b22"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a207dfa4c9f044764665478142c6e6b22">SVF::MRGenerator::collectModRefForLoadStore</a></div><div class="ttdeci">virtual void collectModRefForLoadStore()</div><div class="ttdoc">Generate regions for loads/stores. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00148">MemRegion.cpp:148</a></div></div>
1521
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a207dfa4c9f044764665478142c6e6b22"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a207dfa4c9f044764665478142c6e6b22">SVF::MRGenerator::collectModRefForLoadStore</a></div><div class="ttdeci">virtual void collectModRefForLoadStore()</div><div class="ttdoc">Generate regions for loads/stores. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00172">MemRegion.cpp:172</a></div></div>
1505
1522
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_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="SVFBasicTypes_8h_source.html#l00142">SVFBasicTypes.h:142</a></div></div>
1506
1523
  </div><!-- fragment -->
1507
1524
  </div>
1508
1525
  </div>
1509
- <a id="a6426e7a9a6324b8b2f8a9bcf4aab1fc1"></a>
1510
- <h2 class="memtitle"><span class="permalink"><a href="#a6426e7a9a6324b8b2f8a9bcf4aab1fc1">&#9670;&nbsp;</a></span>getAliasMemRegions()</h2>
1526
+ <a id="ad740188222439c089907fa6c6c951f02"></a>
1527
+ <h2 class="memtitle"><span class="permalink"><a href="#ad740188222439c089907fa6c6c951f02">&#9670;&nbsp;</a></span>getAliasMemRegions()</h2>
1511
1528
 
1512
1529
  <div class="memitem">
1513
1530
  <div class="memproto">
@@ -1524,7 +1541,7 @@ Private Attributes</h2></td></tr>
1524
1541
  <tr>
1525
1542
  <td class="paramkey"></td>
1526
1543
  <td></td>
1527
- <td class="paramtype">const <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;&#160;</td>
1544
+ <td class="paramtype">const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;&#160;</td>
1528
1545
  <td class="paramname"><em>cpts</em>, </td>
1529
1546
  </tr>
1530
1547
  <tr>
@@ -1548,9 +1565,9 @@ Private Attributes</h2></td></tr>
1548
1565
 
1549
1566
  <p>Get all aliased mem regions from function fun according to cpts. </p>
1550
1567
 
1551
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00314">314</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
1552
- <div class="fragment"><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">for</span>(MRSet::const_iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#a3e74c3706ffcc14f378771b417dcbb96">funToMRsMap</a>[fun].begin(), eit = <a class="code" href="classSVF_1_1MRGenerator.html#a3e74c3706ffcc14f378771b417dcbb96">funToMRsMap</a>[fun].end(); it!=eit; ++it)</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; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#acd1759ce72edc748e6628d7e82458473">isAliasedMR</a>(cpts,*it))</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; aliasMRs.insert(*it);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a3e74c3706ffcc14f378771b417dcbb96"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a3e74c3706ffcc14f378771b417dcbb96">SVF::MRGenerator::funToMRsMap</a></div><div class="ttdeci">FunToMRsMap funToMRsMap</div><div class="ttdoc">Map a function to all its memory regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00203">MemRegion.h:203</a></div></div>
1553
- <div class="ttc" id="classSVF_1_1MRGenerator_html_acd1759ce72edc748e6628d7e82458473"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#acd1759ce72edc748e6628d7e82458473">SVF::MRGenerator::isAliasedMR</a></div><div class="ttdeci">virtual bool isAliasedMR(const PointsTo &amp;cpts, const MemRegion *mr)</div><div class="ttdoc">Whether a region is aliased with a conditional points-to. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00309">MemRegion.h:309</a></div></div>
1568
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00304">304</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
1569
+ <div class="fragment"><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">for</span>(MRSet::const_iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#a3e74c3706ffcc14f378771b417dcbb96">funToMRsMap</a>[fun].begin(), eit = <a class="code" href="classSVF_1_1MRGenerator.html#a3e74c3706ffcc14f378771b417dcbb96">funToMRsMap</a>[fun].end(); it!=eit; ++it)</div><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">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#a28130cc55ab317d383ba6593f323b12a">isAliasedMR</a>(cpts,*it))</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; aliasMRs.insert(*it);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a3e74c3706ffcc14f378771b417dcbb96"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a3e74c3706ffcc14f378771b417dcbb96">SVF::MRGenerator::funToMRsMap</a></div><div class="ttdeci">FunToMRsMap funToMRsMap</div><div class="ttdoc">Map a function to all its memory regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00198">MemRegion.h:198</a></div></div>
1570
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a28130cc55ab317d383ba6593f323b12a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a28130cc55ab317d383ba6593f323b12a">SVF::MRGenerator::isAliasedMR</a></div><div class="ttdeci">virtual bool isAliasedMR(const NodeBS &amp;cpts, const MemRegion *mr)</div><div class="ttdoc">Whether a region is aliased with a conditional points-to. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00299">MemRegion.h:299</a></div></div>
1554
1571
  </div><!-- fragment -->
1555
1572
  </div>
1556
1573
  </div>
@@ -1581,8 +1598,8 @@ Private Attributes</h2></td></tr>
1581
1598
  <p>Get reverse topo call graph scc. </p>
1582
1599
  <p>Get the reverse topo order of scc call graph </p>
1583
1600
 
1584
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00440">440</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1585
- <div class="fragment"><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; <a class="code" href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">NodeStack</a>&amp; topoOrder = <a class="code" href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">callGraphSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a6502c0a765ac1653474ffee651949f93">topoNodeStack</a>();</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">while</span>(!topoOrder.empty())</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; {</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> callgraphNodeID = topoOrder.top();</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; topoOrder.pop();</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; worklist.push(callgraphNodeID);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; }</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_aa3a12cf1f761d25b9213bc6e50d89ba5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">SVF::MRGenerator::callGraphSCC</a></div><div class="ttdeci">SCC * callGraphSCC</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00198">MemRegion.h:198</a></div></div>
1601
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00464">464</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1602
+ <div class="fragment"><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;{</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; <a class="code" href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">NodeStack</a>&amp; topoOrder = <a class="code" href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">callGraphSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a6502c0a765ac1653474ffee651949f93">topoNodeStack</a>();</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">while</span>(!topoOrder.empty())</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; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> callgraphNodeID = topoOrder.top();</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; topoOrder.pop();</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; worklist.push(callgraphNodeID);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; }</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_aa3a12cf1f761d25b9213bc6e50d89ba5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">SVF::MRGenerator::callGraphSCC</a></div><div class="ttdeci">SCC * callGraphSCC</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00193">MemRegion.h:193</a></div></div>
1586
1603
  <div class="ttc" id="classSVF_1_1SCCDetection_html_a6502c0a765ac1653474ffee651949f93"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a6502c0a765ac1653474ffee651949f93">SVF::SCCDetection::topoNodeStack</a></div><div class="ttdeci">GNodeStack &amp; topoNodeStack()</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00128">SCC.h:128</a></div></div>
1587
1604
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
1588
1605
  <div class="ttc" id="namespaceSVF_html_a1811127aebdb9c926e39d155e20b3dc0"><div class="ttname"><a href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">SVF::NodeStack</a></div><div class="ttdeci">std::stack&lt; NodeID &gt; NodeStack</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00119">SVFBasicTypes.h:119</a></div></div>
@@ -1615,8 +1632,8 @@ Private Attributes</h2></td></tr>
1615
1632
 
1616
1633
  <p>Return the pts chain of all callsite arguments. </p>
1617
1634
 
1618
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00255">255</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
1619
- <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a145cccd6355dd479e8a0c744584cef9a">csToCallSiteArgsPtsMap</a>[cs];</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a145cccd6355dd479e8a0c744584cef9a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a145cccd6355dd479e8a0c744584cef9a">SVF::MRGenerator::csToCallSiteArgsPtsMap</a></div><div class="ttdeci">CallSiteToNodeBSMap csToCallSiteArgsPtsMap</div><div class="ttdoc">Map a callsite to all its object might pass into its callees. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00235">MemRegion.h:235</a></div></div>
1635
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00250">250</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
1636
+ <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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#afe91b57b451d7788364493549e015acf">csToCallSiteArgsPtsMap</a>[cs];</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_afe91b57b451d7788364493549e015acf"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afe91b57b451d7788364493549e015acf">SVF::MRGenerator::csToCallSiteArgsPtsMap</a></div><div class="ttdeci">CallSiteToPointsToMap csToCallSiteArgsPtsMap</div><div class="ttdoc">Map a callsite to all its object might pass into its callees. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00230">MemRegion.h:230</a></div></div>
1620
1637
  </div><!-- fragment -->
1621
1638
  </div>
1622
1639
  </div>
@@ -1644,8 +1661,8 @@ Private Attributes</h2></td></tr>
1644
1661
  </table>
1645
1662
  </div><div class="memdoc">
1646
1663
 
1647
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00472">472</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
1648
- <div class="fragment"><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; {</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#adf8d477e5f622855799842134145ecc4">callsiteToModMRsMap</a>[cs];</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_adf8d477e5f622855799842134145ecc4"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#adf8d477e5f622855799842134145ecc4">SVF::MRGenerator::callsiteToModMRsMap</a></div><div class="ttdeci">CallSiteToMRsMap callsiteToModMRsMap</div><div class="ttdoc">Map a callsite to its mods regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00211">MemRegion.h:211</a></div></div>
1664
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00462">462</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
1665
+ <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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#adf8d477e5f622855799842134145ecc4">callsiteToModMRsMap</a>[cs];</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_adf8d477e5f622855799842134145ecc4"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#adf8d477e5f622855799842134145ecc4">SVF::MRGenerator::callsiteToModMRsMap</a></div><div class="ttdeci">CallSiteToMRsMap callsiteToModMRsMap</div><div class="ttdoc">Map a callsite to its mods regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00206">MemRegion.h:206</a></div></div>
1649
1666
  </div><!-- fragment -->
1650
1667
  </div>
1651
1668
  </div>
@@ -1673,8 +1690,8 @@ Private Attributes</h2></td></tr>
1673
1690
  </table>
1674
1691
  </div><div class="memdoc">
1675
1692
 
1676
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00468">468</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
1677
- <div class="fragment"><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> <a class="code" href="classSVF_1_1MRGenerator.html#a7a7ed21181c2486b60170a479a5a534e">callsiteToRefMRsMap</a>[cs];</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a7a7ed21181c2486b60170a479a5a534e"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7a7ed21181c2486b60170a479a5a534e">SVF::MRGenerator::callsiteToRefMRsMap</a></div><div class="ttdeci">CallSiteToMRsMap callsiteToRefMRsMap</div><div class="ttdoc">Map a callsite to its refs regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00209">MemRegion.h:209</a></div></div>
1693
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00458">458</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
1694
+ <div class="fragment"><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; {</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a7a7ed21181c2486b60170a479a5a534e">callsiteToRefMRsMap</a>[cs];</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a7a7ed21181c2486b60170a479a5a534e"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7a7ed21181c2486b60170a479a5a534e">SVF::MRGenerator::callsiteToRefMRsMap</a></div><div class="ttdeci">CallSiteToMRsMap callsiteToRefMRsMap</div><div class="ttdoc">Map a callsite to its refs regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00204">MemRegion.h:204</a></div></div>
1678
1695
  </div><!-- fragment -->
1679
1696
  </div>
1680
1697
  </div>
@@ -1704,8 +1721,8 @@ Private Attributes</h2></td></tr>
1704
1721
 
1705
1722
  <p>Return the pts chain of the return parameter of the callsite. </p>
1706
1723
 
1707
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00260">260</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
1708
- <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">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a9368636daea4542fa36fff822ff39104">csToCallSiteRetPtsMap</a>[cs];</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a9368636daea4542fa36fff822ff39104"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a9368636daea4542fa36fff822ff39104">SVF::MRGenerator::csToCallSiteRetPtsMap</a></div><div class="ttdeci">CallSiteToNodeBSMap csToCallSiteRetPtsMap</div><div class="ttdoc">Map a callsite to all its object might return from its callees. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00237">MemRegion.h:237</a></div></div>
1724
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00255">255</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
1725
+ <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a21550f978f42ac3cbb32cbc426ff5cb1">csToCallSiteRetPtsMap</a>[cs];</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a21550f978f42ac3cbb32cbc426ff5cb1"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a21550f978f42ac3cbb32cbc426ff5cb1">SVF::MRGenerator::csToCallSiteRetPtsMap</a></div><div class="ttdeci">CallSiteToPointsToMap csToCallSiteRetPtsMap</div><div class="ttdoc">Map a callsite to all its object might return from its callees. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00232">MemRegion.h:232</a></div></div>
1709
1726
  </div><!-- fragment -->
1710
1727
  </div>
1711
1728
  </div>
@@ -1746,13 +1763,13 @@ Private Attributes</h2></td></tr>
1746
1763
  <p>Get all the objects in callee's modref escaped via global objects (the chain pts of globals) </p>
1747
1764
  <p>Get all the objects in callee's modref escaped via global objects (the chain pts of globals) Otherwise, the object in callee's modref would not escape through globals </p>
1748
1765
 
1749
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00537">537</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1750
- <div class="fragment"><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;{</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">for</span>(NodeBS::iterator it = calleeModRef.begin(), eit = calleeModRef.end(); it!=eit; ++it)</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; {</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#a2b288fce8efa1b0b1b620efec2c96eb6">getObject</a>(*it);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(obj &amp;&amp; <span class="stringliteral">&quot;object not found!!&quot;</span>);</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#af46b82e45aa1ecdfb397325971206541">allGlobals</a>.test(*it))</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; globs.set(*it);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; }</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;}</div><div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00284">MemModel.h:284</a></div></div>
1766
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00561">561</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1767
+ <div class="fragment"><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;{</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">for</span>(NodeBS::iterator it = calleeModRef.begin(), eit = calleeModRef.end(); it!=eit; ++it)</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; {</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#a2b288fce8efa1b0b1b620efec2c96eb6">getObject</a>(*it);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(obj &amp;&amp; <span class="stringliteral">&quot;object not found!!&quot;</span>);</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#af46b82e45aa1ecdfb397325971206541">allGlobals</a>.test(*it))</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; globs.set(*it);</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; }</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;}</div><div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00284">MemModel.h:284</a></div></div>
1751
1768
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
1752
1769
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_aaf6b41f44da3a4caea1fa395e41edf71"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">PAG * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00204">PointerAnalysis.h:204</a></div></div>
1753
1770
  <div class="ttc" id="classSVF_1_1PAG_html_a2b288fce8efa1b0b1b620efec2c96eb6"><div class="ttname"><a href="classSVF_1_1PAG.html#a2b288fce8efa1b0b1b620efec2c96eb6">SVF::PAG::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00589">PAG.h:589</a></div></div>
1754
- <div class="ttc" id="classSVF_1_1MRGenerator_html_af46b82e45aa1ecdfb397325971206541"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af46b82e45aa1ecdfb397325971206541">SVF::MRGenerator::allGlobals</a></div><div class="ttdeci">NodeBS allGlobals</div><div class="ttdoc">All global variable PAG node ids. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00243">MemRegion.h:243</a></div></div>
1755
- <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00197">MemRegion.h:197</a></div></div>
1771
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_af46b82e45aa1ecdfb397325971206541"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af46b82e45aa1ecdfb397325971206541">SVF::MRGenerator::allGlobals</a></div><div class="ttdeci">NodeBS allGlobals</div><div class="ttdoc">All global variable PAG node ids. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00238">MemRegion.h:238</a></div></div>
1772
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00192">MemRegion.h:192</a></div></div>
1756
1773
  </div><!-- fragment -->
1757
1774
  </div>
1758
1775
  </div>
@@ -1782,9 +1799,9 @@ Private Attributes</h2></td></tr>
1782
1799
 
1783
1800
  <p>Get the function which <a class="el" href="classSVF_1_1PAG.html">PAG</a> Edge located. </p>
1784
1801
 
1785
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00440">440</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
1786
- <div class="fragment"><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; PAGEdgeToFunMap::const_iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58">pagEdgeToFunMap</a>.find(pagEdge);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=<a class="code" href="classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58">pagEdgeToFunMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;can not find its function, it is a global PAG edge&quot;</span>);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
1787
- <div class="ttc" id="classSVF_1_1MRGenerator_html_ab250a4950269f57027d8e8ef10089f58"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58">SVF::MRGenerator::pagEdgeToFunMap</a></div><div class="ttdeci">PAGEdgeToFunMap pagEdgeToFunMap</div><div class="ttdoc">Map a PAGEdge to its fun. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00224">MemRegion.h:224</a></div></div>
1802
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00430">430</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
1803
+ <div class="fragment"><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; PAGEdgeToFunMap::const_iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58">pagEdgeToFunMap</a>.find(pagEdge);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=<a class="code" href="classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58">pagEdgeToFunMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;can not find its function, it is a global PAG edge&quot;</span>);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
1804
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_ab250a4950269f57027d8e8ef10089f58"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58">SVF::MRGenerator::pagEdgeToFunMap</a></div><div class="ttdeci">PAGEdgeToFunMap pagEdgeToFunMap</div><div class="ttdoc">Map a PAGEdge to its fun. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00219">MemRegion.h:219</a></div></div>
1788
1805
  </div><!-- fragment -->
1789
1806
  </div>
1790
1807
  </div>
@@ -1814,13 +1831,13 @@ Private Attributes</h2></td></tr>
1814
1831
 
1815
1832
  <p>Get Memory Region set. </p>
1816
1833
 
1817
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00448">448</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
1818
- <div class="fragment"><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; {</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a3e74c3706ffcc14f378771b417dcbb96">funToMRsMap</a>[fun];</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a3e74c3706ffcc14f378771b417dcbb96"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a3e74c3706ffcc14f378771b417dcbb96">SVF::MRGenerator::funToMRsMap</a></div><div class="ttdeci">FunToMRsMap funToMRsMap</div><div class="ttdoc">Map a function to all its memory regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00203">MemRegion.h:203</a></div></div>
1834
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00438">438</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
1835
+ <div class="fragment"><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; {</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a3e74c3706ffcc14f378771b417dcbb96">funToMRsMap</a>[fun];</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a3e74c3706ffcc14f378771b417dcbb96"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a3e74c3706ffcc14f378771b417dcbb96">SVF::MRGenerator::funToMRsMap</a></div><div class="ttdeci">FunToMRsMap funToMRsMap</div><div class="ttdoc">Map a function to all its memory regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00198">MemRegion.h:198</a></div></div>
1819
1836
  </div><!-- fragment -->
1820
1837
  </div>
1821
1838
  </div>
1822
- <a id="ad8333efeda532f0d403352ad6a4987e9"></a>
1823
- <h2 class="memtitle"><span class="permalink"><a href="#ad8333efeda532f0d403352ad6a4987e9">&#9670;&nbsp;</a></span>getFunToPointsToList()</h2>
1839
+ <a id="a1331e6f0941838064d77a5adaa5c6303"></a>
1840
+ <h2 class="memtitle"><span class="permalink"><a href="#a1331e6f0941838064d77a5adaa5c6303">&#9670;&nbsp;</a></span>getFunToPointsToList()</h2>
1824
1841
 
1825
1842
  <div class="memitem">
1826
1843
  <div class="memproto">
@@ -1829,7 +1846,7 @@ Private Attributes</h2></td></tr>
1829
1846
  <td class="mlabels-left">
1830
1847
  <table class="memname">
1831
1848
  <tr>
1832
- <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a71b584c7e0feb3014ad5f74eb31467bb">FunToPointsToMap</a>&amp; SVF::MRGenerator::getFunToPointsToList </td>
1849
+ <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a6b8bbb60126105cc77c1a6a4c46677fd">FunToPointsTosMap</a>&amp; SVF::MRGenerator::getFunToPointsToList </td>
1833
1850
  <td>(</td>
1834
1851
  <td class="paramname"></td><td>)</td>
1835
1852
  <td></td>
@@ -1842,8 +1859,8 @@ Private Attributes</h2></td></tr>
1842
1859
  </table>
1843
1860
  </div><div class="memdoc">
1844
1861
 
1845
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00376">376</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
1846
- <div class="fragment"><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; {</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#acaf48288039d19bf0bb9f2e506fbfd8d">funToPointsToMap</a>;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_acaf48288039d19bf0bb9f2e506fbfd8d"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#acaf48288039d19bf0bb9f2e506fbfd8d">SVF::MRGenerator::funToPointsToMap</a></div><div class="ttdeci">FunToPointsToMap funToPointsToMap</div><div class="ttdoc">Map a function to all of its conditional points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00222">MemRegion.h:222</a></div></div>
1862
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00366">366</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
1863
+ <div class="fragment"><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; {</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a05c7a5ddbe3079f63be76c35298d1c2b">funToPointsToMap</a>;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a05c7a5ddbe3079f63be76c35298d1c2b"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a05c7a5ddbe3079f63be76c35298d1c2b">SVF::MRGenerator::funToPointsToMap</a></div><div class="ttdeci">FunToPointsTosMap funToPointsToMap</div><div class="ttdoc">Map a function to all of its conditional points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00217">MemRegion.h:217</a></div></div>
1847
1864
  </div><!-- fragment -->
1848
1865
  </div>
1849
1866
  </div>
@@ -1871,19 +1888,19 @@ Private Attributes</h2></td></tr>
1871
1888
  </table>
1872
1889
  </div><div class="memdoc">
1873
1890
 
1874
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00452">452</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
1875
- <div class="fragment"><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; {</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a0d8229b1f0b8428708e923d19096e4ba">loadsToMRsMap</a>[load];</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a0d8229b1f0b8428708e923d19096e4ba"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a0d8229b1f0b8428708e923d19096e4ba">SVF::MRGenerator::loadsToMRsMap</a></div><div class="ttdeci">LoadsToMRsMap loadsToMRsMap</div><div class="ttdoc">Map a load PAG Edge to its memory regions sets in order for inserting mus in Memory SSA...</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00205">MemRegion.h:205</a></div></div>
1891
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00442">442</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
1892
+ <div class="fragment"><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; {</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a0d8229b1f0b8428708e923d19096e4ba">loadsToMRsMap</a>[load];</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a0d8229b1f0b8428708e923d19096e4ba"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a0d8229b1f0b8428708e923d19096e4ba">SVF::MRGenerator::loadsToMRsMap</a></div><div class="ttdeci">LoadsToMRsMap loadsToMRsMap</div><div class="ttdoc">Map a load PAG Edge to its memory regions sets in order for inserting mus in Memory SSA...</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00200">MemRegion.h:200</a></div></div>
1876
1893
  </div><!-- fragment -->
1877
1894
  </div>
1878
1895
  </div>
1879
- <a id="a1658aacb68aacb4785266263c1641a6a"></a>
1880
- <h2 class="memtitle"><span class="permalink"><a href="#a1658aacb68aacb4785266263c1641a6a">&#9670;&nbsp;</a></span>getModInfoForCall()</h2>
1896
+ <a id="af0d1a34ce38e9b20ee6fc7b27fcd5198"></a>
1897
+ <h2 class="memtitle"><span class="permalink"><a href="#af0d1a34ce38e9b20ee6fc7b27fcd5198">&#9670;&nbsp;</a></span>getModInfoForCall()</h2>
1881
1898
 
1882
1899
  <div class="memitem">
1883
1900
  <div class="memproto">
1884
1901
  <table class="memname">
1885
1902
  <tr>
1886
- <td class="memname"><a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> MRGenerator::getModInfoForCall </td>
1903
+ <td class="memname"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> MRGenerator::getModInfoForCall </td>
1887
1904
  <td>(</td>
1888
1905
  <td class="paramtype">const <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a> *&#160;</td>
1889
1906
  <td class="paramname"><em>cs</em></td><td>)</td>
@@ -1896,17 +1913,17 @@ Private Attributes</h2></td></tr>
1896
1913
  <p>Collect mod ref for external callsite other than heap alloc external call</p>
1897
1914
  <p>Obtain the mod sets for a call, used for external ModRefInfo queries </p>
1898
1915
 
1899
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00646">646</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1900
- <div class="fragment"><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">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>()) &amp;&amp; !<a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>()))</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; <a class="code" href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">PAGEdgeList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MRGenerator.html#a2eda764e59d9b5e7620d2cf26562615a">getPAGEdgesFromInst</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>());</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> mods;</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keywordflow">for</span> (PAGEdgeList::const_iterator bit = pagEdgeList.begin(), ebit =</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; pagEdgeList.end(); 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_1PAGEdge.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_1StorePE.html">StorePE</a>* st = SVFUtil::dyn_cast&lt;StorePE&gt;(edge))</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; mods |= <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(st-&gt;getDstID());</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; }</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keywordflow">return</span> mods;</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">else</span></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">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#aebd6abbf574392abce426dc796d2ee56">getModSideEffectOfCallSite</a>(cs);</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;}</div><div class="ttc" id="classSVF_1_1PAGEdge_html"><div class="ttname"><a href="classSVF_1_1PAGEdge.html">SVF::PAGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00047">PAGEdge.h:47</a></div></div>
1916
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00670">670</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1917
+ <div class="fragment"><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; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>()) &amp;&amp; !<a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>()))</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; {</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">PAGEdgeList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MRGenerator.html#a5875a7f064e468d5eceba737eeb44791">getPAGEdgesFromInst</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>());</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> mods;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <span class="keywordflow">for</span> (PAGEdgeList::const_iterator bit = pagEdgeList.begin(), ebit =</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; pagEdgeList.end(); 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_1PAGEdge.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_1StorePE.html">StorePE</a>* st = SVFUtil::dyn_cast&lt;StorePE&gt;(edge))</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; mods |= <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(st-&gt;getDstID());</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; <span class="keywordflow">return</span> mods;</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; <span class="keywordflow">else</span></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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#aebd6abbf574392abce426dc796d2ee56">getModSideEffectOfCallSite</a>(cs);</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="ttc" id="classSVF_1_1PAGEdge_html"><div class="ttname"><a href="classSVF_1_1PAGEdge.html">SVF::PAGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00047">PAGEdge.h:47</a></div></div>
1901
1918
  <div class="ttc" id="classSVF_1_1StorePE_html"><div class="ttname"><a href="classSVF_1_1StorePE.html">SVF::StorePE</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00359">PAGEdge.h:359</a></div></div>
1902
- <div class="ttc" id="classSVF_1_1MRGenerator_html_aebd6abbf574392abce426dc796d2ee56"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aebd6abbf574392abce426dc796d2ee56">SVF::MRGenerator::getModSideEffectOfCallSite</a></div><div class="ttdeci">const NodeBS &amp; getModSideEffectOfCallSite(const CallBlockNode *cs)</div><div class="ttdoc">Get indirect mods of a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00408">MemRegion.h:408</a></div></div>
1903
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00101">PointerAnalysisImpl.h:101</a></div></div>
1904
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a2eda764e59d9b5e7620d2cf26562615a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a2eda764e59d9b5e7620d2cf26562615a">SVF::MRGenerator::getPAGEdgesFromInst</a></div><div class="ttdeci">PAGEdgeList &amp; getPAGEdgesFromInst(const Instruction *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_8h_source.html#l00487">MemRegion.h:487</a></div></div>
1905
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a1715322c61a3f41f1a093098591869d4"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">SVF::MRGenerator::PAGEdgeList</a></div><div class="ttdeci">PAG::PAGEdgeList PAGEdgeList</div><div class="ttdoc">PAG edge list. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00176">MemRegion.h:176</a></div></div>
1919
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a5875a7f064e468d5eceba737eeb44791"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a5875a7f064e468d5eceba737eeb44791">SVF::MRGenerator::getPAGEdgesFromInst</a></div><div class="ttdeci">PAGEdgeList &amp; getPAGEdgesFromInst(const Instruction *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#l00160">MemRegion.cpp:160</a></div></div>
1920
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_aebd6abbf574392abce426dc796d2ee56"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aebd6abbf574392abce426dc796d2ee56">SVF::MRGenerator::getModSideEffectOfCallSite</a></div><div class="ttdeci">const NodeBS &amp; getModSideEffectOfCallSite(const CallBlockNode *cs)</div><div class="ttdoc">Get indirect mods of a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00398">MemRegion.h:398</a></div></div>
1921
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00098">PointerAnalysisImpl.h:98</a></div></div>
1922
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a1715322c61a3f41f1a093098591869d4"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">SVF::MRGenerator::PAGEdgeList</a></div><div class="ttdeci">PAG::PAGEdgeList PAGEdgeList</div><div class="ttdoc">PAG edge list. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00171">MemRegion.h:171</a></div></div>
1906
1923
  <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="LLVMUtil_8h_source.html#l00115">LLVMUtil.h:115</a></div></div>
1907
1924
  <div class="ttc" id="classSVF_1_1CallBlockNode_html_ad3d50024efcfa94b1246c982b43aff2f"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">SVF::CallBlockNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00381">ICFGNode.h:381</a></div></div>
1908
- <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00197">MemRegion.h:197</a></div></div>
1909
- <div class="ttc" id="namespaceSVF_html_a0c6594b4bae7924369bb61943c1da4fb"><div class="ttname"><a href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">SVF::PointsTo</a></div><div class="ttdeci">NodeBS PointsTo</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00088">SVFBasicTypes.h:88</a></div></div>
1925
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00192">MemRegion.h:192</a></div></div>
1926
+ <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
1910
1927
  <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="LLVMUtil_8h_source.html#l00063">LLVMUtil.h:63</a></div></div>
1911
1928
  </div><!-- fragment -->
1912
1929
  </div>
@@ -1928,9 +1945,9 @@ Private Attributes</h2></td></tr>
1928
1945
  </div><div class="memdoc">
1929
1946
  <p>Determine whether a <a class="el" href="classSVF_1_1CallSite.html">CallSite</a> instruction can mod or ref any memory location </p>
1930
1947
 
1931
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00695">695</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1932
- <div class="fragment"><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; <span class="keywordtype">bool</span> ref = !<a class="code" href="classSVF_1_1MRGenerator.html#afc17f566f57656cf17c08665602b4849">getRefInfoForCall</a>(cs).empty();</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keywordtype">bool</span> mod = !<a class="code" href="classSVF_1_1MRGenerator.html#a1658aacb68aacb4785266263c1641a6a">getModInfoForCall</a>(cs).empty();</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; <span class="keywordflow">if</span> (mod &amp;&amp; ref)</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">return</span> ModRefInfo::ModRef;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ref)</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keywordflow">return</span> ModRefInfo::Ref;</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mod)</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">return</span> ModRefInfo::Mod;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">return</span> ModRefInfo::NoModRef;</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_afc17f566f57656cf17c08665602b4849"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afc17f566f57656cf17c08665602b4849">SVF::MRGenerator::getRefInfoForCall</a></div><div class="ttdeci">PointsTo getRefInfoForCall(const CallBlockNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00670">MemRegion.cpp:670</a></div></div>
1933
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a1658aacb68aacb4785266263c1641a6a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a1658aacb68aacb4785266263c1641a6a">SVF::MRGenerator::getModInfoForCall</a></div><div class="ttdeci">PointsTo getModInfoForCall(const CallBlockNode *cs)</div><div class="ttdoc">getModRefInfo APIs </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00646">MemRegion.cpp:646</a></div></div>
1948
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00719">719</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1949
+ <div class="fragment"><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;{</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="keywordtype">bool</span> ref = !<a class="code" href="classSVF_1_1MRGenerator.html#acbc431cc7fb72135e592d74709ea7a77">getRefInfoForCall</a>(cs).empty();</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keywordtype">bool</span> mod = !<a class="code" href="classSVF_1_1MRGenerator.html#af0d1a34ce38e9b20ee6fc7b27fcd5198">getModInfoForCall</a>(cs).empty();</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordflow">if</span> (mod &amp;&amp; ref)</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keywordflow">return</span> ModRefInfo::ModRef;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ref)</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">return</span> ModRefInfo::Ref;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mod)</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">return</span> ModRefInfo::Mod;</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordflow">return</span> ModRefInfo::NoModRef;</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_acbc431cc7fb72135e592d74709ea7a77"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#acbc431cc7fb72135e592d74709ea7a77">SVF::MRGenerator::getRefInfoForCall</a></div><div class="ttdeci">NodeBS getRefInfoForCall(const CallBlockNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00694">MemRegion.cpp:694</a></div></div>
1950
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_af0d1a34ce38e9b20ee6fc7b27fcd5198"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af0d1a34ce38e9b20ee6fc7b27fcd5198">SVF::MRGenerator::getModInfoForCall</a></div><div class="ttdeci">NodeBS getModInfoForCall(const CallBlockNode *cs)</div><div class="ttdoc">getModRefInfo APIs </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00670">MemRegion.cpp:670</a></div></div>
1934
1951
  </div><!-- fragment -->
1935
1952
  </div>
1936
1953
  </div>
@@ -1961,15 +1978,15 @@ Private Attributes</h2></td></tr>
1961
1978
  </div><div class="memdoc">
1962
1979
  <p>Determine whether a const CallBlockNode* instruction can mod or ref a specific memory location pointed by V </p>
1963
1980
 
1964
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00714">714</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1965
- <div class="fragment"><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;{</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="keywordtype">bool</span> ref = <span class="keyword">false</span>;</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keywordtype">bool</span> mod = <span class="keyword">false</span>;</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#ae3cdf8c2139ba043595b420624f25427">hasValueNode</a>(V))</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; {</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> pts(<a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(<a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#a5f49b7da110a626ed6605d1f108dfa25">getValueNode</a>(V)));</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> csRef = <a class="code" href="classSVF_1_1MRGenerator.html#afc17f566f57656cf17c08665602b4849">getRefInfoForCall</a>(cs);</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> csMod = <a class="code" href="classSVF_1_1MRGenerator.html#a1658aacb68aacb4785266263c1641a6a">getModInfoForCall</a>(cs);</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> ptsExpanded, csRefExpanded, csModExpanded;</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">expandFIObjs</a>(pts, ptsExpanded);</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">expandFIObjs</a>(csRef, csRefExpanded);</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">expandFIObjs</a>(csMod, csModExpanded);</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">if</span> (csRefExpanded.intersects(ptsExpanded))</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; ref = <span class="keyword">true</span>;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordflow">if</span> (csModExpanded.intersects(ptsExpanded))</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; mod = <span class="keyword">true</span>;</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; }</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="keywordflow">if</span> (mod &amp;&amp; ref)</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="keywordflow">return</span> ModRefInfo::ModRef;</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ref)</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordflow">return</span> ModRefInfo::Ref;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mod)</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordflow">return</span> ModRefInfo::Mod;</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keywordflow">return</span> ModRefInfo::NoModRef;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;}</div><div class="ttc" id="classSVF_1_1PAG_html_a5f49b7da110a626ed6605d1f108dfa25"><div class="ttname"><a href="classSVF_1_1PAG.html#a5f49b7da110a626ed6605d1f108dfa25">SVF::PAG::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const Value *V)</div><div class="ttdoc">Get PAG Node according to LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00547">PAG.h:547</a></div></div>
1981
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00738">738</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1982
+ <div class="fragment"><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;{</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordtype">bool</span> ref = <span class="keyword">false</span>;</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keywordtype">bool</span> mod = <span class="keyword">false</span>;</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#ae3cdf8c2139ba043595b420624f25427">hasValueNode</a>(V))</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; {</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> pts(<a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(<a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#a5f49b7da110a626ed6605d1f108dfa25">getValueNode</a>(V)));</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> csRef = <a class="code" href="classSVF_1_1MRGenerator.html#acbc431cc7fb72135e592d74709ea7a77">getRefInfoForCall</a>(cs);</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> csMod = <a class="code" href="classSVF_1_1MRGenerator.html#af0d1a34ce38e9b20ee6fc7b27fcd5198">getModInfoForCall</a>(cs);</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> ptsExpanded, csRefExpanded, csModExpanded;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">expandFIObjs</a>(pts, ptsExpanded);</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">expandFIObjs</a>(csRef, csRefExpanded);</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">expandFIObjs</a>(csMod, csModExpanded);</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">if</span> (csRefExpanded.intersects(ptsExpanded))</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; ref = <span class="keyword">true</span>;</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordflow">if</span> (csModExpanded.intersects(ptsExpanded))</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; mod = <span class="keyword">true</span>;</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; }</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordflow">if</span> (mod &amp;&amp; ref)</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">return</span> ModRefInfo::ModRef;</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ref)</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordflow">return</span> ModRefInfo::Ref;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mod)</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keywordflow">return</span> ModRefInfo::Mod;</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <span class="keywordflow">return</span> ModRefInfo::NoModRef;</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;}</div><div class="ttc" id="classSVF_1_1PAG_html_a5f49b7da110a626ed6605d1f108dfa25"><div class="ttname"><a href="classSVF_1_1PAG.html#a5f49b7da110a626ed6605d1f108dfa25">SVF::PAG::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const Value *V)</div><div class="ttdoc">Get PAG Node according to LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00547">PAG.h:547</a></div></div>
1983
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_acbc431cc7fb72135e592d74709ea7a77"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#acbc431cc7fb72135e592d74709ea7a77">SVF::MRGenerator::getRefInfoForCall</a></div><div class="ttdeci">NodeBS getRefInfoForCall(const CallBlockNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00694">MemRegion.cpp:694</a></div></div>
1966
1984
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_aaf6b41f44da3a4caea1fa395e41edf71"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">PAG * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00204">PointerAnalysis.h:204</a></div></div>
1967
- <div class="ttc" id="classSVF_1_1MRGenerator_html_afc17f566f57656cf17c08665602b4849"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afc17f566f57656cf17c08665602b4849">SVF::MRGenerator::getRefInfoForCall</a></div><div class="ttdeci">PointsTo getRefInfoForCall(const CallBlockNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00670">MemRegion.cpp:670</a></div></div>
1968
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a1658aacb68aacb4785266263c1641a6a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a1658aacb68aacb4785266263c1641a6a">SVF::MRGenerator::getModInfoForCall</a></div><div class="ttdeci">PointsTo getModInfoForCall(const CallBlockNode *cs)</div><div class="ttdoc">getModRefInfo APIs </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00646">MemRegion.cpp:646</a></div></div>
1969
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00101">PointerAnalysisImpl.h:101</a></div></div>
1970
- <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00197">MemRegion.h:197</a></div></div>
1971
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a798c84d5e861de2b61bcb1a86385f721"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">SVF::BVDataPTAImpl::expandFIObjs</a></div><div class="ttdeci">virtual void expandFIObjs(const PointsTo &amp;pts, PointsTo &amp;expandedPts)</div><div class="ttdoc">Expand FI objects. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00078">PointerAnalysisImpl.cpp:78</a></div></div>
1972
- <div class="ttc" id="namespaceSVF_html_a0c6594b4bae7924369bb61943c1da4fb"><div class="ttname"><a href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">SVF::PointsTo</a></div><div class="ttdeci">NodeBS PointsTo</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00088">SVFBasicTypes.h:88</a></div></div>
1985
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_af0d1a34ce38e9b20ee6fc7b27fcd5198"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af0d1a34ce38e9b20ee6fc7b27fcd5198">SVF::MRGenerator::getModInfoForCall</a></div><div class="ttdeci">NodeBS getModInfoForCall(const CallBlockNode *cs)</div><div class="ttdoc">getModRefInfo APIs </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00670">MemRegion.cpp:670</a></div></div>
1986
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00098">PointerAnalysisImpl.h:98</a></div></div>
1987
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00192">MemRegion.h:192</a></div></div>
1988
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a798c84d5e861de2b61bcb1a86385f721"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">SVF::BVDataPTAImpl::expandFIObjs</a></div><div class="ttdeci">virtual void expandFIObjs(const PointsTo &amp;pts, PointsTo &amp;expandedPts)</div><div class="ttdoc">Expand FI objects. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00075">PointerAnalysisImpl.cpp:75</a></div></div>
1989
+ <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
1973
1990
  <div class="ttc" id="classSVF_1_1PAG_html_ae3cdf8c2139ba043595b420624f25427"><div class="ttname"><a href="classSVF_1_1PAG.html#ae3cdf8c2139ba043595b420624f25427">SVF::PAG::hasValueNode</a></div><div class="ttdeci">bool hasValueNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00551">PAG.h:551</a></div></div>
1974
1991
  </div><!-- fragment -->
1975
1992
  </div>
@@ -2005,13 +2022,13 @@ Private Attributes</h2></td></tr>
2005
2022
  <p>Mod: cs1 mod memory ref or mod by cs2</p>
2006
2023
  <p>ModRef: cs1 ref and mod memory mod by cs2 </p>
2007
2024
 
2008
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00748">748</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2009
- <div class="fragment"><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;{</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordtype">bool</span> ref = <span class="keyword">false</span>;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordtype">bool</span> mod = <span class="keyword">false</span>;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MRGenerator.html#a455e0ba173141ac8ce76a655ac52205f">getModRefInfo</a>(cs1) == ModRefInfo::NoModRef || <a class="code" href="classSVF_1_1MRGenerator.html#a455e0ba173141ac8ce76a655ac52205f">getModRefInfo</a>(cs2) == ModRefInfo::NoModRef)</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordflow">return</span> ModRefInfo::NoModRef;</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> cs1Ref = <a class="code" href="classSVF_1_1MRGenerator.html#afc17f566f57656cf17c08665602b4849">getRefInfoForCall</a>(cs1);</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> cs1Mod = <a class="code" href="classSVF_1_1MRGenerator.html#a1658aacb68aacb4785266263c1641a6a">getModInfoForCall</a>(cs1);</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> cs2Ref = <a class="code" href="classSVF_1_1MRGenerator.html#afc17f566f57656cf17c08665602b4849">getRefInfoForCall</a>(cs2);</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> cs2Mod = <a class="code" href="classSVF_1_1MRGenerator.html#a1658aacb68aacb4785266263c1641a6a">getModInfoForCall</a>(cs2);</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> cs1RefExpanded, cs1ModExpanded, cs2RefExpanded, cs2ModExpanded;</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">expandFIObjs</a>(cs1Ref, cs1RefExpanded);</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">expandFIObjs</a>(cs1Mod, cs1ModExpanded);</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">expandFIObjs</a>(cs2Ref, cs2RefExpanded);</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">expandFIObjs</a>(cs2Mod, cs2ModExpanded);</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keywordflow">if</span> (cs1RefExpanded.intersects(cs2ModExpanded))</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; ref = <span class="keyword">true</span>;</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keywordflow">if</span> (cs1ModExpanded.intersects(cs2RefExpanded) || cs1ModExpanded.intersects(cs2ModExpanded))</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; mod = <span class="keyword">true</span>;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordflow">if</span> (cs1RefExpanded.intersects(cs2ModExpanded) &amp;&amp; cs1ModExpanded.intersects(cs2ModExpanded))</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; ref = mod = <span class="keyword">true</span>;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <span class="keywordflow">if</span> (ref &amp;&amp; mod)</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keywordflow">return</span> ModRefInfo::ModRef;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ref)</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <span class="keywordflow">return</span> ModRefInfo::Ref;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mod)</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <span class="keywordflow">return</span> ModRefInfo::Mod;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <span class="keywordflow">return</span> ModRefInfo::NoModRef;</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_afc17f566f57656cf17c08665602b4849"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afc17f566f57656cf17c08665602b4849">SVF::MRGenerator::getRefInfoForCall</a></div><div class="ttdeci">PointsTo getRefInfoForCall(const CallBlockNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00670">MemRegion.cpp:670</a></div></div>
2010
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a1658aacb68aacb4785266263c1641a6a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a1658aacb68aacb4785266263c1641a6a">SVF::MRGenerator::getModInfoForCall</a></div><div class="ttdeci">PointsTo getModInfoForCall(const CallBlockNode *cs)</div><div class="ttdoc">getModRefInfo APIs </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00646">MemRegion.cpp:646</a></div></div>
2011
- <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00197">MemRegion.h:197</a></div></div>
2012
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a455e0ba173141ac8ce76a655ac52205f"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a455e0ba173141ac8ce76a655ac52205f">SVF::MRGenerator::getModRefInfo</a></div><div class="ttdeci">ModRefInfo getModRefInfo(const CallBlockNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00695">MemRegion.cpp:695</a></div></div>
2013
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a798c84d5e861de2b61bcb1a86385f721"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">SVF::BVDataPTAImpl::expandFIObjs</a></div><div class="ttdeci">virtual void expandFIObjs(const PointsTo &amp;pts, PointsTo &amp;expandedPts)</div><div class="ttdoc">Expand FI objects. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00078">PointerAnalysisImpl.cpp:78</a></div></div>
2014
- <div class="ttc" id="namespaceSVF_html_a0c6594b4bae7924369bb61943c1da4fb"><div class="ttname"><a href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">SVF::PointsTo</a></div><div class="ttdeci">NodeBS PointsTo</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00088">SVFBasicTypes.h:88</a></div></div>
2025
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00772">772</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2026
+ <div class="fragment"><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;{</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordtype">bool</span> ref = <span class="keyword">false</span>;</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <span class="keywordtype">bool</span> mod = <span class="keyword">false</span>;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MRGenerator.html#a455e0ba173141ac8ce76a655ac52205f">getModRefInfo</a>(cs1) == ModRefInfo::NoModRef || <a class="code" href="classSVF_1_1MRGenerator.html#a455e0ba173141ac8ce76a655ac52205f">getModRefInfo</a>(cs2) == ModRefInfo::NoModRef)</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keywordflow">return</span> ModRefInfo::NoModRef;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> cs1Ref = <a class="code" href="classSVF_1_1MRGenerator.html#acbc431cc7fb72135e592d74709ea7a77">getRefInfoForCall</a>(cs1);</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> cs1Mod = <a class="code" href="classSVF_1_1MRGenerator.html#af0d1a34ce38e9b20ee6fc7b27fcd5198">getModInfoForCall</a>(cs1);</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> cs2Ref = <a class="code" href="classSVF_1_1MRGenerator.html#acbc431cc7fb72135e592d74709ea7a77">getRefInfoForCall</a>(cs2);</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> cs2Mod = <a class="code" href="classSVF_1_1MRGenerator.html#af0d1a34ce38e9b20ee6fc7b27fcd5198">getModInfoForCall</a>(cs2);</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> cs1RefExpanded, cs1ModExpanded, cs2RefExpanded, cs2ModExpanded;</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">expandFIObjs</a>(cs1Ref, cs1RefExpanded);</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">expandFIObjs</a>(cs1Mod, cs1ModExpanded);</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">expandFIObjs</a>(cs2Ref, cs2RefExpanded);</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">expandFIObjs</a>(cs2Mod, cs2ModExpanded);</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <span class="keywordflow">if</span> (cs1RefExpanded.intersects(cs2ModExpanded))</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; ref = <span class="keyword">true</span>;</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">if</span> (cs1ModExpanded.intersects(cs2RefExpanded) || cs1ModExpanded.intersects(cs2ModExpanded))</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; mod = <span class="keyword">true</span>;</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="keywordflow">if</span> (cs1RefExpanded.intersects(cs2ModExpanded) &amp;&amp; cs1ModExpanded.intersects(cs2ModExpanded))</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; ref = mod = <span class="keyword">true</span>;</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="keywordflow">if</span> (ref &amp;&amp; mod)</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keywordflow">return</span> ModRefInfo::ModRef;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ref)</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">return</span> ModRefInfo::Ref;</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mod)</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">return</span> ModRefInfo::Mod;</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <span class="keywordflow">return</span> ModRefInfo::NoModRef;</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_acbc431cc7fb72135e592d74709ea7a77"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#acbc431cc7fb72135e592d74709ea7a77">SVF::MRGenerator::getRefInfoForCall</a></div><div class="ttdeci">NodeBS getRefInfoForCall(const CallBlockNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00694">MemRegion.cpp:694</a></div></div>
2027
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_af0d1a34ce38e9b20ee6fc7b27fcd5198"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af0d1a34ce38e9b20ee6fc7b27fcd5198">SVF::MRGenerator::getModInfoForCall</a></div><div class="ttdeci">NodeBS getModInfoForCall(const CallBlockNode *cs)</div><div class="ttdoc">getModRefInfo APIs </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00670">MemRegion.cpp:670</a></div></div>
2028
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00192">MemRegion.h:192</a></div></div>
2029
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a455e0ba173141ac8ce76a655ac52205f"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a455e0ba173141ac8ce76a655ac52205f">SVF::MRGenerator::getModRefInfo</a></div><div class="ttdeci">ModRefInfo getModRefInfo(const CallBlockNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00719">MemRegion.cpp:719</a></div></div>
2030
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a798c84d5e861de2b61bcb1a86385f721"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">SVF::BVDataPTAImpl::expandFIObjs</a></div><div class="ttdeci">virtual void expandFIObjs(const PointsTo &amp;pts, PointsTo &amp;expandedPts)</div><div class="ttdoc">Expand FI objects. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00075">PointerAnalysisImpl.cpp:75</a></div></div>
2031
+ <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
2015
2032
  </div><!-- fragment -->
2016
2033
  </div>
2017
2034
  </div>
@@ -2041,8 +2058,8 @@ Private Attributes</h2></td></tr>
2041
2058
 
2042
2059
  <p>Get indirect mods of a callsite. </p>
2043
2060
 
2044
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00408">408</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2045
- <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a72222bae993142be1881c34660646b82">csToModsMap</a>[cs];</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a72222bae993142be1881c34660646b82"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a72222bae993142be1881c34660646b82">SVF::MRGenerator::csToModsMap</a></div><div class="ttdeci">CallSiteToNodeBSMap csToModsMap</div><div class="ttdoc">Map a callsite to its indirect defs of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00233">MemRegion.h:233</a></div></div>
2061
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00398">398</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2062
+ <div class="fragment"><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a603f993995e7d6961e203a195bb56029">csToModsMap</a>[cs];</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a603f993995e7d6961e203a195bb56029"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a603f993995e7d6961e203a195bb56029">SVF::MRGenerator::csToModsMap</a></div><div class="ttdeci">CallSiteToPointsToMap csToModsMap</div><div class="ttdoc">Map a callsite to its indirect defs of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00228">MemRegion.h:228</a></div></div>
2046
2063
  </div><!-- fragment -->
2047
2064
  </div>
2048
2065
  </div>
@@ -2072,13 +2089,13 @@ Private Attributes</h2></td></tr>
2072
2089
 
2073
2090
  <p>Get indirect mods of a function. </p>
2074
2091
 
2075
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00398">398</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2076
- <div class="fragment"><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#aeb185d6d9c7bfe4b98c7440db6b8bbc4">funToModsMap</a>[fun];</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_aeb185d6d9c7bfe4b98c7440db6b8bbc4"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aeb185d6d9c7bfe4b98c7440db6b8bbc4">SVF::MRGenerator::funToModsMap</a></div><div class="ttdeci">FunToNodeBSMap funToModsMap</div><div class="ttdoc">Map a function to its indirect defs of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00229">MemRegion.h:229</a></div></div>
2092
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00388">388</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2093
+ <div class="fragment"><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a2c94bfa19ad8d1d6360b12693c8b891d">funToModsMap</a>[fun];</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a2c94bfa19ad8d1d6360b12693c8b891d"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a2c94bfa19ad8d1d6360b12693c8b891d">SVF::MRGenerator::funToModsMap</a></div><div class="ttdeci">FunToPointsToMap funToModsMap</div><div class="ttdoc">Map a function to its indirect defs of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00224">MemRegion.h:224</a></div></div>
2077
2094
  </div><!-- fragment -->
2078
2095
  </div>
2079
2096
  </div>
2080
- <a id="a7ecde80ed05d425a19bf7fe0c5feff84"></a>
2081
- <h2 class="memtitle"><span class="permalink"><a href="#a7ecde80ed05d425a19bf7fe0c5feff84">&#9670;&nbsp;</a></span>getMR()</h2>
2097
+ <a id="a55d38020bbece70847f7e72bb02bc4af"></a>
2098
+ <h2 class="memtitle"><span class="permalink"><a href="#a55d38020bbece70847f7e72bb02bc4af">&#9670;&nbsp;</a></span>getMR()</h2>
2082
2099
 
2083
2100
  <div class="memitem">
2084
2101
  <div class="memproto">
@@ -2086,7 +2103,7 @@ Private Attributes</h2></td></tr>
2086
2103
  <tr>
2087
2104
  <td class="memname">const <a class="el" href="classSVF_1_1MemRegion.html">MemRegion</a> * MRGenerator::getMR </td>
2088
2105
  <td>(</td>
2089
- <td class="paramtype">const <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;&#160;</td>
2106
+ <td class="paramtype">const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;&#160;</td>
2090
2107
  <td class="paramname"><em>cpts</em></td><td>)</td>
2091
2108
  <td> const</td>
2092
2109
  </tr>
@@ -2096,11 +2113,11 @@ Private Attributes</h2></td></tr>
2096
2113
  <p>Get a memory region according to cpts. </p>
2097
2114
  <p>Generate a memory region and put in into functions which use it </p>
2098
2115
 
2099
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00087">87</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2100
- <div class="fragment"><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;{</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a> mr(<a class="code" href="classSVF_1_1MRGenerator.html#a2e039a855c8e421e80cc7b015211a192">getRepPointsTo</a>(cpts));</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; MRSet::iterator mit = <a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.find(&amp;mr);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(mit!=<a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.end() &amp;&amp; <span class="stringliteral">&quot;memory region not found!!&quot;</span>);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">return</span> *mit;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;}</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
2101
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a2e039a855c8e421e80cc7b015211a192"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a2e039a855c8e421e80cc7b015211a192">SVF::MRGenerator::getRepPointsTo</a></div><div class="ttdeci">const PointsTo &amp; getRepPointsTo(const PointsTo &amp;cpts) const</div><div class="ttdoc">Get superset cpts set. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00186">MemRegion.h:186</a></div></div>
2102
- <div class="ttc" id="classSVF_1_1MRGenerator_html_af94bd8155a23273aab2396334d905119"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">SVF::MRGenerator::memRegSet</a></div><div class="ttdeci">MRSet memRegSet</div><div class="ttdoc">A set of All memory regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00283">MemRegion.h:283</a></div></div>
2103
- <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#l00048">MemRegion.h:48</a></div></div>
2116
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00093">93</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2117
+ <div class="fragment"><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a> mr(<a class="code" href="classSVF_1_1MRGenerator.html#a98b3481580be48cff7e93bf3c8a29dac">getRepPointsTo</a>(cpts));</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; MRSet::iterator mit = <a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.find(&amp;mr);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(mit!=<a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.end() &amp;&amp; <span class="stringliteral">&quot;memory region not found!!&quot;</span>);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> *mit;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;}</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
2118
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a98b3481580be48cff7e93bf3c8a29dac"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a98b3481580be48cff7e93bf3c8a29dac">SVF::MRGenerator::getRepPointsTo</a></div><div class="ttdeci">const NodeBS &amp; getRepPointsTo(const NodeBS &amp;cpts) const</div><div class="ttdoc">Get superset cpts set. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00181">MemRegion.h:181</a></div></div>
2119
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_af94bd8155a23273aab2396334d905119"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">SVF::MRGenerator::memRegSet</a></div><div class="ttdeci">MRSet memRegSet</div><div class="ttdoc">A set of All memory regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00273">MemRegion.h:273</a></div></div>
2120
+ <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#l00050">MemRegion.h:50</a></div></div>
2104
2121
  </div><!-- fragment -->
2105
2122
  </div>
2106
2123
  </div>
@@ -2127,8 +2144,8 @@ Private Attributes</h2></td></tr>
2127
2144
  </table>
2128
2145
  </div><div class="memdoc">
2129
2146
 
2130
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00425">425</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2131
- <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_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.size();</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_af94bd8155a23273aab2396334d905119"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">SVF::MRGenerator::memRegSet</a></div><div class="ttdeci">MRSet memRegSet</div><div class="ttdoc">A set of All memory regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00283">MemRegion.h:283</a></div></div>
2147
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00415">415</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2148
+ <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_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.size();</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_af94bd8155a23273aab2396334d905119"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">SVF::MRGenerator::memRegSet</a></div><div class="ttdeci">MRSet memRegSet</div><div class="ttdoc">A set of All memory regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00273">MemRegion.h:273</a></div></div>
2132
2149
  </div><!-- fragment -->
2133
2150
  </div>
2134
2151
  </div>
@@ -2155,13 +2172,13 @@ Private Attributes</h2></td></tr>
2155
2172
  </table>
2156
2173
  </div><div class="memdoc">
2157
2174
 
2158
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00180">180</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2159
- <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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_af94bd8155a23273aab2396334d905119"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">SVF::MRGenerator::memRegSet</a></div><div class="ttdeci">MRSet memRegSet</div><div class="ttdoc">A set of All memory regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00283">MemRegion.h:283</a></div></div>
2175
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00175">175</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2176
+ <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">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_af94bd8155a23273aab2396334d905119"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">SVF::MRGenerator::memRegSet</a></div><div class="ttdeci">MRSet memRegSet</div><div class="ttdoc">A set of All memory regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00273">MemRegion.h:273</a></div></div>
2160
2177
  </div><!-- fragment -->
2161
2178
  </div>
2162
2179
  </div>
2163
- <a id="af4eda1f51e3f58c8cccddee474972fe9"></a>
2164
- <h2 class="memtitle"><span class="permalink"><a href="#af4eda1f51e3f58c8cccddee474972fe9">&#9670;&nbsp;</a></span>getMRsForCallSiteRef()</h2>
2180
+ <a id="a02c60ceb7c9c37bcf83c739aa4083acc"></a>
2181
+ <h2 class="memtitle"><span class="permalink"><a href="#a02c60ceb7c9c37bcf83c739aa4083acc">&#9670;&nbsp;</a></span>getMRsForCallSiteRef()</h2>
2165
2182
 
2166
2183
  <div class="memitem">
2167
2184
  <div class="memproto">
@@ -2178,7 +2195,7 @@ Private Attributes</h2></td></tr>
2178
2195
  <tr>
2179
2196
  <td class="paramkey"></td>
2180
2197
  <td></td>
2181
- <td class="paramtype">const <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;&#160;</td>
2198
+ <td class="paramtype">const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;&#160;</td>
2182
2199
  <td class="paramname"><em>cpts</em>, </td>
2183
2200
  </tr>
2184
2201
  <tr>
@@ -2202,15 +2219,15 @@ Private Attributes</h2></td></tr>
2202
2219
 
2203
2220
  <p>Get memory regions for call site ref according to cpts. </p>
2204
2221
 
2205
- <p>Reimplemented in <a class="el" href="classSVF_1_1IntraDisjointMRG.html#a8a1c8f676758ba6193bc683d10126175">SVF::IntraDisjointMRG</a>, and <a class="el" href="classSVF_1_1DistinctMRG.html#a2b3e57a20079b28fb9ec389bdc4f37f3">SVF::DistinctMRG</a>.</p>
2222
+ <p>Reimplemented in <a class="el" href="classSVF_1_1IntraDisjointMRG.html#a89ca36aaf82f17963abaa67c88415272">SVF::IntraDisjointMRG</a>, and <a class="el" href="classSVF_1_1DistinctMRG.html#a74c36d4c98b95c2d40c9970e5f6aecc1">SVF::DistinctMRG</a>.</p>
2206
2223
 
2207
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00331">331</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2208
- <div class="fragment"><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="keyword">const</span> MemRegion* mr = <a class="code" href="classSVF_1_1MRGenerator.html#a7ecde80ed05d425a19bf7fe0c5feff84">getMR</a>(cpts);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; aliasMRs.insert(mr);</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a7ecde80ed05d425a19bf7fe0c5feff84"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7ecde80ed05d425a19bf7fe0c5feff84">SVF::MRGenerator::getMR</a></div><div class="ttdeci">const MemRegion * getMR(const PointsTo &amp;cpts) const</div><div class="ttdoc">Get a memory region according to cpts. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00087">MemRegion.cpp:87</a></div></div>
2224
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00321">321</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2225
+ <div class="fragment"><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; <span class="keyword">const</span> MemRegion* mr = <a class="code" href="classSVF_1_1MRGenerator.html#a55d38020bbece70847f7e72bb02bc4af">getMR</a>(cpts);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; aliasMRs.insert(mr);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a55d38020bbece70847f7e72bb02bc4af"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a55d38020bbece70847f7e72bb02bc4af">SVF::MRGenerator::getMR</a></div><div class="ttdeci">const MemRegion * getMR(const NodeBS &amp;cpts) const</div><div class="ttdoc">Get a memory region according to cpts. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00093">MemRegion.cpp:93</a></div></div>
2209
2226
  </div><!-- fragment -->
2210
2227
  </div>
2211
2228
  </div>
2212
- <a id="a2a7012e9f2e84ac1c5f7ed61daa67ac7"></a>
2213
- <h2 class="memtitle"><span class="permalink"><a href="#a2a7012e9f2e84ac1c5f7ed61daa67ac7">&#9670;&nbsp;</a></span>getMRsForLoad()</h2>
2229
+ <a id="abe8d6217250d227e743e4b581497aae8"></a>
2230
+ <h2 class="memtitle"><span class="permalink"><a href="#abe8d6217250d227e743e4b581497aae8">&#9670;&nbsp;</a></span>getMRsForLoad()</h2>
2214
2231
 
2215
2232
  <div class="memitem">
2216
2233
  <div class="memproto">
@@ -2227,7 +2244,7 @@ Private Attributes</h2></td></tr>
2227
2244
  <tr>
2228
2245
  <td class="paramkey"></td>
2229
2246
  <td></td>
2230
- <td class="paramtype">const <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;&#160;</td>
2247
+ <td class="paramtype">const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;&#160;</td>
2231
2248
  <td class="paramname"><em>cpts</em>, </td>
2232
2249
  </tr>
2233
2250
  <tr>
@@ -2251,44 +2268,40 @@ Private Attributes</h2></td></tr>
2251
2268
 
2252
2269
  <p>Get memory regions for a load statement according to cpts. </p>
2253
2270
 
2254
- <p>Reimplemented in <a class="el" href="classSVF_1_1InterDisjointMRG.html#affab79ce9b1ef9ec7bc04af8ad2954dc">SVF::InterDisjointMRG</a>, <a class="el" href="classSVF_1_1IntraDisjointMRG.html#aa1395f921e2a6e2607a6887f134cb63f">SVF::IntraDisjointMRG</a>, and <a class="el" href="classSVF_1_1DistinctMRG.html#ad877dd9e21c3e1d5a1437b12e68ff993">SVF::DistinctMRG</a>.</p>
2271
+ <p>Reimplemented in <a class="el" href="classSVF_1_1InterDisjointMRG.html#ae7846579fc473ae5eb6c9a8fac712d9a">SVF::InterDisjointMRG</a>, <a class="el" href="classSVF_1_1IntraDisjointMRG.html#ae577d4d6f3a6e6fb62f6eff49ca6be88">SVF::IntraDisjointMRG</a>, and <a class="el" href="classSVF_1_1DistinctMRG.html#a1a4fa7e9fb42a59fac2104b208a1e66b">SVF::DistinctMRG</a>.</p>
2255
2272
 
2256
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00324">324</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2257
- <div class="fragment"><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">const</span> MemRegion* mr = <a class="code" href="classSVF_1_1MRGenerator.html#a7ecde80ed05d425a19bf7fe0c5feff84">getMR</a>(cpts);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; aliasMRs.insert(mr);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a7ecde80ed05d425a19bf7fe0c5feff84"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7ecde80ed05d425a19bf7fe0c5feff84">SVF::MRGenerator::getMR</a></div><div class="ttdeci">const MemRegion * getMR(const PointsTo &amp;cpts) const</div><div class="ttdoc">Get a memory region according to cpts. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00087">MemRegion.cpp:87</a></div></div>
2273
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00314">314</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2274
+ <div class="fragment"><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keyword">const</span> MemRegion* mr = <a class="code" href="classSVF_1_1MRGenerator.html#a55d38020bbece70847f7e72bb02bc4af">getMR</a>(cpts);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; aliasMRs.insert(mr);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a55d38020bbece70847f7e72bb02bc4af"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a55d38020bbece70847f7e72bb02bc4af">SVF::MRGenerator::getMR</a></div><div class="ttdeci">const MemRegion * getMR(const NodeBS &amp;cpts) const</div><div class="ttdoc">Get a memory region according to cpts. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00093">MemRegion.cpp:93</a></div></div>
2258
2275
  </div><!-- fragment -->
2259
2276
  </div>
2260
2277
  </div>
2261
- <a id="a2eda764e59d9b5e7620d2cf26562615a"></a>
2262
- <h2 class="memtitle"><span class="permalink"><a href="#a2eda764e59d9b5e7620d2cf26562615a">&#9670;&nbsp;</a></span>getPAGEdgesFromInst()</h2>
2278
+ <a id="a5875a7f064e468d5eceba737eeb44791"></a>
2279
+ <h2 class="memtitle"><span class="permalink"><a href="#a5875a7f064e468d5eceba737eeb44791">&#9670;&nbsp;</a></span>getPAGEdgesFromInst()</h2>
2263
2280
 
2264
2281
  <div class="memitem">
2265
2282
  <div class="memproto">
2266
- <table class="mlabels">
2267
- <tr>
2268
- <td class="mlabels-left">
2269
2283
  <table class="memname">
2270
2284
  <tr>
2271
- <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">PAGEdgeList</a>&amp; SVF::MRGenerator::getPAGEdgesFromInst </td>
2285
+ <td class="memname"><a class="el" href="classSVF_1_1PAG.html#a3b70f1f3b785d735243962e83e210652">PAG::PAGEdgeList</a> &amp; MRGenerator::getPAGEdgesFromInst </td>
2272
2286
  <td>(</td>
2273
2287
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
2274
2288
  <td class="paramname"><em>inst</em></td><td>)</td>
2275
2289
  <td></td>
2276
2290
  </tr>
2277
2291
  </table>
2278
- </td>
2279
- <td class="mlabels-right">
2280
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
2281
- </tr>
2282
- </table>
2283
2292
  </div><div class="memdoc">
2284
2293
 
2285
2294
  <p>Given an instruction, get all its the <a class="el" href="classSVF_1_1PAGEdge.html">PAGEdge</a> (statement) in sequence. </p>
2286
2295
 
2287
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00487">487</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2288
- <div class="fragment"><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; PAG* pag = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>();</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MRGenerator.html#a6a62d2dede5d2506c19b2d058d1cd9d3">ptrOnlyMSSA</a>)</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a05751b2d055ea53b8a3452ead8380813">getInstPTAPAGEdgeList</a>(pag-&gt;getICFG()-&gt;getBlockICFGNode(inst));</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">return</span> pag-&gt;getInstPAGEdgeList(pag-&gt;getICFG()-&gt;getBlockICFGNode(inst));</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; }</div><div class="ttc" id="classSVF_1_1PointerAnalysis_html_aaf6b41f44da3a4caea1fa395e41edf71"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">PAG * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00204">PointerAnalysis.h:204</a></div></div>
2296
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00160">160</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2297
+ <div class="fragment"><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classSVF_1_1PAG.html">PAG</a>* pag = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>();</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MRGenerator.html#a6a62d2dede5d2506c19b2d058d1cd9d3">ptrOnlyMSSA</a>)</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a05751b2d055ea53b8a3452ead8380813">getInstPTAPAGEdgeList</a>(pag-&gt;<a class="code" href="classSVF_1_1PAG.html#ad274c5c15ac51cea5d09ad08febe8c14">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#ab7b0b3088b46ad65451905cc4f567a7b">getBlockICFGNode</a>(inst));</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a0f59371e012da5b8e030d11d84e7154b">getInstPAGEdgeList</a>(pag-&gt;<a class="code" href="classSVF_1_1PAG.html#ad274c5c15ac51cea5d09ad08febe8c14">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#ab7b0b3088b46ad65451905cc4f567a7b">getBlockICFGNode</a>(inst));</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;}</div><div class="ttc" id="classSVF_1_1PAG_html_ad274c5c15ac51cea5d09ad08febe8c14"><div class="ttname"><a href="classSVF_1_1PAG.html#ad274c5c15ac51cea5d09ad08febe8c14">SVF::PAG::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00135">PAG.h:135</a></div></div>
2298
+ <div class="ttc" id="classSVF_1_1PointerAnalysis_html_aaf6b41f44da3a4caea1fa395e41edf71"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">PAG * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00204">PointerAnalysis.h:204</a></div></div>
2299
+ <div class="ttc" id="classSVF_1_1PAG_html"><div class="ttname"><a href="classSVF_1_1PAG.html">SVF::PAG</a></div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00047">PAG.h:47</a></div></div>
2300
+ <div class="ttc" id="classSVF_1_1PAG_html_a0f59371e012da5b8e030d11d84e7154b"><div class="ttname"><a href="classSVF_1_1PAG.html#a0f59371e012da5b8e030d11d84e7154b">SVF::PAG::getInstPAGEdgeList</a></div><div class="ttdeci">PAGEdgeList &amp; getInstPAGEdgeList(const ICFGNode *inst)</div><div class="ttdoc">Given an instruction, get all its PAGEdges. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00229">PAG.h:229</a></div></div>
2289
2301
  <div class="ttc" id="classSVF_1_1PAG_html_a05751b2d055ea53b8a3452ead8380813"><div class="ttname"><a href="classSVF_1_1PAG.html#a05751b2d055ea53b8a3452ead8380813">SVF::PAG::getInstPTAPAGEdgeList</a></div><div class="ttdeci">PAGEdgeList &amp; getInstPTAPAGEdgeList(const ICFGNode *inst)</div><div class="ttdoc">Given an instruction, get all its PTA PAGEdges. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00234">PAG.h:234</a></div></div>
2290
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a6a62d2dede5d2506c19b2d058d1cd9d3"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a6a62d2dede5d2506c19b2d058d1cd9d3">SVF::MRGenerator::ptrOnlyMSSA</a></div><div class="ttdeci">bool ptrOnlyMSSA</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00200">MemRegion.h:200</a></div></div>
2291
- <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00197">MemRegion.h:197</a></div></div>
2302
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a6a62d2dede5d2506c19b2d058d1cd9d3"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a6a62d2dede5d2506c19b2d058d1cd9d3">SVF::MRGenerator::ptrOnlyMSSA</a></div><div class="ttdeci">bool ptrOnlyMSSA</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00195">MemRegion.h:195</a></div></div>
2303
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00192">MemRegion.h:192</a></div></div>
2304
+ <div class="ttc" id="classSVF_1_1ICFG_html_ab7b0b3088b46ad65451905cc4f567a7b"><div class="ttname"><a href="classSVF_1_1ICFG.html#ab7b0b3088b46ad65451905cc4f567a7b">SVF::ICFG::getBlockICFGNode</a></div><div class="ttdeci">ICFGNode * getBlockICFGNode(const Instruction *inst)</div><div class="ttdoc">Get a basic block ICFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00181">ICFG.cpp:181</a></div></div>
2292
2305
  </div><!-- fragment -->
2293
2306
  </div>
2294
2307
  </div>
@@ -2302,7 +2315,7 @@ Private Attributes</h2></td></tr>
2302
2315
  <td class="mlabels-left">
2303
2316
  <table class="memname">
2304
2317
  <tr>
2305
- <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a2a9b87b7b9a567a7fd94e9267f3eb054">PointsToList</a>&amp; SVF::MRGenerator::getPointsToList </td>
2318
+ <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a8b254a0c5063e25f297d1b00fb0b515e">PointsToList</a>&amp; SVF::MRGenerator::getPointsToList </td>
2306
2319
  <td>(</td>
2307
2320
  <td class="paramtype">const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *&#160;</td>
2308
2321
  <td class="paramname"><em>fun</em></td><td>)</td>
@@ -2316,19 +2329,19 @@ Private Attributes</h2></td></tr>
2316
2329
  </table>
2317
2330
  </div><div class="memdoc">
2318
2331
 
2319
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00372">372</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2320
- <div class="fragment"><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">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#acaf48288039d19bf0bb9f2e506fbfd8d">funToPointsToMap</a>[fun];</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_acaf48288039d19bf0bb9f2e506fbfd8d"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#acaf48288039d19bf0bb9f2e506fbfd8d">SVF::MRGenerator::funToPointsToMap</a></div><div class="ttdeci">FunToPointsToMap funToPointsToMap</div><div class="ttdoc">Map a function to all of its conditional points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00222">MemRegion.h:222</a></div></div>
2332
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00362">362</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2333
+ <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_1MRGenerator.html#a05c7a5ddbe3079f63be76c35298d1c2b">funToPointsToMap</a>[fun];</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a05c7a5ddbe3079f63be76c35298d1c2b"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a05c7a5ddbe3079f63be76c35298d1c2b">SVF::MRGenerator::funToPointsToMap</a></div><div class="ttdeci">FunToPointsTosMap funToPointsToMap</div><div class="ttdoc">Map a function to all of its conditional points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00217">MemRegion.h:217</a></div></div>
2321
2334
  </div><!-- fragment -->
2322
2335
  </div>
2323
2336
  </div>
2324
- <a id="afc17f566f57656cf17c08665602b4849"></a>
2325
- <h2 class="memtitle"><span class="permalink"><a href="#afc17f566f57656cf17c08665602b4849">&#9670;&nbsp;</a></span>getRefInfoForCall()</h2>
2337
+ <a id="acbc431cc7fb72135e592d74709ea7a77"></a>
2338
+ <h2 class="memtitle"><span class="permalink"><a href="#acbc431cc7fb72135e592d74709ea7a77">&#9670;&nbsp;</a></span>getRefInfoForCall()</h2>
2326
2339
 
2327
2340
  <div class="memitem">
2328
2341
  <div class="memproto">
2329
2342
  <table class="memname">
2330
2343
  <tr>
2331
- <td class="memname"><a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> MRGenerator::getRefInfoForCall </td>
2344
+ <td class="memname"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> MRGenerator::getRefInfoForCall </td>
2332
2345
  <td>(</td>
2333
2346
  <td class="paramtype">const <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a> *&#160;</td>
2334
2347
  <td class="paramname"><em>cs</em></td><td>)</td>
@@ -2338,17 +2351,17 @@ Private Attributes</h2></td></tr>
2338
2351
  </div><div class="memdoc">
2339
2352
  <p>Obtain the ref sets for a call, used for external ModRefInfo queries </p>
2340
2353
 
2341
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00670">670</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2342
- <div class="fragment"><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; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>()) &amp;&amp; !<a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>()))</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; {</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">PAGEdgeList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MRGenerator.html#a2eda764e59d9b5e7620d2cf26562615a">getPAGEdgesFromInst</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>());</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> refs;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <span class="keywordflow">for</span> (PAGEdgeList::const_iterator bit = pagEdgeList.begin(), ebit =</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; pagEdgeList.end(); 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_1PAGEdge.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_1LoadPE.html">LoadPE</a>* ld = SVFUtil::dyn_cast&lt;LoadPE&gt;(edge))</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; refs |= <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(ld-&gt;getSrcID());</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; <span class="keywordflow">return</span> refs;</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; <span class="keywordflow">else</span></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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#ae2cc7d7d6ab427acb0352b388c7a4acc">getRefSideEffectOfCallSite</a>(cs);</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="ttc" id="classSVF_1_1PAGEdge_html"><div class="ttname"><a href="classSVF_1_1PAGEdge.html">SVF::PAGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00047">PAGEdge.h:47</a></div></div>
2343
- <div class="ttc" id="classSVF_1_1MRGenerator_html_ae2cc7d7d6ab427acb0352b388c7a4acc"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ae2cc7d7d6ab427acb0352b388c7a4acc">SVF::MRGenerator::getRefSideEffectOfCallSite</a></div><div class="ttdeci">const NodeBS &amp; getRefSideEffectOfCallSite(const CallBlockNode *cs)</div><div class="ttdoc">Get indirect refs of a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00403">MemRegion.h:403</a></div></div>
2344
- <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00101">PointerAnalysisImpl.h:101</a></div></div>
2345
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a2eda764e59d9b5e7620d2cf26562615a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a2eda764e59d9b5e7620d2cf26562615a">SVF::MRGenerator::getPAGEdgesFromInst</a></div><div class="ttdeci">PAGEdgeList &amp; getPAGEdgesFromInst(const Instruction *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_8h_source.html#l00487">MemRegion.h:487</a></div></div>
2346
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a1715322c61a3f41f1a093098591869d4"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">SVF::MRGenerator::PAGEdgeList</a></div><div class="ttdeci">PAG::PAGEdgeList PAGEdgeList</div><div class="ttdoc">PAG edge list. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00176">MemRegion.h:176</a></div></div>
2354
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00694">694</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2355
+ <div class="fragment"><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; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>()) &amp;&amp; !<a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>()))</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; <a class="code" href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">PAGEdgeList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MRGenerator.html#a5875a7f064e468d5eceba737eeb44791">getPAGEdgesFromInst</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>());</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> refs;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="keywordflow">for</span> (PAGEdgeList::const_iterator bit = pagEdgeList.begin(), ebit =</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; pagEdgeList.end(); bit != ebit; ++bit)</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; {</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGEdge.html">PAGEdge</a>* edge = *bit;</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadPE.html">LoadPE</a>* ld = SVFUtil::dyn_cast&lt;LoadPE&gt;(edge))</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; refs |= <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(ld-&gt;getSrcID());</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; <span class="keywordflow">return</span> refs;</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; <span class="keywordflow">else</span></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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#ae2cc7d7d6ab427acb0352b388c7a4acc">getRefSideEffectOfCallSite</a>(cs);</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; }</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;}</div><div class="ttc" id="classSVF_1_1PAGEdge_html"><div class="ttname"><a href="classSVF_1_1PAGEdge.html">SVF::PAGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00047">PAGEdge.h:47</a></div></div>
2356
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_ae2cc7d7d6ab427acb0352b388c7a4acc"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ae2cc7d7d6ab427acb0352b388c7a4acc">SVF::MRGenerator::getRefSideEffectOfCallSite</a></div><div class="ttdeci">const NodeBS &amp; getRefSideEffectOfCallSite(const CallBlockNode *cs)</div><div class="ttdoc">Get indirect refs of a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00393">MemRegion.h:393</a></div></div>
2357
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a5875a7f064e468d5eceba737eeb44791"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a5875a7f064e468d5eceba737eeb44791">SVF::MRGenerator::getPAGEdgesFromInst</a></div><div class="ttdeci">PAGEdgeList &amp; getPAGEdgesFromInst(const Instruction *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#l00160">MemRegion.cpp:160</a></div></div>
2358
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00098">PointerAnalysisImpl.h:98</a></div></div>
2359
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a1715322c61a3f41f1a093098591869d4"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">SVF::MRGenerator::PAGEdgeList</a></div><div class="ttdeci">PAG::PAGEdgeList PAGEdgeList</div><div class="ttdoc">PAG edge list. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00171">MemRegion.h:171</a></div></div>
2347
2360
  <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="LLVMUtil_8h_source.html#l00115">LLVMUtil.h:115</a></div></div>
2348
2361
  <div class="ttc" id="classSVF_1_1LoadPE_html"><div class="ttname"><a href="classSVF_1_1LoadPE.html">SVF::LoadPE</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00396">PAGEdge.h:396</a></div></div>
2349
2362
  <div class="ttc" id="classSVF_1_1CallBlockNode_html_ad3d50024efcfa94b1246c982b43aff2f"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">SVF::CallBlockNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00381">ICFGNode.h:381</a></div></div>
2350
- <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00197">MemRegion.h:197</a></div></div>
2351
- <div class="ttc" id="namespaceSVF_html_a0c6594b4bae7924369bb61943c1da4fb"><div class="ttname"><a href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">SVF::PointsTo</a></div><div class="ttdeci">NodeBS PointsTo</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00088">SVFBasicTypes.h:88</a></div></div>
2363
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00192">MemRegion.h:192</a></div></div>
2364
+ <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
2352
2365
  <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="LLVMUtil_8h_source.html#l00063">LLVMUtil.h:63</a></div></div>
2353
2366
  </div><!-- fragment -->
2354
2367
  </div>
@@ -2379,8 +2392,8 @@ Private Attributes</h2></td></tr>
2379
2392
 
2380
2393
  <p>Get indirect refs of a callsite. </p>
2381
2394
 
2382
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00403">403</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2383
- <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_1MRGenerator.html#a08779053af9db71ba0bc24710a7e198c">csToRefsMap</a>[cs];</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a08779053af9db71ba0bc24710a7e198c"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a08779053af9db71ba0bc24710a7e198c">SVF::MRGenerator::csToRefsMap</a></div><div class="ttdeci">CallSiteToNodeBSMap csToRefsMap</div><div class="ttdoc">Map a callsite to its indirect uses of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00231">MemRegion.h:231</a></div></div>
2395
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00393">393</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2396
+ <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_1MRGenerator.html#ac7b5ca3fd950e1a940f875ac135640f6">csToRefsMap</a>[cs];</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_ac7b5ca3fd950e1a940f875ac135640f6"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ac7b5ca3fd950e1a940f875ac135640f6">SVF::MRGenerator::csToRefsMap</a></div><div class="ttdeci">CallSiteToPointsToMap csToRefsMap</div><div class="ttdoc">Map a callsite to its indirect uses of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00226">MemRegion.h:226</a></div></div>
2384
2397
  </div><!-- fragment -->
2385
2398
  </div>
2386
2399
  </div>
@@ -2410,13 +2423,13 @@ Private Attributes</h2></td></tr>
2410
2423
 
2411
2424
  <p>Get indirect refs of a function. </p>
2412
2425
 
2413
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00393">393</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2414
- <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_1MRGenerator.html#afe018918c8acc83cd128b4c56ff42075">funToRefsMap</a>[fun];</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_afe018918c8acc83cd128b4c56ff42075"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afe018918c8acc83cd128b4c56ff42075">SVF::MRGenerator::funToRefsMap</a></div><div class="ttdeci">FunToNodeBSMap funToRefsMap</div><div class="ttdoc">Map a function to its indirect uses of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00227">MemRegion.h:227</a></div></div>
2426
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00383">383</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2427
+ <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_1MRGenerator.html#af6d58e2971c4a8d3ee03f9dfd9072a3a">funToRefsMap</a>[fun];</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_af6d58e2971c4a8d3ee03f9dfd9072a3a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af6d58e2971c4a8d3ee03f9dfd9072a3a">SVF::MRGenerator::funToRefsMap</a></div><div class="ttdeci">FunToPointsToMap funToRefsMap</div><div class="ttdoc">Map a function to its indirect uses of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00222">MemRegion.h:222</a></div></div>
2415
2428
  </div><!-- fragment -->
2416
2429
  </div>
2417
2430
  </div>
2418
- <a id="a2e039a855c8e421e80cc7b015211a192"></a>
2419
- <h2 class="memtitle"><span class="permalink"><a href="#a2e039a855c8e421e80cc7b015211a192">&#9670;&nbsp;</a></span>getRepPointsTo()</h2>
2431
+ <a id="a98b3481580be48cff7e93bf3c8a29dac"></a>
2432
+ <h2 class="memtitle"><span class="permalink"><a href="#a98b3481580be48cff7e93bf3c8a29dac">&#9670;&nbsp;</a></span>getRepPointsTo()</h2>
2420
2433
 
2421
2434
  <div class="memitem">
2422
2435
  <div class="memproto">
@@ -2425,9 +2438,9 @@ Private Attributes</h2></td></tr>
2425
2438
  <td class="mlabels-left">
2426
2439
  <table class="memname">
2427
2440
  <tr>
2428
- <td class="memname">const <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>&amp; SVF::MRGenerator::getRepPointsTo </td>
2441
+ <td class="memname">const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; SVF::MRGenerator::getRepPointsTo </td>
2429
2442
  <td>(</td>
2430
- <td class="paramtype">const <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;&#160;</td>
2443
+ <td class="paramtype">const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;&#160;</td>
2431
2444
  <td class="paramname"><em>cpts</em></td><td>)</td>
2432
2445
  <td> const</td>
2433
2446
  </tr>
@@ -2441,9 +2454,9 @@ Private Attributes</h2></td></tr>
2441
2454
 
2442
2455
  <p>Get superset cpts set. </p>
2443
2456
 
2444
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00186">186</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2445
- <div class="fragment"><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; PtsToRepPtsSetMap::const_iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>.find(cpts);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=<a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;can not find superset of cpts??&quot;</span>);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
2446
- <div class="ttc" id="classSVF_1_1MRGenerator_html_ab4d1ff0357d389a65ff1c2112ce631a1"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">SVF::MRGenerator::cptsToRepCPtsMap</a></div><div class="ttdeci">PtsToRepPtsSetMap cptsToRepCPtsMap</div><div class="ttdoc">Map a condition pts to its rep conditional pts (super set points-to) </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00285">MemRegion.h:285</a></div></div>
2457
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00181">181</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2458
+ <div class="fragment"><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; PtsToRepPtsSetMap::const_iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>.find(cpts);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=<a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;can not find superset of cpts??&quot;</span>);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
2459
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_ab4d1ff0357d389a65ff1c2112ce631a1"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">SVF::MRGenerator::cptsToRepCPtsMap</a></div><div class="ttdeci">PtsToRepPtsSetMap cptsToRepCPtsMap</div><div class="ttdoc">Map a condition pts to its rep conditional pts (super set points-to) </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00275">MemRegion.h:275</a></div></div>
2447
2460
  </div><!-- fragment -->
2448
2461
  </div>
2449
2462
  </div>
@@ -2471,8 +2484,8 @@ Private Attributes</h2></td></tr>
2471
2484
  </table>
2472
2485
  </div><div class="memdoc">
2473
2486
 
2474
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00456">456</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2475
- <div class="fragment"><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; {</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a255551fd3ff8fb33bcea93d0b00280b3">storesToMRsMap</a>[store];</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a255551fd3ff8fb33bcea93d0b00280b3"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a255551fd3ff8fb33bcea93d0b00280b3">SVF::MRGenerator::storesToMRsMap</a></div><div class="ttdeci">StoresToMRsMap storesToMRsMap</div><div class="ttdoc">Map a store PAG Edge to its memory regions sets in order for inserting chis in Memory SSA...</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00207">MemRegion.h:207</a></div></div>
2487
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00446">446</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2488
+ <div class="fragment"><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; {</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a255551fd3ff8fb33bcea93d0b00280b3">storesToMRsMap</a>[store];</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a255551fd3ff8fb33bcea93d0b00280b3"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a255551fd3ff8fb33bcea93d0b00280b3">SVF::MRGenerator::storesToMRsMap</a></div><div class="ttdeci">StoresToMRsMap storesToMRsMap</div><div class="ttdoc">Map a store PAG Edge to its memory regions sets in order for inserting chis in Memory SSA...</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00202">MemRegion.h:202</a></div></div>
2476
2489
  </div><!-- fragment -->
2477
2490
  </div>
2478
2491
  </div>
@@ -2527,17 +2540,17 @@ Private Attributes</h2></td></tr>
2527
2540
  <p>if a callee is a heap allocator function, then its mod set of this callsite is the heap object.</p>
2528
2541
  <p>otherwise, we find the mod/ref sets from the callee function, who has definition and been processed </p>
2529
2542
 
2530
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00579">579</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2531
- <div class="fragment"><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;{</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</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; <a class="code" href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">PAGEdgeList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MRGenerator.html#a2eda764e59d9b5e7620d2cf26562615a">getPAGEdgesFromInst</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>());</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">for</span> (PAGEdgeList::const_iterator bit = pagEdgeList.begin(),</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; ebit = pagEdgeList.end(); bit != ebit; ++bit)</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; {</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGEdge.html">PAGEdge</a>* edge = *bit;</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrPE.html">AddrPE</a>* addr = SVFUtil::dyn_cast&lt;AddrPE&gt;(edge))</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; mod.set(addr-&gt;getSrcID());</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; }</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; }</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">else</span></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; mod = <a class="code" href="classSVF_1_1MRGenerator.html#a7d47fbc3dbe8fd19ca5e4210bdecf914">getModSideEffectOfFunction</a>(callee);</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; ref = <a class="code" href="classSVF_1_1MRGenerator.html#ac0007c8808654ca74feef0d8568378b9">getRefSideEffectOfFunction</a>(callee);</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; <span class="comment">// add ref set</span></div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordtype">bool</span> refchanged = <a class="code" href="classSVF_1_1MRGenerator.html#a4e02c3aee7eb0206f6d643b72e39d059">addRefSideEffectOfCallSite</a>(cs, ref);</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="comment">// add mod set</span></div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordtype">bool</span> modchanged = <a class="code" href="classSVF_1_1MRGenerator.html#a8b00b46136ce2586b5f94248d0826a94">addModSideEffectOfCallSite</a>(cs, mod);</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keywordflow">return</span> refchanged || modchanged;</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a7d47fbc3dbe8fd19ca5e4210bdecf914"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7d47fbc3dbe8fd19ca5e4210bdecf914">SVF::MRGenerator::getModSideEffectOfFunction</a></div><div class="ttdeci">const NodeBS &amp; getModSideEffectOfFunction(const SVFFunction *fun)</div><div class="ttdoc">Get indirect mods of a function. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00398">MemRegion.h:398</a></div></div>
2543
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00603">603</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2544
+ <div class="fragment"><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;{</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>()))</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; <a class="code" href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">PAGEdgeList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MRGenerator.html#a5875a7f064e468d5eceba737eeb44791">getPAGEdgesFromInst</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>());</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="keywordflow">for</span> (PAGEdgeList::const_iterator bit = pagEdgeList.begin(),</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; ebit = pagEdgeList.end(); bit != ebit; ++bit)</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; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PAGEdge.html">PAGEdge</a>* edge = *bit;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrPE.html">AddrPE</a>* addr = SVFUtil::dyn_cast&lt;AddrPE&gt;(edge))</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; mod.set(addr-&gt;getSrcID());</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; }</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; }</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; {</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; mod = <a class="code" href="classSVF_1_1MRGenerator.html#a7d47fbc3dbe8fd19ca5e4210bdecf914">getModSideEffectOfFunction</a>(callee);</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; ref = <a class="code" href="classSVF_1_1MRGenerator.html#ac0007c8808654ca74feef0d8568378b9">getRefSideEffectOfFunction</a>(callee);</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; }</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="comment">// add ref set</span></div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordtype">bool</span> refchanged = <a class="code" href="classSVF_1_1MRGenerator.html#a4e02c3aee7eb0206f6d643b72e39d059">addRefSideEffectOfCallSite</a>(cs, ref);</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="comment">// add mod set</span></div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordtype">bool</span> modchanged = <a class="code" href="classSVF_1_1MRGenerator.html#a8b00b46136ce2586b5f94248d0826a94">addModSideEffectOfCallSite</a>(cs, mod);</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">return</span> refchanged || modchanged;</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a7d47fbc3dbe8fd19ca5e4210bdecf914"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7d47fbc3dbe8fd19ca5e4210bdecf914">SVF::MRGenerator::getModSideEffectOfFunction</a></div><div class="ttdeci">const NodeBS &amp; getModSideEffectOfFunction(const SVFFunction *fun)</div><div class="ttdoc">Get indirect mods of a function. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00388">MemRegion.h:388</a></div></div>
2532
2545
  <div class="ttc" id="classSVF_1_1PAGEdge_html"><div class="ttname"><a href="classSVF_1_1PAGEdge.html">SVF::PAGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00047">PAGEdge.h:47</a></div></div>
2533
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a4e02c3aee7eb0206f6d643b72e39d059"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a4e02c3aee7eb0206f6d643b72e39d059">SVF::MRGenerator::addRefSideEffectOfCallSite</a></div><div class="ttdeci">bool addRefSideEffectOfCallSite(const CallBlockNode *cs, const NodeBS &amp;refs)</div><div class="ttdoc">Add indirect uses an memory object in the function. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00407">MemRegion.cpp:407</a></div></div>
2534
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a2eda764e59d9b5e7620d2cf26562615a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a2eda764e59d9b5e7620d2cf26562615a">SVF::MRGenerator::getPAGEdgesFromInst</a></div><div class="ttdeci">PAGEdgeList &amp; getPAGEdgesFromInst(const Instruction *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_8h_source.html#l00487">MemRegion.h:487</a></div></div>
2535
- <div class="ttc" id="classSVF_1_1MRGenerator_html_ac0007c8808654ca74feef0d8568378b9"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ac0007c8808654ca74feef0d8568378b9">SVF::MRGenerator::getRefSideEffectOfFunction</a></div><div class="ttdeci">const NodeBS &amp; getRefSideEffectOfFunction(const SVFFunction *fun)</div><div class="ttdoc">Get indirect refs of a function. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00393">MemRegion.h:393</a></div></div>
2536
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a1715322c61a3f41f1a093098591869d4"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">SVF::MRGenerator::PAGEdgeList</a></div><div class="ttdeci">PAG::PAGEdgeList PAGEdgeList</div><div class="ttdoc">PAG edge list. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00176">MemRegion.h:176</a></div></div>
2546
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a5875a7f064e468d5eceba737eeb44791"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a5875a7f064e468d5eceba737eeb44791">SVF::MRGenerator::getPAGEdgesFromInst</a></div><div class="ttdeci">PAGEdgeList &amp; getPAGEdgesFromInst(const Instruction *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#l00160">MemRegion.cpp:160</a></div></div>
2547
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a4e02c3aee7eb0206f6d643b72e39d059"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a4e02c3aee7eb0206f6d643b72e39d059">SVF::MRGenerator::addRefSideEffectOfCallSite</a></div><div class="ttdeci">bool addRefSideEffectOfCallSite(const CallBlockNode *cs, const NodeBS &amp;refs)</div><div class="ttdoc">Add indirect uses an memory object in the function. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00431">MemRegion.cpp:431</a></div></div>
2548
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_ac0007c8808654ca74feef0d8568378b9"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ac0007c8808654ca74feef0d8568378b9">SVF::MRGenerator::getRefSideEffectOfFunction</a></div><div class="ttdeci">const NodeBS &amp; getRefSideEffectOfFunction(const SVFFunction *fun)</div><div class="ttdoc">Get indirect refs of a function. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00383">MemRegion.h:383</a></div></div>
2549
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a1715322c61a3f41f1a093098591869d4"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a1715322c61a3f41f1a093098591869d4">SVF::MRGenerator::PAGEdgeList</a></div><div class="ttdeci">PAG::PAGEdgeList PAGEdgeList</div><div class="ttdoc">PAG edge list. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00171">MemRegion.h:171</a></div></div>
2537
2550
  <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="LLVMUtil_8h_source.html#l00115">LLVMUtil.h:115</a></div></div>
2538
2551
  <div class="ttc" id="classSVF_1_1CallBlockNode_html_ad3d50024efcfa94b1246c982b43aff2f"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">SVF::CallBlockNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00381">ICFGNode.h:381</a></div></div>
2539
2552
  <div class="ttc" id="classSVF_1_1AddrPE_html"><div class="ttname"><a href="classSVF_1_1AddrPE.html">SVF::AddrPE</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00185">PAGEdge.h:185</a></div></div>
2540
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a8b00b46136ce2586b5f94248d0826a94"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a8b00b46136ce2586b5f94248d0826a94">SVF::MRGenerator::addModSideEffectOfCallSite</a></div><div class="ttdeci">bool addModSideEffectOfCallSite(const CallBlockNode *cs, const NodeBS &amp;mods)</div><div class="ttdoc">Add indirect def an memory object in the function. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00423">MemRegion.cpp:423</a></div></div>
2553
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a8b00b46136ce2586b5f94248d0826a94"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a8b00b46136ce2586b5f94248d0826a94">SVF::MRGenerator::addModSideEffectOfCallSite</a></div><div class="ttdeci">bool addModSideEffectOfCallSite(const CallBlockNode *cs, const NodeBS &amp;mods)</div><div class="ttdoc">Add indirect def an memory object in the function. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00447">MemRegion.cpp:447</a></div></div>
2541
2554
  </div><!-- fragment -->
2542
2555
  </div>
2543
2556
  </div>
@@ -2565,8 +2578,8 @@ Private Attributes</h2></td></tr>
2565
2578
  </table>
2566
2579
  </div><div class="memdoc">
2567
2580
 
2568
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00368">368</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2569
- <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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#acaf48288039d19bf0bb9f2e506fbfd8d">funToPointsToMap</a>.find(fun)!=<a class="code" href="classSVF_1_1MRGenerator.html#acaf48288039d19bf0bb9f2e506fbfd8d">funToPointsToMap</a>.end();</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_acaf48288039d19bf0bb9f2e506fbfd8d"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#acaf48288039d19bf0bb9f2e506fbfd8d">SVF::MRGenerator::funToPointsToMap</a></div><div class="ttdeci">FunToPointsToMap funToPointsToMap</div><div class="ttdoc">Map a function to all of its conditional points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00222">MemRegion.h:222</a></div></div>
2581
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00358">358</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2582
+ <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_1MRGenerator.html#a05c7a5ddbe3079f63be76c35298d1c2b">funToPointsToMap</a>.find(fun)!=<a class="code" href="classSVF_1_1MRGenerator.html#a05c7a5ddbe3079f63be76c35298d1c2b">funToPointsToMap</a>.end();</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a05c7a5ddbe3079f63be76c35298d1c2b"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a05c7a5ddbe3079f63be76c35298d1c2b">SVF::MRGenerator::funToPointsToMap</a></div><div class="ttdeci">FunToPointsTosMap funToPointsToMap</div><div class="ttdoc">Map a function to all of its conditional points-to sets. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00217">MemRegion.h:217</a></div></div>
2570
2583
  </div><!-- fragment -->
2571
2584
  </div>
2572
2585
  </div>
@@ -2594,8 +2607,8 @@ Private Attributes</h2></td></tr>
2594
2607
  </table>
2595
2608
  </div><div class="memdoc">
2596
2609
 
2597
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00464">464</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2598
- <div class="fragment"><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#adf8d477e5f622855799842134145ecc4">callsiteToModMRsMap</a>.find(cs)!=<a class="code" href="classSVF_1_1MRGenerator.html#adf8d477e5f622855799842134145ecc4">callsiteToModMRsMap</a>.end();</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_adf8d477e5f622855799842134145ecc4"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#adf8d477e5f622855799842134145ecc4">SVF::MRGenerator::callsiteToModMRsMap</a></div><div class="ttdeci">CallSiteToMRsMap callsiteToModMRsMap</div><div class="ttdoc">Map a callsite to its mods regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00211">MemRegion.h:211</a></div></div>
2610
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00454">454</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2611
+ <div class="fragment"><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; {</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#adf8d477e5f622855799842134145ecc4">callsiteToModMRsMap</a>.find(cs)!=<a class="code" href="classSVF_1_1MRGenerator.html#adf8d477e5f622855799842134145ecc4">callsiteToModMRsMap</a>.end();</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_adf8d477e5f622855799842134145ecc4"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#adf8d477e5f622855799842134145ecc4">SVF::MRGenerator::callsiteToModMRsMap</a></div><div class="ttdeci">CallSiteToMRsMap callsiteToModMRsMap</div><div class="ttdoc">Map a callsite to its mods regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00206">MemRegion.h:206</a></div></div>
2599
2612
  </div><!-- fragment -->
2600
2613
  </div>
2601
2614
  </div>
@@ -2625,42 +2638,38 @@ Private Attributes</h2></td></tr>
2625
2638
 
2626
2639
  <p>Has indirect mods of a callsite. </p>
2627
2640
 
2628
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00418">418</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2629
- <div class="fragment"><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a72222bae993142be1881c34660646b82">csToModsMap</a>.find(cs) != <a class="code" href="classSVF_1_1MRGenerator.html#a72222bae993142be1881c34660646b82">csToModsMap</a>.end();</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a72222bae993142be1881c34660646b82"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a72222bae993142be1881c34660646b82">SVF::MRGenerator::csToModsMap</a></div><div class="ttdeci">CallSiteToNodeBSMap csToModsMap</div><div class="ttdoc">Map a callsite to its indirect defs of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00233">MemRegion.h:233</a></div></div>
2641
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00408">408</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2642
+ <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a603f993995e7d6961e203a195bb56029">csToModsMap</a>.find(cs) != <a class="code" href="classSVF_1_1MRGenerator.html#a603f993995e7d6961e203a195bb56029">csToModsMap</a>.end();</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a603f993995e7d6961e203a195bb56029"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a603f993995e7d6961e203a195bb56029">SVF::MRGenerator::csToModsMap</a></div><div class="ttdeci">CallSiteToPointsToMap csToModsMap</div><div class="ttdoc">Map a callsite to its indirect defs of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00228">MemRegion.h:228</a></div></div>
2630
2643
  </div><!-- fragment -->
2631
2644
  </div>
2632
2645
  </div>
2633
- <a id="abe76a16b9eedc9f8ffca6bc39cfb5c7e"></a>
2634
- <h2 class="memtitle"><span class="permalink"><a href="#abe76a16b9eedc9f8ffca6bc39cfb5c7e">&#9670;&nbsp;</a></span>hasPAGEdgeList()</h2>
2646
+ <a id="a8832a53d8f6a5eb0a07551ca19c5513d"></a>
2647
+ <h2 class="memtitle"><span class="permalink"><a href="#a8832a53d8f6a5eb0a07551ca19c5513d">&#9670;&nbsp;</a></span>hasPAGEdgeList()</h2>
2635
2648
 
2636
2649
  <div class="memitem">
2637
2650
  <div class="memproto">
2638
- <table class="mlabels">
2639
- <tr>
2640
- <td class="mlabels-left">
2641
2651
  <table class="memname">
2642
2652
  <tr>
2643
- <td class="memname">bool SVF::MRGenerator::hasPAGEdgeList </td>
2653
+ <td class="memname">bool MRGenerator::hasPAGEdgeList </td>
2644
2654
  <td>(</td>
2645
2655
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
2646
2656
  <td class="paramname"><em>inst</em></td><td>)</td>
2647
2657
  <td></td>
2648
2658
  </tr>
2649
2659
  </table>
2650
- </td>
2651
- <td class="mlabels-right">
2652
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
2653
- </tr>
2654
- </table>
2655
2660
  </div><div class="memdoc">
2656
2661
 
2657
2662
  <p>Whether this instruction has <a class="el" href="classSVF_1_1PAG.html">PAG</a> Edge. </p>
2658
2663
 
2659
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00478">478</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2660
- <div class="fragment"><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; {</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; PAG* pag = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>();</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MRGenerator.html#a6a62d2dede5d2506c19b2d058d1cd9d3">ptrOnlyMSSA</a>)</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1PAG.html#ad6d3a47e27f3aa9f3729fd9097da27d4">hasPTAPAGEdgeList</a>(pag-&gt;getICFG()-&gt;getBlockICFGNode(inst));</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">return</span> pag-&gt;hasPAGEdgeList(pag-&gt;getICFG()-&gt;getBlockICFGNode(inst));</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; }</div><div class="ttc" id="classSVF_1_1PointerAnalysis_html_aaf6b41f44da3a4caea1fa395e41edf71"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">PAG * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00204">PointerAnalysis.h:204</a></div></div>
2664
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00151">151</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2665
+ <div class="fragment"><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="classSVF_1_1PAG.html">PAG</a>* pag = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>();</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MRGenerator.html#a6a62d2dede5d2506c19b2d058d1cd9d3">ptrOnlyMSSA</a>)</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1PAG.html#ad6d3a47e27f3aa9f3729fd9097da27d4">hasPTAPAGEdgeList</a>(pag-&gt;<a class="code" href="classSVF_1_1PAG.html#ad274c5c15ac51cea5d09ad08febe8c14">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#ab7b0b3088b46ad65451905cc4f567a7b">getBlockICFGNode</a>(inst));</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1PAG.html#a8b498249185812b2bd1e9bd2aac50e4e">hasPAGEdgeList</a>(pag-&gt;<a class="code" href="classSVF_1_1PAG.html#ad274c5c15ac51cea5d09ad08febe8c14">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#ab7b0b3088b46ad65451905cc4f567a7b">getBlockICFGNode</a>(inst));</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;}</div><div class="ttc" id="classSVF_1_1PAG_html_a8b498249185812b2bd1e9bd2aac50e4e"><div class="ttname"><a href="classSVF_1_1PAG.html#a8b498249185812b2bd1e9bd2aac50e4e">SVF::PAG::hasPAGEdgeList</a></div><div class="ttdeci">bool hasPAGEdgeList(const ICFGNode *inst) const</div><div class="ttdoc">Whether this instruction has PAG Edge. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00220">PAG.h:220</a></div></div>
2666
+ <div class="ttc" id="classSVF_1_1PAG_html_ad274c5c15ac51cea5d09ad08febe8c14"><div class="ttname"><a href="classSVF_1_1PAG.html#ad274c5c15ac51cea5d09ad08febe8c14">SVF::PAG::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00135">PAG.h:135</a></div></div>
2667
+ <div class="ttc" id="classSVF_1_1PointerAnalysis_html_aaf6b41f44da3a4caea1fa395e41edf71"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">PAG * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00204">PointerAnalysis.h:204</a></div></div>
2668
+ <div class="ttc" id="classSVF_1_1PAG_html"><div class="ttname"><a href="classSVF_1_1PAG.html">SVF::PAG</a></div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00047">PAG.h:47</a></div></div>
2661
2669
  <div class="ttc" id="classSVF_1_1PAG_html_ad6d3a47e27f3aa9f3729fd9097da27d4"><div class="ttname"><a href="classSVF_1_1PAG.html#ad6d3a47e27f3aa9f3729fd9097da27d4">SVF::PAG::hasPTAPAGEdgeList</a></div><div class="ttdeci">bool hasPTAPAGEdgeList(const ICFGNode *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00224">PAG.h:224</a></div></div>
2662
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a6a62d2dede5d2506c19b2d058d1cd9d3"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a6a62d2dede5d2506c19b2d058d1cd9d3">SVF::MRGenerator::ptrOnlyMSSA</a></div><div class="ttdeci">bool ptrOnlyMSSA</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00200">MemRegion.h:200</a></div></div>
2663
- <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00197">MemRegion.h:197</a></div></div>
2670
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a6a62d2dede5d2506c19b2d058d1cd9d3"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a6a62d2dede5d2506c19b2d058d1cd9d3">SVF::MRGenerator::ptrOnlyMSSA</a></div><div class="ttdeci">bool ptrOnlyMSSA</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00195">MemRegion.h:195</a></div></div>
2671
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00192">MemRegion.h:192</a></div></div>
2672
+ <div class="ttc" id="classSVF_1_1ICFG_html_ab7b0b3088b46ad65451905cc4f567a7b"><div class="ttname"><a href="classSVF_1_1ICFG.html#ab7b0b3088b46ad65451905cc4f567a7b">SVF::ICFG::getBlockICFGNode</a></div><div class="ttdeci">ICFGNode * getBlockICFGNode(const Instruction *inst)</div><div class="ttdoc">Get a basic block ICFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00181">ICFG.cpp:181</a></div></div>
2664
2673
  </div><!-- fragment -->
2665
2674
  </div>
2666
2675
  </div>
@@ -2688,8 +2697,8 @@ Private Attributes</h2></td></tr>
2688
2697
  </table>
2689
2698
  </div><div class="memdoc">
2690
2699
 
2691
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00460">460</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2692
- <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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a7a7ed21181c2486b60170a479a5a534e">callsiteToRefMRsMap</a>.find(cs)!=<a class="code" href="classSVF_1_1MRGenerator.html#a7a7ed21181c2486b60170a479a5a534e">callsiteToRefMRsMap</a>.end();</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a7a7ed21181c2486b60170a479a5a534e"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7a7ed21181c2486b60170a479a5a534e">SVF::MRGenerator::callsiteToRefMRsMap</a></div><div class="ttdeci">CallSiteToMRsMap callsiteToRefMRsMap</div><div class="ttdoc">Map a callsite to its refs regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00209">MemRegion.h:209</a></div></div>
2700
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00450">450</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2701
+ <div class="fragment"><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; {</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a7a7ed21181c2486b60170a479a5a534e">callsiteToRefMRsMap</a>.find(cs)!=<a class="code" href="classSVF_1_1MRGenerator.html#a7a7ed21181c2486b60170a479a5a534e">callsiteToRefMRsMap</a>.end();</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a7a7ed21181c2486b60170a479a5a534e"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7a7ed21181c2486b60170a479a5a534e">SVF::MRGenerator::callsiteToRefMRsMap</a></div><div class="ttdeci">CallSiteToMRsMap callsiteToRefMRsMap</div><div class="ttdoc">Map a callsite to its refs regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00204">MemRegion.h:204</a></div></div>
2693
2702
  </div><!-- fragment -->
2694
2703
  </div>
2695
2704
  </div>
@@ -2719,13 +2728,13 @@ Private Attributes</h2></td></tr>
2719
2728
 
2720
2729
  <p>Has indirect refs of a callsite. </p>
2721
2730
 
2722
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00413">413</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2723
- <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_1MRGenerator.html#a08779053af9db71ba0bc24710a7e198c">csToRefsMap</a>.find(cs) != <a class="code" href="classSVF_1_1MRGenerator.html#a08779053af9db71ba0bc24710a7e198c">csToRefsMap</a>.end();</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a08779053af9db71ba0bc24710a7e198c"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a08779053af9db71ba0bc24710a7e198c">SVF::MRGenerator::csToRefsMap</a></div><div class="ttdeci">CallSiteToNodeBSMap csToRefsMap</div><div class="ttdoc">Map a callsite to its indirect uses of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00231">MemRegion.h:231</a></div></div>
2731
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00403">403</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2732
+ <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_1MRGenerator.html#ac7b5ca3fd950e1a940f875ac135640f6">csToRefsMap</a>.find(cs) != <a class="code" href="classSVF_1_1MRGenerator.html#ac7b5ca3fd950e1a940f875ac135640f6">csToRefsMap</a>.end();</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; }</div><div class="ttc" id="classSVF_1_1MRGenerator_html_ac7b5ca3fd950e1a940f875ac135640f6"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ac7b5ca3fd950e1a940f875ac135640f6">SVF::MRGenerator::csToRefsMap</a></div><div class="ttdeci">CallSiteToPointsToMap csToRefsMap</div><div class="ttdoc">Map a callsite to its indirect uses of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00226">MemRegion.h:226</a></div></div>
2724
2733
  </div><!-- fragment -->
2725
2734
  </div>
2726
2735
  </div>
2727
- <a id="acd1759ce72edc748e6628d7e82458473"></a>
2728
- <h2 class="memtitle"><span class="permalink"><a href="#acd1759ce72edc748e6628d7e82458473">&#9670;&nbsp;</a></span>isAliasedMR()</h2>
2736
+ <a id="a28130cc55ab317d383ba6593f323b12a"></a>
2737
+ <h2 class="memtitle"><span class="permalink"><a href="#a28130cc55ab317d383ba6593f323b12a">&#9670;&nbsp;</a></span>isAliasedMR()</h2>
2729
2738
 
2730
2739
  <div class="memitem">
2731
2740
  <div class="memproto">
@@ -2736,7 +2745,7 @@ Private Attributes</h2></td></tr>
2736
2745
  <tr>
2737
2746
  <td class="memname">virtual bool SVF::MRGenerator::isAliasedMR </td>
2738
2747
  <td>(</td>
2739
- <td class="paramtype">const <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;&#160;</td>
2748
+ <td class="paramtype">const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;&#160;</td>
2740
2749
  <td class="paramname"><em>cpts</em>, </td>
2741
2750
  </tr>
2742
2751
  <tr>
@@ -2760,8 +2769,8 @@ Private Attributes</h2></td></tr>
2760
2769
 
2761
2770
  <p>Whether a region is aliased with a conditional points-to. </p>
2762
2771
 
2763
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00309">309</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2764
- <div class="fragment"><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; {</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">return</span> mr-&gt;getPointsTo().intersects(cpts);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; }</div></div><!-- fragment -->
2772
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00299">299</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
2773
+ <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; <span class="keywordflow">return</span> mr-&gt;getPointsTo().intersects(cpts);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; }</div></div><!-- fragment -->
2765
2774
  </div>
2766
2775
  </div>
2767
2776
  <a id="a2cf20660f2fd686fa3cabd046c4a10bf"></a>
@@ -2801,21 +2810,21 @@ Private Attributes</h2></td></tr>
2801
2810
  <p>if the object is heap or global</p>
2802
2811
  <p>or if the local variable of its callers or a local variable is in function recursion cycles </p>
2803
2812
 
2804
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00552">552</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2805
- <div class="fragment"><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_1MemObj.html">MemObj</a>* obj = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#a2b288fce8efa1b0b1b620efec2c96eb6">getObject</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(obj &amp;&amp; <span class="stringliteral">&quot;object not found!!&quot;</span>);</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">if</span>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#aa513ca5bd3927c9f697b504a70e57013">isGlobalObj</a>() || obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#af8f4f85cfbcb09615fb04ca63d634138">isHeap</a>())</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a65735220b56354f7b6c7ce6753f84e4b">isStack</a>())</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; {</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a3bacb4f95c73e6d794901d01c6b65a83">AllocaInst</a>* local = SVFUtil::dyn_cast&lt;AllocaInst&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#ae952c8b6b92c6cbef9494a83b411a60f">getRefVal</a>()))</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; {</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(local-&gt;getFunction());</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">if</span>(fun!=curFun)</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">callGraphSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(<a class="code" href="classSVF_1_1MRGenerator.html#a05005a166c39b1adea492655d77db519">callGraph</a>-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(fun)-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</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; }</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_aa3a12cf1f761d25b9213bc6e50d89ba5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">SVF::MRGenerator::callGraphSCC</a></div><div class="ttdeci">SCC * callGraphSCC</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00198">MemRegion.h:198</a></div></div>
2813
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00576">576</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2814
+ <div class="fragment"><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;{</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1PAG.html#a2b288fce8efa1b0b1b620efec2c96eb6">getObject</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(obj &amp;&amp; <span class="stringliteral">&quot;object not found!!&quot;</span>);</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">if</span>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#aa513ca5bd3927c9f697b504a70e57013">isGlobalObj</a>() || obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#af8f4f85cfbcb09615fb04ca63d634138">isHeap</a>())</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a65735220b56354f7b6c7ce6753f84e4b">isStack</a>())</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="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a3bacb4f95c73e6d794901d01c6b65a83">AllocaInst</a>* local = SVFUtil::dyn_cast&lt;AllocaInst&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#ae952c8b6b92c6cbef9494a83b411a60f">getRefVal</a>()))</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; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(local-&gt;getFunction());</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keywordflow">if</span>(fun!=curFun)</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">callGraphSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(<a class="code" href="classSVF_1_1MRGenerator.html#a05005a166c39b1adea492655d77db519">callGraph</a>-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(fun)-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</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; }</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_aa3a12cf1f761d25b9213bc6e50d89ba5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#aa3a12cf1f761d25b9213bc6e50d89ba5">SVF::MRGenerator::callGraphSCC</a></div><div class="ttdeci">SCC * callGraphSCC</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00193">MemRegion.h:193</a></div></div>
2806
2815
  <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00284">MemModel.h:284</a></div></div>
2807
2816
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_aaab54c670518d9d6790707f76ea76aa1"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">SVF::PTACallGraph::getCallGraphNode</a></div><div class="ttdeci">PTACallGraphNode * getCallGraphNode(NodeID id) const</div><div class="ttdoc">Get call graph node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00315">PTACallGraph.h:315</a></div></div>
2808
2817
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
2809
2818
  <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
2810
2819
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_aaf6b41f44da3a4caea1fa395e41edf71"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aaf6b41f44da3a4caea1fa395e41edf71">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">PAG * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00204">PointerAnalysis.h:204</a></div></div>
2811
2820
  <div class="ttc" id="classSVF_1_1PAG_html_a2b288fce8efa1b0b1b620efec2c96eb6"><div class="ttname"><a href="classSVF_1_1PAG.html#a2b288fce8efa1b0b1b620efec2c96eb6">SVF::PAG::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00589">PAG.h:589</a></div></div>
2812
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a05005a166c39b1adea492655d77db519"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a05005a166c39b1adea492655d77db519">SVF::MRGenerator::callGraph</a></div><div class="ttdeci">PTACallGraph * callGraph</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00199">MemRegion.h:199</a></div></div>
2821
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a05005a166c39b1adea492655d77db519"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a05005a166c39b1adea492655d77db519">SVF::MRGenerator::callGraph</a></div><div class="ttdeci">PTACallGraph * callGraph</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00194">MemRegion.h:194</a></div></div>
2813
2822
  <div class="ttc" id="classSVF_1_1MemObj_html_ae952c8b6b92c6cbef9494a83b411a60f"><div class="ttname"><a href="classSVF_1_1MemObj.html#ae952c8b6b92c6cbef9494a83b411a60f">SVF::MemObj::getRefVal</a></div><div class="ttdeci">const Value * getRefVal() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00325">MemModel.h:325</a></div></div>
2814
2823
  <div class="ttc" id="namespaceSVF_html_a3bacb4f95c73e6d794901d01c6b65a83"><div class="ttname"><a href="namespaceSVF.html#a3bacb4f95c73e6d794901d01c6b65a83">SVF::AllocaInst</a></div><div class="ttdeci">llvm::AllocaInst AllocaInst</div><div class="ttdoc">LLVM Instructions. </div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00147">BasicTypes.h:147</a></div></div>
2815
2824
  <div class="ttc" id="classSVF_1_1MemObj_html_aa513ca5bd3927c9f697b504a70e57013"><div class="ttname"><a href="classSVF_1_1MemObj.html#aa513ca5bd3927c9f697b504a70e57013">SVF::MemObj::isGlobalObj</a></div><div class="ttdeci">bool isGlobalObj() const</div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00360">MemModel.h:360</a></div></div>
2816
2825
  <div class="ttc" id="classSVF_1_1MemObj_html_a65735220b56354f7b6c7ce6753f84e4b"><div class="ttname"><a href="classSVF_1_1MemObj.html#a65735220b56354f7b6c7ce6753f84e4b">SVF::MemObj::isStack</a></div><div class="ttdeci">bool isStack() const</div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00368">MemModel.h:368</a></div></div>
2817
2826
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00069">LLVMModule.h:69</a></div></div>
2818
- <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00197">MemRegion.h:197</a></div></div>
2827
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_afb7ce3a24edda14895999eb15231daff"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">SVF::MRGenerator::pta</a></div><div class="ttdeci">BVDataPTAImpl * pta</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00192">MemRegion.h:192</a></div></div>
2819
2828
  <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00164">GenericGraph.h:164</a></div></div>
2820
2829
  <div class="ttc" id="classSVF_1_1SCCDetection_html_a5d699af73b1e7ad4e3a5f6d26b8b6d15"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">SVF::SCCDetection::isInCycle</a></div><div class="ttdeci">bool isInCycle(NodeID n) const</div><div class="ttdoc">whether the node is in a cycle </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00149">SCC.h:149</a></div></div>
2821
2830
  <div class="ttc" id="classSVF_1_1MemObj_html_af8f4f85cfbcb09615fb04ca63d634138"><div class="ttname"><a href="classSVF_1_1MemObj.html#af8f4f85cfbcb09615fb04ca63d634138">SVF::MemObj::isHeap</a></div><div class="ttdeci">bool isHeap() const</div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00372">MemModel.h:372</a></div></div>
@@ -2863,8 +2872,8 @@ Private Attributes</h2></td></tr>
2863
2872
  <p>handle direct callsites</p>
2864
2873
  <p>handle indirect callsites </p>
2865
2874
 
2866
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00611">611</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2867
- <div class="fragment"><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;</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1PTACallGraphNode.html#a796994541eec90f2b540e24816120aff">PTACallGraphNode::iterator</a> it = callGraphNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">InEdgeBegin</a>(), eit = callGraphNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">InEdgeEnd</a>();</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; it!=eit; ++it)</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; {</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphEdge.html">PTACallGraphEdge</a>* edge = *it;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">for</span>(PTACallGraphEdge::CallInstSet::iterator cit = edge-&gt;<a class="code" href="classSVF_1_1PTACallGraphEdge.html#af0e9f86be3cf263b868f80d374641fc9">getDirectCalls</a>().begin(),</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; ecit = edge-&gt;<a class="code" href="classSVF_1_1PTACallGraphEdge.html#af0e9f86be3cf263b868f80d374641fc9">getDirectCalls</a>().end(); cit!=ecit; ++cit)</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; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> mod, ref;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs = (*cit);</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordtype">bool</span> modrefchanged = <a class="code" href="classSVF_1_1MRGenerator.html#a123a2ea51b04f1398b9ee66567f5014a">handleCallsiteModRef</a>(mod, ref, cs, callGraphNode-&gt;<a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>());</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordflow">if</span>(modrefchanged)</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; worklist.push(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>());</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; }</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">for</span>(PTACallGraphEdge::CallInstSet::iterator cit = edge-&gt;<a class="code" href="classSVF_1_1PTACallGraphEdge.html#a76aa19edf03a4cacfa3e27a21abfcd07">getIndirectCalls</a>().begin(),</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; ecit = edge-&gt;<a class="code" href="classSVF_1_1PTACallGraphEdge.html#a76aa19edf03a4cacfa3e27a21abfcd07">getIndirectCalls</a>().end(); cit!=ecit; ++cit)</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; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> mod, ref;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs = (*cit);</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <span class="keywordtype">bool</span> modrefchanged = <a class="code" href="classSVF_1_1MRGenerator.html#a123a2ea51b04f1398b9ee66567f5014a">handleCallsiteModRef</a>(mod, ref, cs, callGraphNode-&gt;<a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>());</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keywordflow">if</span>(modrefchanged)</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; worklist.push(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>());</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; }</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
2875
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00635">635</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2876
+ <div class="fragment"><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;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1PTACallGraphNode.html#a796994541eec90f2b540e24816120aff">PTACallGraphNode::iterator</a> it = callGraphNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">InEdgeBegin</a>(), eit = callGraphNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">InEdgeEnd</a>();</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; it!=eit; ++it)</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; <a class="code" href="classSVF_1_1PTACallGraphEdge.html">PTACallGraphEdge</a>* edge = *it;</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">for</span>(PTACallGraphEdge::CallInstSet::iterator cit = edge-&gt;<a class="code" href="classSVF_1_1PTACallGraphEdge.html#af0e9f86be3cf263b868f80d374641fc9">getDirectCalls</a>().begin(),</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; ecit = edge-&gt;<a class="code" href="classSVF_1_1PTACallGraphEdge.html#af0e9f86be3cf263b868f80d374641fc9">getDirectCalls</a>().end(); cit!=ecit; ++cit)</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; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> mod, ref;</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs = (*cit);</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordtype">bool</span> modrefchanged = <a class="code" href="classSVF_1_1MRGenerator.html#a123a2ea51b04f1398b9ee66567f5014a">handleCallsiteModRef</a>(mod, ref, cs, callGraphNode-&gt;<a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>());</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keywordflow">if</span>(modrefchanged)</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; worklist.push(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>());</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; }</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="keywordflow">for</span>(PTACallGraphEdge::CallInstSet::iterator cit = edge-&gt;<a class="code" href="classSVF_1_1PTACallGraphEdge.html#a76aa19edf03a4cacfa3e27a21abfcd07">getIndirectCalls</a>().begin(),</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; ecit = edge-&gt;<a class="code" href="classSVF_1_1PTACallGraphEdge.html#a76aa19edf03a4cacfa3e27a21abfcd07">getIndirectCalls</a>().end(); cit!=ecit; ++cit)</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="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> mod, ref;</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs = (*cit);</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keywordtype">bool</span> modrefchanged = <a class="code" href="classSVF_1_1MRGenerator.html#a123a2ea51b04f1398b9ee66567f5014a">handleCallsiteModRef</a>(mod, ref, cs, callGraphNode-&gt;<a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>());</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="keywordflow">if</span>(modrefchanged)</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; worklist.push(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>());</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; }</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;}</div><div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
2868
2877
  <div class="ttc" id="classSVF_1_1GenericNode_html_ae5b113921530eee6afe58a65d8e5b3a7"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">SVF::GenericNode::InEdgeBegin</a></div><div class="ttdeci">iterator InEdgeBegin()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00209">GenericGraph.h:209</a></div></div>
2869
2878
  <div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_af0e9f86be3cf263b868f80d374641fc9"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#af0e9f86be3cf263b868f80d374641fc9">SVF::PTACallGraphEdge::getDirectCalls</a></div><div class="ttdeci">CallInstSet &amp; getDirectCalls()</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00095">PTACallGraph.h:95</a></div></div>
2870
2879
  <div class="ttc" id="classSVF_1_1PTACallGraphEdge_html"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html">SVF::PTACallGraphEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00051">PTACallGraph.h:51</a></div></div>
@@ -2873,7 +2882,7 @@ Private Attributes</h2></td></tr>
2873
2882
  <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
2874
2883
  <div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_a76aa19edf03a4cacfa3e27a21abfcd07"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#a76aa19edf03a4cacfa3e27a21abfcd07">SVF::PTACallGraphEdge::getIndirectCalls</a></div><div class="ttdeci">CallInstSet &amp; getIndirectCalls()</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00099">PTACallGraph.h:99</a></div></div>
2875
2884
  <div class="ttc" id="classSVF_1_1PTACallGraphNode_html_a796994541eec90f2b540e24816120aff"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html#a796994541eec90f2b540e24816120aff">SVF::PTACallGraphNode::iterator</a></div><div class="ttdeci">PTACallGraphEdge::CallGraphEdgeSet::iterator iterator</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00179">PTACallGraph.h:179</a></div></div>
2876
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a123a2ea51b04f1398b9ee66567f5014a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a123a2ea51b04f1398b9ee66567f5014a">SVF::MRGenerator::handleCallsiteModRef</a></div><div class="ttdeci">virtual bool handleCallsiteModRef(NodeBS &amp;mod, NodeBS &amp;ref, const CallBlockNode *cs, const SVFFunction *fun)</div><div class="ttdoc">Get Mod-Ref of a callee function. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00579">MemRegion.cpp:579</a></div></div>
2885
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a123a2ea51b04f1398b9ee66567f5014a"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a123a2ea51b04f1398b9ee66567f5014a">SVF::MRGenerator::handleCallsiteModRef</a></div><div class="ttdeci">virtual bool handleCallsiteModRef(NodeBS &amp;mod, NodeBS &amp;ref, const CallBlockNode *cs, const SVFFunction *fun)</div><div class="ttdoc">Get Mod-Ref of a callee function. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00603">MemRegion.cpp:603</a></div></div>
2877
2886
  <div class="ttc" id="classSVF_1_1CallBlockNode_html"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html">SVF::CallBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
2878
2887
  </div><!-- fragment -->
2879
2888
  </div>
@@ -2908,16 +2917,16 @@ Private Attributes</h2></td></tr>
2908
2917
 
2909
2918
  <p>Reimplemented in <a class="el" href="classSVF_1_1InterDisjointMRG.html#a807cf159e53c2fb2903296207185dda0">SVF::InterDisjointMRG</a>, <a class="el" href="classSVF_1_1IntraDisjointMRG.html#a6d2434f0e3a318b89b7b9fa4f5613b64">SVF::IntraDisjointMRG</a>, and <a class="el" href="classSVF_1_1DistinctMRG.html#a4512ef21fa83988ad4d588831bfba482">SVF::DistinctMRG</a>.</p>
2910
2919
 
2911
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00293">293</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2912
- <div class="fragment"><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;{</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">for</span>(FunToPointsToMap::iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#ad8333efeda532f0d403352ad6a4987e9">getFunToPointsToList</a>().begin(), eit = <a class="code" href="classSVF_1_1MRGenerator.html#ad8333efeda532f0d403352ad6a4987e9">getFunToPointsToList</a>().end();</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; it!=eit; ++it)</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">for</span>(PointsToList::iterator cit = it-&gt;second.begin(), ecit = it-&gt;second.end(); cit!=ecit; ++cit)</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; <a class="code" href="classSVF_1_1MRGenerator.html#a4d20ddfe5cb90d91fd86276a3f010b87">sortPointsTo</a>(*cit);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">for</span>(FunToPointsToMap::iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#ad8333efeda532f0d403352ad6a4987e9">getFunToPointsToList</a>().begin(), eit = <a class="code" href="classSVF_1_1MRGenerator.html#ad8333efeda532f0d403352ad6a4987e9">getFunToPointsToList</a>().end();</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; it!=eit; ++it)</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="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = it-&gt;first;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">for</span>(PointsToList::iterator cit = it-&gt;second.begin(), ecit = it-&gt;second.end(); cit!=ecit; ++cit)</div><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; <a class="code" href="classSVF_1_1MRGenerator.html#a42708b4ce8b5548e156a0e6d01602cc2">createMR</a>(fun,*cit);</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="ttc" id="classSVF_1_1MRGenerator_html_a4d20ddfe5cb90d91fd86276a3f010b87"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a4d20ddfe5cb90d91fd86276a3f010b87">SVF::MRGenerator::sortPointsTo</a></div><div class="ttdeci">virtual void sortPointsTo(const PointsTo &amp;cpts)</div><div class="ttdoc">Given a condition pts, insert into cptsToRepCPtsMap for region generation. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00260">MemRegion.cpp:260</a></div></div>
2913
- <div class="ttc" id="classSVF_1_1MRGenerator_html_ad8333efeda532f0d403352ad6a4987e9"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ad8333efeda532f0d403352ad6a4987e9">SVF::MRGenerator::getFunToPointsToList</a></div><div class="ttdeci">FunToPointsToMap &amp; getFunToPointsToList()</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00376">MemRegion.h:376</a></div></div>
2914
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
2915
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a42708b4ce8b5548e156a0e6d01602cc2"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a42708b4ce8b5548e156a0e6d01602cc2">SVF::MRGenerator::createMR</a></div><div class="ttdeci">void createMR(const SVFFunction *fun, const PointsTo &amp;cpts)</div><div class="ttdoc">Generate a memory region and put in into functions which use it. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00064">MemRegion.cpp:64</a></div></div>
2920
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00317">317</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2921
+ <div class="fragment"><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="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">for</span>(FunToPointsTosMap::iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#a1331e6f0941838064d77a5adaa5c6303">getFunToPointsToList</a>().begin(), eit = <a class="code" href="classSVF_1_1MRGenerator.html#a1331e6f0941838064d77a5adaa5c6303">getFunToPointsToList</a>().end();</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; it!=eit; ++it)</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="keywordflow">for</span>(PointsToList::iterator cit = it-&gt;second.begin(), ecit = it-&gt;second.end(); cit!=ecit; ++cit)</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; <a class="code" href="classSVF_1_1MRGenerator.html#a66d94d15fb94e90a771f6b3dd7c0ecdd">sortPointsTo</a>(*cit);</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; }</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">for</span>(FunToPointsTosMap::iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#a1331e6f0941838064d77a5adaa5c6303">getFunToPointsToList</a>().begin(), eit = <a class="code" href="classSVF_1_1MRGenerator.html#a1331e6f0941838064d77a5adaa5c6303">getFunToPointsToList</a>().end();</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; it!=eit; ++it)</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = it-&gt;first;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">for</span>(PointsToList::iterator cit = it-&gt;second.begin(), ecit = it-&gt;second.end(); cit!=ecit; ++cit)</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; <a class="code" href="classSVF_1_1MRGenerator.html#ac18324bd2b862c3cdbf65494bf69ecb5">createMR</a>(fun,*cit);</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; }</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;}</div><div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
2922
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_ac18324bd2b862c3cdbf65494bf69ecb5"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ac18324bd2b862c3cdbf65494bf69ecb5">SVF::MRGenerator::createMR</a></div><div class="ttdeci">void createMR(const SVFFunction *fun, const NodeBS &amp;cpts)</div><div class="ttdoc">Generate a memory region and put in into functions which use it. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00070">MemRegion.cpp:70</a></div></div>
2923
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a1331e6f0941838064d77a5adaa5c6303"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a1331e6f0941838064d77a5adaa5c6303">SVF::MRGenerator::getFunToPointsToList</a></div><div class="ttdeci">FunToPointsTosMap &amp; getFunToPointsToList()</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00366">MemRegion.h:366</a></div></div>
2924
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a66d94d15fb94e90a771f6b3dd7c0ecdd"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a66d94d15fb94e90a771f6b3dd7c0ecdd">SVF::MRGenerator::sortPointsTo</a></div><div class="ttdeci">virtual void sortPointsTo(const NodeBS &amp;cpts)</div><div class="ttdoc">Given a condition pts, insert into cptsToRepCPtsMap for region generation. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00284">MemRegion.cpp:284</a></div></div>
2916
2925
  </div><!-- fragment -->
2917
2926
  </div>
2918
2927
  </div>
2919
- <a id="a4d20ddfe5cb90d91fd86276a3f010b87"></a>
2920
- <h2 class="memtitle"><span class="permalink"><a href="#a4d20ddfe5cb90d91fd86276a3f010b87">&#9670;&nbsp;</a></span>sortPointsTo()</h2>
2928
+ <a id="a66d94d15fb94e90a771f6b3dd7c0ecdd"></a>
2929
+ <h2 class="memtitle"><span class="permalink"><a href="#a66d94d15fb94e90a771f6b3dd7c0ecdd">&#9670;&nbsp;</a></span>sortPointsTo()</h2>
2921
2930
 
2922
2931
  <div class="memitem">
2923
2932
  <div class="memproto">
@@ -2928,7 +2937,7 @@ Private Attributes</h2></td></tr>
2928
2937
  <tr>
2929
2938
  <td class="memname">void MRGenerator::sortPointsTo </td>
2930
2939
  <td>(</td>
2931
- <td class="paramtype">const <a class="el" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> &amp;&#160;</td>
2940
+ <td class="paramtype">const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;&#160;</td>
2932
2941
  <td class="paramname"><em>cpts</em></td><td>)</td>
2933
2942
  <td></td>
2934
2943
  </tr>
@@ -2943,10 +2952,10 @@ Private Attributes</h2></td></tr>
2943
2952
  <p>Given a condition pts, insert into cptsToRepCPtsMap for region generation. </p>
2944
2953
  <p>Given a condition pts, insert into cptsToRepCPtsMap Always map it to its superset(rep) cpts according to existing items 1) map cpts to its superset(rep) which exists in the map, otherwise its superset is itself 2) adjust existing items in the map if their supersets are cpts </p>
2945
2954
 
2946
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00260">260</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2947
- <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;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>.find(cpts)!=<a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>.end())</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span>;</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="namespaceSVF_1_1SVFUtil.html#a4740b14abf7d308e7806a0d6d6c42ee2">PointsToList</a> subSetList;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a> repCPts = cpts;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">for</span>(PtsToRepPtsSetMap::iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>.begin(),</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; eit = <a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>&amp; existCPts = it-&gt;second;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">if</span>(cpts.contains(existCPts))</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; subSetList.insert(it-&gt;first);</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; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(existCPts.contains(cpts))</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; repCPts = existCPts;</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="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; <span class="keywordflow">for</span>(PointsToList::iterator it = subSetList.begin(), eit = subSetList.end(); it!=eit; ++it)</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; <a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>[*it] = cpts;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; }</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>[cpts] = repCPts;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a4740b14abf7d308e7806a0d6d6c42ee2"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a4740b14abf7d308e7806a0d6d6c42ee2">SVF::SVFUtil::PointsToList</a></div><div class="ttdeci">OrderedSet&lt; PointsTo, equalPointsTo &gt; PointsToList</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00128">SVFUtil.h:128</a></div></div>
2948
- <div class="ttc" id="classSVF_1_1MRGenerator_html_ab4d1ff0357d389a65ff1c2112ce631a1"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">SVF::MRGenerator::cptsToRepCPtsMap</a></div><div class="ttdeci">PtsToRepPtsSetMap cptsToRepCPtsMap</div><div class="ttdoc">Map a condition pts to its rep conditional pts (super set points-to) </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00285">MemRegion.h:285</a></div></div>
2949
- <div class="ttc" id="namespaceSVF_html_a0c6594b4bae7924369bb61943c1da4fb"><div class="ttname"><a href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">SVF::PointsTo</a></div><div class="ttdeci">NodeBS PointsTo</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00088">SVFBasicTypes.h:88</a></div></div>
2955
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00284">284</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2956
+ <div class="fragment"><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;{</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>.find(cpts)!=<a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>.end())</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span>;</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="namespaceSVF_1_1SVFUtil.html#a798b7f30608d8c1688d4fdce2c3097f4">PointsToList</a> subSetList;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> repCPts = cpts;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">for</span>(PtsToRepPtsSetMap::iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>.begin(),</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; eit = <a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; existCPts = it-&gt;second;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span>(cpts.contains(existCPts))</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; subSetList.insert(it-&gt;first);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(existCPts.contains(cpts))</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; repCPts = existCPts;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">for</span>(PointsToList::iterator it = subSetList.begin(), eit = subSetList.end(); it!=eit; ++it)</div><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; <a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>[*it] = cpts;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>[cpts] = repCPts;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
2957
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_ab4d1ff0357d389a65ff1c2112ce631a1"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">SVF::MRGenerator::cptsToRepCPtsMap</a></div><div class="ttdeci">PtsToRepPtsSetMap cptsToRepCPtsMap</div><div class="ttdoc">Map a condition pts to its rep conditional pts (super set points-to) </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00275">MemRegion.h:275</a></div></div>
2958
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a798b7f30608d8c1688d4fdce2c3097f4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a798b7f30608d8c1688d4fdce2c3097f4">SVF::SVFUtil::PointsToList</a></div><div class="ttdeci">OrderedSet&lt; PointsTo, equalNodeBS &gt; PointsToList</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00161">SVFUtil.h:161</a></div></div>
2950
2959
  </div><!-- fragment -->
2951
2960
  </div>
2952
2961
  </div>
@@ -2978,22 +2987,22 @@ Private Attributes</h2></td></tr>
2978
2987
  <p>update stores with its aliased regions</p>
2979
2988
  <p>update callsites with its aliased regions </p>
2980
2989
 
2981
- <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00324">324</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2982
- <div class="fragment"><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;{</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">for</span>(StoresToPointsToMap::const_iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#a7d86f708743a59aa31c0a9fd6de45dac">storesToPointsToMap</a>.begin(), eit = <a class="code" href="classSVF_1_1MRGenerator.html#a7d86f708743a59aa31c0a9fd6de45dac">storesToPointsToMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> aliasMRs;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = <a class="code" href="classSVF_1_1MRGenerator.html#a3121380139c7ae96d2045d66203253b6">getFunction</a>(it-&gt;first);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>&amp; storeCPts = it-&gt;second;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a6426e7a9a6324b8b2f8a9bcf4aab1fc1">getAliasMemRegions</a>(aliasMRs,storeCPts,fun);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">for</span>(MRSet::iterator ait = aliasMRs.begin(), eait = aliasMRs.end(); ait!=eait; ++ait)</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a255551fd3ff8fb33bcea93d0b00280b3">storesToMRsMap</a>[it-&gt;first].insert(*ait);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; }</div><div class="line"><a name="l00338"></a><span class="lineno"> 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="keywordflow">for</span>(LoadsToPointsToMap::const_iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#af47e15d6b8c15d547a718f3577513975">loadsToPointsToMap</a>.begin(), eit = <a class="code" href="classSVF_1_1MRGenerator.html#af47e15d6b8c15d547a718f3577513975">loadsToPointsToMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> aliasMRs;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = <a class="code" href="classSVF_1_1MRGenerator.html#a3121380139c7ae96d2045d66203253b6">getFunction</a>(it-&gt;first);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>&amp; loadCPts = it-&gt;second;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a2a7012e9f2e84ac1c5f7ed61daa67ac7">getMRsForLoad</a>(aliasMRs, loadCPts, fun);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">for</span>(MRSet::iterator ait = aliasMRs.begin(), eait = aliasMRs.end(); ait!=eait; ++ait)</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; <a class="code" href="classSVF_1_1MRGenerator.html#a0d8229b1f0b8428708e923d19096e4ba">loadsToMRsMap</a>[it-&gt;first].insert(*ait);</div><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; }</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">for</span>(CallSiteToPointsToMap::const_iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#ab8df193e84009e406c301731d17dc7b9">callsiteToModPointsToMap</a>.begin(),</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; eit = <a class="code" href="classSVF_1_1MRGenerator.html#ab8df193e84009e406c301731d17dc7b9">callsiteToModPointsToMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = it-&gt;first-&gt;getCaller();</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> aliasMRs;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>&amp; callsiteModCPts = it-&gt;second;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a6426e7a9a6324b8b2f8a9bcf4aab1fc1">getAliasMemRegions</a>(aliasMRs,callsiteModCPts,fun);</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">for</span>(MRSet::iterator ait = aliasMRs.begin(), eait = aliasMRs.end(); ait!=eait; ++ait)</div><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; <a class="code" href="classSVF_1_1MRGenerator.html#adf8d477e5f622855799842134145ecc4">callsiteToModMRsMap</a>[it-&gt;first].insert(*ait);</div><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; }</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">for</span>(CallSiteToPointsToMap::const_iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#a34967cda51699f948a581b9f88fa3b10">callsiteToRefPointsToMap</a>.begin(),</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; eit = <a class="code" href="classSVF_1_1MRGenerator.html#a34967cda51699f948a581b9f88fa3b10">callsiteToRefPointsToMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; {</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = it-&gt;first-&gt;getCaller();</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> aliasMRs;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">PointsTo</a>&amp; callsiteRefCPts = it-&gt;second;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#af4eda1f51e3f58c8cccddee474972fe9">getMRsForCallSiteRef</a>(aliasMRs, callsiteRefCPts, fun);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">for</span>(MRSet::iterator ait = aliasMRs.begin(), eait = aliasMRs.end(); ait!=eait; ++ait)</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; {</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a7a7ed21181c2486b60170a479a5a534e">callsiteToRefMRsMap</a>[it-&gt;first].insert(*ait);</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; }</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
2983
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a6426e7a9a6324b8b2f8a9bcf4aab1fc1"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a6426e7a9a6324b8b2f8a9bcf4aab1fc1">SVF::MRGenerator::getAliasMemRegions</a></div><div class="ttdeci">virtual void getAliasMemRegions(MRSet &amp;aliasMRs, const PointsTo &amp;cpts, const SVFFunction *fun)</div><div class="ttdoc">Get all aliased mem regions from function fun according to cpts. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00314">MemRegion.h:314</a></div></div>
2984
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a34967cda51699f948a581b9f88fa3b10"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a34967cda51699f948a581b9f88fa3b10">SVF::MRGenerator::callsiteToRefPointsToMap</a></div><div class="ttdeci">CallSiteToPointsToMap callsiteToRefPointsToMap</div><div class="ttdoc">Map a callsite to it refs cpts set. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00217">MemRegion.h:217</a></div></div>
2985
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a0d8229b1f0b8428708e923d19096e4ba"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a0d8229b1f0b8428708e923d19096e4ba">SVF::MRGenerator::loadsToMRsMap</a></div><div class="ttdeci">LoadsToMRsMap loadsToMRsMap</div><div class="ttdoc">Map a load PAG Edge to its memory regions sets in order for inserting mus in Memory SSA...</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00205">MemRegion.h:205</a></div></div>
2986
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a7d86f708743a59aa31c0a9fd6de45dac"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7d86f708743a59aa31c0a9fd6de45dac">SVF::MRGenerator::storesToPointsToMap</a></div><div class="ttdeci">StoresToPointsToMap storesToPointsToMap</div><div class="ttdoc">Map a store PAG Edge to its CPts set map. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00215">MemRegion.h:215</a></div></div>
2987
- <div class="ttc" id="classSVF_1_1MRGenerator_html_ab8df193e84009e406c301731d17dc7b9"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ab8df193e84009e406c301731d17dc7b9">SVF::MRGenerator::callsiteToModPointsToMap</a></div><div class="ttdeci">CallSiteToPointsToMap callsiteToModPointsToMap</div><div class="ttdoc">Map a callsite to it mods cpts set. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00219">MemRegion.h:219</a></div></div>
2988
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a2a7012e9f2e84ac1c5f7ed61daa67ac7"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a2a7012e9f2e84ac1c5f7ed61daa67ac7">SVF::MRGenerator::getMRsForLoad</a></div><div class="ttdeci">virtual void getMRsForLoad(MRSet &amp;aliasMRs, const PointsTo &amp;cpts, const SVFFunction *)</div><div class="ttdoc">Get memory regions for a load statement according to cpts. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00324">MemRegion.h:324</a></div></div>
2989
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a7a7ed21181c2486b60170a479a5a534e"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7a7ed21181c2486b60170a479a5a534e">SVF::MRGenerator::callsiteToRefMRsMap</a></div><div class="ttdeci">CallSiteToMRsMap callsiteToRefMRsMap</div><div class="ttdoc">Map a callsite to its refs regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00209">MemRegion.h:209</a></div></div>
2990
- <div class="ttc" id="classSVF_1_1MRGenerator_html_af4eda1f51e3f58c8cccddee474972fe9"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af4eda1f51e3f58c8cccddee474972fe9">SVF::MRGenerator::getMRsForCallSiteRef</a></div><div class="ttdeci">virtual void getMRsForCallSiteRef(MRSet &amp;aliasMRs, const PointsTo &amp;cpts, const SVFFunction *)</div><div class="ttdoc">Get memory regions for call site ref according to cpts. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00331">MemRegion.h:331</a></div></div>
2991
- <div class="ttc" id="classSVF_1_1MRGenerator_html_adf8d477e5f622855799842134145ecc4"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#adf8d477e5f622855799842134145ecc4">SVF::MRGenerator::callsiteToModMRsMap</a></div><div class="ttdeci">CallSiteToMRsMap callsiteToModMRsMap</div><div class="ttdoc">Map a callsite to its mods regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00211">MemRegion.h:211</a></div></div>
2992
- <div class="ttc" id="classSVF_1_1MRGenerator_html_af47e15d6b8c15d547a718f3577513975"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af47e15d6b8c15d547a718f3577513975">SVF::MRGenerator::loadsToPointsToMap</a></div><div class="ttdeci">LoadsToPointsToMap loadsToPointsToMap</div><div class="ttdoc">Map a load PAG Edge to its CPts set map. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00213">MemRegion.h:213</a></div></div>
2993
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a255551fd3ff8fb33bcea93d0b00280b3"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a255551fd3ff8fb33bcea93d0b00280b3">SVF::MRGenerator::storesToMRsMap</a></div><div class="ttdeci">StoresToMRsMap storesToMRsMap</div><div class="ttdoc">Map a store PAG Edge to its memory regions sets in order for inserting chis in Memory SSA...</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00207">MemRegion.h:207</a></div></div>
2994
- <div class="ttc" id="namespaceSVF_html_a0c6594b4bae7924369bb61943c1da4fb"><div class="ttname"><a href="namespaceSVF.html#a0c6594b4bae7924369bb61943c1da4fb">SVF::PointsTo</a></div><div class="ttdeci">NodeBS PointsTo</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00088">SVFBasicTypes.h:88</a></div></div>
2995
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a98ac3bf264e6a85d172c2c4264ea908f"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">SVF::MRGenerator::MRSet</a></div><div class="ttdeci">OrderedSet&lt; const MemRegion *, MemRegion::equalMemRegion &gt; MRSet</div><div class="ttdoc">Get typedef from Pointer Analysis. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00142">MemRegion.h:142</a></div></div>
2996
- <div class="ttc" id="classSVF_1_1MRGenerator_html_a3121380139c7ae96d2045d66203253b6"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a3121380139c7ae96d2045d66203253b6">SVF::MRGenerator::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction(const PAGEdge *pagEdge) const</div><div class="ttdoc">Get the function which PAG Edge located. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00440">MemRegion.h:440</a></div></div>
2990
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00348">348</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2991
+ <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;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">for</span>(StoresToPointsToMap::const_iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#a7d86f708743a59aa31c0a9fd6de45dac">storesToPointsToMap</a>.begin(), eit = <a class="code" href="classSVF_1_1MRGenerator.html#a7d86f708743a59aa31c0a9fd6de45dac">storesToPointsToMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; {</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> aliasMRs;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = <a class="code" href="classSVF_1_1MRGenerator.html#a3121380139c7ae96d2045d66203253b6">getFunction</a>(it-&gt;first);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; storeCPts = it-&gt;second;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ad740188222439c089907fa6c6c951f02">getAliasMemRegions</a>(aliasMRs,storeCPts,fun);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">for</span>(MRSet::iterator ait = aliasMRs.begin(), eait = aliasMRs.end(); ait!=eait; ++ait)</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; {</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a255551fd3ff8fb33bcea93d0b00280b3">storesToMRsMap</a>[it-&gt;first].insert(*ait);</div><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; }</div><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">for</span>(LoadsToPointsToMap::const_iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#af47e15d6b8c15d547a718f3577513975">loadsToPointsToMap</a>.begin(), eit = <a class="code" href="classSVF_1_1MRGenerator.html#af47e15d6b8c15d547a718f3577513975">loadsToPointsToMap</a>.end(); it!=eit; ++it)</div><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; <a class="code" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> aliasMRs;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = <a class="code" href="classSVF_1_1MRGenerator.html#a3121380139c7ae96d2045d66203253b6">getFunction</a>(it-&gt;first);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; loadCPts = it-&gt;second;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#abe8d6217250d227e743e4b581497aae8">getMRsForLoad</a>(aliasMRs, loadCPts, fun);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">for</span>(MRSet::iterator ait = aliasMRs.begin(), eait = aliasMRs.end(); ait!=eait; ++ait)</div><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; <a class="code" href="classSVF_1_1MRGenerator.html#a0d8229b1f0b8428708e923d19096e4ba">loadsToMRsMap</a>[it-&gt;first].insert(*ait);</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; }</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">for</span>(CallSiteToPointsToMap::const_iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#ab8df193e84009e406c301731d17dc7b9">callsiteToModPointsToMap</a>.begin(),</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; eit = <a class="code" href="classSVF_1_1MRGenerator.html#ab8df193e84009e406c301731d17dc7b9">callsiteToModPointsToMap</a>.end(); it!=eit; ++it)</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; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = it-&gt;first-&gt;getCaller();</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> aliasMRs;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; callsiteModCPts = it-&gt;second;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ad740188222439c089907fa6c6c951f02">getAliasMemRegions</a>(aliasMRs,callsiteModCPts,fun);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">for</span>(MRSet::iterator ait = aliasMRs.begin(), eait = aliasMRs.end(); ait!=eait; ++ait)</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; <a class="code" href="classSVF_1_1MRGenerator.html#adf8d477e5f622855799842134145ecc4">callsiteToModMRsMap</a>[it-&gt;first].insert(*ait);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; }</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; }</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">for</span>(CallSiteToPointsToMap::const_iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#a34967cda51699f948a581b9f88fa3b10">callsiteToRefPointsToMap</a>.begin(),</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; eit = <a class="code" href="classSVF_1_1MRGenerator.html#a34967cda51699f948a581b9f88fa3b10">callsiteToRefPointsToMap</a>.end(); it!=eit; ++it)</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; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = it-&gt;first-&gt;getCaller();</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRSet</a> aliasMRs;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; callsiteRefCPts = it-&gt;second;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a02c60ceb7c9c37bcf83c739aa4083acc">getMRsForCallSiteRef</a>(aliasMRs, callsiteRefCPts, fun);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">for</span>(MRSet::iterator ait = aliasMRs.begin(), eait = aliasMRs.end(); ait!=eait; ++ait)</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; {</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a7a7ed21181c2486b60170a479a5a534e">callsiteToRefMRsMap</a>[it-&gt;first].insert(*ait);</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;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a02c60ceb7c9c37bcf83c739aa4083acc"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a02c60ceb7c9c37bcf83c739aa4083acc">SVF::MRGenerator::getMRsForCallSiteRef</a></div><div class="ttdeci">virtual void getMRsForCallSiteRef(MRSet &amp;aliasMRs, const NodeBS &amp;cpts, const SVFFunction *)</div><div class="ttdoc">Get memory regions for call site ref according to cpts. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00321">MemRegion.h:321</a></div></div>
2992
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
2993
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a34967cda51699f948a581b9f88fa3b10"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a34967cda51699f948a581b9f88fa3b10">SVF::MRGenerator::callsiteToRefPointsToMap</a></div><div class="ttdeci">CallSiteToPointsToMap callsiteToRefPointsToMap</div><div class="ttdoc">Map a callsite to it refs cpts set. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00212">MemRegion.h:212</a></div></div>
2994
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a0d8229b1f0b8428708e923d19096e4ba"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a0d8229b1f0b8428708e923d19096e4ba">SVF::MRGenerator::loadsToMRsMap</a></div><div class="ttdeci">LoadsToMRsMap loadsToMRsMap</div><div class="ttdoc">Map a load PAG Edge to its memory regions sets in order for inserting mus in Memory SSA...</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00200">MemRegion.h:200</a></div></div>
2995
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a7d86f708743a59aa31c0a9fd6de45dac"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7d86f708743a59aa31c0a9fd6de45dac">SVF::MRGenerator::storesToPointsToMap</a></div><div class="ttdeci">StoresToPointsToMap storesToPointsToMap</div><div class="ttdoc">Map a store PAG Edge to its CPts set map. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00210">MemRegion.h:210</a></div></div>
2996
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_ab8df193e84009e406c301731d17dc7b9"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ab8df193e84009e406c301731d17dc7b9">SVF::MRGenerator::callsiteToModPointsToMap</a></div><div class="ttdeci">CallSiteToPointsToMap callsiteToModPointsToMap</div><div class="ttdoc">Map a callsite to it mods cpts set. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00214">MemRegion.h:214</a></div></div>
2997
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a7a7ed21181c2486b60170a479a5a534e"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7a7ed21181c2486b60170a479a5a534e">SVF::MRGenerator::callsiteToRefMRsMap</a></div><div class="ttdeci">CallSiteToMRsMap callsiteToRefMRsMap</div><div class="ttdoc">Map a callsite to its refs regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00204">MemRegion.h:204</a></div></div>
2998
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_ad740188222439c089907fa6c6c951f02"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ad740188222439c089907fa6c6c951f02">SVF::MRGenerator::getAliasMemRegions</a></div><div class="ttdeci">virtual void getAliasMemRegions(MRSet &amp;aliasMRs, const NodeBS &amp;cpts, const SVFFunction *fun)</div><div class="ttdoc">Get all aliased mem regions from function fun according to cpts. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00304">MemRegion.h:304</a></div></div>
2999
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_adf8d477e5f622855799842134145ecc4"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#adf8d477e5f622855799842134145ecc4">SVF::MRGenerator::callsiteToModMRsMap</a></div><div class="ttdeci">CallSiteToMRsMap callsiteToModMRsMap</div><div class="ttdoc">Map a callsite to its mods regions. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00206">MemRegion.h:206</a></div></div>
3000
+ <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
3001
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_abe8d6217250d227e743e4b581497aae8"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#abe8d6217250d227e743e4b581497aae8">SVF::MRGenerator::getMRsForLoad</a></div><div class="ttdeci">virtual void getMRsForLoad(MRSet &amp;aliasMRs, const NodeBS &amp;cpts, const SVFFunction *)</div><div class="ttdoc">Get memory regions for a load statement according to cpts. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00314">MemRegion.h:314</a></div></div>
3002
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_af47e15d6b8c15d547a718f3577513975"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#af47e15d6b8c15d547a718f3577513975">SVF::MRGenerator::loadsToPointsToMap</a></div><div class="ttdeci">LoadsToPointsToMap loadsToPointsToMap</div><div class="ttdoc">Map a load PAG Edge to its CPts set map. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00208">MemRegion.h:208</a></div></div>
3003
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a255551fd3ff8fb33bcea93d0b00280b3"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a255551fd3ff8fb33bcea93d0b00280b3">SVF::MRGenerator::storesToMRsMap</a></div><div class="ttdeci">StoresToMRsMap storesToMRsMap</div><div class="ttdoc">Map a store PAG Edge to its memory regions sets in order for inserting chis in Memory SSA...</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00202">MemRegion.h:202</a></div></div>
3004
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a98ac3bf264e6a85d172c2c4264ea908f"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">SVF::MRGenerator::MRSet</a></div><div class="ttdeci">OrderedSet&lt; const MemRegion *, MemRegion::equalMemRegion &gt; MRSet</div><div class="ttdoc">Get typedef from Pointer Analysis. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00136">MemRegion.h:136</a></div></div>
3005
+ <div class="ttc" id="classSVF_1_1MRGenerator_html_a3121380139c7ae96d2045d66203253b6"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a3121380139c7ae96d2045d66203253b6">SVF::MRGenerator::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction(const PAGEdge *pagEdge) const</div><div class="ttdoc">Get the function which PAG Edge located. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00430">MemRegion.h:430</a></div></div>
2997
3006
  </div><!-- fragment -->
2998
3007
  </div>
2999
3008
  </div>
@@ -3020,7 +3029,7 @@ Private Attributes</h2></td></tr>
3020
3029
 
3021
3030
  <p>All global variable <a class="el" href="classSVF_1_1PAG.html">PAG</a> node ids. </p>
3022
3031
 
3023
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00243">243</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3032
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00238">238</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3024
3033
 
3025
3034
  </div>
3026
3035
  </div>
@@ -3046,7 +3055,7 @@ Private Attributes</h2></td></tr>
3046
3055
 
3047
3056
  <p>Map a pointer to its cached points-to chain;. </p>
3048
3057
 
3049
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00240">240</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3058
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00235">235</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3050
3059
 
3051
3060
  </div>
3052
3061
  </div>
@@ -3070,7 +3079,7 @@ Private Attributes</h2></td></tr>
3070
3079
  </table>
3071
3080
  </div><div class="memdoc">
3072
3081
 
3073
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00199">199</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3082
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00194">194</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3074
3083
 
3075
3084
  </div>
3076
3085
  </div>
@@ -3094,7 +3103,7 @@ Private Attributes</h2></td></tr>
3094
3103
  </table>
3095
3104
  </div><div class="memdoc">
3096
3105
 
3097
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00198">198</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3106
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00193">193</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3098
3107
 
3099
3108
  </div>
3100
3109
  </div>
@@ -3120,7 +3129,7 @@ Private Attributes</h2></td></tr>
3120
3129
 
3121
3130
  <p>Map a callsite to its mods regions. </p>
3122
3131
 
3123
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00211">211</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3132
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00206">206</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3124
3133
 
3125
3134
  </div>
3126
3135
  </div>
@@ -3134,7 +3143,7 @@ Private Attributes</h2></td></tr>
3134
3143
  <td class="mlabels-left">
3135
3144
  <table class="memname">
3136
3145
  <tr>
3137
- <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#ae73349361642cbc0c5f4be0b8bf96090">CallSiteToPointsToMap</a> SVF::MRGenerator::callsiteToModPointsToMap</td>
3146
+ <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a9d22e9d113393c536c5fe473fd76f388">CallSiteToPointsToMap</a> SVF::MRGenerator::callsiteToModPointsToMap</td>
3138
3147
  </tr>
3139
3148
  </table>
3140
3149
  </td>
@@ -3146,7 +3155,7 @@ Private Attributes</h2></td></tr>
3146
3155
 
3147
3156
  <p>Map a callsite to it mods cpts set. </p>
3148
3157
 
3149
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00219">219</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3158
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00214">214</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3150
3159
 
3151
3160
  </div>
3152
3161
  </div>
@@ -3172,7 +3181,7 @@ Private Attributes</h2></td></tr>
3172
3181
 
3173
3182
  <p>Map a callsite to its refs regions. </p>
3174
3183
 
3175
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00209">209</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3184
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00204">204</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3176
3185
 
3177
3186
  </div>
3178
3187
  </div>
@@ -3186,7 +3195,7 @@ Private Attributes</h2></td></tr>
3186
3195
  <td class="mlabels-left">
3187
3196
  <table class="memname">
3188
3197
  <tr>
3189
- <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#ae73349361642cbc0c5f4be0b8bf96090">CallSiteToPointsToMap</a> SVF::MRGenerator::callsiteToRefPointsToMap</td>
3198
+ <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a9d22e9d113393c536c5fe473fd76f388">CallSiteToPointsToMap</a> SVF::MRGenerator::callsiteToRefPointsToMap</td>
3190
3199
  </tr>
3191
3200
  </table>
3192
3201
  </td>
@@ -3198,7 +3207,7 @@ Private Attributes</h2></td></tr>
3198
3207
 
3199
3208
  <p>Map a callsite to it refs cpts set. </p>
3200
3209
 
3201
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00217">217</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3210
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00212">212</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3202
3211
 
3203
3212
  </div>
3204
3213
  </div>
@@ -3212,7 +3221,7 @@ Private Attributes</h2></td></tr>
3212
3221
  <td class="mlabels-left">
3213
3222
  <table class="memname">
3214
3223
  <tr>
3215
- <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a429b45a55b948d6d1ffd73ea0ac6c04c">PtsToRepPtsSetMap</a> SVF::MRGenerator::cptsToRepCPtsMap</td>
3224
+ <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a665836fd866c6393fc4a251eb4929dae">PtsToRepPtsSetMap</a> SVF::MRGenerator::cptsToRepCPtsMap</td>
3216
3225
  </tr>
3217
3226
  </table>
3218
3227
  </td>
@@ -3224,12 +3233,12 @@ Private Attributes</h2></td></tr>
3224
3233
 
3225
3234
  <p>Map a condition pts to its rep conditional pts (super set points-to) </p>
3226
3235
 
3227
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00285">285</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3236
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00275">275</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3228
3237
 
3229
3238
  </div>
3230
3239
  </div>
3231
- <a id="a145cccd6355dd479e8a0c744584cef9a"></a>
3232
- <h2 class="memtitle"><span class="permalink"><a href="#a145cccd6355dd479e8a0c744584cef9a">&#9670;&nbsp;</a></span>csToCallSiteArgsPtsMap</h2>
3240
+ <a id="afe91b57b451d7788364493549e015acf"></a>
3241
+ <h2 class="memtitle"><span class="permalink"><a href="#afe91b57b451d7788364493549e015acf">&#9670;&nbsp;</a></span>csToCallSiteArgsPtsMap</h2>
3233
3242
 
3234
3243
  <div class="memitem">
3235
3244
  <div class="memproto">
@@ -3238,7 +3247,7 @@ Private Attributes</h2></td></tr>
3238
3247
  <td class="mlabels-left">
3239
3248
  <table class="memname">
3240
3249
  <tr>
3241
- <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a55ca7850e00f57a8a4b83bc969493046">CallSiteToNodeBSMap</a> SVF::MRGenerator::csToCallSiteArgsPtsMap</td>
3250
+ <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a9d22e9d113393c536c5fe473fd76f388">CallSiteToPointsToMap</a> SVF::MRGenerator::csToCallSiteArgsPtsMap</td>
3242
3251
  </tr>
3243
3252
  </table>
3244
3253
  </td>
@@ -3250,12 +3259,12 @@ Private Attributes</h2></td></tr>
3250
3259
 
3251
3260
  <p>Map a callsite to all its object might pass into its callees. </p>
3252
3261
 
3253
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00235">235</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3262
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00230">230</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3254
3263
 
3255
3264
  </div>
3256
3265
  </div>
3257
- <a id="a9368636daea4542fa36fff822ff39104"></a>
3258
- <h2 class="memtitle"><span class="permalink"><a href="#a9368636daea4542fa36fff822ff39104">&#9670;&nbsp;</a></span>csToCallSiteRetPtsMap</h2>
3266
+ <a id="a21550f978f42ac3cbb32cbc426ff5cb1"></a>
3267
+ <h2 class="memtitle"><span class="permalink"><a href="#a21550f978f42ac3cbb32cbc426ff5cb1">&#9670;&nbsp;</a></span>csToCallSiteRetPtsMap</h2>
3259
3268
 
3260
3269
  <div class="memitem">
3261
3270
  <div class="memproto">
@@ -3264,7 +3273,7 @@ Private Attributes</h2></td></tr>
3264
3273
  <td class="mlabels-left">
3265
3274
  <table class="memname">
3266
3275
  <tr>
3267
- <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a55ca7850e00f57a8a4b83bc969493046">CallSiteToNodeBSMap</a> SVF::MRGenerator::csToCallSiteRetPtsMap</td>
3276
+ <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a9d22e9d113393c536c5fe473fd76f388">CallSiteToPointsToMap</a> SVF::MRGenerator::csToCallSiteRetPtsMap</td>
3268
3277
  </tr>
3269
3278
  </table>
3270
3279
  </td>
@@ -3276,12 +3285,12 @@ Private Attributes</h2></td></tr>
3276
3285
 
3277
3286
  <p>Map a callsite to all its object might return from its callees. </p>
3278
3287
 
3279
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00237">237</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3288
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00232">232</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3280
3289
 
3281
3290
  </div>
3282
3291
  </div>
3283
- <a id="a72222bae993142be1881c34660646b82"></a>
3284
- <h2 class="memtitle"><span class="permalink"><a href="#a72222bae993142be1881c34660646b82">&#9670;&nbsp;</a></span>csToModsMap</h2>
3292
+ <a id="a603f993995e7d6961e203a195bb56029"></a>
3293
+ <h2 class="memtitle"><span class="permalink"><a href="#a603f993995e7d6961e203a195bb56029">&#9670;&nbsp;</a></span>csToModsMap</h2>
3285
3294
 
3286
3295
  <div class="memitem">
3287
3296
  <div class="memproto">
@@ -3290,7 +3299,7 @@ Private Attributes</h2></td></tr>
3290
3299
  <td class="mlabels-left">
3291
3300
  <table class="memname">
3292
3301
  <tr>
3293
- <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a55ca7850e00f57a8a4b83bc969493046">CallSiteToNodeBSMap</a> SVF::MRGenerator::csToModsMap</td>
3302
+ <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a9d22e9d113393c536c5fe473fd76f388">CallSiteToPointsToMap</a> SVF::MRGenerator::csToModsMap</td>
3294
3303
  </tr>
3295
3304
  </table>
3296
3305
  </td>
@@ -3302,12 +3311,12 @@ Private Attributes</h2></td></tr>
3302
3311
 
3303
3312
  <p>Map a callsite to its indirect defs of memory objects. </p>
3304
3313
 
3305
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00233">233</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3314
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00228">228</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3306
3315
 
3307
3316
  </div>
3308
3317
  </div>
3309
- <a id="a08779053af9db71ba0bc24710a7e198c"></a>
3310
- <h2 class="memtitle"><span class="permalink"><a href="#a08779053af9db71ba0bc24710a7e198c">&#9670;&nbsp;</a></span>csToRefsMap</h2>
3318
+ <a id="ac7b5ca3fd950e1a940f875ac135640f6"></a>
3319
+ <h2 class="memtitle"><span class="permalink"><a href="#ac7b5ca3fd950e1a940f875ac135640f6">&#9670;&nbsp;</a></span>csToRefsMap</h2>
3311
3320
 
3312
3321
  <div class="memitem">
3313
3322
  <div class="memproto">
@@ -3316,7 +3325,7 @@ Private Attributes</h2></td></tr>
3316
3325
  <td class="mlabels-left">
3317
3326
  <table class="memname">
3318
3327
  <tr>
3319
- <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a55ca7850e00f57a8a4b83bc969493046">CallSiteToNodeBSMap</a> SVF::MRGenerator::csToRefsMap</td>
3328
+ <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a9d22e9d113393c536c5fe473fd76f388">CallSiteToPointsToMap</a> SVF::MRGenerator::csToRefsMap</td>
3320
3329
  </tr>
3321
3330
  </table>
3322
3331
  </td>
@@ -3328,12 +3337,12 @@ Private Attributes</h2></td></tr>
3328
3337
 
3329
3338
  <p>Map a callsite to its indirect uses of memory objects. </p>
3330
3339
 
3331
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00231">231</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3340
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00226">226</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3332
3341
 
3333
3342
  </div>
3334
3343
  </div>
3335
- <a id="aeb185d6d9c7bfe4b98c7440db6b8bbc4"></a>
3336
- <h2 class="memtitle"><span class="permalink"><a href="#aeb185d6d9c7bfe4b98c7440db6b8bbc4">&#9670;&nbsp;</a></span>funToModsMap</h2>
3344
+ <a id="a2c94bfa19ad8d1d6360b12693c8b891d"></a>
3345
+ <h2 class="memtitle"><span class="permalink"><a href="#a2c94bfa19ad8d1d6360b12693c8b891d">&#9670;&nbsp;</a></span>funToModsMap</h2>
3337
3346
 
3338
3347
  <div class="memitem">
3339
3348
  <div class="memproto">
@@ -3342,7 +3351,7 @@ Private Attributes</h2></td></tr>
3342
3351
  <td class="mlabels-left">
3343
3352
  <table class="memname">
3344
3353
  <tr>
3345
- <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#ab01e492f002c73e2c89eb0b4c8f9647d">FunToNodeBSMap</a> SVF::MRGenerator::funToModsMap</td>
3354
+ <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#ad492e2940936fc7df06127f0cb94d47a">FunToPointsToMap</a> SVF::MRGenerator::funToModsMap</td>
3346
3355
  </tr>
3347
3356
  </table>
3348
3357
  </td>
@@ -3354,7 +3363,7 @@ Private Attributes</h2></td></tr>
3354
3363
 
3355
3364
  <p>Map a function to its indirect defs of memory objects. </p>
3356
3365
 
3357
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00229">229</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3366
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00224">224</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3358
3367
 
3359
3368
  </div>
3360
3369
  </div>
@@ -3380,12 +3389,12 @@ Private Attributes</h2></td></tr>
3380
3389
 
3381
3390
  <p>Map a function to all its memory regions. </p>
3382
3391
 
3383
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00203">203</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3392
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00198">198</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3384
3393
 
3385
3394
  </div>
3386
3395
  </div>
3387
- <a id="acaf48288039d19bf0bb9f2e506fbfd8d"></a>
3388
- <h2 class="memtitle"><span class="permalink"><a href="#acaf48288039d19bf0bb9f2e506fbfd8d">&#9670;&nbsp;</a></span>funToPointsToMap</h2>
3396
+ <a id="a05c7a5ddbe3079f63be76c35298d1c2b"></a>
3397
+ <h2 class="memtitle"><span class="permalink"><a href="#a05c7a5ddbe3079f63be76c35298d1c2b">&#9670;&nbsp;</a></span>funToPointsToMap</h2>
3389
3398
 
3390
3399
  <div class="memitem">
3391
3400
  <div class="memproto">
@@ -3394,7 +3403,7 @@ Private Attributes</h2></td></tr>
3394
3403
  <td class="mlabels-left">
3395
3404
  <table class="memname">
3396
3405
  <tr>
3397
- <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a71b584c7e0feb3014ad5f74eb31467bb">FunToPointsToMap</a> SVF::MRGenerator::funToPointsToMap</td>
3406
+ <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a6b8bbb60126105cc77c1a6a4c46677fd">FunToPointsTosMap</a> SVF::MRGenerator::funToPointsToMap</td>
3398
3407
  </tr>
3399
3408
  </table>
3400
3409
  </td>
@@ -3406,12 +3415,12 @@ Private Attributes</h2></td></tr>
3406
3415
 
3407
3416
  <p>Map a function to all of its conditional points-to sets. </p>
3408
3417
 
3409
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00222">222</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3418
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00217">217</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3410
3419
 
3411
3420
  </div>
3412
3421
  </div>
3413
- <a id="afe018918c8acc83cd128b4c56ff42075"></a>
3414
- <h2 class="memtitle"><span class="permalink"><a href="#afe018918c8acc83cd128b4c56ff42075">&#9670;&nbsp;</a></span>funToRefsMap</h2>
3422
+ <a id="af6d58e2971c4a8d3ee03f9dfd9072a3a"></a>
3423
+ <h2 class="memtitle"><span class="permalink"><a href="#af6d58e2971c4a8d3ee03f9dfd9072a3a">&#9670;&nbsp;</a></span>funToRefsMap</h2>
3415
3424
 
3416
3425
  <div class="memitem">
3417
3426
  <div class="memproto">
@@ -3420,7 +3429,7 @@ Private Attributes</h2></td></tr>
3420
3429
  <td class="mlabels-left">
3421
3430
  <table class="memname">
3422
3431
  <tr>
3423
- <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#ab01e492f002c73e2c89eb0b4c8f9647d">FunToNodeBSMap</a> SVF::MRGenerator::funToRefsMap</td>
3432
+ <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#ad492e2940936fc7df06127f0cb94d47a">FunToPointsToMap</a> SVF::MRGenerator::funToRefsMap</td>
3424
3433
  </tr>
3425
3434
  </table>
3426
3435
  </td>
@@ -3432,7 +3441,7 @@ Private Attributes</h2></td></tr>
3432
3441
 
3433
3442
  <p>Map a function to its indirect uses of memory objects. </p>
3434
3443
 
3435
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00227">227</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3444
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00222">222</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3436
3445
 
3437
3446
  </div>
3438
3447
  </div>
@@ -3458,7 +3467,7 @@ Private Attributes</h2></td></tr>
3458
3467
 
3459
3468
  <p>Map a load <a class="el" href="classSVF_1_1PAG.html">PAG</a> Edge to its memory regions sets in order for inserting mus in Memory SSA. </p>
3460
3469
 
3461
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00205">205</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3470
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00200">200</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3462
3471
 
3463
3472
  </div>
3464
3473
  </div>
@@ -3472,7 +3481,7 @@ Private Attributes</h2></td></tr>
3472
3481
  <td class="mlabels-left">
3473
3482
  <table class="memname">
3474
3483
  <tr>
3475
- <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#af500450901135fd31ceb2ab497ca1086">LoadsToPointsToMap</a> SVF::MRGenerator::loadsToPointsToMap</td>
3484
+ <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a7b9b1c326d075a9be473680fef6a9616">LoadsToPointsToMap</a> SVF::MRGenerator::loadsToPointsToMap</td>
3476
3485
  </tr>
3477
3486
  </table>
3478
3487
  </td>
@@ -3484,7 +3493,7 @@ Private Attributes</h2></td></tr>
3484
3493
 
3485
3494
  <p>Map a load <a class="el" href="classSVF_1_1PAG.html">PAG</a> Edge to its CPts set map. </p>
3486
3495
 
3487
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00213">213</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3496
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00208">208</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3488
3497
 
3489
3498
  </div>
3490
3499
  </div>
@@ -3510,7 +3519,7 @@ Private Attributes</h2></td></tr>
3510
3519
 
3511
3520
  <p>A set of All memory regions. </p>
3512
3521
 
3513
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00283">283</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3522
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00273">273</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3514
3523
 
3515
3524
  </div>
3516
3525
  </div>
@@ -3536,7 +3545,7 @@ Private Attributes</h2></td></tr>
3536
3545
 
3537
3546
  <p>Map a <a class="el" href="classSVF_1_1PAGEdge.html">PAGEdge</a> to its fun. </p>
3538
3547
 
3539
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00224">224</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3548
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00219">219</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3540
3549
 
3541
3550
  </div>
3542
3551
  </div>
@@ -3560,7 +3569,7 @@ Private Attributes</h2></td></tr>
3560
3569
  </table>
3561
3570
  </div><div class="memdoc">
3562
3571
 
3563
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00197">197</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3572
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00192">192</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3564
3573
 
3565
3574
  </div>
3566
3575
  </div>
@@ -3584,7 +3593,7 @@ Private Attributes</h2></td></tr>
3584
3593
  </table>
3585
3594
  </div><div class="memdoc">
3586
3595
 
3587
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00200">200</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3596
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00195">195</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3588
3597
 
3589
3598
  </div>
3590
3599
  </div>
@@ -3610,7 +3619,7 @@ Private Attributes</h2></td></tr>
3610
3619
 
3611
3620
  <p>Map a store <a class="el" href="classSVF_1_1PAG.html">PAG</a> Edge to its memory regions sets in order for inserting chis in Memory SSA. </p>
3612
3621
 
3613
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00207">207</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3622
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00202">202</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3614
3623
 
3615
3624
  </div>
3616
3625
  </div>
@@ -3624,7 +3633,7 @@ Private Attributes</h2></td></tr>
3624
3633
  <td class="mlabels-left">
3625
3634
  <table class="memname">
3626
3635
  <tr>
3627
- <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a4e246650818afd8be99a5ed6e23c4cd7">StoresToPointsToMap</a> SVF::MRGenerator::storesToPointsToMap</td>
3636
+ <td class="memname"><a class="el" href="classSVF_1_1MRGenerator.html#a45e786ca09aa6cbfcf17d8e5a166a801">StoresToPointsToMap</a> SVF::MRGenerator::storesToPointsToMap</td>
3628
3637
  </tr>
3629
3638
  </table>
3630
3639
  </td>
@@ -3636,7 +3645,7 @@ Private Attributes</h2></td></tr>
3636
3645
 
3637
3646
  <p>Map a store <a class="el" href="classSVF_1_1PAG.html">PAG</a> Edge to its CPts set map. </p>
3638
3647
 
3639
- <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00215">215</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3648
+ <p class="definition">Definition at line <a class="el" href="MemRegion_8h_source.html#l00210">210</a> of file <a class="el" href="MemRegion_8h_source.html">MemRegion.h</a>.</p>
3640
3649
 
3641
3650
  </div>
3642
3651
  </div>