svf-tools 1.0.613 → 1.0.615

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (542) hide show
  1. package/CMakeLists.txt +13 -0
  2. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +7 -6
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +15 -15
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +22 -22
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +16 -16
  9. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +6 -6
  10. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +7 -7
  11. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +6 -6
  12. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +1 -1
  14. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +5 -5
  15. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +11 -11
  16. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +1 -1
  17. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +5 -5
  19. package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
  20. package/SVF-doxygen/html/html/CSC_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +14 -14
  22. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
  24. package/SVF-doxygen/html/html/ConsG_8h_source.html +9 -9
  25. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +18 -18
  26. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +9 -9
  27. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +4 -4
  28. package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
  29. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +8 -8
  30. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +4 -6
  32. package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
  33. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +9 -9
  34. package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
  35. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +22 -22
  36. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +21 -21
  40. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
  41. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  42. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +10 -10
  43. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
  44. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +13 -13
  45. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +27 -28
  46. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +65 -65
  47. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
  48. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  49. package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
  50. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  51. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
  52. package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
  53. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +6 -6
  54. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h_source.html +3 -3
  55. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +24 -29
  56. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +8 -8
  57. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  58. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
  59. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
  60. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +9 -9
  61. package/SVF-doxygen/html/html/LocationSet_8h_source.html +3 -3
  62. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +5 -5
  63. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +3 -3
  64. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
  66. package/SVF-doxygen/html/html/MHP_8h_source.html +5 -5
  67. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +17 -17
  68. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +8 -8
  69. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
  70. package/SVF-doxygen/html/html/MTA_8cpp_source.html +12 -17
  71. package/SVF-doxygen/html/html/MTA_8h_source.html +3 -4
  72. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +10 -10
  73. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +34 -34
  75. package/SVF-doxygen/html/html/MemRegion_8h_source.html +7 -7
  76. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +16 -15
  77. package/SVF-doxygen/html/html/MemSSA_8h_source.html +53 -52
  78. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +7 -8
  79. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +7 -7
  80. package/SVF-doxygen/html/html/Options_8cpp_source.html +52 -53
  81. package/SVF-doxygen/html/html/Options_8h_source.html +53 -54
  82. package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
  83. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +3 -3
  84. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +3 -3
  86. package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
  87. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +33 -33
  88. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +91 -95
  89. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +31 -39
  90. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +85 -92
  91. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +20 -20
  92. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +16 -16
  93. package/SVF-doxygen/html/html/PointsTo_8cpp.html +1 -0
  94. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +51 -51
  95. package/SVF-doxygen/html/html/PointsTo_8h_source.html +38 -38
  96. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +6 -6
  97. package/SVF-doxygen/html/html/SCC_8h_source.html +4 -4
  98. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +11 -22
  99. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +14 -17
  100. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  101. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  102. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -7
  103. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +21 -19
  104. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +5 -5
  105. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +18 -18
  106. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +49 -62
  107. package/SVF-doxygen/html/html/SVFG_8h_source.html +45 -45
  108. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +12 -12
  109. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +8 -8
  110. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +3 -3
  111. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +10 -16
  112. package/SVF-doxygen/html/html/SVFIR_8h_source.html +83 -83
  113. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +19 -19
  114. package/SVF-doxygen/html/html/SVFType_8h.html +22 -22
  115. package/SVF-doxygen/html/html/SVFType_8h_source.html +76 -77
  116. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +5 -5
  117. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +11 -11
  118. package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +5 -5
  119. package/SVF-doxygen/html/html/SVFValue_8h_source.html +6 -6
  120. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  121. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +3 -3
  122. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +6 -6
  123. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +4 -4
  124. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +15 -15
  125. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -3
  126. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +69 -71
  127. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
  128. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +39 -39
  129. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  130. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
  131. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +49 -51
  132. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +13 -13
  133. package/SVF-doxygen/html/html/TCT_8cpp_source.html +4 -4
  134. package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
  135. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +8 -8
  136. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +3 -3
  137. package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
  138. package/SVF-doxygen/html/html/VFG_8cpp_source.html +17 -17
  139. package/SVF-doxygen/html/html/VFG_8h_source.html +5 -5
  140. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +8 -8
  141. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +33 -33
  142. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
  143. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +11 -11
  144. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +12 -12
  145. package/SVF-doxygen/html/html/WPAPass_8h_source.html +2 -2
  146. package/SVF-doxygen/html/html/WPASolver_8h_source.html +25 -25
  147. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
  148. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -5
  149. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -5
  150. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +2 -2
  151. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +2 -2
  152. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +2 -2
  153. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +187 -188
  155. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +104 -107
  156. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +163 -164
  157. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +47 -50
  158. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +194 -195
  159. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +45 -48
  160. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +204 -205
  161. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +35 -38
  162. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +17 -17
  163. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +191 -192
  164. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +29 -32
  165. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +122 -123
  166. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +158 -219
  167. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -2
  168. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +137 -138
  169. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +57 -49
  170. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +138 -139
  171. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +34 -34
  172. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +7 -7
  173. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +140 -141
  175. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +30 -30
  176. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +8 -8
  177. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +2 -2
  178. package/SVF-doxygen/html/html/classSVF_1_1CallSite-members.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +10 -10
  180. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -2
  181. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +114 -114
  182. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +6 -6
  183. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +8 -8
  184. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +28 -28
  185. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
  186. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +6 -6
  187. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +4 -4
  188. package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +17 -31
  190. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +10 -10
  191. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +40 -40
  192. package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +15 -15
  193. package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +4 -4
  194. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +11 -11
  195. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
  196. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
  197. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +2 -2
  198. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +228 -229
  200. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +62 -65
  201. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
  202. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +17 -17
  203. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +194 -195
  204. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +55 -55
  205. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +219 -220
  206. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +335 -342
  207. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +57 -57
  208. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +6 -6
  209. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +2 -2
  210. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +2 -2
  211. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
  212. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
  213. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +2 -2
  214. package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +1 -1
  215. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +6 -6
  216. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +2 -2
  217. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +4 -4
  218. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +4 -4
  219. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
  220. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +8 -8
  221. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis-members.html +1 -1
  222. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +20 -14
  223. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +4 -4
  224. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +108 -94
  225. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
  226. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +36 -36
  227. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +2 -2
  228. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +12 -12
  229. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +25 -25
  230. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +3 -3
  231. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +26 -26
  232. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +87 -87
  233. package/SVF-doxygen/html/html/classSVF_1_1MTA-members.html +2 -2
  234. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +27 -33
  235. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +21 -21
  236. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +14 -14
  237. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder-members.html +41 -43
  238. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +57 -80
  239. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
  240. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +54 -54
  241. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +4 -4
  242. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +4 -3
  243. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +170 -143
  244. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +16 -16
  245. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +2 -2
  246. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData-members.html +3 -3
  247. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +13 -15
  248. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +7 -7
  249. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +2 -2
  250. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +8 -8
  251. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +17 -18
  253. package/SVF-doxygen/html/html/classSVF_1_1Options.html +53 -79
  254. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  255. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
  256. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -2
  257. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +3 -3
  258. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +3 -3
  259. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +4 -4
  260. package/SVF-doxygen/html/html/classSVF_1_1PTData.html +11 -11
  261. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData-members.html +28 -28
  262. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +174 -177
  263. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData-members.html +17 -17
  264. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +99 -102
  265. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData-members.html +30 -30
  266. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +125 -127
  267. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData-members.html +13 -13
  268. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +83 -86
  269. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +1 -1
  270. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +122 -122
  271. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData-members.html +22 -22
  272. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +137 -140
  273. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +56 -56
  274. package/SVF-doxygen/html/html/classSVF_1_1PointsTo-members.html +16 -16
  275. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +183 -178
  276. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator-members.html +7 -7
  277. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +87 -65
  278. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +6 -6
  279. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +3 -3
  280. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +1 -1
  281. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument-members.html +1 -1
  282. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument.html +4 -4
  283. package/SVF-doxygen/html/html/classSVF_1_1SVFArrayType.html +6 -6
  284. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +3 -3
  285. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +13 -16
  286. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue-members.html +1 -1
  287. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue.html +2 -2
  288. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst-members.html +1 -1
  289. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +2 -2
  290. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant-members.html +1 -1
  291. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant.html +3 -3
  292. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData-members.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData.html +2 -2
  294. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP-members.html +1 -1
  295. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP.html +2 -2
  296. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt-members.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt.html +2 -2
  298. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr-members.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr.html +2 -2
  300. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +1 -1
  301. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +5 -7
  302. package/SVF-doxygen/html/html/classSVF_1_1SVFFunctionType.html +9 -9
  303. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +2 -2
  304. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +211 -236
  305. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder-members.html +7 -9
  306. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +50 -138
  307. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +9 -9
  308. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +82 -82
  309. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +5 -5
  310. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue-members.html +1 -1
  311. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +2 -2
  312. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
  313. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +203 -215
  314. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +13 -13
  315. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +79 -79
  316. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction-members.html +1 -1
  317. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +4 -4
  318. package/SVF-doxygen/html/html/classSVF_1_1SVFIntergerType.html +5 -5
  319. package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo-members.html +1 -1
  320. package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo.html +5 -5
  321. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue-members.html +1 -1
  322. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue.html +2 -2
  323. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +0 -4
  324. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +5 -5
  325. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue-members.html +1 -1
  326. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue.html +3 -3
  327. package/SVF-doxygen/html/html/classSVF_1_1SVFPointerType.html +9 -9
  328. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +19 -19
  329. package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +5 -5
  330. package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +38 -38
  331. package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +1 -1
  332. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +4 -5
  333. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +1 -1
  334. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst-members.html +1 -1
  335. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst.html +2 -2
  336. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +9 -9
  337. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +12 -14
  338. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +42 -68
  339. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector-members.html +1 -1
  340. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +108 -109
  341. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator-members.html +1 -1
  342. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +50 -50
  343. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +6 -6
  344. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +146 -146
  345. package/SVF-doxygen/html/html/classSVF_1_1StInfo-members.html +5 -5
  346. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +48 -61
  347. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +178 -179
  348. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +35 -38
  349. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
  350. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +20 -20
  351. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +42 -46
  352. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +10 -10
  353. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +8 -8
  354. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +169 -170
  355. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +31 -34
  356. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
  357. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +28 -28
  358. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +263 -264
  359. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +112 -115
  360. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +41 -41
  361. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
  362. package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +9 -9
  363. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver-members.html +2 -2
  364. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +9 -9
  365. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver-members.html +2 -2
  366. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +15 -15
  367. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +25 -25
  368. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver-members.html +2 -2
  369. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +17 -17
  370. package/SVF-doxygen/html/html/classSVF_1_1WPASolver-members.html +2 -2
  371. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +76 -81
  372. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +2 -2
  373. package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
  374. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  375. package/SVF-doxygen/html/html/functions.html +1 -1
  376. package/SVF-doxygen/html/html/functions_0x7e.html +16 -16
  377. package/SVF-doxygen/html/html/functions_a.html +7 -7
  378. package/SVF-doxygen/html/html/functions_b.html +6 -6
  379. package/SVF-doxygen/html/html/functions_c.html +27 -27
  380. package/SVF-doxygen/html/html/functions_d.html +10 -11
  381. package/SVF-doxygen/html/html/functions_e.html +2 -2
  382. package/SVF-doxygen/html/html/functions_f.html +6 -6
  383. package/SVF-doxygen/html/html/functions_func.html +6 -6
  384. package/SVF-doxygen/html/html/functions_func_0x7e.html +16 -16
  385. package/SVF-doxygen/html/html/functions_func_b.html +6 -6
  386. package/SVF-doxygen/html/html/functions_func_c.html +27 -27
  387. package/SVF-doxygen/html/html/functions_func_d.html +10 -11
  388. package/SVF-doxygen/html/html/functions_func_e.html +2 -2
  389. package/SVF-doxygen/html/html/functions_func_f.html +5 -5
  390. package/SVF-doxygen/html/html/functions_func_g.html +22 -22
  391. package/SVF-doxygen/html/html/functions_func_h.html +3 -3
  392. package/SVF-doxygen/html/html/functions_func_i.html +3 -3
  393. package/SVF-doxygen/html/html/functions_func_o.html +3 -3
  394. package/SVF-doxygen/html/html/functions_func_p.html +5 -5
  395. package/SVF-doxygen/html/html/functions_func_r.html +5 -8
  396. package/SVF-doxygen/html/html/functions_func_s.html +6 -6
  397. package/SVF-doxygen/html/html/functions_func_t.html +1 -1
  398. package/SVF-doxygen/html/html/functions_func_u.html +23 -23
  399. package/SVF-doxygen/html/html/functions_g.html +25 -28
  400. package/SVF-doxygen/html/html/functions_h.html +3 -3
  401. package/SVF-doxygen/html/html/functions_i.html +6 -6
  402. package/SVF-doxygen/html/html/functions_m.html +1 -1
  403. package/SVF-doxygen/html/html/functions_o.html +13 -13
  404. package/SVF-doxygen/html/html/functions_p.html +19 -19
  405. package/SVF-doxygen/html/html/functions_r.html +11 -12
  406. package/SVF-doxygen/html/html/functions_s.html +33 -36
  407. package/SVF-doxygen/html/html/functions_t.html +12 -12
  408. package/SVF-doxygen/html/html/functions_type_t.html +1 -1
  409. package/SVF-doxygen/html/html/functions_u.html +26 -23
  410. package/SVF-doxygen/html/html/functions_v.html +6 -6
  411. package/SVF-doxygen/html/html/functions_vars.html +1 -1
  412. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  413. package/SVF-doxygen/html/html/functions_vars_g.html +0 -3
  414. package/SVF-doxygen/html/html/functions_vars_i.html +1 -1
  415. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  416. package/SVF-doxygen/html/html/functions_vars_p.html +2 -2
  417. package/SVF-doxygen/html/html/functions_vars_s.html +5 -8
  418. package/SVF-doxygen/html/html/functions_vars_t.html +1 -1
  419. package/SVF-doxygen/html/html/functions_vars_u.html +3 -0
  420. package/SVF-doxygen/html/html/functions_w.html +3 -7
  421. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  422. package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
  423. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  424. package/SVF-doxygen/html/html/namespaceSVF.html +35 -35
  425. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +2 -2
  426. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +4 -4
  427. package/SVF-doxygen/html/html/saber_8cpp.html +1 -5
  428. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -5
  429. package/SVF-doxygen/html/html/search/all_0.js +1 -1
  430. package/SVF-doxygen/html/html/search/all_1.js +4 -4
  431. package/SVF-doxygen/html/html/search/all_10.js +15 -15
  432. package/SVF-doxygen/html/html/search/all_11.js +1 -2
  433. package/SVF-doxygen/html/html/search/all_12.js +20 -21
  434. package/SVF-doxygen/html/html/search/all_13.js +8 -8
  435. package/SVF-doxygen/html/html/search/all_14.js +13 -12
  436. package/SVF-doxygen/html/html/search/all_15.js +4 -4
  437. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  438. package/SVF-doxygen/html/html/search/all_19.js +16 -16
  439. package/SVF-doxygen/html/html/search/all_2.js +6 -6
  440. package/SVF-doxygen/html/html/search/all_3.js +14 -14
  441. package/SVF-doxygen/html/html/search/all_4.js +5 -5
  442. package/SVF-doxygen/html/html/search/all_5.js +2 -2
  443. package/SVF-doxygen/html/html/search/all_6.js +5 -5
  444. package/SVF-doxygen/html/html/search/all_7.js +11 -12
  445. package/SVF-doxygen/html/html/search/all_8.js +3 -3
  446. package/SVF-doxygen/html/html/search/all_9.js +4 -4
  447. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  448. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  449. package/SVF-doxygen/html/html/search/all_d.js +3 -3
  450. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  451. package/SVF-doxygen/html/html/search/all_f.js +5 -5
  452. package/SVF-doxygen/html/html/search/functions_0.js +4 -4
  453. package/SVF-doxygen/html/html/search/functions_1.js +6 -6
  454. package/SVF-doxygen/html/html/search/functions_10.js +1 -2
  455. package/SVF-doxygen/html/html/search/functions_11.js +11 -11
  456. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  457. package/SVF-doxygen/html/html/search/functions_13.js +12 -12
  458. package/SVF-doxygen/html/html/search/functions_17.js +16 -16
  459. package/SVF-doxygen/html/html/search/functions_2.js +14 -14
  460. package/SVF-doxygen/html/html/search/functions_3.js +5 -5
  461. package/SVF-doxygen/html/html/search/functions_4.js +2 -2
  462. package/SVF-doxygen/html/html/search/functions_5.js +4 -4
  463. package/SVF-doxygen/html/html/search/functions_6.js +11 -11
  464. package/SVF-doxygen/html/html/search/functions_7.js +3 -3
  465. package/SVF-doxygen/html/html/search/functions_8.js +3 -3
  466. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  467. package/SVF-doxygen/html/html/search/functions_e.js +3 -3
  468. package/SVF-doxygen/html/html/search/functions_f.js +5 -5
  469. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  470. package/SVF-doxygen/html/html/search/variables_0.js +1 -1
  471. package/SVF-doxygen/html/html/search/variables_10.js +2 -2
  472. package/SVF-doxygen/html/html/search/variables_12.js +5 -6
  473. package/SVF-doxygen/html/html/search/variables_13.js +3 -3
  474. package/SVF-doxygen/html/html/search/variables_14.js +1 -0
  475. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  476. package/SVF-doxygen/html/html/search/variables_7.js +0 -1
  477. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  478. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  479. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  480. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +14 -14
  481. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
  482. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  483. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
  484. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
  485. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  486. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement-members.html +1 -1
  487. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +47 -57
  488. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  489. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1PointsTo_01_4.html +1 -1
  490. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +5 -5
  491. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  492. package/SVF-doxygen/html/html/svf-ex_8cpp.html +6 -7
  493. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -7
  494. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  495. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  496. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  497. package/build.sh +2 -2
  498. package/include/DDA/DDAPass.h +1 -1
  499. package/include/DDA/FlowDDA.h +1 -1
  500. package/include/Graphs/ICFG.h +1 -1
  501. package/include/Graphs/SVFG.h +3 -4
  502. package/include/Graphs/SVFGOPT.h +7 -7
  503. package/include/MSSA/MemSSA.h +2 -0
  504. package/include/MSSA/SVFGBuilder.h +5 -14
  505. package/include/MTA/MTA.h +2 -2
  506. package/include/MemoryModel/MutablePointsToDS.h +3 -3
  507. package/include/MemoryModel/PersistentPointsToCache.h +7 -8
  508. package/include/MemoryModel/PersistentPointsToDS.h +93 -93
  509. package/include/MemoryModel/PointerAnalysisImpl.h +17 -28
  510. package/include/MemoryModel/PointsTo.h +24 -24
  511. package/include/SABER/SrcSnkDDA.h +10 -13
  512. package/include/SVF-LLVM/LLVMLoopAnalysis.h +2 -1
  513. package/include/SVF-LLVM/LLVMModule.h +6 -6
  514. package/include/SVFIR/SVFIR.h +3 -5
  515. package/include/SVFIR/SVFType.h +6 -8
  516. package/include/SVFIR/SVFValue.h +5 -5
  517. package/include/Util/Options.h +0 -1
  518. package/include/Util/SparseBitVector.h +6 -14
  519. package/include/WPA/FlowSensitive.h +13 -20
  520. package/include/WPA/WPASolver.h +5 -9
  521. package/lib/DDA/DDAPass.cpp +4 -4
  522. package/lib/Graphs/CFLGraph.cpp +3 -0
  523. package/lib/Graphs/SVFG.cpp +1 -1
  524. package/lib/MSSA/MemSSA.cpp +5 -3
  525. package/lib/MSSA/SVFGBuilder.cpp +9 -27
  526. package/lib/MTA/MTA.cpp +4 -4
  527. package/lib/MemoryModel/PointerAnalysisImpl.cpp +10 -10
  528. package/lib/MemoryModel/PointsTo.cpp +23 -19
  529. package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +3 -4
  530. package/lib/SVF-LLVM/LLVMModule.cpp +32 -21
  531. package/lib/SVFIR/SVFIR.cpp +1 -1
  532. package/lib/SVFIR/SymbolTableInfo.cpp +4 -15
  533. package/lib/Util/Options.cpp +0 -6
  534. package/lib/WPA/AndersenSFR.cpp +1 -1
  535. package/lib/WPA/FlowSensitive.cpp +1 -1
  536. package/package.json +1 -1
  537. package/tools/CFL/cfl.cpp +5 -4
  538. package/tools/DDA/dda.cpp +3 -2
  539. package/tools/Example/svf-ex.cpp +3 -2
  540. package/tools/MTA/mta.cpp +6 -4
  541. package/tools/SABER/saber.cpp +7 -5
  542. package/tools/WPA/wpa.cpp +3 -2
@@ -1007,10 +1007,10 @@ Private Attributes</h2></td></tr>
1007
1007
  <div class="ttc" id="classSVF_1_1MRGenerator_html_ad402506c2938d4b5440119e6091e4057"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ad402506c2938d4b5440119e6091e4057">SVF::MRGenerator::getCallSiteArgsPts</a></div><div class="ttdeci">NodeBS &amp; getCallSiteArgsPts(const CallICFGNode *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>
1008
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#l00233">MemRegion.h:233</a></div></div>
1009
1009
  <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#l00417">MemRegion.cpp:417</a></div></div>
1010
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
1010
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
1011
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#l00559">MemRegion.cpp:559</a></div></div>
1012
1012
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_a18f4077d42b23c3fed35efc793b6102e"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">SVF::CallICFGNode::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#l00399">ICFGNode.h:399</a></div></div>
1013
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_aea5389ad7e5fe4c8bef686940a1a6056"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">SVF::SparseBitVector::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01099">SparseBitVector.h:1099</a></div></div>
1013
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_aea5389ad7e5fe4c8bef686940a1a6056"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">SVF::SparseBitVector::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01091">SparseBitVector.h:1091</a></div></div>
1014
1014
  </div><!-- fragment -->
1015
1015
  </div>
1016
1016
  </div>
@@ -1052,11 +1052,11 @@ Private Attributes</h2></td></tr>
1052
1052
  <p>Add indirect def an memory object in the function </p>
1053
1053
 
1054
1054
  <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00417">417</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1055
- <div class="fragment"><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;{</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = mods.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = mods.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; {</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#a2cf20660f2fd686fa3cabd046c4a10bf">isNonLocalObject</a>(*it,fun))</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</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="l00423"></a><span class="lineno"> 423</span>&#160; }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;}</div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00536">SparseBitVector.h:536</a></div></div>
1055
+ <div class="fragment"><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;{</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = mods.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = mods.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; {</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#a2cf20660f2fd686fa3cabd046c4a10bf">isNonLocalObject</a>(*it,fun))</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</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="l00423"></a><span class="lineno"> 423</span>&#160; }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;}</div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00528">SparseBitVector.h:528</a></div></div>
1056
1056
  <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#l00575">MemRegion.cpp:575</a></div></div>
1057
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01120">SparseBitVector.h:1120</a></div></div>
1057
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01112">SparseBitVector.h:1112</a></div></div>
1058
1058
  <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#l00229">MemRegion.h:229</a></div></div>
1059
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01115">SparseBitVector.h:1115</a></div></div>
1059
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01107">SparseBitVector.h:1107</a></div></div>
1060
1060
  </div><!-- fragment -->
1061
1061
  </div>
1062
1062
  </div>
@@ -1100,11 +1100,11 @@ Private Attributes</h2></td></tr>
1100
1100
  <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00429">429</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1101
1101
  <div class="fragment"><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;{</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">if</span>(!refs.<a class="code" href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">empty</a>())</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; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> refset = refs;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; refset &amp;= <a class="code" href="classSVF_1_1MRGenerator.html#ad402506c2938d4b5440119e6091e4057">getCallSiteArgsPts</a>(cs);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#add22c9a95478dea21148e87c8dfc584a">getEscapObjviaGlobals</a>(refset,refs);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a899c81db92c6bcf24f6f9b769e02e5bf">addRefSideEffectOfFunction</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>(),refset);</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</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="l00438"></a><span class="lineno"> 438</span>&#160; }</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_ad402506c2938d4b5440119e6091e4057"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ad402506c2938d4b5440119e6091e4057">SVF::MRGenerator::getCallSiteArgsPts</a></div><div class="ttdeci">NodeBS &amp; getCallSiteArgsPts(const CallICFGNode *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>
1102
1102
  <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#l00231">MemRegion.h:231</a></div></div>
1103
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
1103
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
1104
1104
  <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#l00559">MemRegion.cpp:559</a></div></div>
1105
1105
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_a18f4077d42b23c3fed35efc793b6102e"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">SVF::CallICFGNode::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#l00399">ICFGNode.h:399</a></div></div>
1106
1106
  <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#l00405">MemRegion.cpp:405</a></div></div>
1107
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_aea5389ad7e5fe4c8bef686940a1a6056"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">SVF::SparseBitVector::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01099">SparseBitVector.h:1099</a></div></div>
1107
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_aea5389ad7e5fe4c8bef686940a1a6056"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">SVF::SparseBitVector::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01091">SparseBitVector.h:1091</a></div></div>
1108
1108
  </div><!-- fragment -->
1109
1109
  </div>
1110
1110
  </div>
@@ -1147,10 +1147,10 @@ Private Attributes</h2></td></tr>
1147
1147
 
1148
1148
  <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00405">405</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1149
1149
  <div class="fragment"><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;{</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = refs.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = refs.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; {</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#a2cf20660f2fd686fa3cabd046c4a10bf">isNonLocalObject</a>(*it,fun))</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</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="l00411"></a><span class="lineno"> 411</span>&#160; }</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;}</div><div class="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#l00227">MemRegion.h:227</a></div></div>
1150
- <div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00536">SparseBitVector.h:536</a></div></div>
1150
+ <div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00528">SparseBitVector.h:528</a></div></div>
1151
1151
  <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#l00575">MemRegion.cpp:575</a></div></div>
1152
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01120">SparseBitVector.h:1120</a></div></div>
1153
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01115">SparseBitVector.h:1115</a></div></div>
1152
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01112">SparseBitVector.h:1112</a></div></div>
1153
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01107">SparseBitVector.h:1107</a></div></div>
1154
1154
  </div><!-- fragment -->
1155
1155
  </div>
1156
1156
  </div>
@@ -1182,34 +1182,34 @@ Private Attributes</h2></td></tr>
1182
1182
  <p>collect the pts chain of the return argument </p>
1183
1183
 
1184
1184
  <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00477">477</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1185
- <div class="fragment"><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;{</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; argsPts = <a class="code" href="classSVF_1_1MRGenerator.html#afe91b57b451d7788364493549e015acf">csToCallSiteArgsPtsMap</a>[cs];</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlockNode = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>());</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* retBlockNode = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a881fe977f3a6fde223bd786121e35fcf">getRetICFGNode</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>());</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">WorkList</a> worklist;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">if</span> (pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a95f77211550ec2374d57779d88cf5138">hasCallSiteArgsMap</a>(callBlockNode))</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_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVFIR::SVFVarList</a>&amp; args = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2a1e8ce39bf8deace3c344d5f05fe6ac">getCallSiteArgsList</a>(callBlockNode);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">for</span>(SVFIR::SVFVarList::const_iterator itA = args.begin(), ieA = args.end(); itA!=ieA; ++itA)</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="classSVF_1_1SVFVar.html">PAGNode</a>* node = *itA;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">if</span>(node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>())</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; worklist.push(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</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; <span class="keywordflow">while</span>(!worklist.empty())</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; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> nodeId = worklist.pop();</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">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).<a class="code" href="classSVF_1_1PointsTo.html#ae4749cf6dc43645e2479cefbcc246637">toNodeBS</a>();</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = tmp.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = tmp.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; argsPts |= <a class="code" href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">CollectPtsChain</a>(*it);</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; }</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; retPts = <a class="code" href="classSVF_1_1MRGenerator.html#a21550f978f42ac3cbb32cbc426ff5cb1">csToCallSiteRetPtsMap</a>[cs];</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</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#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa79dba26cb34b40eee682713db299d5f">callsiteHasRet</a>(retBlockNode))</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="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6">getCallSiteRet</a>(retBlockNode);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">if</span>(node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>())</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; {</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">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>()).toNodeBS();</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = tmp.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = tmp.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; retPts |= <a class="code" href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">CollectPtsChain</a>(*it);</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; }</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;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;}</div><div class="ttc" id="classSVF_1_1PointsTo_html_ae4749cf6dc43645e2479cefbcc246637"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ae4749cf6dc43645e2479cefbcc246637">SVF::PointsTo::toNodeBS</a></div><div class="ttdeci">NodeBS toNodeBS(void) const</div><div class="ttdoc">Returns this points-to set as a NodeBS. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00309">PointsTo.cpp:309</a></div></div>
1186
- <div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00536">SparseBitVector.h:536</a></div></div>
1185
+ <div class="fragment"><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;{</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; argsPts = <a class="code" href="classSVF_1_1MRGenerator.html#afe91b57b451d7788364493549e015acf">csToCallSiteArgsPtsMap</a>[cs];</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlockNode = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>());</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* retBlockNode = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a881fe977f3a6fde223bd786121e35fcf">getRetICFGNode</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>());</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">WorkList</a> worklist;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">if</span> (pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a95f77211550ec2374d57779d88cf5138">hasCallSiteArgsMap</a>(callBlockNode))</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_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVFIR::SVFVarList</a>&amp; args = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2a1e8ce39bf8deace3c344d5f05fe6ac">getCallSiteArgsList</a>(callBlockNode);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">for</span>(SVFIR::SVFVarList::const_iterator itA = args.begin(), ieA = args.end(); itA!=ieA; ++itA)</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="classSVF_1_1SVFVar.html">PAGNode</a>* node = *itA;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">if</span>(node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>())</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; worklist.push(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</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; <span class="keywordflow">while</span>(!worklist.empty())</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; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> nodeId = worklist.pop();</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; tmp = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(nodeId).<a class="code" href="classSVF_1_1PointsTo.html#ad1d19d52800341484a136c6d5e0112ea">toNodeBS</a>();</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = tmp.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = tmp.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; argsPts |= <a class="code" href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">CollectPtsChain</a>(*it);</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; }</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; retPts = <a class="code" href="classSVF_1_1MRGenerator.html#a21550f978f42ac3cbb32cbc426ff5cb1">csToCallSiteRetPtsMap</a>[cs];</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</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#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa79dba26cb34b40eee682713db299d5f">callsiteHasRet</a>(retBlockNode))</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="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6">getCallSiteRet</a>(retBlockNode);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">if</span>(node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>())</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; {</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; tmp = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()).toNodeBS();</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = tmp.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = tmp.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; retPts |= <a class="code" href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">CollectPtsChain</a>(*it);</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; }</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;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;}</div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00528">SparseBitVector.h:528</a></div></div>
1187
1186
  <div class="ttc" id="classSVF_1_1SVFIR_html_a64939d7ecfd8e2cf862782954a56596b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVF::SVFIR::SVFVarList</a></div><div class="ttdeci">std::vector&lt; const SVFVar * &gt; SVFVarList</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00057">SVFIR.h:57</a></div></div>
1188
1187
  <div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
1189
1188
  <div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
1190
1189
  <div class="ttc" id="classSVF_1_1ICFG_html_a881fe977f3a6fde223bd786121e35fcf"><div class="ttname"><a href="classSVF_1_1ICFG.html#a881fe977f3a6fde223bd786121e35fcf">SVF::ICFG::getRetICFGNode</a></div><div class="ttdeci">RetICFGNode * getRetICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00249">ICFG.cpp:249</a></div></div>
1191
- <div class="ttc" id="classSVF_1_1SVFIR_html_a95f77211550ec2374d57779d88cf5138"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a95f77211550ec2374d57779d88cf5138">SVF::SVFIR::hasCallSiteArgsMap</a></div><div class="ttdeci">bool hasCallSiteArgsMap(const CallICFGNode *cs) const</div><div class="ttdoc">Callsite has argument list. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00253">SVFIR.h:253</a></div></div>
1190
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a95f77211550ec2374d57779d88cf5138"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a95f77211550ec2374d57779d88cf5138">SVF::SVFIR::hasCallSiteArgsMap</a></div><div class="ttdeci">bool hasCallSiteArgsMap(const CallICFGNode *cs) const</div><div class="ttdoc">Callsite has argument list. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00251">SVFIR.h:251</a></div></div>
1192
1191
  <div class="ttc" id="classSVF_1_1SVFVar_html_a3b61042079a6c9dc395f38925c6a1271"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">SVF::SVFVar::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="SVFVariables_8h_source.html#l00112">SVFVariables.h:112</a></div></div>
1193
1192
  <div class="ttc" id="classSVF_1_1ICFG_html_aa41516cdd2be5066adf22798a4fe2213"><div class="ttname"><a href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00236">ICFG.cpp:236</a></div></div>
1194
1193
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_a90fd0b8e44fba1a7eb76d15bce085d66"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const SVFInstruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00380">ICFGNode.h:380</a></div></div>
1195
1194
  <div class="ttc" id="classSVF_1_1RetICFGNode_html"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html">SVF::RetICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00458">ICFGNode.h:458</a></div></div>
1196
1195
  <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#l00525">MemRegion.cpp:525</a></div></div>
1197
- <div class="ttc" id="classSVF_1_1SVFIR_html_a2a1e8ce39bf8deace3c344d5f05fe6ac"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2a1e8ce39bf8deace3c344d5f05fe6ac">SVF::SVFIR::getCallSiteArgsList</a></div><div class="ttdeci">const SVFVarList &amp; getCallSiteArgsList(const CallICFGNode *cs) const</div><div class="ttdoc">Get callsite argument list. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00263">SVFIR.h:263</a></div></div>
1198
- <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#l00099">PointerAnalysisImpl.h:99</a></div></div>
1196
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a2a1e8ce39bf8deace3c344d5f05fe6ac"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2a1e8ce39bf8deace3c344d5f05fe6ac">SVF::SVFIR::getCallSiteArgsList</a></div><div class="ttdeci">const SVFVarList &amp; getCallSiteArgsList(const CallICFGNode *cs) const</div><div class="ttdoc">Get callsite argument list. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00261">SVFIR.h:261</a></div></div>
1199
1197
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
1200
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01120">SparseBitVector.h:1120</a></div></div>
1198
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01112">SparseBitVector.h:1112</a></div></div>
1201
1199
  <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#l00135">MemRegion.h:135</a></div></div>
1202
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01115">SparseBitVector.h:1115</a></div></div>
1200
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01107">SparseBitVector.h:1107</a></div></div>
1203
1201
  <div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
1204
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
1202
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
1205
1203
  <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>
1206
1204
  <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#l00171">GenericGraph.h:171</a></div></div>
1205
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ac9897a09cad8a99169f2da2116807b1b"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">const PointsTo &amp; getPts(NodeID id) override</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00088">PointerAnalysisImpl.h:88</a></div></div>
1207
1206
  <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#l00235">MemRegion.h:235</a></div></div>
1208
- <div class="ttc" id="classSVF_1_1SVFIR_html_a3145677c7a3763fc0d6aa7e21b264ab6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6">SVF::SVFIR::getCallSiteRet</a></div><div class="ttdeci">const SVFVar * getCallSiteRet(const RetICFGNode *cs) const</div><div class="ttdoc">Get callsite return. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00275">SVFIR.h:275</a></div></div>
1207
+ <div class="ttc" id="classSVF_1_1PointsTo_html_ad1d19d52800341484a136c6d5e0112ea"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ad1d19d52800341484a136c6d5e0112ea">SVF::PointsTo::toNodeBS</a></div><div class="ttdeci">NodeBS toNodeBS() const</div><div class="ttdoc">Returns this points-to set as a NodeBS. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00313">PointsTo.cpp:313</a></div></div>
1208
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a3145677c7a3763fc0d6aa7e21b264ab6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6">SVF::SVFIR::getCallSiteRet</a></div><div class="ttdeci">const SVFVar * getCallSiteRet(const RetICFGNode *cs) const</div><div class="ttdoc">Get callsite return. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00273">SVFIR.h:273</a></div></div>
1209
1209
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
1210
- <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00165">SVFIR.h:165</a></div></div>
1210
+ <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00163">SVFIR.h:163</a></div></div>
1211
1211
  <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#l00237">MemRegion.h:237</a></div></div>
1212
- <div class="ttc" id="classSVF_1_1SVFIR_html_aa79dba26cb34b40eee682713db299d5f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa79dba26cb34b40eee682713db299d5f">SVF::SVFIR::callsiteHasRet</a></div><div class="ttdeci">bool callsiteHasRet(const RetICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00281">SVFIR.h:281</a></div></div>
1212
+ <div class="ttc" id="classSVF_1_1SVFIR_html_aa79dba26cb34b40eee682713db299d5f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa79dba26cb34b40eee682713db299d5f">SVF::SVFIR::callsiteHasRet</a></div><div class="ttdeci">bool callsiteHasRet(const RetICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00279">SVFIR.h:279</a></div></div>
1213
1213
  </div><!-- fragment -->
1214
1214
  </div>
1215
1215
  </div>
@@ -1248,7 +1248,7 @@ Private Attributes</h2></td></tr>
1248
1248
  <div class="ttc" id="classSVF_1_1GenericGraph_html_ac213302cf5c7cdf3b66f7b18649d0fbc"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVF::GenericGraph&lt; SVFVar, SVFStmt &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#l00346">GenericGraph.h:346</a></div></div>
1249
1249
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
1250
1250
  <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>
1251
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00747">SparseBitVector.h:747</a></div></div>
1251
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00739">SparseBitVector.h:739</a></div></div>
1252
1252
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
1253
1253
  </div><!-- fragment -->
1254
1254
  </div>
@@ -1284,7 +1284,7 @@ Private Attributes</h2></td></tr>
1284
1284
  <p>mods are treated as both def and use of memory objects </p>
1285
1285
 
1286
1286
  <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00227">227</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1287
- <div class="fragment"><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;{</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">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="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">for</span>(SVFIR::CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">getCallSiteSet</a>().begin(),</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; eit = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">getCallSiteSet</a>().end(); it!=eit; ++it)</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; <a class="code" href="classSVF_1_1MRGenerator.html#a9de695122660c1d8b65e1f3dab8a7ece">collectCallSitePts</a>((*it));</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;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">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="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="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">WorkList</a> worklist;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ab3d3ca72d2cddf5336d00dc623f33401">getCallGraphSCCRevTopoOrder</a>(worklist);</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">while</span>(!worklist.empty())</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#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> callGraphNodeID = worklist.pop();</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">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="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it!=eit; ++it)</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; <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="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#adc9d530e6f010596d91cd3711dc1358b">modRefAnalysis</a>(subCallGraphNode,worklist);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div><div class="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; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">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="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlockNode : <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">getCallSiteSet</a>())</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#a9718c9e8efc1e6f32441aa5f418711dd">hasRefSideEffectOfCallSite</a>(callBlockNode))</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> refs = <a class="code" href="classSVF_1_1MRGenerator.html#a62757aa995a6a01b484c60df2f51c53d">getRefSideEffectOfCallSite</a>(callBlockNode);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a94ce7ceff7cee90d672e9f3a4f3aa4e8">addCPtsToCallSiteRefs</a>(refs,callBlockNode);</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; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#a187d82895b2e1156c6dd5ae28795944f">hasModSideEffectOfCallSite</a>(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; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> mods = <a class="code" href="classSVF_1_1MRGenerator.html#a1535832f5b1ae3178fea950bf71fdd99">getModSideEffectOfCallSite</a>(callBlockNode);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ab5b92ca898739f613f965fc05f86f094">addCPtsToCallSiteMods</a>(mods,callBlockNode);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a94ce7ceff7cee90d672e9f3a4f3aa4e8">addCPtsToCallSiteRefs</a>(mods,callBlockNode);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;}</div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00536">SparseBitVector.h:536</a></div></div>
1287
+ <div class="fragment"><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;{</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">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="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">for</span>(SVFIR::CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">getCallSiteSet</a>().begin(),</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; eit = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">getCallSiteSet</a>().end(); it!=eit; ++it)</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; <a class="code" href="classSVF_1_1MRGenerator.html#a9de695122660c1d8b65e1f3dab8a7ece">collectCallSitePts</a>((*it));</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;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">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="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="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">WorkList</a> worklist;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ab3d3ca72d2cddf5336d00dc623f33401">getCallGraphSCCRevTopoOrder</a>(worklist);</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">while</span>(!worklist.empty())</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#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> callGraphNodeID = worklist.pop();</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">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="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it!=eit; ++it)</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; <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="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#adc9d530e6f010596d91cd3711dc1358b">modRefAnalysis</a>(subCallGraphNode,worklist);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div><div class="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; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">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="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlockNode : <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">getCallSiteSet</a>())</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#a9718c9e8efc1e6f32441aa5f418711dd">hasRefSideEffectOfCallSite</a>(callBlockNode))</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> refs = <a class="code" href="classSVF_1_1MRGenerator.html#a62757aa995a6a01b484c60df2f51c53d">getRefSideEffectOfCallSite</a>(callBlockNode);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a94ce7ceff7cee90d672e9f3a4f3aa4e8">addCPtsToCallSiteRefs</a>(refs,callBlockNode);</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; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#a187d82895b2e1156c6dd5ae28795944f">hasModSideEffectOfCallSite</a>(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; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> mods = <a class="code" href="classSVF_1_1MRGenerator.html#a1535832f5b1ae3178fea950bf71fdd99">getModSideEffectOfCallSite</a>(callBlockNode);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ab5b92ca898739f613f965fc05f86f094">addCPtsToCallSiteMods</a>(mods,callBlockNode);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a94ce7ceff7cee90d672e9f3a4f3aa4e8">addCPtsToCallSiteRefs</a>(mods,callBlockNode);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;}</div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00528">SparseBitVector.h:528</a></div></div>
1288
1288
  <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>
1289
1289
  <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>
1290
1290
  <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>
@@ -1292,25 +1292,25 @@ Private Attributes</h2></td></tr>
1292
1292
  <div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
1293
1293
  <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>
1294
1294
  <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#l00633">MemRegion.cpp:633</a></div></div>
1295
- <div class="ttc" id="SVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_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="SVFType_8h_source.html#l00424">SVFType.h:424</a></div></div>
1295
+ <div class="ttc" id="SVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_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="SVFType_8h_source.html#l00422">SVFType.h:422</a></div></div>
1296
1296
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a1535832f5b1ae3178fea950bf71fdd99"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a1535832f5b1ae3178fea950bf71fdd99">SVF::MRGenerator::getModSideEffectOfCallSite</a></div><div class="ttdeci">const NodeBS &amp; getModSideEffectOfCallSite(const CallICFGNode *cs)</div><div class="ttdoc">Get indirect mods of a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00403">MemRegion.h:403</a></div></div>
1297
1297
  <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>
1298
- <div class="ttc" id="classSVF_1_1SVFIR_html_aa530e33657f68fc2e8eae9435ce430cb"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">SVF::SVFIR::getCallSiteSet</a></div><div class="ttdeci">const CallSiteSet &amp; getCallSiteSet() const</div><div class="ttdoc">Get all callsites. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00225">SVFIR.h:225</a></div></div>
1298
+ <div class="ttc" id="classSVF_1_1SVFIR_html_aa530e33657f68fc2e8eae9435ce430cb"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">SVF::SVFIR::getCallSiteSet</a></div><div class="ttdeci">const CallSiteSet &amp; getCallSiteSet() const</div><div class="ttdoc">Get all callsites. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00223">SVFIR.h:223</a></div></div>
1299
1299
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a9718c9e8efc1e6f32441aa5f418711dd"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a9718c9e8efc1e6f32441aa5f418711dd">SVF::MRGenerator::hasRefSideEffectOfCallSite</a></div><div class="ttdeci">bool hasRefSideEffectOfCallSite(const CallICFGNode *cs)</div><div class="ttdoc">Has indirect refs of a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00408">MemRegion.h:408</a></div></div>
1300
1300
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a9de695122660c1d8b65e1f3dab8a7ece"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a9de695122660c1d8b65e1f3dab8a7ece">SVF::MRGenerator::collectCallSitePts</a></div><div class="ttdeci">void collectCallSitePts(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00477">MemRegion.cpp:477</a></div></div>
1301
1301
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
1302
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01120">SparseBitVector.h:1120</a></div></div>
1302
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01112">SparseBitVector.h:1112</a></div></div>
1303
1303
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
1304
1304
  <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#l00135">MemRegion.h:135</a></div></div>
1305
1305
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a94ce7ceff7cee90d672e9f3a4f3aa4e8"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a94ce7ceff7cee90d672e9f3a4f3aa4e8">SVF::MRGenerator::addCPtsToCallSiteRefs</a></div><div class="ttdeci">void addCPtsToCallSiteRefs(NodeBS &amp;cpts, const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00353">MemRegion.h:353</a></div></div>
1306
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01115">SparseBitVector.h:1115</a></div></div>
1306
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01107">SparseBitVector.h:1107</a></div></div>
1307
1307
  <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#l00462">MemRegion.cpp:462</a></div></div>
1308
1308
  <div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
1309
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
1309
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
1310
1310
  <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>
1311
1311
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a187d82895b2e1156c6dd5ae28795944f"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a187d82895b2e1156c6dd5ae28795944f">SVF::MRGenerator::hasModSideEffectOfCallSite</a></div><div class="ttdeci">bool hasModSideEffectOfCallSite(const CallICFGNode *cs)</div><div class="ttdoc">Has indirect mods of a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00413">MemRegion.h:413</a></div></div>
1312
1312
  <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>
1313
- <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00419">SVFType.h:419</a></div></div>
1313
+ <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00417">SVFType.h:417</a></div></div>
1314
1314
  <div class="ttc" id="classSVF_1_1MRGenerator_html_ab5b92ca898739f613f965fc05f86f094"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ab5b92ca898739f613f965fc05f86f094">SVF::MRGenerator::addCPtsToCallSiteMods</a></div><div class="ttdeci">void addCPtsToCallSiteMods(NodeBS &amp;cpts, const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00358">MemRegion.h:358</a></div></div>
1315
1315
  </div><!-- fragment -->
1316
1316
  </div>
@@ -1343,7 +1343,7 @@ Private Attributes</h2></td></tr>
1343
1343
  <p>if this function does not have any caller, then we do not care its MSSA </p>
1344
1344
 
1345
1345
  <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00171">171</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1346
- <div class="fragment"><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;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</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="l00175"></a><span class="lineno"> 175</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="l00176"></a><span class="lineno"> 176</span>&#160; ++fi)</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</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="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a50182faec95c6c4635df65a55148b040">Options::IgnoreDeadFun</a> &amp;&amp; fun.<a class="code" href="classSVF_1_1SVFFunction.html#a818f626cb8b8063b5f3c8928428095b8">isUncalledFunction</a>())</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">continue</span>;</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; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFFunction.html#aaec097379a345ab0e80b6a9c50508f48">SVFFunction::const_iterator</a> iter = fun.<a class="code" href="classSVF_1_1SVFFunction.html#a49a6e9c0661135ceda2dd4d84c4b24ae">begin</a>(), eiter = fun.<a class="code" href="classSVF_1_1SVFFunction.html#a2f274c3af098ae6a5919246b1b88e7b7">end</a>();</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; iter != eiter; ++iter)</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; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb = *iter;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFBasicBlock.html#a73b7029f85e3762033f49c953d4b95ca">SVFBasicBlock::const_iterator</a> bit = bb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ac9cb2f17e42c40ca81b49c8b63a855fc">begin</a>(), ebit = bb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ab65173c2668b80643cb96e8133e5ea0a">end</a>();</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; bit != ebit; ++bit)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfInst = *bit;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a8717adf4520e0702274c5f013776be52">SVFStmtList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MRGenerator.html#a7465657df2a376abc79147893d5e62aa">getPAGEdgesFromInst</a>(svfInst);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">for</span> (SVFStmtList::iterator bit = pagEdgeList.begin(), ebit =</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; pagEdgeList.end(); bit != ebit; ++bit)</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* inst = *bit;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58">pagEdgeToFunMap</a>[inst] = &amp;fun;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *st = SVFUtil::dyn_cast&lt;StoreStmt&gt;(inst))</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">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;getLHSVarID()).toNodeBS());</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</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="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span> (cpts.empty())</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; assert(!cpts.empty() &amp;&amp; <span class="stringliteral">&quot;null pointer!!&quot;</span>);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#af50efed3af17806a3ba3f668e4466d3e">addCPtsToStore</a>(cpts, st, &amp;fun);</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;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *ld = SVFUtil::dyn_cast&lt;LoadStmt&gt;(inst))</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">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;getRHSVarID()).toNodeBS());</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</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="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span> (cpts.empty())</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; assert(!cpts.empty() &amp;&amp; <span class="stringliteral">&quot;null pointer!!&quot;</span>);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a79a3032b50f7ef905213b770b12e0967">addCPtsToLoad</a>(cpts, ld, &amp;fun);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</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="ttc" id="classSVF_1_1SVFBasicBlock_html_ab65173c2668b80643cb96e8133e5ea0a"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ab65173c2668b80643cb96e8133e5ea0a">SVF::SVFBasicBlock::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00522">SVFValue.h:522</a></div></div>
1346
+ <div class="fragment"><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;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</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="l00175"></a><span class="lineno"> 175</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="l00176"></a><span class="lineno"> 176</span>&#160; ++fi)</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</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="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a50182faec95c6c4635df65a55148b040">Options::IgnoreDeadFun</a> &amp;&amp; fun.<a class="code" href="classSVF_1_1SVFFunction.html#a818f626cb8b8063b5f3c8928428095b8">isUncalledFunction</a>())</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">continue</span>;</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; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFFunction.html#aaec097379a345ab0e80b6a9c50508f48">SVFFunction::const_iterator</a> iter = fun.<a class="code" href="classSVF_1_1SVFFunction.html#a49a6e9c0661135ceda2dd4d84c4b24ae">begin</a>(), eiter = fun.<a class="code" href="classSVF_1_1SVFFunction.html#a2f274c3af098ae6a5919246b1b88e7b7">end</a>();</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; iter != eiter; ++iter)</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; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb = *iter;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFBasicBlock.html#a73b7029f85e3762033f49c953d4b95ca">SVFBasicBlock::const_iterator</a> bit = bb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ac9cb2f17e42c40ca81b49c8b63a855fc">begin</a>(), ebit = bb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ab65173c2668b80643cb96e8133e5ea0a">end</a>();</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; bit != ebit; ++bit)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfInst = *bit;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a8717adf4520e0702274c5f013776be52">SVFStmtList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MRGenerator.html#a7465657df2a376abc79147893d5e62aa">getPAGEdgesFromInst</a>(svfInst);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">for</span> (SVFStmtList::iterator bit = pagEdgeList.begin(), ebit =</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; pagEdgeList.end(); bit != ebit; ++bit)</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* inst = *bit;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58">pagEdgeToFunMap</a>[inst] = &amp;fun;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *st = SVFUtil::dyn_cast&lt;StoreStmt&gt;(inst))</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> cpts(<a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(st-&gt;getLHSVarID()).toNodeBS());</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</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="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span> (cpts.empty())</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; assert(!cpts.empty() &amp;&amp; <span class="stringliteral">&quot;null pointer!!&quot;</span>);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#af50efed3af17806a3ba3f668e4466d3e">addCPtsToStore</a>(cpts, st, &amp;fun);</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;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *ld = SVFUtil::dyn_cast&lt;LoadStmt&gt;(inst))</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> cpts(<a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(ld-&gt;getRHSVarID()).toNodeBS());</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</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="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span> (cpts.empty())</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; assert(!cpts.empty() &amp;&amp; <span class="stringliteral">&quot;null pointer!!&quot;</span>);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a79a3032b50f7ef905213b770b12e0967">addCPtsToLoad</a>(cpts, ld, &amp;fun);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</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="ttc" id="classSVF_1_1SVFBasicBlock_html_ab65173c2668b80643cb96e8133e5ea0a"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ab65173c2668b80643cb96e8133e5ea0a">SVF::SVFBasicBlock::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00522">SVFValue.h:522</a></div></div>
1347
1347
  <div class="ttc" id="classSVF_1_1SVFFunction_html_aaec097379a345ab0e80b6a9c50508f48"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#aaec097379a345ab0e80b6a9c50508f48">SVF::SVFFunction::const_iterator</a></div><div class="ttdeci">std::vector&lt; const SVFBasicBlock * &gt;::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00262">SVFValue.h:262</a></div></div>
1348
1348
  <div class="ttc" id="classSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00570">SVFValue.h:570</a></div></div>
1349
1349
  <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#l00127">SVFModule.h:127</a></div></div>
@@ -1355,14 +1355,14 @@ Private Attributes</h2></td></tr>
1355
1355
  <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#l00149">Options.h:149</a></div></div>
1356
1356
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ad8b71cebf46deaf60e2cd4f6d6bb9433"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ad8b71cebf46deaf60e2cd4f6d6bb9433">SVF::PointerAnalysis::getModule</a></div><div class="ttdeci">SVFModule * getModule() const</div><div class="ttdoc">Module. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00213">PointerAnalysis.h:213</a></div></div>
1357
1357
  <div class="ttc" id="classSVF_1_1SVFFunction_html_a49a6e9c0661135ceda2dd4d84c4b24ae"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a49a6e9c0661135ceda2dd4d84c4b24ae">SVF::SVFFunction::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00389">SVFValue.h:389</a></div></div>
1358
- <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#l00099">PointerAnalysisImpl.h:99</a></div></div>
1359
1358
  <div class="ttc" id="classSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00383">SVFStatements.h:383</a></div></div>
1360
1359
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a7465657df2a376abc79147893d5e62aa"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7465657df2a376abc79147893d5e62aa">SVF::MRGenerator::getPAGEdgesFromInst</a></div><div class="ttdeci">SVFStmtList &amp; getPAGEdgesFromInst(const SVFInstruction *inst)</div><div class="ttdoc">Given an instruction, get all its the PAGEdge (statement) in sequence. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00159">MemRegion.cpp:159</a></div></div>
1361
1360
  <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>
1362
1361
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a79a3032b50f7ef905213b770b12e0967"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a79a3032b50f7ef905213b770b12e0967">SVF::MRGenerator::addCPtsToLoad</a></div><div class="ttdeci">void addCPtsToLoad(NodeBS &amp;cpts, const LoadStmt *ld, const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00347">MemRegion.h:347</a></div></div>
1363
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
1362
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
1364
1363
  <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>
1365
1364
  <div class="ttc" id="classSVF_1_1SVFModule_html_a58d03edb6ff85f4943135478f113df31"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a58d03edb6ff85f4943135478f113df31">SVF::SVFModule::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00135">SVFModule.h:135</a></div></div>
1365
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ac9897a09cad8a99169f2da2116807b1b"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">const PointsTo &amp; getPts(NodeID id) override</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00088">PointerAnalysisImpl.h:88</a></div></div>
1366
1366
  <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_ac9cb2f17e42c40ca81b49c8b63a855fc"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ac9cb2f17e42c40ca81b49c8b63a855fc">SVF::SVFBasicBlock::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00517">SVFValue.h:517</a></div></div>
1367
1367
  <div class="ttc" id="classSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00346">SVFStatements.h:346</a></div></div>
1368
1368
  <div class="ttc" id="classSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00471">SVFValue.h:471</a></div></div>
@@ -1399,20 +1399,20 @@ Private Attributes</h2></td></tr>
1399
1399
  <p>Recurisively collect all points-to of the whole struct fields </p>
1400
1400
 
1401
1401
  <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00525">525</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1402
- <div class="fragment"><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; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> baseId = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">getBaseObjVar</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; NodeToPTSSMap::iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#a0e46c7beb580ace3a652ac9e1c419b48">cachedPtsChainMap</a>.find(baseId);</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</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="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; {</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; pts = <a class="code" href="classSVF_1_1MRGenerator.html#a0e46c7beb580ace3a652ac9e1c419b48">cachedPtsChainMap</a>[baseId];</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; pts |= <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a42d1e2f0213fb6e54c56cc0695b57cb0">getFieldsAfterCollapse</a>(baseId);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">WorkList</a> worklist;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = pts.begin(), eit = pts.end(); it!=eit; ++it)</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(*it);</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">while</span>(!worklist.empty())</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; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> nodeId = worklist.pop();</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">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).<a class="code" href="classSVF_1_1PointsTo.html#ae4749cf6dc43645e2479cefbcc246637">toNodeBS</a>();</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = tmp.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = tmp.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it!=eit; ++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; pts |= <a class="code" href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">CollectPtsChain</a>(*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; }</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">return</span> pts;</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;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;}</div><div class="ttc" id="classSVF_1_1PointsTo_html_ae4749cf6dc43645e2479cefbcc246637"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ae4749cf6dc43645e2479cefbcc246637">SVF::PointsTo::toNodeBS</a></div><div class="ttdeci">NodeBS toNodeBS(void) const</div><div class="ttdoc">Returns this points-to set as a NodeBS. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00309">PointsTo.cpp:309</a></div></div>
1403
- <div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00536">SparseBitVector.h:536</a></div></div>
1402
+ <div class="fragment"><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; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> baseId = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">getBaseObjVar</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; NodeToPTSSMap::iterator it = <a class="code" href="classSVF_1_1MRGenerator.html#a0e46c7beb580ace3a652ac9e1c419b48">cachedPtsChainMap</a>.find(baseId);</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</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="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; {</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; pts = <a class="code" href="classSVF_1_1MRGenerator.html#a0e46c7beb580ace3a652ac9e1c419b48">cachedPtsChainMap</a>[baseId];</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; pts |= <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a42d1e2f0213fb6e54c56cc0695b57cb0">getFieldsAfterCollapse</a>(baseId);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">WorkList</a> worklist;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = pts.begin(), eit = pts.end(); it!=eit; ++it)</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(*it);</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">while</span>(!worklist.empty())</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; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> nodeId = worklist.pop();</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; tmp = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(nodeId).<a class="code" href="classSVF_1_1PointsTo.html#ad1d19d52800341484a136c6d5e0112ea">toNodeBS</a>();</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = tmp.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = tmp.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it!=eit; ++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; pts |= <a class="code" href="classSVF_1_1MRGenerator.html#a81bd687d34eea884dfcf68274fcec7b5">CollectPtsChain</a>(*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; }</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">return</span> pts;</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;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;}</div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00528">SparseBitVector.h:528</a></div></div>
1404
1403
  <div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
1405
- <div class="ttc" id="classSVF_1_1SVFIR_html_a77a6bb9335aa12d29825af1b5ea07e08"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">SVF::SVFIR::getBaseObjVar</a></div><div class="ttdeci">NodeID getBaseObjVar(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00427">SVFIR.h:427</a></div></div>
1404
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a77a6bb9335aa12d29825af1b5ea07e08"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">SVF::SVFIR::getBaseObjVar</a></div><div class="ttdeci">NodeID getBaseObjVar(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00425">SVFIR.h:425</a></div></div>
1406
1405
  <div class="ttc" id="classSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &amp;data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00165">WorkList.h:165</a></div></div>
1407
1406
  <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#l00525">MemRegion.cpp:525</a></div></div>
1408
- <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#l00099">PointerAnalysisImpl.h:99</a></div></div>
1409
1407
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
1410
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01120">SparseBitVector.h:1120</a></div></div>
1408
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01112">SparseBitVector.h:1112</a></div></div>
1411
1409
  <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#l00135">MemRegion.h:135</a></div></div>
1412
1410
  <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>
1413
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01115">SparseBitVector.h:1115</a></div></div>
1414
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
1411
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01107">SparseBitVector.h:1107</a></div></div>
1412
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
1415
1413
  <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>
1414
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ac9897a09cad8a99169f2da2116807b1b"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">const PointsTo &amp; getPts(NodeID id) override</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00088">PointerAnalysisImpl.h:88</a></div></div>
1415
+ <div class="ttc" id="classSVF_1_1PointsTo_html_ad1d19d52800341484a136c6d5e0112ea"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ad1d19d52800341484a136c6d5e0112ea">SVF::PointsTo::toNodeBS</a></div><div class="ttdeci">NodeBS toNodeBS() const</div><div class="ttdoc">Returns this points-to set as a NodeBS. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00313">PointsTo.cpp:313</a></div></div>
1416
1416
  <div class="ttc" id="classSVF_1_1SVFIR_html_a42d1e2f0213fb6e54c56cc0695b57cb0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a42d1e2f0213fb6e54c56cc0695b57cb0">SVF::SVFIR::getFieldsAfterCollapse</a></div><div class="ttdeci">NodeBS getFieldsAfterCollapse(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00497">SVFIR.cpp:497</a></div></div>
1417
1417
  </div><!-- fragment -->
1418
1418
  </div>
@@ -1458,7 +1458,7 @@ Private Attributes</h2></td></tr>
1458
1458
  <div class="fragment"><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_1SparseBitVector.html">NodeBS</a>&amp; repCPts = <a class="code" href="classSVF_1_1MRGenerator.html#a98b3481580be48cff7e93bf3c8a29dac">getRepPointsTo</a>(cpts);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a> mr(repCPts);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</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="l00074"></a><span class="lineno"> 74</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="l00075"></a><span class="lineno"> 75</span>&#160; {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</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="l00077"></a><span class="lineno"> 77</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="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span>(mrs.find(mr)==mrs.end())</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; mrs.insert(mr);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</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="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#af94bd8155a23273aab2396334d905119">memRegSet</a>.insert(m);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a3e74c3706ffcc14f378771b417dcbb96">funToMRsMap</a>[fun].insert(m);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}</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>
1459
1459
  <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#l00186">MemRegion.h:186</a></div></div>
1460
1460
  <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#l00278">MemRegion.h:278</a></div></div>
1461
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
1461
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
1462
1462
  <div class="ttc" id="classSVF_1_1MemRegion_html"><div class="ttname"><a href="classSVF_1_1MemRegion.html">SVF::MemRegion</a></div><div class="ttdoc">Memory Region class. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00055">MemRegion.h:55</a></div></div>
1463
1463
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a98ac3bf264e6a85d172c2c4264ea908f"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">SVF::MRGenerator::MRSet</a></div><div class="ttdeci">OrderedSet&lt; const MemRegion *, MemRegion::equalMemRegion &gt; MRSet</div><div class="ttdoc">Get typedef from Pointer Analysis. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00141">MemRegion.h:141</a></div></div>
1464
1464
  </div><!-- fragment -->
@@ -1533,13 +1533,13 @@ Private Attributes</h2></td></tr>
1533
1533
  <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#l00315">MemRegion.cpp:315</a></div></div>
1534
1534
  <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>
1535
1535
  <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>
1536
- <div class="ttc" id="SVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_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="SVFType_8h_source.html#l00424">SVFType.h:424</a></div></div>
1536
+ <div class="ttc" id="SVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_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="SVFType_8h_source.html#l00422">SVFType.h:422</a></div></div>
1537
1537
  <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#l00346">MemRegion.cpp:346</a></div></div>
1538
1538
  <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#l00104">MemRegion.cpp:104</a></div></div>
1539
1539
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
1540
1540
  <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#l00227">MemRegion.cpp:227</a></div></div>
1541
1541
  <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#l00171">MemRegion.cpp:171</a></div></div>
1542
- <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00419">SVFType.h:419</a></div></div>
1542
+ <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00417">SVFType.h:417</a></div></div>
1543
1543
  </div><!-- fragment -->
1544
1544
  </div>
1545
1545
  </div>
@@ -1784,16 +1784,16 @@ Private Attributes</h2></td></tr>
1784
1784
  <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>
1785
1785
 
1786
1786
  <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00559">559</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1787
- <div class="fragment"><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;{</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = calleeModRef.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = calleeModRef.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it!=eit; ++it)</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="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#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(*it);</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; (void)obj; <span class="comment">// Suppress warning of unused variable under release build</span></div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; assert(obj &amp;&amp; <span class="stringliteral">&quot;object not found!!&quot;</span>);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#af46b82e45aa1ecdfb397325971206541">allGlobals</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">test</a>(*it))</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; globs.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(*it);</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; }</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;}</div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00536">SparseBitVector.h:536</a></div></div>
1787
+ <div class="fragment"><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;{</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = calleeModRef.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = calleeModRef.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it!=eit; ++it)</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="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#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(*it);</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; (void)obj; <span class="comment">// Suppress warning of unused variable under release build</span></div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; assert(obj &amp;&amp; <span class="stringliteral">&quot;object not found!!&quot;</span>);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MRGenerator.html#af46b82e45aa1ecdfb397325971206541">allGlobals</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">test</a>(*it))</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; globs.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(*it);</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; }</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;}</div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00528">SparseBitVector.h:528</a></div></div>
1788
1788
  <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="SymbolTableInfo_8h_source.html#l00348">SymbolTableInfo.h:348</a></div></div>
1789
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a112f2ede1240c95f9fe810f2882fab80"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">SVF::SparseBitVector::test</a></div><div class="ttdeci">bool test(unsigned Idx) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00708">SparseBitVector.h:708</a></div></div>
1789
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a112f2ede1240c95f9fe810f2882fab80"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">SVF::SparseBitVector::test</a></div><div class="ttdeci">bool test(unsigned Idx) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00700">SparseBitVector.h:700</a></div></div>
1790
1790
  <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 SVFIR node ids. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00243">MemRegion.h:243</a></div></div>
1791
1791
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
1792
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01120">SparseBitVector.h:1120</a></div></div>
1793
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01115">SparseBitVector.h:1115</a></div></div>
1792
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01112">SparseBitVector.h:1112</a></div></div>
1793
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01107">SparseBitVector.h:1107</a></div></div>
1794
1794
  <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>
1795
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00747">SparseBitVector.h:747</a></div></div>
1796
- <div class="ttc" id="classSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00365">SVFIR.h:365</a></div></div>
1795
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00739">SparseBitVector.h:739</a></div></div>
1796
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00363">SVFIR.h:363</a></div></div>
1797
1797
  </div><!-- fragment -->
1798
1798
  </div>
1799
1799
  </div>
@@ -1937,14 +1937,14 @@ Private Attributes</h2></td></tr>
1937
1937
  <p>Obtain the mod sets for a call, used for external ModRefInfo queries </p>
1938
1938
 
1939
1939
  <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00668">668</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1940
- <div class="fragment"><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;{</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()) &amp;&amp; !<a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()))</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; {</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a8717adf4520e0702274c5f013776be52">SVFStmtList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MRGenerator.html#a7465657df2a376abc79147893d5e62aa">getPAGEdgesFromInst</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>());</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> mods;</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="keywordflow">for</span> (SVFStmtList::const_iterator bit = pagEdgeList.begin(), ebit =</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; pagEdgeList.end(); bit != ebit; ++bit)</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; {</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *bit;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* st = SVFUtil::dyn_cast&lt;StoreStmt&gt;(edge))</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</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;getLHSVarID()).toNodeBS();</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; }</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keywordflow">return</span> mods;</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">else</span></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">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a1535832f5b1ae3178fea950bf71fdd99">getModSideEffectOfCallSite</a>(cs);</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; }</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a8717adf4520e0702274c5f013776be52"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a8717adf4520e0702274c5f013776be52">SVF::MRGenerator::SVFStmtList</a></div><div class="ttdeci">SVFIR::SVFStmtList SVFStmtList</div><div class="ttdoc">SVFIR edge list. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00176">MemRegion.h:176</a></div></div>
1940
+ <div class="fragment"><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;{</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()) &amp;&amp; !<a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()))</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; {</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a8717adf4520e0702274c5f013776be52">SVFStmtList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MRGenerator.html#a7465657df2a376abc79147893d5e62aa">getPAGEdgesFromInst</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>());</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> mods;</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="keywordflow">for</span> (SVFStmtList::const_iterator bit = pagEdgeList.begin(), ebit =</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; pagEdgeList.end(); bit != ebit; ++bit)</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; {</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *bit;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* st = SVFUtil::dyn_cast&lt;StoreStmt&gt;(edge))</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; mods |= <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(st-&gt;getLHSVarID()).toNodeBS();</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; }</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keywordflow">return</span> mods;</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">else</span></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">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a1535832f5b1ae3178fea950bf71fdd99">getModSideEffectOfCallSite</a>(cs);</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; }</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a8717adf4520e0702274c5f013776be52"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a8717adf4520e0702274c5f013776be52">SVF::MRGenerator::SVFStmtList</a></div><div class="ttdeci">SVFIR::SVFStmtList SVFStmtList</div><div class="ttdoc">SVFIR edge list. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00176">MemRegion.h:176</a></div></div>
1941
1941
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a1535832f5b1ae3178fea950bf71fdd99"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a1535832f5b1ae3178fea950bf71fdd99">SVF::MRGenerator::getModSideEffectOfCallSite</a></div><div class="ttdeci">const NodeBS &amp; getModSideEffectOfCallSite(const CallICFGNode *cs)</div><div class="ttdoc">Get indirect mods of a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00403">MemRegion.h:403</a></div></div>
1942
1942
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_a90fd0b8e44fba1a7eb76d15bce085d66"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const SVFInstruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00380">ICFGNode.h:380</a></div></div>
1943
- <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#l00099">PointerAnalysisImpl.h:99</a></div></div>
1944
1943
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a7465657df2a376abc79147893d5e62aa"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7465657df2a376abc79147893d5e62aa">SVF::MRGenerator::getPAGEdgesFromInst</a></div><div class="ttdeci">SVFStmtList &amp; getPAGEdgesFromInst(const SVFInstruction *inst)</div><div class="ttdoc">Given an instruction, get all its the PAGEdge (statement) in sequence. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00159">MemRegion.cpp:159</a></div></div>
1945
1944
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a93ac673b885633849fa484938405ca75"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">SVF::SVFUtil::isHeapAllocExtCall</a></div><div class="ttdeci">bool isHeapAllocExtCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00447">SVFUtil.h:447</a></div></div>
1946
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
1945
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
1947
1946
  <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>
1947
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ac9897a09cad8a99169f2da2116807b1b"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">const PointsTo &amp; getPts(NodeID id) override</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00088">PointerAnalysisImpl.h:88</a></div></div>
1948
1948
  <div class="ttc" id="classSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00346">SVFStatements.h:346</a></div></div>
1949
1949
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00295">SVFUtil.h:295</a></div></div>
1950
1950
  <div class="ttc" id="classSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00047">SVFStatements.h:47</a></div></div>
@@ -1969,13 +1969,13 @@ Private Attributes</h2></td></tr>
1969
1969
  <p>Determine whether a <a class="el" href="classSVF_1_1CallSite.html">CallSite</a> instruction can mod or ref any memory location </p>
1970
1970
 
1971
1971
  <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00717">717</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
1972
- <div class="fragment"><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="keywordtype">bool</span> ref = !<a class="code" href="classSVF_1_1MRGenerator.html#a965a31712341b1fc02e667f325423ca2">getRefInfoForCall</a>(cs).<a class="code" href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">empty</a>();</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="keywordtype">bool</span> mod = !<a class="code" href="classSVF_1_1MRGenerator.html#ae487d7b800d7536b578095c9f140ac80">getModInfoForCall</a>(cs).<a class="code" href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">empty</a>();</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keywordflow">if</span> (mod &amp;&amp; ref)</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30">ModRefInfo::ModRef</a>;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ref)</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76">ModRefInfo::Ref</a>;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mod)</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0">ModRefInfo::Mod</a>;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">ModRefInfo::NoModRef</a>;</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76">SVF::Ref</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00455">SVFType.h:455</a></div></div>
1973
- <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">SVF::NoModRef</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00457">SVFType.h:457</a></div></div>
1972
+ <div class="fragment"><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="keywordtype">bool</span> ref = !<a class="code" href="classSVF_1_1MRGenerator.html#a965a31712341b1fc02e667f325423ca2">getRefInfoForCall</a>(cs).<a class="code" href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">empty</a>();</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="keywordtype">bool</span> mod = !<a class="code" href="classSVF_1_1MRGenerator.html#ae487d7b800d7536b578095c9f140ac80">getModInfoForCall</a>(cs).<a class="code" href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">empty</a>();</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keywordflow">if</span> (mod &amp;&amp; ref)</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30">ModRefInfo::ModRef</a>;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ref)</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76">ModRefInfo::Ref</a>;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mod)</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0">ModRefInfo::Mod</a>;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">ModRefInfo::NoModRef</a>;</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76">SVF::Ref</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00453">SVFType.h:453</a></div></div>
1973
+ <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">SVF::NoModRef</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00455">SVFType.h:455</a></div></div>
1974
1974
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a965a31712341b1fc02e667f325423ca2"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a965a31712341b1fc02e667f325423ca2">SVF::MRGenerator::getRefInfoForCall</a></div><div class="ttdeci">NodeBS getRefInfoForCall(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00692">MemRegion.cpp:692</a></div></div>
1975
- <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30">SVF::ModRef</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00454">SVFType.h:454</a></div></div>
1975
+ <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30">SVF::ModRef</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00452">SVFType.h:452</a></div></div>
1976
1976
  <div class="ttc" id="classSVF_1_1MRGenerator_html_ae487d7b800d7536b578095c9f140ac80"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ae487d7b800d7536b578095c9f140ac80">SVF::MRGenerator::getModInfoForCall</a></div><div class="ttdeci">NodeBS getModInfoForCall(const CallICFGNode *cs)</div><div class="ttdoc">getModRefInfo APIs </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00668">MemRegion.cpp:668</a></div></div>
1977
- <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0">SVF::Mod</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00456">SVFType.h:456</a></div></div>
1978
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_aea5389ad7e5fe4c8bef686940a1a6056"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">SVF::SparseBitVector::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01099">SparseBitVector.h:1099</a></div></div>
1977
+ <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0">SVF::Mod</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00454">SVFType.h:454</a></div></div>
1978
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_aea5389ad7e5fe4c8bef686940a1a6056"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">SVF::SparseBitVector::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01091">SparseBitVector.h:1091</a></div></div>
1979
1979
  </div><!-- fragment -->
1980
1980
  </div>
1981
1981
  </div>
@@ -2007,20 +2007,20 @@ Private Attributes</h2></td></tr>
2007
2007
  <p>Determine whether a const CallICFGNode* instruction can mod or ref a specific memory location pointed by V </p>
2008
2008
 
2009
2009
  <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00736">736</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2010
- <div class="fragment"><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;{</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordtype">bool</span> ref = <span class="keyword">false</span>;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keywordtype">bool</span> mod = <span class="keyword">false</span>;</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</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#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a401ec65771a3d2dcc8eb60574aadd354">hasValueNode</a>(V))</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="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">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#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V)).toNodeBS());</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> csRef = <a class="code" href="classSVF_1_1MRGenerator.html#a965a31712341b1fc02e667f325423ca2">getRefInfoForCall</a>(cs);</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> csMod = <a class="code" href="classSVF_1_1MRGenerator.html#ae487d7b800d7536b578095c9f140ac80">getModInfoForCall</a>(cs);</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> ptsExpanded, csRefExpanded, csModExpanded;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</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="l00748"></a><span class="lineno"> 748</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="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>(csMod, csModExpanded);</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">if</span> (csRefExpanded.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(ptsExpanded))</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; ref = <span class="keyword">true</span>;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">if</span> (csModExpanded.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(ptsExpanded))</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; mod = <span class="keyword">true</span>;</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; }</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="keywordflow">if</span> (mod &amp;&amp; ref)</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30">ModRefInfo::ModRef</a>;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ref)</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76">ModRefInfo::Ref</a>;</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mod)</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0">ModRefInfo::Mod</a>;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">ModRefInfo::NoModRef</a>;</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76">SVF::Ref</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00455">SVFType.h:455</a></div></div>
2011
- <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">SVF::NoModRef</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00457">SVFType.h:457</a></div></div>
2010
+ <div class="fragment"><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;{</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordtype">bool</span> ref = <span class="keyword">false</span>;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keywordtype">bool</span> mod = <span class="keyword">false</span>;</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</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#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a401ec65771a3d2dcc8eb60574aadd354">hasValueNode</a>(V))</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="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> pts(<a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(<a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V)).toNodeBS());</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> csRef = <a class="code" href="classSVF_1_1MRGenerator.html#a965a31712341b1fc02e667f325423ca2">getRefInfoForCall</a>(cs);</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> csMod = <a class="code" href="classSVF_1_1MRGenerator.html#ae487d7b800d7536b578095c9f140ac80">getModInfoForCall</a>(cs);</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> ptsExpanded, csRefExpanded, csModExpanded;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</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="l00748"></a><span class="lineno"> 748</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="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>(csMod, csModExpanded);</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">if</span> (csRefExpanded.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(ptsExpanded))</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; ref = <span class="keyword">true</span>;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">if</span> (csModExpanded.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(ptsExpanded))</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; mod = <span class="keyword">true</span>;</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; }</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="keywordflow">if</span> (mod &amp;&amp; ref)</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30">ModRefInfo::ModRef</a>;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ref)</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76">ModRefInfo::Ref</a>;</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mod)</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0">ModRefInfo::Mod</a>;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">ModRefInfo::NoModRef</a>;</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76">SVF::Ref</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00453">SVFType.h:453</a></div></div>
2011
+ <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">SVF::NoModRef</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00455">SVFType.h:455</a></div></div>
2012
2012
  <div class="ttc" id="classSVF_1_1IRGraph_html_a43514023a4f4d0c32f536f51443b0efc"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const SVFValue *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00128">IRGraph.h:128</a></div></div>
2013
2013
  <div class="ttc" id="classSVF_1_1IRGraph_html_a401ec65771a3d2dcc8eb60574aadd354"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a401ec65771a3d2dcc8eb60574aadd354">SVF::IRGraph::hasValueNode</a></div><div class="ttdeci">bool hasValueNode(const SVFValue *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00132">IRGraph.h:132</a></div></div>
2014
2014
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a965a31712341b1fc02e667f325423ca2"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a965a31712341b1fc02e667f325423ca2">SVF::MRGenerator::getRefInfoForCall</a></div><div class="ttdeci">NodeBS getRefInfoForCall(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00692">MemRegion.cpp:692</a></div></div>
2015
- <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30">SVF::ModRef</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00454">SVFType.h:454</a></div></div>
2016
- <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#l00099">PointerAnalysisImpl.h:99</a></div></div>
2015
+ <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30">SVF::ModRef</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00452">SVFType.h:452</a></div></div>
2017
2016
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
2018
2017
  <div class="ttc" id="classSVF_1_1MRGenerator_html_ae487d7b800d7536b578095c9f140ac80"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ae487d7b800d7536b578095c9f140ac80">SVF::MRGenerator::getModInfoForCall</a></div><div class="ttdeci">NodeBS getModInfoForCall(const CallICFGNode *cs)</div><div class="ttdoc">getModRefInfo APIs </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00668">MemRegion.cpp:668</a></div></div>
2019
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a16756e0545fd3d50ab89f45a2e83bb79"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">SVF::SparseBitVector::intersects</a></div><div class="ttdeci">bool intersects(const SparseBitVector&lt; ElementSize &gt; *RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01031">SparseBitVector.h:1031</a></div></div>
2020
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
2018
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a16756e0545fd3d50ab89f45a2e83bb79"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">SVF::SparseBitVector::intersects</a></div><div class="ttdeci">bool intersects(const SparseBitVector&lt; ElementSize &gt; *RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01023">SparseBitVector.h:1023</a></div></div>
2019
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
2021
2020
  <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>
2022
2021
  <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#l00133">PointerAnalysisImpl.cpp:133</a></div></div>
2023
- <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0">SVF::Mod</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00456">SVFType.h:456</a></div></div>
2022
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ac9897a09cad8a99169f2da2116807b1b"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">const PointsTo &amp; getPts(NodeID id) override</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00088">PointerAnalysisImpl.h:88</a></div></div>
2023
+ <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0">SVF::Mod</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00454">SVFType.h:454</a></div></div>
2024
2024
  </div><!-- fragment -->
2025
2025
  </div>
2026
2026
  </div>
@@ -2056,16 +2056,16 @@ Private Attributes</h2></td></tr>
2056
2056
  <p>ModRef: cs1 ref and mod memory mod by cs2 </p>
2057
2057
 
2058
2058
  <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00770">770</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2059
- <div class="fragment"><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;{</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keywordtype">bool</span> ref = <span class="keyword">false</span>;</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keywordtype">bool</span> mod = <span class="keyword">false</span>;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MRGenerator.html#ac14c99ee6064fc9cf30120a83c78e702">getModRefInfo</a>(cs1) == <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">ModRefInfo::NoModRef</a> || <a class="code" href="classSVF_1_1MRGenerator.html#ac14c99ee6064fc9cf30120a83c78e702">getModRefInfo</a>(cs2) == <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">ModRefInfo::NoModRef</a>)</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">ModRefInfo::NoModRef</a>;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> cs1Ref = <a class="code" href="classSVF_1_1MRGenerator.html#a965a31712341b1fc02e667f325423ca2">getRefInfoForCall</a>(cs1);</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> cs1Mod = <a class="code" href="classSVF_1_1MRGenerator.html#ae487d7b800d7536b578095c9f140ac80">getModInfoForCall</a>(cs1);</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> cs2Ref = <a class="code" href="classSVF_1_1MRGenerator.html#a965a31712341b1fc02e667f325423ca2">getRefInfoForCall</a>(cs2);</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> cs2Mod = <a class="code" href="classSVF_1_1MRGenerator.html#ae487d7b800d7536b578095c9f140ac80">getModInfoForCall</a>(cs2);</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> cs1RefExpanded, cs1ModExpanded, cs2RefExpanded, cs2ModExpanded;</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</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="l00785"></a><span class="lineno"> 785</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="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>(cs2Ref, cs2RefExpanded);</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>(cs2Mod, cs2ModExpanded);</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="keywordflow">if</span> (cs1RefExpanded.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(cs2ModExpanded))</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; ref = <span class="keyword">true</span>;</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">if</span> (cs1ModExpanded.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(cs2RefExpanded) || cs1ModExpanded.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(cs2ModExpanded))</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; mod = <span class="keyword">true</span>;</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">if</span> (cs1RefExpanded.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(cs2ModExpanded) &amp;&amp; cs1ModExpanded.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(cs2ModExpanded))</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; ref = mod = <span class="keyword">true</span>;</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">if</span> (ref &amp;&amp; mod)</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30">ModRefInfo::ModRef</a>;</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ref)</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76">ModRefInfo::Ref</a>;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mod)</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0">ModRefInfo::Mod</a>;</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">ModRefInfo::NoModRef</a>;</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76">SVF::Ref</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00455">SVFType.h:455</a></div></div>
2060
- <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">SVF::NoModRef</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00457">SVFType.h:457</a></div></div>
2059
+ <div class="fragment"><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;{</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keywordtype">bool</span> ref = <span class="keyword">false</span>;</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keywordtype">bool</span> mod = <span class="keyword">false</span>;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MRGenerator.html#ac14c99ee6064fc9cf30120a83c78e702">getModRefInfo</a>(cs1) == <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">ModRefInfo::NoModRef</a> || <a class="code" href="classSVF_1_1MRGenerator.html#ac14c99ee6064fc9cf30120a83c78e702">getModRefInfo</a>(cs2) == <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">ModRefInfo::NoModRef</a>)</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">ModRefInfo::NoModRef</a>;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> cs1Ref = <a class="code" href="classSVF_1_1MRGenerator.html#a965a31712341b1fc02e667f325423ca2">getRefInfoForCall</a>(cs1);</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> cs1Mod = <a class="code" href="classSVF_1_1MRGenerator.html#ae487d7b800d7536b578095c9f140ac80">getModInfoForCall</a>(cs1);</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> cs2Ref = <a class="code" href="classSVF_1_1MRGenerator.html#a965a31712341b1fc02e667f325423ca2">getRefInfoForCall</a>(cs2);</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> cs2Mod = <a class="code" href="classSVF_1_1MRGenerator.html#ae487d7b800d7536b578095c9f140ac80">getModInfoForCall</a>(cs2);</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> cs1RefExpanded, cs1ModExpanded, cs2RefExpanded, cs2ModExpanded;</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</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="l00785"></a><span class="lineno"> 785</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="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>(cs2Ref, cs2RefExpanded);</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>(cs2Mod, cs2ModExpanded);</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="keywordflow">if</span> (cs1RefExpanded.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(cs2ModExpanded))</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; ref = <span class="keyword">true</span>;</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">if</span> (cs1ModExpanded.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(cs2RefExpanded) || cs1ModExpanded.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(cs2ModExpanded))</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; mod = <span class="keyword">true</span>;</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">if</span> (cs1RefExpanded.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(cs2ModExpanded) &amp;&amp; cs1ModExpanded.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(cs2ModExpanded))</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; ref = mod = <span class="keyword">true</span>;</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">if</span> (ref &amp;&amp; mod)</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30">ModRefInfo::ModRef</a>;</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ref)</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76">ModRefInfo::Ref</a>;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (mod)</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0">ModRefInfo::Mod</a>;</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">ModRefInfo::NoModRef</a>;</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76">SVF::Ref</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00453">SVFType.h:453</a></div></div>
2060
+ <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">SVF::NoModRef</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00455">SVFType.h:455</a></div></div>
2061
2061
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a965a31712341b1fc02e667f325423ca2"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a965a31712341b1fc02e667f325423ca2">SVF::MRGenerator::getRefInfoForCall</a></div><div class="ttdeci">NodeBS getRefInfoForCall(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00692">MemRegion.cpp:692</a></div></div>
2062
- <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30">SVF::ModRef</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00454">SVFType.h:454</a></div></div>
2062
+ <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30">SVF::ModRef</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00452">SVFType.h:452</a></div></div>
2063
2063
  <div class="ttc" id="classSVF_1_1MRGenerator_html_ae487d7b800d7536b578095c9f140ac80"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ae487d7b800d7536b578095c9f140ac80">SVF::MRGenerator::getModInfoForCall</a></div><div class="ttdeci">NodeBS getModInfoForCall(const CallICFGNode *cs)</div><div class="ttdoc">getModRefInfo APIs </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00668">MemRegion.cpp:668</a></div></div>
2064
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a16756e0545fd3d50ab89f45a2e83bb79"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">SVF::SparseBitVector::intersects</a></div><div class="ttdeci">bool intersects(const SparseBitVector&lt; ElementSize &gt; *RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01031">SparseBitVector.h:1031</a></div></div>
2065
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
2064
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a16756e0545fd3d50ab89f45a2e83bb79"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">SVF::SparseBitVector::intersects</a></div><div class="ttdeci">bool intersects(const SparseBitVector&lt; ElementSize &gt; *RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01023">SparseBitVector.h:1023</a></div></div>
2065
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
2066
2066
  <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>
2067
2067
  <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#l00133">PointerAnalysisImpl.cpp:133</a></div></div>
2068
- <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0">SVF::Mod</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00456">SVFType.h:456</a></div></div>
2068
+ <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0">SVF::Mod</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00454">SVFType.h:454</a></div></div>
2069
2069
  <div class="ttc" id="classSVF_1_1MRGenerator_html_ac14c99ee6064fc9cf30120a83c78e702"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ac14c99ee6064fc9cf30120a83c78e702">SVF::MRGenerator::getModRefInfo</a></div><div class="ttdeci">ModRefInfo getModRefInfo(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00717">MemRegion.cpp:717</a></div></div>
2070
2070
  </div><!-- fragment -->
2071
2071
  </div>
@@ -2331,14 +2331,14 @@ Private Attributes</h2></td></tr>
2331
2331
  <p>Given an instruction, get all its the PAGEdge (statement) in sequence. </p>
2332
2332
 
2333
2333
  <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00159">159</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2334
- <div class="fragment"><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; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MRGenerator.html#a6a62d2dede5d2506c19b2d058d1cd9d3">ptrOnlyMSSA</a>)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abb91ed47d5c13d0ad7eec35164e37988">getPTASVFStmtList</a>(pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(inst));</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a570ad42ad516e3fabb91a3563b618c0b">getSVFStmtList</a>(pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(inst));</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFIR_html_abb91ed47d5c13d0ad7eec35164e37988"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abb91ed47d5c13d0ad7eec35164e37988">SVF::SVFIR::getPTASVFStmtList</a></div><div class="ttdeci">SVFStmtList &amp; getPTASVFStmtList(const ICFGNode *inst)</div><div class="ttdoc">Given an instruction, get all its PTA PAGEdges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00207">SVFIR.h:207</a></div></div>
2334
+ <div class="fragment"><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; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MRGenerator.html#a6a62d2dede5d2506c19b2d058d1cd9d3">ptrOnlyMSSA</a>)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abb91ed47d5c13d0ad7eec35164e37988">getPTASVFStmtList</a>(pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(inst));</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a570ad42ad516e3fabb91a3563b618c0b">getSVFStmtList</a>(pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(inst));</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFIR_html_abb91ed47d5c13d0ad7eec35164e37988"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abb91ed47d5c13d0ad7eec35164e37988">SVF::SVFIR::getPTASVFStmtList</a></div><div class="ttdeci">SVFStmtList &amp; getPTASVFStmtList(const ICFGNode *inst)</div><div class="ttdoc">Given an instruction, get all its PTA PAGEdges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00205">SVFIR.h:205</a></div></div>
2335
2335
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
2336
2336
  <div class="ttc" id="classSVF_1_1ICFG_html_a5f2c0aaba07d6fdd63058da0fb60ca8b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">SVF::ICFG::getICFGNode</a></div><div class="ttdeci">ICFGNode * getICFGNode(NodeID id) const</div><div class="ttdoc">Get a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00087">ICFG.h:87</a></div></div>
2337
2337
  <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>
2338
2338
  <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>
2339
- <div class="ttc" id="classSVF_1_1SVFIR_html_a570ad42ad516e3fabb91a3563b618c0b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a570ad42ad516e3fabb91a3563b618c0b">SVF::SVFIR::getSVFStmtList</a></div><div class="ttdeci">SVFStmtList &amp; getSVFStmtList(const ICFGNode *inst)</div><div class="ttdoc">Given an instruction, get all its PAGEdges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00202">SVFIR.h:202</a></div></div>
2339
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a570ad42ad516e3fabb91a3563b618c0b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a570ad42ad516e3fabb91a3563b618c0b">SVF::SVFIR::getSVFStmtList</a></div><div class="ttdeci">SVFStmtList &amp; getSVFStmtList(const ICFGNode *inst)</div><div class="ttdoc">Given an instruction, get all its PAGEdges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00200">SVFIR.h:200</a></div></div>
2340
2340
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
2341
- <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00165">SVFIR.h:165</a></div></div>
2341
+ <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00163">SVFIR.h:163</a></div></div>
2342
2342
  </div><!-- fragment -->
2343
2343
  </div>
2344
2344
  </div>
@@ -2389,15 +2389,15 @@ Private Attributes</h2></td></tr>
2389
2389
  <p>Obtain the ref sets for a call, used for external ModRefInfo queries </p>
2390
2390
 
2391
2391
  <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00692">692</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2392
- <div class="fragment"><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;{</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</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_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()) &amp;&amp; !<a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()))</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; {</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a8717adf4520e0702274c5f013776be52">SVFStmtList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MRGenerator.html#a7465657df2a376abc79147893d5e62aa">getPAGEdgesFromInst</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>());</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> refs;</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keywordflow">for</span> (SVFStmtList::const_iterator bit = pagEdgeList.begin(), ebit =</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; pagEdgeList.end(); bit != ebit; ++bit)</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; {</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *bit;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* ld = SVFUtil::dyn_cast&lt;LoadStmt&gt;(edge))</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</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;getRHSVarID()).toNodeBS();</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; }</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">return</span> refs;</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">else</span></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">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a62757aa995a6a01b484c60df2f51c53d">getRefSideEffectOfCallSite</a>(cs);</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; }</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a62757aa995a6a01b484c60df2f51c53d"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a62757aa995a6a01b484c60df2f51c53d">SVF::MRGenerator::getRefSideEffectOfCallSite</a></div><div class="ttdeci">const NodeBS &amp; getRefSideEffectOfCallSite(const CallICFGNode *cs)</div><div class="ttdoc">Get indirect refs of a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00398">MemRegion.h:398</a></div></div>
2392
+ <div class="fragment"><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;{</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</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_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()) &amp;&amp; !<a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()))</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; {</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a8717adf4520e0702274c5f013776be52">SVFStmtList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MRGenerator.html#a7465657df2a376abc79147893d5e62aa">getPAGEdgesFromInst</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>());</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> refs;</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keywordflow">for</span> (SVFStmtList::const_iterator bit = pagEdgeList.begin(), ebit =</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; pagEdgeList.end(); bit != ebit; ++bit)</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; {</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *bit;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* ld = SVFUtil::dyn_cast&lt;LoadStmt&gt;(edge))</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; refs |= <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(ld-&gt;getRHSVarID()).toNodeBS();</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; }</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">return</span> refs;</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">else</span></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">return</span> <a class="code" href="classSVF_1_1MRGenerator.html#a62757aa995a6a01b484c60df2f51c53d">getRefSideEffectOfCallSite</a>(cs);</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; }</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;}</div><div class="ttc" id="classSVF_1_1MRGenerator_html_a62757aa995a6a01b484c60df2f51c53d"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a62757aa995a6a01b484c60df2f51c53d">SVF::MRGenerator::getRefSideEffectOfCallSite</a></div><div class="ttdeci">const NodeBS &amp; getRefSideEffectOfCallSite(const CallICFGNode *cs)</div><div class="ttdoc">Get indirect refs of a callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00398">MemRegion.h:398</a></div></div>
2393
2393
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a8717adf4520e0702274c5f013776be52"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a8717adf4520e0702274c5f013776be52">SVF::MRGenerator::SVFStmtList</a></div><div class="ttdeci">SVFIR::SVFStmtList SVFStmtList</div><div class="ttdoc">SVFIR edge list. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00176">MemRegion.h:176</a></div></div>
2394
2394
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_a90fd0b8e44fba1a7eb76d15bce085d66"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const SVFInstruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00380">ICFGNode.h:380</a></div></div>
2395
- <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#l00099">PointerAnalysisImpl.h:99</a></div></div>
2396
2395
  <div class="ttc" id="classSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00383">SVFStatements.h:383</a></div></div>
2397
2396
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a7465657df2a376abc79147893d5e62aa"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7465657df2a376abc79147893d5e62aa">SVF::MRGenerator::getPAGEdgesFromInst</a></div><div class="ttdeci">SVFStmtList &amp; getPAGEdgesFromInst(const SVFInstruction *inst)</div><div class="ttdoc">Given an instruction, get all its the PAGEdge (statement) in sequence. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00159">MemRegion.cpp:159</a></div></div>
2398
2397
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a93ac673b885633849fa484938405ca75"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">SVF::SVFUtil::isHeapAllocExtCall</a></div><div class="ttdeci">bool isHeapAllocExtCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00447">SVFUtil.h:447</a></div></div>
2399
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
2398
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
2400
2399
  <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>
2400
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ac9897a09cad8a99169f2da2116807b1b"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">const PointsTo &amp; getPts(NodeID id) override</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00088">PointerAnalysisImpl.h:88</a></div></div>
2401
2401
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00295">SVFUtil.h:295</a></div></div>
2402
2402
  <div class="ttc" id="classSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00047">SVFStatements.h:47</a></div></div>
2403
2403
  </div><!-- fragment -->
@@ -2586,7 +2586,7 @@ Private Attributes</h2></td></tr>
2586
2586
  <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#l00388">MemRegion.h:388</a></div></div>
2587
2587
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a7465657df2a376abc79147893d5e62aa"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7465657df2a376abc79147893d5e62aa">SVF::MRGenerator::getPAGEdgesFromInst</a></div><div class="ttdeci">SVFStmtList &amp; getPAGEdgesFromInst(const SVFInstruction *inst)</div><div class="ttdoc">Given an instruction, get all its the PAGEdge (statement) in sequence. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8cpp_source.html#l00159">MemRegion.cpp:159</a></div></div>
2588
2588
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a93ac673b885633849fa484938405ca75"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">SVF::SVFUtil::isHeapAllocExtCall</a></div><div class="ttdeci">bool isHeapAllocExtCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00447">SVFUtil.h:447</a></div></div>
2589
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00747">SparseBitVector.h:747</a></div></div>
2589
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00739">SparseBitVector.h:739</a></div></div>
2590
2590
  <div class="ttc" id="classSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00047">SVFStatements.h:47</a></div></div>
2591
2591
  </div><!-- fragment -->
2592
2592
  </div>
@@ -2760,13 +2760,13 @@ Private Attributes</h2></td></tr>
2760
2760
 
2761
2761
  <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00150">150</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2762
2762
  <div class="fragment"><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;{</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MRGenerator.html#a6a62d2dede5d2506c19b2d058d1cd9d3">ptrOnlyMSSA</a>)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a0552d565633ee22abe03085134a871c0">hasPTASVFStmtList</a>(pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(inst));</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a63acb4d86d93ad1e88860ac839a8c654">hasSVFStmtList</a>(pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(inst));</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;}</div><div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
2763
- <div class="ttc" id="classSVF_1_1SVFIR_html_a63acb4d86d93ad1e88860ac839a8c654"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a63acb4d86d93ad1e88860ac839a8c654">SVF::SVFIR::hasSVFStmtList</a></div><div class="ttdeci">bool hasSVFStmtList(const ICFGNode *inst) const</div><div class="ttdoc">Whether this instruction has SVFIR Edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00193">SVFIR.h:193</a></div></div>
2764
- <div class="ttc" id="classSVF_1_1SVFIR_html_a0552d565633ee22abe03085134a871c0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a0552d565633ee22abe03085134a871c0">SVF::SVFIR::hasPTASVFStmtList</a></div><div class="ttdeci">bool hasPTASVFStmtList(const ICFGNode *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00197">SVFIR.h:197</a></div></div>
2763
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a63acb4d86d93ad1e88860ac839a8c654"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a63acb4d86d93ad1e88860ac839a8c654">SVF::SVFIR::hasSVFStmtList</a></div><div class="ttdeci">bool hasSVFStmtList(const ICFGNode *inst) const</div><div class="ttdoc">Whether this instruction has SVFIR Edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00191">SVFIR.h:191</a></div></div>
2764
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a0552d565633ee22abe03085134a871c0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a0552d565633ee22abe03085134a871c0">SVF::SVFIR::hasPTASVFStmtList</a></div><div class="ttdeci">bool hasPTASVFStmtList(const ICFGNode *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00195">SVFIR.h:195</a></div></div>
2765
2765
  <div class="ttc" id="classSVF_1_1ICFG_html_a5f2c0aaba07d6fdd63058da0fb60ca8b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">SVF::ICFG::getICFGNode</a></div><div class="ttdeci">ICFGNode * getICFGNode(NodeID id) const</div><div class="ttdoc">Get a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00087">ICFG.h:87</a></div></div>
2766
2766
  <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>
2767
2767
  <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>
2768
2768
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
2769
- <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00165">SVFIR.h:165</a></div></div>
2769
+ <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00163">SVFIR.h:163</a></div></div>
2770
2770
  </div><!-- fragment -->
2771
2771
  </div>
2772
2772
  </div>
@@ -2851,18 +2851,18 @@ Private Attributes</h2></td></tr>
2851
2851
  <div class="fragment"><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;{</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</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#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; assert(obj &amp;&amp; <span class="stringliteral">&quot;object not found!!&quot;</span>);</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">if</span>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a40462512a99eb258d8cd442c38d812b4">isGlobalObj</a>() || obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a898c5bb3956402578266a6fb142e02b1">isHeap</a>())</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#af7316c697eafc71d5fc93108da4e2cee">isStack</a>())</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; {</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svffun = <a class="code" href="classSVF_1_1MRGenerator.html#afb7ce3a24edda14895999eb15231daff">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>)-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a79b35a312248e96a89a28cbf1b99b6fe">getFunction</a>())</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="keywordflow">if</span>(svffun!=curFun)</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00591"></a><span class="lineno"> 591</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>(svffun)-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; }</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; }</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; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</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>
2852
2852
  <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="SymbolTableInfo_8h_source.html#l00348">SymbolTableInfo.h:348</a></div></div>
2853
2853
  <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>
2854
- <div class="ttc" id="classSVF_1_1MemObj_html_a40462512a99eb258d8cd442c38d812b4"><div class="ttname"><a href="classSVF_1_1MemObj.html#a40462512a99eb258d8cd442c38d812b4">SVF::MemObj::isGlobalObj</a></div><div class="ttdeci">bool isGlobalObj() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00473">SymbolTableInfo.cpp:473</a></div></div>
2855
- <div class="ttc" id="classSVF_1_1MemObj_html_af7316c697eafc71d5fc93108da4e2cee"><div class="ttname"><a href="classSVF_1_1MemObj.html#af7316c697eafc71d5fc93108da4e2cee">SVF::MemObj::isStack</a></div><div class="ttdeci">bool isStack() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00483">SymbolTableInfo.cpp:483</a></div></div>
2854
+ <div class="ttc" id="classSVF_1_1MemObj_html_a40462512a99eb258d8cd442c38d812b4"><div class="ttname"><a href="classSVF_1_1MemObj.html#a40462512a99eb258d8cd442c38d812b4">SVF::MemObj::isGlobalObj</a></div><div class="ttdeci">bool isGlobalObj() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00462">SymbolTableInfo.cpp:462</a></div></div>
2855
+ <div class="ttc" id="classSVF_1_1MemObj_html_af7316c697eafc71d5fc93108da4e2cee"><div class="ttname"><a href="classSVF_1_1MemObj.html#af7316c697eafc71d5fc93108da4e2cee">SVF::MemObj::isStack</a></div><div class="ttdeci">bool isStack() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00472">SymbolTableInfo.cpp:472</a></div></div>
2856
2856
  <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00257">SVFValue.h:257</a></div></div>
2857
2857
  <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>
2858
2858
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
2859
- <div class="ttc" id="classSVF_1_1MemObj_html_a898c5bb3956402578266a6fb142e02b1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a898c5bb3956402578266a6fb142e02b1">SVF::MemObj::isHeap</a></div><div class="ttdeci">bool isHeap() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00488">SymbolTableInfo.cpp:488</a></div></div>
2859
+ <div class="ttc" id="classSVF_1_1MemObj_html_a898c5bb3956402578266a6fb142e02b1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a898c5bb3956402578266a6fb142e02b1">SVF::MemObj::isHeap</a></div><div class="ttdeci">bool isHeap() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00477">SymbolTableInfo.cpp:477</a></div></div>
2860
2860
  <div class="ttc" id="classSVF_1_1SVFVar_html_a79b35a312248e96a89a28cbf1b99b6fe"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a79b35a312248e96a89a28cbf1b99b6fe">SVF::SVFVar::getFunction</a></div><div class="ttdeci">virtual const SVFFunction * getFunction() const</div><div class="ttdoc">Return the function that this SVFVar resides in. Return nullptr if it is a global or constantexpr nod...</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00127">SVFVariables.h:127</a></div></div>
2861
2861
  <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>
2862
2862
  <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#l00171">GenericGraph.h:171</a></div></div>
2863
2863
  <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>
2864
2864
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00395">GenericGraph.h:395</a></div></div>
2865
- <div class="ttc" id="classSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00365">SVFIR.h:365</a></div></div>
2865
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00363">SVFIR.h:363</a></div></div>
2866
2866
  </div><!-- fragment -->
2867
2867
  </div>
2868
2868
  </div>
@@ -2915,7 +2915,7 @@ Private Attributes</h2></td></tr>
2915
2915
  <div class="ttc" id="classSVF_1_1GenericNode_html_afe6a7b286d9af4992f41b59612fd2900"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">SVF::GenericNode::InEdgeEnd</a></div><div class="ttdeci">iterator InEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00220">GenericGraph.h:220</a></div></div>
2916
2916
  <div class="ttc" id="classSVF_1_1PTACallGraphNode_html_a959445c97605953fbdebbbd999437a09"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">SVF::PTACallGraphNode::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdoc">Get function of this call node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00193">PTACallGraph.h:193</a></div></div>
2917
2917
  <div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
2918
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
2918
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
2919
2919
  <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>
2920
2920
  <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>
2921
2921
  </div><!-- fragment -->
@@ -2987,9 +2987,9 @@ Private Attributes</h2></td></tr>
2987
2987
  <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>
2988
2988
 
2989
2989
  <p class="definition">Definition at line <a class="el" href="MemRegion_8cpp_source.html#l00282">282</a> of file <a class="el" href="MemRegion_8cpp_source.html">MemRegion.cpp</a>.</p>
2990
- <div class="fragment"><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;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</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="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a8b254a0c5063e25f297d1b00fb0b515e">PointsToList</a> subSetList;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> repCPts = cpts;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</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="l00291"></a><span class="lineno"> 291</span>&#160; eit = <a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; existCPts = it-&gt;second;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">if</span>(cpts.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(existCPts))</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; subSetList.insert(it-&gt;first);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(existCPts.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(cpts))</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; repCPts = existCPts;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; }</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; }</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">for</span>(PointsToList::iterator it = subSetList.begin(), eit = subSetList.end(); it!=eit; ++it)</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; <a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>[*it] = cpts;</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;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>[cpts] = repCPts;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;}</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_abbd0e0cf759fad7858224ed8a63aade8"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">SVF::SparseBitVector::contains</a></div><div class="ttdeci">bool contains(const SparseBitVector&lt; ElementSize &gt; &amp;RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01073">SparseBitVector.h:1073</a></div></div>
2990
+ <div class="fragment"><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;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</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="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#a8b254a0c5063e25f297d1b00fb0b515e">PointsToList</a> subSetList;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> repCPts = cpts;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</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="l00291"></a><span class="lineno"> 291</span>&#160; eit = <a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; existCPts = it-&gt;second;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">if</span>(cpts.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(existCPts))</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; subSetList.insert(it-&gt;first);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(existCPts.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(cpts))</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; repCPts = existCPts;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; }</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; }</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">for</span>(PointsToList::iterator it = subSetList.begin(), eit = subSetList.end(); it!=eit; ++it)</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; <a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>[*it] = cpts;</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;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="classSVF_1_1MRGenerator.html#ab4d1ff0357d389a65ff1c2112ce631a1">cptsToRepCPtsMap</a>[cpts] = repCPts;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;}</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_abbd0e0cf759fad7858224ed8a63aade8"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">SVF::SparseBitVector::contains</a></div><div class="ttdeci">bool contains(const SparseBitVector&lt; ElementSize &gt; &amp;RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01065">SparseBitVector.h:1065</a></div></div>
2991
2991
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a8b254a0c5063e25f297d1b00fb0b515e"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a8b254a0c5063e25f297d1b00fb0b515e">SVF::MRGenerator::PointsToList</a></div><div class="ttdeci">OrderedSet&lt; NodeBS, SVFUtil::equalNodeBS &gt; PointsToList</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00143">MemRegion.h:143</a></div></div>
2992
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
2992
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
2993
2993
  <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#l00280">MemRegion.h:280</a></div></div>
2994
2994
  </div><!-- fragment -->
2995
2995
  </div>
@@ -3031,7 +3031,7 @@ Private Attributes</h2></td></tr>
3031
3031
  <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>
3032
3032
  <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>
3033
3033
  <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#l00309">MemRegion.h:309</a></div></div>
3034
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
3034
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
3035
3035
  <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>
3036
3036
  <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#l00319">MemRegion.h:319</a></div></div>
3037
3037
  <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 SVFIR 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>