svf-tools 1.0.558 → 1.0.561

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/README.md +1 -1
  2. package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +43 -43
  3. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +2 -2
  4. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +16 -16
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +18 -18
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +56 -56
  9. package/SVF-doxygen/html/html/CFLGrammar_8txt.html +8 -8
  10. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +10 -1
  11. package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +3 -1
  12. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
  13. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +44 -44
  14. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +43 -43
  15. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +12 -12
  16. package/SVF-doxygen/html/html/DDAClient_8h_source.html +36 -36
  17. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +19 -19
  18. package/SVF-doxygen/html/html/DDAPass_8h_source.html +21 -21
  19. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +51 -51
  20. package/SVF-doxygen/html/html/DDAStat_8h_source.html +51 -51
  21. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +111 -111
  22. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
  23. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +2 -2
  24. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +5 -2
  25. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -2
  26. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +40 -40
  27. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +52 -52
  28. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +2 -2
  29. package/SVF-doxygen/html/html/FileChecker_8h_source.html +2 -2
  30. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
  31. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +42 -42
  32. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +3 -3
  33. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +6 -6
  34. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +4 -4
  35. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +3 -3
  36. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/LocationSet_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +34 -34
  39. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +114 -114
  40. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +2 -2
  41. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +7 -7
  42. package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
  43. package/SVF-doxygen/html/html/MHP_8cpp_source.html +94 -94
  44. package/SVF-doxygen/html/html/MHP_8h_source.html +135 -135
  45. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +6 -6
  46. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
  47. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +2 -2
  48. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +10 -10
  49. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +6 -6
  50. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +33 -33
  51. package/SVF-doxygen/html/html/MTAStat_8h_source.html +14 -14
  52. package/SVF-doxygen/html/html/MTA_8cpp_source.html +28 -28
  53. package/SVF-doxygen/html/html/MTA_8h_source.html +24 -24
  54. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +6 -6
  55. package/SVF-doxygen/html/html/MemPartition_8h_source.html +4 -4
  56. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +50 -50
  57. package/SVF-doxygen/html/html/MemRegion_8h_source.html +93 -93
  58. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +59 -59
  59. package/SVF-doxygen/html/html/MemSSA_8h_source.html +103 -103
  60. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +185 -185
  61. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +1 -1
  62. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
  63. package/SVF-doxygen/html/html/PCG_8cpp_source.html +14 -14
  64. package/SVF-doxygen/html/html/PCG_8h_source.html +52 -52
  65. package/SVF-doxygen/html/html/PEGGrammar_8txt.html +14 -32
  66. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +40 -40
  67. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +181 -181
  68. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +15 -15
  69. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +30 -30
  70. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
  71. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
  72. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +2 -2
  73. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +60 -60
  74. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +2 -2
  75. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  76. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  77. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
  78. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +2 -2
  79. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +19 -19
  80. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +1 -1
  81. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +12 -12
  82. package/SVF-doxygen/html/html/SVFG_8h_source.html +5 -5
  83. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -1
  84. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +3 -3
  86. package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +2 -2
  87. package/SVF-doxygen/html/html/SaberCheckerAPI_8cpp_source.html +1 -1
  88. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  89. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +1 -1
  90. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +1 -1
  91. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -3
  92. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
  93. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
  94. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +66 -66
  95. package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +1 -1
  96. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +4 -4
  97. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +6 -6
  98. package/SVF-doxygen/html/html/TCT_8cpp_source.html +44 -44
  99. package/SVF-doxygen/html/html/TCT_8h_source.html +93 -93
  100. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  101. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +2 -2
  102. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +2 -2
  103. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +25 -25
  104. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +38 -38
  105. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +5 -5
  106. package/SVF-doxygen/html/html/WPAStat_8h_source.html +2 -2
  107. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
  108. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
  109. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder-members.html +13 -10
  110. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +190 -2
  111. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +22 -22
  112. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +102 -102
  113. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +43 -43
  114. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +20 -20
  115. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +6 -6
  116. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +16 -16
  117. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +19 -19
  118. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +39 -39
  119. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +1 -1
  120. package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +2 -2
  121. package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +2 -2
  122. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
  123. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +100 -100
  124. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +51 -51
  125. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +58 -58
  126. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +165 -165
  127. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +286 -286
  128. package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +26 -26
  129. package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +11 -11
  130. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +4 -4
  131. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +4 -4
  132. package/SVF-doxygen/html/html/classSVF_1_1EntryCHI.html +2 -2
  133. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +5 -4
  134. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +40 -5
  135. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +30 -30
  136. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +3 -3
  137. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +71 -71
  138. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +7 -7
  139. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  140. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +218 -218
  141. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
  142. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
  143. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +19 -19
  144. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  145. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +7 -7
  146. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +17 -17
  147. package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +2 -2
  148. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +334 -334
  149. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +9 -9
  150. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +246 -246
  151. package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +7 -7
  152. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +200 -200
  153. package/SVF-doxygen/html/html/classSVF_1_1MSSACHI.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1MSSADEF.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1MSSAMU.html +2 -2
  156. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHI.html +1 -1
  157. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
  158. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +53 -53
  159. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
  160. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +22 -22
  161. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +181 -181
  162. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +44 -44
  163. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +23 -23
  164. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +267 -267
  165. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +18 -18
  166. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +128 -128
  167. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +55 -55
  168. package/SVF-doxygen/html/html/classSVF_1_1MutableIncDFPTData.html +88 -88
  169. package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +78 -78
  170. package/SVF-doxygen/html/html/classSVF_1_1MutableVersionedPTData.html +77 -77
  171. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +131 -131
  172. package/SVF-doxygen/html/html/classSVF_1_1PTData.html +32 -32
  173. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +107 -107
  174. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +66 -66
  175. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +84 -84
  176. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +77 -77
  177. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +134 -134
  178. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +77 -77
  179. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +3 -3
  180. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +161 -161
  181. package/SVF-doxygen/html/html/classSVF_1_1RaceValidator.html +7 -7
  182. package/SVF-doxygen/html/html/classSVF_1_1RetMU.html +2 -2
  183. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +22 -22
  184. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
  185. package/SVF-doxygen/html/html/classSVF_1_1SVFGNodeLockSpan.html +23 -23
  186. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +5 -5
  187. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +2 -2
  188. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +157 -157
  189. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +15 -15
  190. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +2 -2
  191. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +264 -264
  192. package/SVF-doxygen/html/html/classSVF_1_1TCTEdge.html +13 -13
  193. package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +20 -20
  194. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
  195. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +100 -100
  196. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +8 -8
  197. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
  198. package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +11 -11
  199. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +6 -6
  200. package/SVF-doxygen/html/html/dda_8cpp.html +2 -2
  201. package/SVF-doxygen/html/html/dda_8cpp_source.html +2 -2
  202. package/SVF-doxygen/html/html/functions_a.html +11 -5
  203. package/SVF-doxygen/html/html/functions_c.html +21 -18
  204. package/SVF-doxygen/html/html/functions_f.html +6 -6
  205. package/SVF-doxygen/html/html/functions_func.html +16 -10
  206. package/SVF-doxygen/html/html/functions_func_c.html +19 -16
  207. package/SVF-doxygen/html/html/functions_func_i.html +11 -8
  208. package/SVF-doxygen/html/html/functions_i.html +11 -8
  209. package/SVF-doxygen/html/html/functions_l.html +5 -5
  210. package/SVF-doxygen/html/html/functions_p.html +6 -6
  211. package/SVF-doxygen/html/html/functions_r.html +3 -7
  212. package/SVF-doxygen/html/html/functions_s.html +16 -14
  213. package/SVF-doxygen/html/html/functions_v.html +6 -6
  214. package/SVF-doxygen/html/html/functions_w.html +11 -11
  215. package/SVF-doxygen/html/html/globals_g.html +3 -3
  216. package/SVF-doxygen/html/html/globals_v.html +1 -2
  217. package/SVF-doxygen/html/html/globals_vars.html +3 -4
  218. package/SVF-doxygen/html/html/mta_8cpp.html +2 -2
  219. package/SVF-doxygen/html/html/mta_8cpp_source.html +2 -2
  220. package/SVF-doxygen/html/html/namespaceSVF.html +11 -11
  221. package/SVF-doxygen/html/html/search/all_1.js +2 -0
  222. package/SVF-doxygen/html/html/search/all_10.js +5 -5
  223. package/SVF-doxygen/html/html/search/all_11.js +2 -2
  224. package/SVF-doxygen/html/html/search/all_12.js +8 -8
  225. package/SVF-doxygen/html/html/search/all_13.js +2 -2
  226. package/SVF-doxygen/html/html/search/all_14.js +1 -1
  227. package/SVF-doxygen/html/html/search/all_15.js +4 -4
  228. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  229. package/SVF-doxygen/html/html/search/all_3.js +1 -0
  230. package/SVF-doxygen/html/html/search/all_6.js +2 -2
  231. package/SVF-doxygen/html/html/search/all_7.js +2 -2
  232. package/SVF-doxygen/html/html/search/all_9.js +2 -1
  233. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  234. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  235. package/SVF-doxygen/html/html/search/functions_0.js +2 -0
  236. package/SVF-doxygen/html/html/search/functions_2.js +1 -0
  237. package/SVF-doxygen/html/html/search/functions_8.js +1 -0
  238. package/SVF-doxygen/html/html/search/variables_13.js +1 -1
  239. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  240. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  241. package/SVF-doxygen/html/html/search/variables_7.js +2 -2
  242. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  243. package/SVF-doxygen/html/html/structSVF_1_1MemRegion_1_1equalMemRegion.html +3 -3
  244. package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html +4 -4
  245. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +15 -15
  246. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4.html +1 -1
  247. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCTNode_01_5_01_4.html +1 -1
  248. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCT_01_5_01_4.html +2 -2
  249. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SVFGNodeLockSpan_01_4.html +3 -3
  250. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  251. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  252. package/include/CFL/CFLGraphBuilder.h +9 -0
  253. package/include/CFL/PEGGrammar.txt +4 -8
  254. package/include/DDA/ContextDDA.h +29 -0
  255. package/include/DDA/DDAClient.h +23 -0
  256. package/include/DDA/DDAPass.h +22 -0
  257. package/include/DDA/DDAStat.h +22 -0
  258. package/include/DDA/DDAVFSolver.h +22 -0
  259. package/include/DDA/FlowDDA.h +29 -0
  260. package/include/MSSA/MSSAMuChi.h +1 -1
  261. package/include/MSSA/MemPartition.h +1 -1
  262. package/include/MSSA/MemRegion.h +5 -1
  263. package/include/MSSA/MemSSA.h +7 -1
  264. package/include/MSSA/SVFGBuilder.h +1 -1
  265. package/include/MTA/FSMPTA.h +26 -0
  266. package/include/MTA/LockAnalysis.h +22 -0
  267. package/include/MTA/MHP.h +22 -0
  268. package/include/MTA/MTA.h +27 -1
  269. package/include/MTA/MTAStat.h +22 -0
  270. package/include/MTA/PCG.h +22 -0
  271. package/include/MTA/TCT.h +22 -0
  272. package/include/MemoryModel/AbstractPointsToDS.h +34 -0
  273. package/include/MemoryModel/ConditionalPT.h +1 -1
  274. package/include/MemoryModel/LocationSet.h +1 -1
  275. package/include/MemoryModel/MutablePointsToDS.h +32 -0
  276. package/include/MemoryModel/PAGBuilderFromFile.h +2 -2
  277. package/include/MemoryModel/PersistentPointsToCache.h +3 -1
  278. package/include/MemoryModel/PersistentPointsToDS.h +10 -0
  279. package/include/MemoryModel/PointerAnalysis.h +1 -1
  280. package/include/MemoryModel/PointerAnalysisImpl.h +1 -1
  281. package/include/MemoryModel/SVFStatements.h +1 -1
  282. package/include/SABER/DoubleFreeChecker.h +1 -1
  283. package/include/SABER/FileChecker.h +1 -1
  284. package/include/SABER/LeakChecker.h +1 -1
  285. package/include/SABER/ProgSlice.h +8 -1
  286. package/include/SABER/SaberAnnotator.h +1 -1
  287. package/include/SABER/SaberCheckerAPI.h +1 -1
  288. package/include/SABER/SaberCondAllocator.h +1 -1
  289. package/include/SABER/SaberSVFGBuilder.h +1 -1
  290. package/include/SABER/SrcSnkDDA.h +8 -1
  291. package/include/SABER/SrcSnkSolver.h +1 -1
  292. package/include/Util/ExtAPI.h +3 -0
  293. package/include/Util/ExtAPI.json +1456 -44
  294. package/include/WPA/Andersen.h +5 -0
  295. package/include/WPA/TypeAnalysis.h +1 -1
  296. package/include/WPA/VersionedFlowSensitive.h +4 -0
  297. package/lib/CFL/CFLGraphBuilder.cpp +44 -0
  298. package/lib/DDA/ContextDDA.cpp +22 -0
  299. package/lib/DDA/DDAClient.cpp +22 -0
  300. package/lib/DDA/DDAPass.cpp +23 -0
  301. package/lib/DDA/DDAStat.cpp +22 -0
  302. package/lib/DDA/FlowDDA.cpp +22 -0
  303. package/lib/MTA/FSMPTA.cpp +22 -0
  304. package/lib/MTA/LockAnalysis.cpp +22 -0
  305. package/lib/MTA/MHP.cpp +23 -1
  306. package/lib/MTA/MTA.cpp +23 -0
  307. package/lib/MTA/MTAStat.cpp +22 -0
  308. package/lib/MTA/PCG.cpp +22 -0
  309. package/lib/MTA/TCT.cpp +23 -0
  310. package/lib/MemoryModel/LocationSet.cpp +1 -1
  311. package/lib/MemoryModel/PAGBuilderFromFile.cpp +1 -1
  312. package/lib/MemoryModel/PointerAnalysis.cpp +1 -1
  313. package/lib/MemoryModel/PointerAnalysisImpl.cpp +23 -0
  314. package/lib/SABER/DoubleFreeChecker.cpp +1 -1
  315. package/lib/SABER/FileChecker.cpp +1 -1
  316. package/lib/SABER/LeakChecker.cpp +1 -1
  317. package/lib/SABER/ProgSlice.cpp +1 -1
  318. package/lib/SABER/SaberAnnotator.cpp +1 -1
  319. package/lib/SABER/SaberCheckerAPI.cpp +1 -1
  320. package/lib/SABER/SaberCondAllocator.cpp +1 -1
  321. package/lib/SABER/SaberSVFGBuilder.cpp +1 -1
  322. package/lib/SABER/SrcSnkDDA.cpp +1 -1
  323. package/lib/Util/ExtAPI.cpp +42 -4
  324. package/lib/WPA/Steensgaard.cpp +22 -0
  325. package/lib/WPA/TypeAnalysis.cpp +1 -1
  326. package/lib/WPA/WPAPass.cpp +1 -1
  327. package/package.json +1 -1
@@ -380,7 +380,7 @@ class SVF::DDAVFSolver&lt; CVar, CPtSet, DPIm &gt;</h3>
380
380
 
381
381
  <p>Value-Flow Based Demand-Driven Points-to Analysis </p>
382
382
 
383
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00025">25</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
383
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00047">47</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
384
384
  </div><h2 class="groupheader">Member Typedef Documentation</h2>
385
385
  <a id="af6e05e87ba8d6b6ae65807803b1b0221"></a>
386
386
  <h2 class="memtitle"><span class="permalink"><a href="#af6e05e87ba8d6b6ae65807803b1b0221">&#9670;&nbsp;</a></span>CallGraphSCC</h2>
@@ -396,7 +396,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
396
396
  </table>
397
397
  </div><div class="memdoc">
398
398
 
399
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00030">30</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
399
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00052">52</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
400
400
 
401
401
  </div>
402
402
  </div>
@@ -414,7 +414,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
414
414
  </table>
415
415
  </div><div class="memdoc">
416
416
 
417
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00031">31</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
417
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00053">53</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
418
418
 
419
419
  </div>
420
420
  </div>
@@ -432,7 +432,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
432
432
  </table>
433
433
  </div><div class="memdoc">
434
434
 
435
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00032">32</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
435
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00054">54</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
436
436
 
437
437
  </div>
438
438
  </div>
@@ -450,7 +450,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
450
450
  </table>
451
451
  </div><div class="memdoc">
452
452
 
453
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00038">38</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
453
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00060">60</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
454
454
 
455
455
  </div>
456
456
  </div>
@@ -468,7 +468,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
468
468
  </table>
469
469
  </div><div class="memdoc">
470
470
 
471
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00034">34</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
471
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00056">56</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
472
472
 
473
473
  </div>
474
474
  </div>
@@ -486,7 +486,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
486
486
  </table>
487
487
  </div><div class="memdoc">
488
488
 
489
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00035">35</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
489
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00057">57</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
490
490
 
491
491
  </div>
492
492
  </div>
@@ -504,7 +504,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
504
504
  </table>
505
505
  </div><div class="memdoc">
506
506
 
507
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00036">36</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
507
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00058">58</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
508
508
 
509
509
  </div>
510
510
  </div>
@@ -522,7 +522,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
522
522
  </table>
523
523
  </div><div class="memdoc">
524
524
 
525
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00033">33</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
525
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00055">55</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
526
526
 
527
527
  </div>
528
528
  </div>
@@ -540,7 +540,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
540
540
  </table>
541
541
  </div><div class="memdoc">
542
542
 
543
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00037">37</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
543
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00059">59</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
544
544
 
545
545
  </div>
546
546
  </div>
@@ -558,7 +558,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
558
558
  </table>
559
559
  </div><div class="memdoc">
560
560
 
561
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00040">40</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
561
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00062">62</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
562
562
 
563
563
  </div>
564
564
  </div>
@@ -576,7 +576,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
576
576
  </table>
577
577
  </div><div class="memdoc">
578
578
 
579
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00039">39</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
579
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00061">61</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
580
580
 
581
581
  </div>
582
582
  </div>
@@ -594,7 +594,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
594
594
  </table>
595
595
  </div><div class="memdoc">
596
596
 
597
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00029">29</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
597
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00051">51</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
598
598
 
599
599
  </div>
600
600
  </div>
@@ -626,15 +626,15 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
626
626
 
627
627
  <p>Constructor. </p>
628
628
 
629
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00043">43</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
630
- <div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; : <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a>(<span class="keyword">false</span>),<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>(<span class="keyword">nullptr</span>),<a class="code" href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">_svfg</a>(<span class="keyword">nullptr</span>),<a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a>(<span class="keyword">nullptr</span>),<a class="code" href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">_callGraph</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">_callGraphSCC</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a4c307d486756daa1e79595b1e9edc40a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">SVF::DDAVFSolver::_callGraphSCC</a></div><div class="ttdeci">CallGraphSCC * _callGraphSCC</div><div class="ttdoc">SCC for CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00758">DDAVFSolver.h:758</a></div></div>
631
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00768">DDAVFSolver.h:768</a></div></div>
632
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a74d83f06e8fc0ecedc1e1846030c99c6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">SVF::DDAVFSolver::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00754">DDAVFSolver.h:754</a></div></div>
633
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00759">DDAVFSolver.h:759</a></div></div>
634
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_abf24080617c6a74abed9f0bb0bc9c0c5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">SVF::DDAVFSolver::_callGraph</a></div><div class="ttdeci">PTACallGraph * _callGraph</div><div class="ttdoc">CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00757">DDAVFSolver.h:757</a></div></div>
635
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00753">DDAVFSolver.h:753</a></div></div>
636
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_afdecfbacc64cb8d694268aa73ec8a7b6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">SVF::DDAVFSolver::outOfBudgetQuery</a></div><div class="ttdeci">bool outOfBudgetQuery</div><div class="ttdoc">Whether the current query is out of step limits. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00752">DDAVFSolver.h:752</a></div></div>
637
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&amp;#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00755">DDAVFSolver.h:755</a></div></div>
629
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00065">65</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
630
+ <div class="fragment"><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; : <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a>(<span class="keyword">false</span>),<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>(<span class="keyword">nullptr</span>),<a class="code" href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">_svfg</a>(<span class="keyword">nullptr</span>),<a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a>(<span class="keyword">nullptr</span>),<a class="code" href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">_callGraph</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">_callGraphSCC</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a4c307d486756daa1e79595b1e9edc40a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">SVF::DDAVFSolver::_callGraphSCC</a></div><div class="ttdeci">CallGraphSCC * _callGraphSCC</div><div class="ttdoc">SCC for CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00780">DDAVFSolver.h:780</a></div></div>
631
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
632
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a74d83f06e8fc0ecedc1e1846030c99c6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">SVF::DDAVFSolver::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00776">DDAVFSolver.h:776</a></div></div>
633
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00781">DDAVFSolver.h:781</a></div></div>
634
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_abf24080617c6a74abed9f0bb0bc9c0c5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">SVF::DDAVFSolver::_callGraph</a></div><div class="ttdeci">PTACallGraph * _callGraph</div><div class="ttdoc">CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00779">DDAVFSolver.h:779</a></div></div>
635
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
636
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_afdecfbacc64cb8d694268aa73ec8a7b6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">SVF::DDAVFSolver::outOfBudgetQuery</a></div><div class="ttdeci">bool outOfBudgetQuery</div><div class="ttdoc">Whether the current query is out of step limits. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00774">DDAVFSolver.h:774</a></div></div>
637
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&amp;#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00777">DDAVFSolver.h:777</a></div></div>
638
638
  </div><!-- fragment -->
639
639
  </div>
640
640
  </div>
@@ -665,12 +665,12 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
665
665
 
666
666
  <p>Destructor. </p>
667
667
 
668
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00047">47</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
669
- <div class="fragment"><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// AndersenWaveDiff::releaseAndersenWaveDiff();</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">_svfg</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// DDASVFGBuilder::releaseDDASVFG();</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">_svfg</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">_callGraph</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">_callGraphSCC</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a4c307d486756daa1e79595b1e9edc40a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">SVF::DDAVFSolver::_callGraphSCC</a></div><div class="ttdeci">CallGraphSCC * _callGraphSCC</div><div class="ttdoc">SCC for CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00758">DDAVFSolver.h:758</a></div></div>
670
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a74d83f06e8fc0ecedc1e1846030c99c6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">SVF::DDAVFSolver::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00754">DDAVFSolver.h:754</a></div></div>
671
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00759">DDAVFSolver.h:759</a></div></div>
672
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_abf24080617c6a74abed9f0bb0bc9c0c5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">SVF::DDAVFSolver::_callGraph</a></div><div class="ttdeci">PTACallGraph * _callGraph</div><div class="ttdoc">CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00757">DDAVFSolver.h:757</a></div></div>
673
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&amp;#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00755">DDAVFSolver.h:755</a></div></div>
668
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00069">69</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
669
+ <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="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="comment">// AndersenWaveDiff::releaseAndersenWaveDiff();</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a> = <span class="keyword">nullptr</span>;</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;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">_svfg</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="comment">// DDASVFGBuilder::releaseDDASVFG();</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">_svfg</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a> = <span class="keyword">nullptr</span>;</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; <a class="code" href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">_callGraph</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">_callGraphSCC</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a4c307d486756daa1e79595b1e9edc40a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">SVF::DDAVFSolver::_callGraphSCC</a></div><div class="ttdeci">CallGraphSCC * _callGraphSCC</div><div class="ttdoc">SCC for CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00780">DDAVFSolver.h:780</a></div></div>
670
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a74d83f06e8fc0ecedc1e1846030c99c6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">SVF::DDAVFSolver::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00776">DDAVFSolver.h:776</a></div></div>
671
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00781">DDAVFSolver.h:781</a></div></div>
672
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_abf24080617c6a74abed9f0bb0bc9c0c5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">SVF::DDAVFSolver::_callGraph</a></div><div class="ttdeci">PTACallGraph * _callGraph</div><div class="ttdoc">CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00779">DDAVFSolver.h:779</a></div></div>
673
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&amp;#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00777">DDAVFSolver.h:777</a></div></div>
674
674
  </div><!-- fragment -->
675
675
  </div>
676
676
  </div>
@@ -713,8 +713,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
713
713
 
714
714
  <p>Add pts. </p>
715
715
 
716
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00091">91</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
717
- <div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; pts.set(var);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div></div><!-- fragment -->
716
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00113">113</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
717
+ <div class="fragment"><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; pts.set(var);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div></div><!-- fragment -->
718
718
  </div>
719
719
  </div>
720
720
  <a id="af7be3fa6c73dde97d6f9fd0395c9aee0"></a>
@@ -743,8 +743,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
743
743
  </table>
744
744
  </div><div class="memdoc">
745
745
 
746
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00647">647</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
747
- <div class="fragment"><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; {</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>[dpm.getLoc()-&gt;getId()].insert(dpm);</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00763">DDAVFSolver.h:763</a></div></div>
746
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00669">669</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
747
+ <div class="fragment"><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; {</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>[dpm.getLoc()-&gt;getId()].insert(dpm);</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00785">DDAVFSolver.h:785</a></div></div>
748
748
  </div><!-- fragment -->
749
749
  </div>
750
750
  </div>
@@ -784,8 +784,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
784
784
  </table>
785
785
  </div><div class="memdoc">
786
786
 
787
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00680">680</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
788
- <div class="fragment"><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; {</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keyword">typename</span> DPMToCVarMap::iterator it = <a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.find(dpm);</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.end())</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; it-&gt;second = loadVar;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.insert(std::make_pair(dpm,loadVar));</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6d62420837fe0c7814fc4da68a91eda4"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">SVF::DDAVFSolver::loadToPTCVarMap</a></div><div class="ttdeci">DPMToCVarMap loadToPTCVarMap</div><div class="ttdoc">map a load dpm to its cvar pointed by its pointer operand </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00765">DDAVFSolver.h:765</a></div></div>
787
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00702">702</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
788
+ <div class="fragment"><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; {</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="keyword">typename</span> DPMToCVarMap::iterator it = <a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.find(dpm);</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.end())</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; it-&gt;second = loadVar;</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; <a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.insert(std::make_pair(dpm,loadVar));</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6d62420837fe0c7814fc4da68a91eda4"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">SVF::DDAVFSolver::loadToPTCVarMap</a></div><div class="ttdeci">DPMToCVarMap loadToPTCVarMap</div><div class="ttdoc">map a load dpm to its cvar pointed by its pointer operand </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00787">DDAVFSolver.h:787</a></div></div>
789
789
  </div><!-- fragment -->
790
790
  </div>
791
791
  </div>
@@ -827,8 +827,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
827
827
 
828
828
  <p>Note that simply use "dpmToloadDpmMap[dpm]=loadDpm", requires DPIm have a default constructor. </p>
829
829
 
830
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00666">666</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
831
- <div class="fragment"><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; {</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keyword">typename</span> DPMToDPMMap::iterator it = <a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.find(dpm);</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.end())</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; it-&gt;second = loadDpm;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.insert(std::make_pair(dpm,loadDpm));</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a9d8959dfee05685cd74d0d7a78069692"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">SVF::DDAVFSolver::dpmToloadDpmMap</a></div><div class="ttdeci">DPMToDPMMap dpmToloadDpmMap</div><div class="ttdoc">dpms at loads for may/must-alias analysis with stores </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00764">DDAVFSolver.h:764</a></div></div>
830
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00688">688</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
831
+ <div class="fragment"><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; {</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keyword">typename</span> DPMToDPMMap::iterator it = <a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.find(dpm);</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.end())</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; it-&gt;second = loadDpm;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.insert(std::make_pair(dpm,loadDpm));</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a9d8959dfee05685cd74d0d7a78069692"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">SVF::DDAVFSolver::dpmToloadDpmMap</a></div><div class="ttdeci">DPMToDPMMap dpmToloadDpmMap</div><div class="ttdoc">dpms at loads for may/must-alias analysis with stores </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00786">DDAVFSolver.h:786</a></div></div>
832
832
  </div><!-- fragment -->
833
833
  </div>
834
834
  </div>
@@ -876,9 +876,9 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
876
876
 
877
877
  <p>LoadDpm for must-alias analysis. </p>
878
878
 
879
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00660">660</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
880
- <div class="fragment"><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; {</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a7579491400f1781356cb7d1913537547">addLoadCVar</a>(dpm,loadVar);</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a4725013a7617645e1418ed670d4837b5">addLoadDpm</a>(dpm,loadDpm);</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a4725013a7617645e1418ed670d4837b5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a4725013a7617645e1418ed670d4837b5">SVF::DDAVFSolver::addLoadDpm</a></div><div class="ttdeci">void addLoadDpm(const DPIm &amp;dpm, const DPIm &amp;loadDpm)</div><div class="ttdoc">Note that simply use &quot;dpmToloadDpmMap[dpm]=loadDpm&quot;, requires DPIm have a default constructor...</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00666">DDAVFSolver.h:666</a></div></div>
881
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7579491400f1781356cb7d1913537547"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7579491400f1781356cb7d1913537547">SVF::DDAVFSolver::addLoadCVar</a></div><div class="ttdeci">void addLoadCVar(const DPIm &amp;dpm, const CVar &amp;loadVar)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00680">DDAVFSolver.h:680</a></div></div>
879
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00682">682</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
880
+ <div class="fragment"><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; {</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a7579491400f1781356cb7d1913537547">addLoadCVar</a>(dpm,loadVar);</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a4725013a7617645e1418ed670d4837b5">addLoadDpm</a>(dpm,loadDpm);</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a4725013a7617645e1418ed670d4837b5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a4725013a7617645e1418ed670d4837b5">SVF::DDAVFSolver::addLoadDpm</a></div><div class="ttdeci">void addLoadDpm(const DPIm &amp;dpm, const DPIm &amp;loadDpm)</div><div class="ttdoc">Note that simply use &quot;dpmToloadDpmMap[dpm]=loadDpm&quot;, requires DPIm have a default constructor...</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00688">DDAVFSolver.h:688</a></div></div>
881
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7579491400f1781356cb7d1913537547"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7579491400f1781356cb7d1913537547">SVF::DDAVFSolver::addLoadCVar</a></div><div class="ttdeci">void addLoadCVar(const DPIm &amp;dpm, const CVar &amp;loadVar)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00702">DDAVFSolver.h:702</a></div></div>
882
882
  </div><!-- fragment -->
883
883
  </div>
884
884
  </div>
@@ -908,8 +908,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
908
908
  </table>
909
909
  </div><div class="memdoc">
910
910
 
911
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00715">715</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
912
- <div class="fragment"><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; {</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">outOfBudgetDpms</a>.insert(dpm);</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aad57a954473f3099188cf8c8fba87880"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">SVF::DDAVFSolver::outOfBudgetDpms</a></div><div class="ttdeci">DPTItemSet outOfBudgetDpms</div><div class="ttdoc">out of budget dpm set </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00766">DDAVFSolver.h:766</a></div></div>
911
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00737">737</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
912
+ <div class="fragment"><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; {</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">outOfBudgetDpms</a>.insert(dpm);</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aad57a954473f3099188cf8c8fba87880"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">SVF::DDAVFSolver::outOfBudgetDpms</a></div><div class="ttdeci">DPTItemSet outOfBudgetDpms</div><div class="ttdoc">out of budget dpm set </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00788">DDAVFSolver.h:788</a></div></div>
913
913
  </div><!-- fragment -->
914
914
  </div>
915
915
  </div>
@@ -951,11 +951,11 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
951
951
 
952
952
  <p>stat strong updates num </p>
953
953
 
954
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00732">732</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
955
- <div class="fragment"><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; {</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#af66895278f0ecbc882f9e4f43ef9c8a8">storeToDPMs</a>[node].insert(dpm).second)</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; {</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">_NumOfStrongUpdates</a>++;</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#ad53ad7a958c05b45624d2859a6a9e647">_StrongUpdateStores</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(node-&gt;getId());</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; }</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00768">DDAVFSolver.h:768</a></div></div>
956
- <div class="ttc" id="classSVF_1_1DDAStat_html_ad53ad7a958c05b45624d2859a6a9e647"><div class="ttname"><a href="classSVF_1_1DDAStat.html#ad53ad7a958c05b45624d2859a6a9e647">SVF::DDAStat::_StrongUpdateStores</a></div><div class="ttdeci">NodeBS _StrongUpdateStores</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00044">DDAStat.h:44</a></div></div>
957
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_af66895278f0ecbc882f9e4f43ef9c8a8"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af66895278f0ecbc882f9e4f43ef9c8a8">SVF::DDAVFSolver::storeToDPMs</a></div><div class="ttdeci">StoreToPMSetMap storeToDPMs</div><div class="ttdoc">map store to set of DPM which have been stong updated there </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00767">DDAVFSolver.h:767</a></div></div>
958
- <div class="ttc" id="classSVF_1_1DDAStat_html_a5c007645d73bfc5cfefef672f3c1dcf1"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">SVF::DDAStat::_NumOfStrongUpdates</a></div><div class="ttdeci">u32_t _NumOfStrongUpdates</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00033">DDAStat.h:33</a></div></div>
954
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00754">754</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
955
+ <div class="fragment"><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; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#af66895278f0ecbc882f9e4f43ef9c8a8">storeToDPMs</a>[node].insert(dpm).second)</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; {</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">_NumOfStrongUpdates</a>++;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#ad53ad7a958c05b45624d2859a6a9e647">_StrongUpdateStores</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(node-&gt;getId());</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; }</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
956
+ <div class="ttc" id="classSVF_1_1DDAStat_html_ad53ad7a958c05b45624d2859a6a9e647"><div class="ttname"><a href="classSVF_1_1DDAStat.html#ad53ad7a958c05b45624d2859a6a9e647">SVF::DDAStat::_StrongUpdateStores</a></div><div class="ttdeci">NodeBS _StrongUpdateStores</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00066">DDAStat.h:66</a></div></div>
957
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_af66895278f0ecbc882f9e4f43ef9c8a8"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af66895278f0ecbc882f9e4f43ef9c8a8">SVF::DDAVFSolver::storeToDPMs</a></div><div class="ttdeci">StoreToPMSetMap storeToDPMs</div><div class="ttdoc">map store to set of DPM which have been stong updated there </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00789">DDAVFSolver.h:789</a></div></div>
958
+ <div class="ttc" id="classSVF_1_1DDAStat_html_a5c007645d73bfc5cfefef672f3c1dcf1"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">SVF::DDAStat::_NumOfStrongUpdates</a></div><div class="ttdeci">u32_t _NumOfStrongUpdates</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00055">DDAStat.h:55</a></div></div>
959
959
  <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#l00745">SparseBitVector.h:745</a></div></div>
960
960
  </div><!-- fragment -->
961
961
  </div>
@@ -998,14 +998,14 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
998
998
 
999
999
  <p>Backward traverse along direct value flows. </p>
1000
1000
 
1001
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00347">347</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1002
- <div class="fragment"><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* node = oldDpm.getLoc();</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVFGEdgeSet</a> edgeSet(node-&gt;getInEdges());</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> it = edgeSet.begin(), eit = edgeSet.end(); it != eit; ++it)</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> DirectSVFGEdge* dirEdge = SVFUtil::dyn_cast&lt;DirectSVFGEdge&gt;(*it))</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t==backtrace directVF svfgNode &quot;</span> &lt;&lt;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; dirEdge-&gt;getDstID() &lt;&lt; <span class="stringliteral">&quot; --&gt; &quot;</span> &lt;&lt; dirEdge-&gt;getSrcID() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* srcNode = dirEdge-&gt;getSrcNode();</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">backwardPropDpm</a>(pts,<a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;getLHSTopLevPtr(srcNode)-&gt;getId(),oldDpm,dirEdge);</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6489319b33a807f7caba2d34017a3e1b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVF::DDAVFSolver::SVFGEdgeSet</a></div><div class="ttdeci">SVFGEdge::SVFGEdgeSetTy SVFGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00039">DDAVFSolver.h:39</a></div></div>
1001
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00369">369</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1002
+ <div class="fragment"><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* node = oldDpm.getLoc();</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVFGEdgeSet</a> edgeSet(node-&gt;getInEdges());</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> it = edgeSet.begin(), eit = edgeSet.end(); it != eit; ++it)</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> DirectSVFGEdge* dirEdge = SVFUtil::dyn_cast&lt;DirectSVFGEdge&gt;(*it))</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; {</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t==backtrace directVF svfgNode &quot;</span> &lt;&lt;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; dirEdge-&gt;getDstID() &lt;&lt; <span class="stringliteral">&quot; --&gt; &quot;</span> &lt;&lt; dirEdge-&gt;getSrcID() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* srcNode = dirEdge-&gt;getSrcNode();</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">backwardPropDpm</a>(pts,<a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;getLHSTopLevPtr(srcNode)-&gt;getId(),oldDpm,dirEdge);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; }</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6489319b33a807f7caba2d34017a3e1b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVF::DDAVFSolver::SVFGEdgeSet</a></div><div class="ttdeci">SVFGEdge::SVFGEdgeSetTy SVFGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00061">DDAVFSolver.h:61</a></div></div>
1003
1003
  <div class="ttc" id="namespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
1004
1004
  <div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
1005
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &amp;pts, NodeID ptr, const DPIm &amp;oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00399">DDAVFSolver.h:399</a></div></div>
1005
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &amp;pts, NodeID ptr, const DPIm &amp;oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00421">DDAVFSolver.h:421</a></div></div>
1006
1006
  <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>
1007
1007
  <div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
1008
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00096">DDAVFSolver.h:96</a></div></div>
1008
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00118">DDAVFSolver.h:118</a></div></div>
1009
1009
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
1010
1010
  </div><!-- fragment -->
1011
1011
  </div>
@@ -1048,16 +1048,16 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1048
1048
 
1049
1049
  <p>Backward traverse along indirect value flows. </p>
1050
1050
 
1051
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00325">325</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1052
- <div class="fragment"><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; {</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* node = oldDpm.getLoc();</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> obj = oldDpm.getCurNodeID();</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">isConstantObj</a>(obj) || <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a980e54129ece0757d7f0373f37428507">isNonPointerObj</a>(obj))</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVFGEdgeSet</a> edgeSet(node-&gt;getInEdges());</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> it = edgeSet.begin(), eit = edgeSet.end(); it != eit; ++it)</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> IndirectSVFGEdge* indirEdge = SVFUtil::dyn_cast&lt;IndirectSVFGEdge&gt;(*it))</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa7b6a13e52671de8524b130738aeb564">NodeBS</a>&amp; guard = indirEdge-&gt;getPointsTo();</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">if</span>(guard.test(obj))</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t==backtrace indirectVF svfgNode &quot;</span> &lt;&lt;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; indirEdge-&gt;getDstID() &lt;&lt; <span class="stringliteral">&quot; --&gt; &quot;</span> &lt;&lt; indirEdge-&gt;getSrcID() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">backwardPropDpm</a>(pts,oldDpm.getCurNodeID(),oldDpm,indirEdge);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; }</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; }</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; }</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
1053
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6489319b33a807f7caba2d34017a3e1b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVF::DDAVFSolver::SVFGEdgeSet</a></div><div class="ttdeci">SVFGEdge::SVFGEdgeSetTy SVFGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00039">DDAVFSolver.h:39</a></div></div>
1051
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00347">347</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1052
+ <div class="fragment"><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* node = oldDpm.getLoc();</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> obj = oldDpm.getCurNodeID();</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">isConstantObj</a>(obj) || <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a980e54129ece0757d7f0373f37428507">isNonPointerObj</a>(obj))</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVFGEdgeSet</a> edgeSet(node-&gt;getInEdges());</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> it = edgeSet.begin(), eit = edgeSet.end(); it != eit; ++it)</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> IndirectSVFGEdge* indirEdge = SVFUtil::dyn_cast&lt;IndirectSVFGEdge&gt;(*it))</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; {</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa7b6a13e52671de8524b130738aeb564">NodeBS</a>&amp; guard = indirEdge-&gt;getPointsTo();</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">if</span>(guard.test(obj))</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; {</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t==backtrace indirectVF svfgNode &quot;</span> &lt;&lt;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; indirEdge-&gt;getDstID() &lt;&lt; <span class="stringliteral">&quot; --&gt; &quot;</span> &lt;&lt; indirEdge-&gt;getSrcID() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">backwardPropDpm</a>(pts,oldDpm.getCurNodeID(),oldDpm,indirEdge);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; }</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; }</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
1053
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6489319b33a807f7caba2d34017a3e1b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVF::DDAVFSolver::SVFGEdgeSet</a></div><div class="ttdeci">SVFGEdge::SVFGEdgeSetTy SVFGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00061">DDAVFSolver.h:61</a></div></div>
1054
1054
  <div class="ttc" id="classSVF_1_1SVFIR_html_a5d15e4b09784f438568ebe61f8aa5156"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">SVF::SVFIR::isConstantObj</a></div><div class="ttdeci">bool isConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00392">SVFIR.h:392</a></div></div>
1055
1055
  <div class="ttc" id="namespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
1056
1056
  <div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
1057
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &amp;pts, NodeID ptr, const DPIm &amp;oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00399">DDAVFSolver.h:399</a></div></div>
1057
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &amp;pts, NodeID ptr, const DPIm &amp;oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00421">DDAVFSolver.h:421</a></div></div>
1058
1058
  <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>
1059
1059
  <div class="ttc" id="namespaceSVF_html_aa7b6a13e52671de8524b130738aeb564"><div class="ttname"><a href="namespaceSVF.html#aa7b6a13e52671de8524b130738aeb564">SVF::NodeBS</a></div><div class="ttdeci">SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00096">SVFBasicTypes.h:96</a></div></div>
1060
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00753">DDAVFSolver.h:753</a></div></div>
1060
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
1061
1061
  <div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
1062
1062
  <div class="ttc" id="classSVF_1_1SVFIR_html_a980e54129ece0757d7f0373f37428507"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a980e54129ece0757d7f0373f37428507">SVF::SVFIR::isNonPointerObj</a></div><div class="ttdeci">bool isNonPointerObj(NodeID id) const</div><div class="ttdoc">Whether an object can point to any other object or any of its fields is a pointer type...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00673">SVFIR.cpp:673</a></div></div>
1063
1063
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
@@ -1100,17 +1100,17 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1100
1100
  </table>
1101
1101
  </div><div class="memdoc">
1102
1102
 
1103
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00386">386</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1104
- <div class="fragment"><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a54c5725186e66ead6faf53c10a288714">StoreSVFGNode</a>* store = SVFUtil::cast&lt;StoreSVFGNode&gt;(oldDpm.getLoc());</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* storeSrc = <a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(store-&gt;getPAGSrcNode());</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;++backtrace to storeSrc from svfgNode &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">getLoadDpm</a>(oldDpm).getLoc()-&gt;getId() &lt;&lt; <span class="stringliteral">&quot; to &quot;</span>&lt;&lt;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; store-&gt;getId() &lt;&lt; <span class="stringliteral">&quot; to &quot;</span> &lt;&lt; storeSrc-&gt;getId() &lt;&lt;<span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1VFG.html#ae1348fd6d196ee8a6bd8d98022464d50">getIntraVFGEdge</a>(storeSrc,store,<a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVFGEdge::IntraDirectVF</a>);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;Edge not found!!&quot;</span>);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">backwardPropDpm</a>(pts,store-&gt;getPAGSrcNodeID(),oldDpm,edge);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div><div class="ttc" id="classSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVF::VFGEdge::IntraDirectVF</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00053">VFGEdge.h:53</a></div></div>
1105
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a55803a2d30137b5ad15c5afeec7c6b28"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">SVF::DDAVFSolver::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">GetDefinition SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00320">DDAVFSolver.h:320</a></div></div>
1106
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a630aad14a285c954a50c632f9cb13fa9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">SVF::DDAVFSolver::getLoadDpm</a></div><div class="ttdeci">const DPIm &amp; getLoadDpm(const DPIm &amp;dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00674">DDAVFSolver.h:674</a></div></div>
1103
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00408">408</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1104
+ <div class="fragment"><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; {</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a54c5725186e66ead6faf53c10a288714">StoreSVFGNode</a>* store = SVFUtil::cast&lt;StoreSVFGNode&gt;(oldDpm.getLoc());</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* storeSrc = <a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(store-&gt;getPAGSrcNode());</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;++backtrace to storeSrc from svfgNode &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">getLoadDpm</a>(oldDpm).getLoc()-&gt;getId() &lt;&lt; <span class="stringliteral">&quot; to &quot;</span>&lt;&lt;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; store-&gt;getId() &lt;&lt; <span class="stringliteral">&quot; to &quot;</span> &lt;&lt; storeSrc-&gt;getId() &lt;&lt;<span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1VFG.html#ae1348fd6d196ee8a6bd8d98022464d50">getIntraVFGEdge</a>(storeSrc,store,<a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVFGEdge::IntraDirectVF</a>);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;Edge not found!!&quot;</span>);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">backwardPropDpm</a>(pts,store-&gt;getPAGSrcNodeID(),oldDpm,edge);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; }</div><div class="ttc" id="classSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVF::VFGEdge::IntraDirectVF</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00053">VFGEdge.h:53</a></div></div>
1105
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a55803a2d30137b5ad15c5afeec7c6b28"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">SVF::DDAVFSolver::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">GetDefinition SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00342">DDAVFSolver.h:342</a></div></div>
1106
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a630aad14a285c954a50c632f9cb13fa9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">SVF::DDAVFSolver::getLoadDpm</a></div><div class="ttdeci">const DPIm &amp; getLoadDpm(const DPIm &amp;dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00696">DDAVFSolver.h:696</a></div></div>
1107
1107
  <div class="ttc" id="namespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
1108
1108
  <div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
1109
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &amp;pts, NodeID ptr, const DPIm &amp;oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00399">DDAVFSolver.h:399</a></div></div>
1109
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &amp;pts, NodeID ptr, const DPIm &amp;oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00421">DDAVFSolver.h:421</a></div></div>
1110
1110
  <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>
1111
1111
  <div class="ttc" id="namespaceSVF_html_a54c5725186e66ead6faf53c10a288714"><div class="ttname"><a href="namespaceSVF.html#a54c5725186e66ead6faf53c10a288714">SVF::StoreSVFGNode</a></div><div class="ttdeci">StoreVFGNode StoreSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00053">SVFG.h:53</a></div></div>
1112
1112
  <div class="ttc" id="classSVF_1_1VFG_html_ae1348fd6d196ee8a6bd8d98022464d50"><div class="ttname"><a href="classSVF_1_1VFG.html#ae1348fd6d196ee8a6bd8d98022464d50">SVF::VFG::getIntraVFGEdge</a></div><div class="ttdeci">VFGEdge * getIntraVFGEdge(const VFGNode *src, const VFGNode *dst, VFGEdge::VFGEdgeK kind)</div><div class="ttdoc">Get a SVFG edge according to src and dst. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l00916">VFG.cpp:916</a></div></div>
1113
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00096">DDAVFSolver.h:96</a></div></div>
1113
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00118">DDAVFSolver.h:118</a></div></div>
1114
1114
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
1115
1115
  <div class="ttc" id="namespaceSVF_html_aa4745cf70b26e17d59752356f0b19dd9"><div class="ttname"><a href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVF::SVFGEdge</a></div><div class="ttdeci">VFGEdge SVFGEdge</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00040">SVFG.h:40</a></div></div>
1116
1116
  </div><!-- fragment -->
@@ -1169,21 +1169,21 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1169
1169
  <p>record the source of load dpm</p>
1170
1170
  <p>handle out of budget case </p>
1171
1171
 
1172
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00399">399</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1173
- <div class="fragment"><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; {</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; DPIm dpm(oldDpm);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; dpm.setLocVar(edge-&gt;getSrcNode(),ptr);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>());</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a601282325e55badc15f3ba9141816af5">handleBKCondition</a>(dpm,edge)==<span class="keyword">false</span>)</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a9625c4623acc4f6ccaca1ec8f04f5a54">_TotalTimeOfBKCondition</a> += <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>() - start);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t!!! infeasible path svfgNode: &quot;</span> &lt;&lt; edge-&gt;getDstID() &lt;&lt; <span class="stringliteral">&quot; --| &quot;</span> &lt;&lt; edge-&gt;getSrcID() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a5ebc592d6bd7ef40aff848fb63e9e166">_NumOfInfeasiblePath</a>++);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; }</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;IndirectSVFGEdge&gt;(edge))</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">addLoadDpmAndCVar</a>(dpm,<a class="code" href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">getLoadDpm</a>(oldDpm),<a class="code" href="classSVF_1_1DDAVFSolver.html#ad42efad8e857290459689833c224e467">getLoadCVar</a>(oldDpm));</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">_NumOfDPM</a>++);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">unionDDAPts</a>(pts,<a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(dpm));</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00768">DDAVFSolver.h:768</a></div></div>
1174
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a99764ee5bc19378795fe464e9036e78b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">SVF::DDAVFSolver::unionDDAPts</a></div><div class="ttdeci">virtual bool unionDDAPts(CPtSet &amp;pts, const CPtSet &amp;targetPts)</div><div class="ttdoc">Union pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00080">DDAVFSolver.h:80</a></div></div>
1175
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a1cd1023bca18db16bc54e622c881e494"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">SVF::DDAVFSolver::addLoadDpmAndCVar</a></div><div class="ttdeci">void addLoadDpmAndCVar(const DPIm &amp;dpm, const DPIm &amp;loadDpm, const CVar &amp;loadVar)</div><div class="ttdoc">LoadDpm for must-alias analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00660">DDAVFSolver.h:660</a></div></div>
1176
- <div class="ttc" id="classSVF_1_1DDAStat_html_a9625c4623acc4f6ccaca1ec8f04f5a54"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a9625c4623acc4f6ccaca1ec8f04f5a54">SVF::DDAStat::_TotalTimeOfBKCondition</a></div><div class="ttdeci">double _TotalTimeOfBKCondition</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00042">DDAStat.h:42</a></div></div>
1177
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ad42efad8e857290459689833c224e467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ad42efad8e857290459689833c224e467">SVF::DDAVFSolver::getLoadCVar</a></div><div class="ttdeci">const CVar &amp; getLoadCVar(const DPIm &amp;dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00688">DDAVFSolver.h:688</a></div></div>
1178
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a630aad14a285c954a50c632f9cb13fa9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">SVF::DDAVFSolver::getLoadDpm</a></div><div class="ttdeci">const DPIm &amp; getLoadDpm(const DPIm &amp;dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00674">DDAVFSolver.h:674</a></div></div>
1179
- <div class="ttc" id="classSVF_1_1DDAStat_html_a5ad94d2109b293d306f67741effc73aa"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">SVF::DDAStat::_NumOfDPM</a></div><div class="ttdeci">u32_t _NumOfDPM</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00032">DDAStat.h:32</a></div></div>
1180
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a52737dd41c63404ef91691154aa250ce"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">SVF::DDAVFSolver::findPT</a></div><div class="ttdeci">virtual const CPtSet &amp; findPT(const DPIm &amp;dpm)</div><div class="ttdoc">Compute points-to. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00116">DDAVFSolver.h:116</a></div></div>
1172
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00421">421</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1173
+ <div class="fragment"><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; DPIm dpm(oldDpm);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; dpm.setLocVar(edge-&gt;getSrcNode(),ptr);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>());</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a601282325e55badc15f3ba9141816af5">handleBKCondition</a>(dpm,edge)==<span class="keyword">false</span>)</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a9625c4623acc4f6ccaca1ec8f04f5a54">_TotalTimeOfBKCondition</a> += <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>() - start);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t!!! infeasible path svfgNode: &quot;</span> &lt;&lt; edge-&gt;getDstID() &lt;&lt; <span class="stringliteral">&quot; --| &quot;</span> &lt;&lt; edge-&gt;getSrcID() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a5ebc592d6bd7ef40aff848fb63e9e166">_NumOfInfeasiblePath</a>++);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;IndirectSVFGEdge&gt;(edge))</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">addLoadDpmAndCVar</a>(dpm,<a class="code" href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">getLoadDpm</a>(oldDpm),<a class="code" href="classSVF_1_1DDAVFSolver.html#ad42efad8e857290459689833c224e467">getLoadCVar</a>(oldDpm));</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; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">_NumOfDPM</a>++);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">unionDDAPts</a>(pts,<a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(dpm));</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
1174
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a99764ee5bc19378795fe464e9036e78b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">SVF::DDAVFSolver::unionDDAPts</a></div><div class="ttdeci">virtual bool unionDDAPts(CPtSet &amp;pts, const CPtSet &amp;targetPts)</div><div class="ttdoc">Union pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00102">DDAVFSolver.h:102</a></div></div>
1175
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a1cd1023bca18db16bc54e622c881e494"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">SVF::DDAVFSolver::addLoadDpmAndCVar</a></div><div class="ttdeci">void addLoadDpmAndCVar(const DPIm &amp;dpm, const DPIm &amp;loadDpm, const CVar &amp;loadVar)</div><div class="ttdoc">LoadDpm for must-alias analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00682">DDAVFSolver.h:682</a></div></div>
1176
+ <div class="ttc" id="classSVF_1_1DDAStat_html_a9625c4623acc4f6ccaca1ec8f04f5a54"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a9625c4623acc4f6ccaca1ec8f04f5a54">SVF::DDAStat::_TotalTimeOfBKCondition</a></div><div class="ttdeci">double _TotalTimeOfBKCondition</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00064">DDAStat.h:64</a></div></div>
1177
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ad42efad8e857290459689833c224e467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ad42efad8e857290459689833c224e467">SVF::DDAVFSolver::getLoadCVar</a></div><div class="ttdeci">const CVar &amp; getLoadCVar(const DPIm &amp;dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00710">DDAVFSolver.h:710</a></div></div>
1178
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a630aad14a285c954a50c632f9cb13fa9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">SVF::DDAVFSolver::getLoadDpm</a></div><div class="ttdeci">const DPIm &amp; getLoadDpm(const DPIm &amp;dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00696">DDAVFSolver.h:696</a></div></div>
1179
+ <div class="ttc" id="classSVF_1_1DDAStat_html_a5ad94d2109b293d306f67741effc73aa"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">SVF::DDAStat::_NumOfDPM</a></div><div class="ttdeci">u32_t _NumOfDPM</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00054">DDAStat.h:54</a></div></div>
1180
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a52737dd41c63404ef91691154aa250ce"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">SVF::DDAVFSolver::findPT</a></div><div class="ttdeci">virtual const CPtSet &amp; findPT(const DPIm &amp;dpm)</div><div class="ttdoc">Compute points-to. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00138">DDAVFSolver.h:138</a></div></div>
1181
1181
  <div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
1182
1182
  <div class="ttc" id="SVFBasicTypes_8h_html_a6c9e2209a2c38607a9e3b7fab242886a"><div class="ttname"><a href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a></div><div class="ttdeci">#define DOSTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00156">SVFBasicTypes.h:156</a></div></div>
1183
1183
  <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>
1184
1184
  <div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00041">SVFStat.cpp:41</a></div></div>
1185
- <div class="ttc" id="classSVF_1_1DDAStat_html_a5ebc592d6bd7ef40aff848fb63e9e166"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5ebc592d6bd7ef40aff848fb63e9e166">SVF::DDAStat::_NumOfInfeasiblePath</a></div><div class="ttdeci">u32_t _NumOfInfeasiblePath</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00035">DDAStat.h:35</a></div></div>
1186
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a601282325e55badc15f3ba9141816af5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a601282325e55badc15f3ba9141816af5">SVF::DDAVFSolver::handleBKCondition</a></div><div class="ttdeci">virtual bool handleBKCondition(DPIm &amp;, const SVFGEdge *)</div><div class="ttdoc">Handle condition for context or path analysis (backward analysis) </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00505">DDAVFSolver.h:505</a></div></div>
1185
+ <div class="ttc" id="classSVF_1_1DDAStat_html_a5ebc592d6bd7ef40aff848fb63e9e166"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5ebc592d6bd7ef40aff848fb63e9e166">SVF::DDAStat::_NumOfInfeasiblePath</a></div><div class="ttdeci">u32_t _NumOfInfeasiblePath</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00057">DDAStat.h:57</a></div></div>
1186
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a601282325e55badc15f3ba9141816af5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a601282325e55badc15f3ba9141816af5">SVF::DDAVFSolver::handleBKCondition</a></div><div class="ttdeci">virtual bool handleBKCondition(DPIm &amp;, const SVFGEdge *)</div><div class="ttdoc">Handle condition for context or path analysis (backward analysis) </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00527">DDAVFSolver.h:527</a></div></div>
1187
1187
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
1188
1188
  <div class="ttc" id="SVFBasicTypes_8h_html_ab6f41e9db3675dc689c5492418885041"><div class="ttname"><a href="SVFBasicTypes_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a></div><div class="ttdeci">#define DOTIMESTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00157">SVFBasicTypes.h:157</a></div></div>
1189
1189
  </div><!-- fragment -->
@@ -1217,14 +1217,14 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1217
1217
 
1218
1218
  <p>Build <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
1219
1219
 
1220
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00290">290</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1221
- <div class="fragment"><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a> = <a class="code" href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">AndersenWaveDiff::createAndersenWaveDiff</a>(pag);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">_svfg</a> = <a class="code" href="classSVF_1_1DDAVFSolver.html#a0d563fe8b016b27a58f5b054fec9c38a">svfgBuilder</a>.<a class="code" href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">buildPTROnlySVFG</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a>);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a> = <a class="code" href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">_svfg</a>-&gt;<a class="code" href="classSVF_1_1VFG.html#a7622e381fbc1601b3f9a8384df2751bd">getPAG</a>();</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a0d563fe8b016b27a58f5b054fec9c38a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a0d563fe8b016b27a58f5b054fec9c38a">SVF::DDAVFSolver::svfgBuilder</a></div><div class="ttdeci">SVFGBuilder svfgBuilder</div><div class="ttdoc">SVFG Builder. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00769">DDAVFSolver.h:769</a></div></div>
1220
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00312">312</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1221
+ <div class="fragment"><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a> = <a class="code" href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">AndersenWaveDiff::createAndersenWaveDiff</a>(pag);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">_svfg</a> = <a class="code" href="classSVF_1_1DDAVFSolver.html#a0d563fe8b016b27a58f5b054fec9c38a">svfgBuilder</a>.<a class="code" href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">buildPTROnlySVFG</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a>);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a> = <a class="code" href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">_svfg</a>-&gt;<a class="code" href="classSVF_1_1VFG.html#a7622e381fbc1601b3f9a8384df2751bd">getPAG</a>();</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a0d563fe8b016b27a58f5b054fec9c38a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a0d563fe8b016b27a58f5b054fec9c38a">SVF::DDAVFSolver::svfgBuilder</a></div><div class="ttdeci">SVFGBuilder svfgBuilder</div><div class="ttdoc">SVFG Builder. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00791">DDAVFSolver.h:791</a></div></div>
1222
1222
  <div class="ttc" id="classSVF_1_1VFG_html_a7622e381fbc1601b3f9a8384df2751bd"><div class="ttname"><a href="classSVF_1_1VFG.html#a7622e381fbc1601b3f9a8384df2751bd">SVF::VFG::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdoc">Return SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00133">VFG.h:133</a></div></div>
1223
1223
  <div class="ttc" id="classSVF_1_1SVFGBuilder_html_ab7353191edd06568e2598177d253c1d9"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">SVF::SVFGBuilder::buildPTROnlySVFG</a></div><div class="ttdeci">SVFG * buildPTROnlySVFG(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00044">SVFGBuilder.cpp:44</a></div></div>
1224
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a74d83f06e8fc0ecedc1e1846030c99c6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">SVF::DDAVFSolver::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00754">DDAVFSolver.h:754</a></div></div>
1225
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00753">DDAVFSolver.h:753</a></div></div>
1226
- <div class="ttc" id="classSVF_1_1AndersenWaveDiff_html_a48ff6fc4badc79ad3204ae9bd95cc540"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">SVF::AndersenWaveDiff::createAndersenWaveDiff</a></div><div class="ttdeci">static AndersenWaveDiff * createAndersenWaveDiff(SVFIR *_pag)</div><div class="ttdoc">Create an singleton instance directly instead of invoking llvm pass manager. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00384">Andersen.h:384</a></div></div>
1227
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&amp;#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00755">DDAVFSolver.h:755</a></div></div>
1224
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a74d83f06e8fc0ecedc1e1846030c99c6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">SVF::DDAVFSolver::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00776">DDAVFSolver.h:776</a></div></div>
1225
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
1226
+ <div class="ttc" id="classSVF_1_1AndersenWaveDiff_html_a48ff6fc4badc79ad3204ae9bd95cc540"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">SVF::AndersenWaveDiff::createAndersenWaveDiff</a></div><div class="ttdeci">static AndersenWaveDiff * createAndersenWaveDiff(SVFIR *_pag)</div><div class="ttdoc">Create an singleton instance directly instead of invoking llvm pass manager. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00389">Andersen.h:389</a></div></div>
1227
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&amp;#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00777">DDAVFSolver.h:777</a></div></div>
1228
1228
  </div><!-- fragment -->
1229
1229
  </div>
1230
1230
  </div>
@@ -1254,8 +1254,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1254
1254
  </table>
1255
1255
  </div><div class="memdoc">
1256
1256
 
1257
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00523">523</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1258
- <div class="fragment"><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; {</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; assert(<a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.find(dpm)!=<a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.end() &amp;&amp; <span class="stringliteral">&quot;dpm not found!&quot;</span>);</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.erase(dpm);</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a63d04c3af4529d0e0f82acd76ed57f6c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">SVF::DDAVFSolver::backwardVisited</a></div><div class="ttdeci">DPTItemSet backwardVisited</div><div class="ttdoc">visited map during backward traversing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00760">DDAVFSolver.h:760</a></div></div>
1257
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00545">545</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1258
+ <div class="fragment"><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; {</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; assert(<a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.find(dpm)!=<a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.end() &amp;&amp; <span class="stringliteral">&quot;dpm not found!&quot;</span>);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.erase(dpm);</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a63d04c3af4529d0e0f82acd76ed57f6c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">SVF::DDAVFSolver::backwardVisited</a></div><div class="ttdeci">DPTItemSet backwardVisited</div><div class="ttdoc">visited map during backward traversing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00782">DDAVFSolver.h:782</a></div></div>
1259
1259
  </div><!-- fragment -->
1260
1260
  </div>
1261
1261
  </div>
@@ -1285,8 +1285,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1285
1285
  </table>
1286
1286
  </div><div class="memdoc">
1287
1287
 
1288
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00106">106</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1289
- <div class="fragment"><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;{&quot;</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">typename</span> CPtSet::iterator it = cpts.begin(), eit = cpts.end(); it!=eit; ++it)</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; (*it) &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;}\n&quot;</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><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>
1288
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00128">128</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1289
+ <div class="fragment"><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;{&quot;</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">typename</span> CPtSet::iterator it = cpts.begin(), eit = cpts.end(); it!=eit; ++it)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; (*it) &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;}\n&quot;</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><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>
1290
1290
  </div><!-- fragment -->
1291
1291
  </div>
1292
1292
  </div>
@@ -1318,8 +1318,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1318
1318
 
1319
1319
  <p>Return TRUE if this edge is inside a <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> SCC, i.e., src node and dst node are in the same SCC on the <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
1320
1320
 
1321
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00601">601</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1322
- <div class="fragment"><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; {</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a1583ed2eb1d4b88dc2a5b4c0b6842496">getSVFGSCCRepNode</a>(edge-&gt;getSrcID()) == <a class="code" href="classSVF_1_1DDAVFSolver.html#a1583ed2eb1d4b88dc2a5b4c0b6842496">getSVFGSCCRepNode</a>(edge-&gt;getDstID()));</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a1583ed2eb1d4b88dc2a5b4c0b6842496"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a1583ed2eb1d4b88dc2a5b4c0b6842496">SVF::DDAVFSolver::getSVFGSCCRepNode</a></div><div class="ttdeci">NodeID getSVFGSCCRepNode(NodeID id)</div><div class="ttdoc">Get SCC rep node of a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00591">DDAVFSolver.h:591</a></div></div>
1321
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00623">623</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1322
+ <div class="fragment"><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; {</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a1583ed2eb1d4b88dc2a5b4c0b6842496">getSVFGSCCRepNode</a>(edge-&gt;getSrcID()) == <a class="code" href="classSVF_1_1DDAVFSolver.html#a1583ed2eb1d4b88dc2a5b4c0b6842496">getSVFGSCCRepNode</a>(edge-&gt;getDstID()));</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a1583ed2eb1d4b88dc2a5b4c0b6842496"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a1583ed2eb1d4b88dc2a5b4c0b6842496">SVF::DDAVFSolver::getSVFGSCCRepNode</a></div><div class="ttdeci">NodeID getSVFGSCCRepNode(NodeID id)</div><div class="ttdoc">Get SCC rep node of a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00613">DDAVFSolver.h:613</a></div></div>
1323
1323
  </div><!-- fragment -->
1324
1324
  </div>
1325
1325
  </div>
@@ -1352,17 +1352,17 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1352
1352
  <p>Compute points-to. </p>
1353
1353
  <p>Add successors of current stmt if its pts has been changed. </p>
1354
1354
 
1355
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00116">116</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1356
- <div class="fragment"><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a9a9c3a8b5e4ffc89418073110e446f20">isbkVisited</a>(dpm))</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">const</span> CPtSet&amp; cpts = <a class="code" href="classSVF_1_1DDAVFSolver.html#ae31e9281e4f1e0585fdf328b7339e1bf">getCachedPointsTo</a>(dpm);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t already backward visited dpm: &quot;</span>);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t return points-to: &quot;</span>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="classSVF_1_1DDAVFSolver.html#aa4dc73ea65f736282a413a9d286141e5">dumpCPtSet</a>(cpts));</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> cpts;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t backward visit dpm: &quot;</span>);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a7112ce6145be0855f8b035bb0d8a331c">markbkVisited</a>(dpm);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#af7be3fa6c73dde97d6f9fd0395c9aee0">addDpmToLoc</a>(dpm);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fb52286c5324ea3d58e22c630b307e3">testOutOfBudget</a>(dpm) == <span class="keyword">false</span>)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; CPtSet pts;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a99f631cf1bc438e3f08f7f935e98e38d">handleSingleStatement</a>(dpm, pts);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a239a55960dfbbe73df63063070a18b56">updateCachedPointsTo</a>(dpm, pts);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#ae31e9281e4f1e0585fdf328b7339e1bf">getCachedPointsTo</a>(dpm);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_af7be3fa6c73dde97d6f9fd0395c9aee0"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af7be3fa6c73dde97d6f9fd0395c9aee0">SVF::DDAVFSolver::addDpmToLoc</a></div><div class="ttdeci">void addDpmToLoc(const DPIm &amp;dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00647">DDAVFSolver.h:647</a></div></div>
1355
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00138">138</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1356
+ <div class="fragment"><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a9a9c3a8b5e4ffc89418073110e446f20">isbkVisited</a>(dpm))</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">const</span> CPtSet&amp; cpts = <a class="code" href="classSVF_1_1DDAVFSolver.html#ae31e9281e4f1e0585fdf328b7339e1bf">getCachedPointsTo</a>(dpm);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t already backward visited dpm: &quot;</span>);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t return points-to: &quot;</span>);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="classSVF_1_1DDAVFSolver.html#aa4dc73ea65f736282a413a9d286141e5">dumpCPtSet</a>(cpts));</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">return</span> cpts;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t backward visit dpm: &quot;</span>);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a7112ce6145be0855f8b035bb0d8a331c">markbkVisited</a>(dpm);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#af7be3fa6c73dde97d6f9fd0395c9aee0">addDpmToLoc</a>(dpm);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fb52286c5324ea3d58e22c630b307e3">testOutOfBudget</a>(dpm) == <span class="keyword">false</span>)</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; CPtSet pts;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a99f631cf1bc438e3f08f7f935e98e38d">handleSingleStatement</a>(dpm, pts);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a239a55960dfbbe73df63063070a18b56">updateCachedPointsTo</a>(dpm, pts);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#ae31e9281e4f1e0585fdf328b7339e1bf">getCachedPointsTo</a>(dpm);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_af7be3fa6c73dde97d6f9fd0395c9aee0"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af7be3fa6c73dde97d6f9fd0395c9aee0">SVF::DDAVFSolver::addDpmToLoc</a></div><div class="ttdeci">void addDpmToLoc(const DPIm &amp;dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00669">DDAVFSolver.h:669</a></div></div>
1357
1357
  <div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
1358
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa4dc73ea65f736282a413a9d286141e5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa4dc73ea65f736282a413a9d286141e5">SVF::DDAVFSolver::dumpCPtSet</a></div><div class="ttdeci">void dumpCPtSet(const CPtSet &amp;cpts) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00106">DDAVFSolver.h:106</a></div></div>
1359
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a99f631cf1bc438e3f08f7f935e98e38d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a99f631cf1bc438e3f08f7f935e98e38d">SVF::DDAVFSolver::handleSingleStatement</a></div><div class="ttdeci">virtual void handleSingleStatement(const DPIm &amp;dpm, CPtSet &amp;pts)</div><div class="ttdoc">Handle single statement. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00148">DDAVFSolver.h:148</a></div></div>
1360
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fb52286c5324ea3d58e22c630b307e3"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fb52286c5324ea3d58e22c630b307e3">SVF::DDAVFSolver::testOutOfBudget</a></div><div class="ttdeci">bool testOutOfBudget(const DPIm &amp;dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00704">DDAVFSolver.h:704</a></div></div>
1361
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a239a55960dfbbe73df63063070a18b56"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a239a55960dfbbe73df63063070a18b56">SVF::DDAVFSolver::updateCachedPointsTo</a></div><div class="ttdeci">virtual void updateCachedPointsTo(const DPIm &amp;dpm, const CPtSet &amp;pts)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00539">DDAVFSolver.h:539</a></div></div>
1358
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa4dc73ea65f736282a413a9d286141e5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa4dc73ea65f736282a413a9d286141e5">SVF::DDAVFSolver::dumpCPtSet</a></div><div class="ttdeci">void dumpCPtSet(const CPtSet &amp;cpts) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00128">DDAVFSolver.h:128</a></div></div>
1359
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a99f631cf1bc438e3f08f7f935e98e38d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a99f631cf1bc438e3f08f7f935e98e38d">SVF::DDAVFSolver::handleSingleStatement</a></div><div class="ttdeci">virtual void handleSingleStatement(const DPIm &amp;dpm, CPtSet &amp;pts)</div><div class="ttdoc">Handle single statement. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00170">DDAVFSolver.h:170</a></div></div>
1360
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fb52286c5324ea3d58e22c630b307e3"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fb52286c5324ea3d58e22c630b307e3">SVF::DDAVFSolver::testOutOfBudget</a></div><div class="ttdeci">bool testOutOfBudget(const DPIm &amp;dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00726">DDAVFSolver.h:726</a></div></div>
1361
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a239a55960dfbbe73df63063070a18b56"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a239a55960dfbbe73df63063070a18b56">SVF::DDAVFSolver::updateCachedPointsTo</a></div><div class="ttdeci">virtual void updateCachedPointsTo(const DPIm &amp;dpm, const CPtSet &amp;pts)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00561">DDAVFSolver.h:561</a></div></div>
1362
1362
  <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>
1363
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae31e9281e4f1e0585fdf328b7339e1bf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae31e9281e4f1e0585fdf328b7339e1bf">SVF::DDAVFSolver::getCachedPointsTo</a></div><div class="ttdeci">virtual const CPtSet &amp; getCachedPointsTo(const DPIm &amp;dpm)</div><div class="ttdoc">Points-to Caching for top-level pointers and address-taken objects. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00532">DDAVFSolver.h:532</a></div></div>
1364
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7112ce6145be0855f8b035bb0d8a331c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7112ce6145be0855f8b035bb0d8a331c">SVF::DDAVFSolver::markbkVisited</a></div><div class="ttdeci">void markbkVisited(const DPIm &amp;dpm)</div><div class="ttdoc">Visited flags to avoid cycles. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00515">DDAVFSolver.h:515</a></div></div>
1365
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a9a9c3a8b5e4ffc89418073110e446f20"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a9a9c3a8b5e4ffc89418073110e446f20">SVF::DDAVFSolver::isbkVisited</a></div><div class="ttdeci">bool isbkVisited(const DPIm &amp;dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00519">DDAVFSolver.h:519</a></div></div>
1363
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae31e9281e4f1e0585fdf328b7339e1bf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae31e9281e4f1e0585fdf328b7339e1bf">SVF::DDAVFSolver::getCachedPointsTo</a></div><div class="ttdeci">virtual const CPtSet &amp; getCachedPointsTo(const DPIm &amp;dpm)</div><div class="ttdoc">Points-to Caching for top-level pointers and address-taken objects. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00554">DDAVFSolver.h:554</a></div></div>
1364
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7112ce6145be0855f8b035bb0d8a331c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7112ce6145be0855f8b035bb0d8a331c">SVF::DDAVFSolver::markbkVisited</a></div><div class="ttdeci">void markbkVisited(const DPIm &amp;dpm)</div><div class="ttdoc">Visited flags to avoid cycles. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00537">DDAVFSolver.h:537</a></div></div>
1365
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a9a9c3a8b5e4ffc89418073110e446f20"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a9a9c3a8b5e4ffc89418073110e446f20">SVF::DDAVFSolver::isbkVisited</a></div><div class="ttdeci">bool isbkVisited(const DPIm &amp;dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00541">DDAVFSolver.h:541</a></div></div>
1366
1366
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
1367
1367
  </div><!-- fragment -->
1368
1368
  </div>
@@ -1394,8 +1394,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1394
1394
 
1395
1395
  <p>Return <a class="el" href="classSVF_1_1Andersen.html">Andersen</a>'s analysis. </p>
1396
1396
 
1397
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00696">696</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1398
- <div class="fragment"><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; {</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a>;</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&amp;#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00755">DDAVFSolver.h:755</a></div></div>
1397
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00718">718</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1398
+ <div class="fragment"><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; {</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a>;</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&amp;#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00777">DDAVFSolver.h:777</a></div></div>
1399
1399
  </div><!-- fragment -->
1400
1400
  </div>
1401
1401
  </div>
@@ -1425,8 +1425,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1425
1425
  </table>
1426
1426
  </div><div class="memdoc">
1427
1427
 
1428
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00552">552</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1429
- <div class="fragment"><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; {</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a2565bf8dcacb22350dc1dc98ec7595f2">dpmToADCPtSetMap</a>[dpm];</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2565bf8dcacb22350dc1dc98ec7595f2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2565bf8dcacb22350dc1dc98ec7595f2">SVF::DDAVFSolver::dpmToADCPtSetMap</a></div><div class="ttdeci">DPImToCPtSetMap dpmToADCPtSetMap</div><div class="ttdoc">points-to caching map for address-taken vars </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00762">DDAVFSolver.h:762</a></div></div>
1428
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00574">574</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1429
+ <div class="fragment"><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; {</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a2565bf8dcacb22350dc1dc98ec7595f2">dpmToADCPtSetMap</a>[dpm];</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2565bf8dcacb22350dc1dc98ec7595f2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2565bf8dcacb22350dc1dc98ec7595f2">SVF::DDAVFSolver::dpmToADCPtSetMap</a></div><div class="ttdeci">DPImToCPtSetMap dpmToADCPtSetMap</div><div class="ttdoc">points-to caching map for address-taken vars </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00784">DDAVFSolver.h:784</a></div></div>
1430
1430
  </div><!-- fragment -->
1431
1431
  </div>
1432
1432
  </div>
@@ -1458,10 +1458,10 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1458
1458
 
1459
1459
  <p>Points-to Caching for top-level pointers and address-taken objects. </p>
1460
1460
 
1461
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00532">532</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1462
- <div class="fragment"><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; {</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a7b35588de00e322afd742041bf735571">isTopLevelPtrStmt</a>(dpm.getLoc()))</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aac432dfa7ccfc3434d9e0e2eb65afe7f">getCachedTLPointsTo</a>(dpm);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a2a2b3783074c9f509fc265b97b979704">getCachedADPointsTo</a>(dpm);</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7b35588de00e322afd742041bf735571"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7b35588de00e322afd742041bf735571">SVF::DDAVFSolver::isTopLevelPtrStmt</a></div><div class="ttdeci">bool isTopLevelPtrStmt(const SVFGNode *stmt)</div><div class="ttdoc">Whether this is a top-level pointer statement. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00559">DDAVFSolver.h:559</a></div></div>
1463
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2a2b3783074c9f509fc265b97b979704"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2a2b3783074c9f509fc265b97b979704">SVF::DDAVFSolver::getCachedADPointsTo</a></div><div class="ttdeci">virtual const CPtSet &amp; getCachedADPointsTo(const DPIm &amp;dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00552">DDAVFSolver.h:552</a></div></div>
1464
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aac432dfa7ccfc3434d9e0e2eb65afe7f"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aac432dfa7ccfc3434d9e0e2eb65afe7f">SVF::DDAVFSolver::getCachedTLPointsTo</a></div><div class="ttdeci">virtual const CPtSet &amp; getCachedTLPointsTo(const DPIm &amp;dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00548">DDAVFSolver.h:548</a></div></div>
1461
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00554">554</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1462
+ <div class="fragment"><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; {</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a7b35588de00e322afd742041bf735571">isTopLevelPtrStmt</a>(dpm.getLoc()))</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aac432dfa7ccfc3434d9e0e2eb65afe7f">getCachedTLPointsTo</a>(dpm);</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a2a2b3783074c9f509fc265b97b979704">getCachedADPointsTo</a>(dpm);</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7b35588de00e322afd742041bf735571"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7b35588de00e322afd742041bf735571">SVF::DDAVFSolver::isTopLevelPtrStmt</a></div><div class="ttdeci">bool isTopLevelPtrStmt(const SVFGNode *stmt)</div><div class="ttdoc">Whether this is a top-level pointer statement. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00581">DDAVFSolver.h:581</a></div></div>
1463
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2a2b3783074c9f509fc265b97b979704"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2a2b3783074c9f509fc265b97b979704">SVF::DDAVFSolver::getCachedADPointsTo</a></div><div class="ttdeci">virtual const CPtSet &amp; getCachedADPointsTo(const DPIm &amp;dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00574">DDAVFSolver.h:574</a></div></div>
1464
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aac432dfa7ccfc3434d9e0e2eb65afe7f"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aac432dfa7ccfc3434d9e0e2eb65afe7f">SVF::DDAVFSolver::getCachedTLPointsTo</a></div><div class="ttdeci">virtual const CPtSet &amp; getCachedTLPointsTo(const DPIm &amp;dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00570">DDAVFSolver.h:570</a></div></div>
1465
1465
  </div><!-- fragment -->
1466
1466
  </div>
1467
1467
  </div>
@@ -1493,8 +1493,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1493
1493
 
1494
1494
  <p>Reimplemented in <a class="el" href="classSVF_1_1FlowDDA.html#a950d653b249cfc2d20932adb3498b99b">SVF::FlowDDA</a>.</p>
1495
1495
 
1496
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00548">548</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1497
- <div class="fragment"><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; {</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a2d6df8149b45d719e22fc505df94171a">dpmToTLCPtSetMap</a>[dpm];</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2d6df8149b45d719e22fc505df94171a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2d6df8149b45d719e22fc505df94171a">SVF::DDAVFSolver::dpmToTLCPtSetMap</a></div><div class="ttdeci">DPImToCPtSetMap dpmToTLCPtSetMap</div><div class="ttdoc">points-to caching map for top-level vars </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00761">DDAVFSolver.h:761</a></div></div>
1496
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00570">570</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1497
+ <div class="fragment"><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; {</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a2d6df8149b45d719e22fc505df94171a">dpmToTLCPtSetMap</a>[dpm];</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2d6df8149b45d719e22fc505df94171a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2d6df8149b45d719e22fc505df94171a">SVF::DDAVFSolver::dpmToTLCPtSetMap</a></div><div class="ttdeci">DPImToCPtSetMap dpmToTLCPtSetMap</div><div class="ttdoc">points-to caching map for top-level vars </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00783">DDAVFSolver.h:783</a></div></div>
1498
1498
  </div><!-- fragment -->
1499
1499
  </div>
1500
1500
  </div>
@@ -1525,8 +1525,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1525
1525
 
1526
1526
  <p>Return candidate pointers for DDA. </p>
1527
1527
 
1528
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00069">69</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1529
- <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="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#ae0e78fafb7eec0fbc1a02d24547335e9">candidateQueries</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae0e78fafb7eec0fbc1a02d24547335e9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae0e78fafb7eec0fbc1a02d24547335e9">SVF::DDAVFSolver::candidateQueries</a></div><div class="ttdeci">NodeBS candidateQueries</div><div class="ttdoc">candidate pointers; </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00756">DDAVFSolver.h:756</a></div></div>
1528
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00091">91</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1529
+ <div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#ae0e78fafb7eec0fbc1a02d24547335e9">candidateQueries</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae0e78fafb7eec0fbc1a02d24547335e9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae0e78fafb7eec0fbc1a02d24547335e9">SVF::DDAVFSolver::candidateQueries</a></div><div class="ttdeci">NodeBS candidateQueries</div><div class="ttdoc">candidate pointers; </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00778">DDAVFSolver.h:778</a></div></div>
1530
1530
  </div><!-- fragment -->
1531
1531
  </div>
1532
1532
  </div>
@@ -1590,9 +1590,9 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1590
1590
 
1591
1591
  <p>GetDefinition <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
1592
1592
 
1593
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00320">320</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1594
- <div class="fragment"><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; {</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">getDefSVFGNode</a>(pagNode);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFG_html_a8e7a945f4266e8dc7dcfff2ad6494bfb"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">SVF::SVFG::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">Given a pagNode, return its definition site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00171">SVFG.h:171</a></div></div>
1595
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00096">DDAVFSolver.h:96</a></div></div>
1593
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00342">342</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1594
+ <div class="fragment"><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; {</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">getDefSVFGNode</a>(pagNode);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFG_html_a8e7a945f4266e8dc7dcfff2ad6494bfb"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">SVF::SVFG::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">Given a pagNode, return its definition site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00171">SVFG.h:171</a></div></div>
1595
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00118">DDAVFSolver.h:118</a></div></div>
1596
1596
  </div><!-- fragment -->
1597
1597
  </div>
1598
1598
  </div>
@@ -1634,8 +1634,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1634
1634
 
1635
1635
  <p>Given CVar and location (SVFGNode) return a new <a class="el" href="classSVF_1_1DPItem.html">DPItem</a>. </p>
1636
1636
 
1637
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00074">74</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1638
- <div class="fragment"><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; DPIm dpm(var,loc);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> dpm;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div></div><!-- fragment -->
1637
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00096">96</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1638
+ <div class="fragment"><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; DPIm dpm(var,loc);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span> dpm;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div></div><!-- fragment -->
1639
1639
  </div>
1640
1640
  </div>
1641
1641
  <a id="ac4cb0b666d68d135c5e385bfc880fd67"></a>
@@ -1682,12 +1682,12 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1682
1682
 
1683
1683
  <p>Return dpm with old context and path conditions. </p>
1684
1684
 
1685
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00567">567</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1686
- <div class="fragment"><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; DPIm dpm(oldDpm);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; dpm.setLocVar(loc,<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(var));</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;StoreSVFGNode&gt;(loc))</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">addLoadDpmAndCVar</a>(dpm,<a class="code" href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">getLoadDpm</a>(oldDpm),var);</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;LoadSVFGNode&gt;(loc))</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">addLoadDpmAndCVar</a>(dpm,oldDpm,var);</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">_NumOfDPM</a>++);</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">return</span> dpm;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00768">DDAVFSolver.h:768</a></div></div>
1687
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a1cd1023bca18db16bc54e622c881e494"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">SVF::DDAVFSolver::addLoadDpmAndCVar</a></div><div class="ttdeci">void addLoadDpmAndCVar(const DPIm &amp;dpm, const DPIm &amp;loadDpm, const CVar &amp;loadVar)</div><div class="ttdoc">LoadDpm for must-alias analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00660">DDAVFSolver.h:660</a></div></div>
1685
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00589">589</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1686
+ <div class="fragment"><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; {</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; DPIm dpm(oldDpm);</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; dpm.setLocVar(loc,<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(var));</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; <span class="keywordflow">if</span>(SVFUtil::isa&lt;StoreSVFGNode&gt;(loc))</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">addLoadDpmAndCVar</a>(dpm,<a class="code" href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">getLoadDpm</a>(oldDpm),var);</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;LoadSVFGNode&gt;(loc))</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">addLoadDpmAndCVar</a>(dpm,oldDpm,var);</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">_NumOfDPM</a>++);</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keywordflow">return</span> dpm;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
1687
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a1cd1023bca18db16bc54e622c881e494"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">SVF::DDAVFSolver::addLoadDpmAndCVar</a></div><div class="ttdeci">void addLoadDpmAndCVar(const DPIm &amp;dpm, const DPIm &amp;loadDpm, const CVar &amp;loadVar)</div><div class="ttdoc">LoadDpm for must-alias analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00682">DDAVFSolver.h:682</a></div></div>
1688
1688
  <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fa002d4ba4194ffde62ecbdd361a24d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">SVF::DDAVFSolver::getPtrNodeID</a></div><div class="ttdeci">virtual NodeID getPtrNodeID(const CVar &amp;var) const =0</div><div class="ttdoc">Methods to be implemented in child class. </div></div>
1689
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a630aad14a285c954a50c632f9cb13fa9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">SVF::DDAVFSolver::getLoadDpm</a></div><div class="ttdeci">const DPIm &amp; getLoadDpm(const DPIm &amp;dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00674">DDAVFSolver.h:674</a></div></div>
1690
- <div class="ttc" id="classSVF_1_1DDAStat_html_a5ad94d2109b293d306f67741effc73aa"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">SVF::DDAStat::_NumOfDPM</a></div><div class="ttdeci">u32_t _NumOfDPM</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00032">DDAStat.h:32</a></div></div>
1689
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a630aad14a285c954a50c632f9cb13fa9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">SVF::DDAVFSolver::getLoadDpm</a></div><div class="ttdeci">const DPIm &amp; getLoadDpm(const DPIm &amp;dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00696">DDAVFSolver.h:696</a></div></div>
1690
+ <div class="ttc" id="classSVF_1_1DDAStat_html_a5ad94d2109b293d306f67741effc73aa"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">SVF::DDAStat::_NumOfDPM</a></div><div class="ttdeci">u32_t _NumOfDPM</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00054">DDAStat.h:54</a></div></div>
1691
1691
  <div class="ttc" id="SVFBasicTypes_8h_html_a6c9e2209a2c38607a9e3b7fab242886a"><div class="ttname"><a href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a></div><div class="ttdeci">#define DOSTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00156">SVFBasicTypes.h:156</a></div></div>
1692
1692
  </div><!-- fragment -->
1693
1693
  </div>
@@ -1718,8 +1718,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1718
1718
  </table>
1719
1719
  </div><div class="memdoc">
1720
1720
 
1721
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00643">643</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1722
- <div class="fragment"><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; {</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>[loc-&gt;getId()];</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00763">DDAVFSolver.h:763</a></div></div>
1721
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00665">665</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1722
+ <div class="fragment"><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; {</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>[loc-&gt;getId()];</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00785">DDAVFSolver.h:785</a></div></div>
1723
1723
  </div><!-- fragment -->
1724
1724
  </div>
1725
1725
  </div>
@@ -1749,8 +1749,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1749
1749
  </table>
1750
1750
  </div><div class="memdoc">
1751
1751
 
1752
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00688">688</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1753
- <div class="fragment"><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; {</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keyword">typename</span> DPMToCVarMap::const_iterator it = <a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.find(dpm);</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; assert(it!=<a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;not found??&quot;</span>);</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6d62420837fe0c7814fc4da68a91eda4"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">SVF::DDAVFSolver::loadToPTCVarMap</a></div><div class="ttdeci">DPMToCVarMap loadToPTCVarMap</div><div class="ttdoc">map a load dpm to its cvar pointed by its pointer operand </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00765">DDAVFSolver.h:765</a></div></div>
1752
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00710">710</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1753
+ <div class="fragment"><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; {</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keyword">typename</span> DPMToCVarMap::const_iterator it = <a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.find(dpm);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; assert(it!=<a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;not found??&quot;</span>);</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6d62420837fe0c7814fc4da68a91eda4"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">SVF::DDAVFSolver::loadToPTCVarMap</a></div><div class="ttdeci">DPMToCVarMap loadToPTCVarMap</div><div class="ttdoc">map a load dpm to its cvar pointed by its pointer operand </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00787">DDAVFSolver.h:787</a></div></div>
1754
1754
  </div><!-- fragment -->
1755
1755
  </div>
1756
1756
  </div>
@@ -1780,8 +1780,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1780
1780
  </table>
1781
1781
  </div><div class="memdoc">
1782
1782
 
1783
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00674">674</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1784
- <div class="fragment"><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; {</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <span class="keyword">typename</span> DPMToDPMMap::const_iterator it = <a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.find(dpm);</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; assert(it!=<a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;not found??&quot;</span>);</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a9d8959dfee05685cd74d0d7a78069692"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">SVF::DDAVFSolver::dpmToloadDpmMap</a></div><div class="ttdeci">DPMToDPMMap dpmToloadDpmMap</div><div class="ttdoc">dpms at loads for may/must-alias analysis with stores </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00764">DDAVFSolver.h:764</a></div></div>
1783
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00696">696</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1784
+ <div class="fragment"><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; {</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keyword">typename</span> DPMToDPMMap::const_iterator it = <a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.find(dpm);</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; assert(it!=<a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;not found??&quot;</span>);</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a9d8959dfee05685cd74d0d7a78069692"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">SVF::DDAVFSolver::dpmToloadDpmMap</a></div><div class="ttdeci">DPMToDPMMap dpmToloadDpmMap</div><div class="ttdoc">dpms at loads for may/must-alias analysis with stores </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00786">DDAVFSolver.h:786</a></div></div>
1785
1785
  </div><!-- fragment -->
1786
1786
  </div>
1787
1787
  </div>
@@ -1812,8 +1812,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1812
1812
 
1813
1813
  <p>Map a SVFGNode to its dpms for handling value-flow cycles. </p>
1814
1814
 
1815
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00639">639</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1816
- <div class="fragment"><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; {</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>;</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00763">DDAVFSolver.h:763</a></div></div>
1815
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00661">661</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1816
+ <div class="fragment"><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; {</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>;</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00785">DDAVFSolver.h:785</a></div></div>
1817
1817
  </div><!-- fragment -->
1818
1818
  </div>
1819
1819
  </div>
@@ -1877,8 +1877,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1877
1877
 
1878
1878
  <p>Return <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
1879
1879
 
1880
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00096">96</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1881
- <div class="fragment"><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">_svfg</a>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a74d83f06e8fc0ecedc1e1846030c99c6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">SVF::DDAVFSolver::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00754">DDAVFSolver.h:754</a></div></div>
1880
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00118">118</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1881
+ <div class="fragment"><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">_svfg</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a74d83f06e8fc0ecedc1e1846030c99c6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a74d83f06e8fc0ecedc1e1846030c99c6">SVF::DDAVFSolver::_svfg</a></div><div class="ttdeci">SVFG * _svfg</div><div class="ttdoc">SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00776">DDAVFSolver.h:776</a></div></div>
1882
1882
  </div><!-- fragment -->
1883
1883
  </div>
1884
1884
  </div>
@@ -1909,8 +1909,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1909
1909
 
1910
1910
  <p>Return SVFGSCC. </p>
1911
1911
 
1912
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00101">101</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1913
- <div class="fragment"><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00759">DDAVFSolver.h:759</a></div></div>
1912
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00123">123</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1913
+ <div class="fragment"><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00781">DDAVFSolver.h:781</a></div></div>
1914
1914
  </div><!-- fragment -->
1915
1915
  </div>
1916
1916
  </div>
@@ -1942,9 +1942,9 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1942
1942
 
1943
1943
  <p>Get SCC rep node of a <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> node. </p>
1944
1944
 
1945
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00591">591</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1946
- <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; }</div><div class="ttc" id="classSVF_1_1SCCDetection_html_a3a5fdc9330a657240f77199f5aee602d"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">SVF::SCCDetection::repNode</a></div><div class="ttdeci">NodeID repNode(NodeID n) const</div><div class="ttdoc">get the rep node if not found return itself </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00139">SCC.h:139</a></div></div>
1947
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00759">DDAVFSolver.h:759</a></div></div>
1945
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00613">613</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1946
+ <div class="fragment"><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; {</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; }</div><div class="ttc" id="classSVF_1_1SCCDetection_html_a3a5fdc9330a657240f77199f5aee602d"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">SVF::SCCDetection::repNode</a></div><div class="ttdeci">NodeID repNode(NodeID n) const</div><div class="ttdoc">get the rep node if not found return itself </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00139">SCC.h:139</a></div></div>
1947
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00781">DDAVFSolver.h:781</a></div></div>
1948
1948
  </div><!-- fragment -->
1949
1949
  </div>
1950
1950
  </div>
@@ -2036,8 +2036,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2036
2036
 
2037
2037
  <p>Reimplemented in <a class="el" href="classSVF_1_1ContextDDA.html#aa8a7b6e99b92abfa5c2404515b703a2d">SVF::ContextDDA</a>, and <a class="el" href="classSVF_1_1FlowDDA.html#addb412dc03c7684889693ce263585867">SVF::FlowDDA</a>.</p>
2038
2038
 
2039
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00505">505</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2040
- <div class="fragment"><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; {</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; }</div></div><!-- fragment -->
2039
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00527">527</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2040
+ <div class="fragment"><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; {</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; }</div></div><!-- fragment -->
2041
2041
  </div>
2042
2042
  </div>
2043
2043
  <a id="a9005f1f0e4a808838276ff44b300f96d"></a>
@@ -2069,8 +2069,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2069
2069
  <p>handle out-of-budget queries </p>
2070
2070
  <p>Handle out-of-budget dpm </p>
2071
2071
 
2072
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00703">703</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2073
- <div class="fragment"><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;{}</div></div><!-- fragment -->
2072
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00725">725</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2073
+ <div class="fragment"><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;{}</div></div><!-- fragment -->
2074
2074
  </div>
2075
2075
  </div>
2076
2076
  <a id="a99f631cf1bc438e3f08f7f935e98e38d"></a>
@@ -2112,32 +2112,32 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2112
2112
  <p>Handle single statement. </p>
2113
2113
  <p>resolve function pointer first at indirect callsite </p>
2114
2114
 
2115
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00148">148</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2116
- <div class="fragment"><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#afcc074be34dd0c45418ff16b3d9d4192">resolveFunPtr</a>(dpm);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* node = dpm.getLoc();</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;AddrSVFGNode&gt;(node))</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#acfe7d961caac8f0f558881a9a006b1fa">handleAddr</a>(pts,dpm,SVFUtil::cast&lt;AddrSVFGNode&gt;(node));</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;CopySVFGNode&gt;(node) || SVFUtil::isa&lt;PHISVFGNode&gt;(node)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; || SVFUtil::isa&lt;ActualParmSVFGNode&gt;(node) || SVFUtil::isa&lt;FormalParmSVFGNode&gt;(node)</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; || SVFUtil::isa&lt;ActualRetSVFGNode&gt;(node) || SVFUtil::isa&lt;FormalRetSVFGNode&gt;(node)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; || SVFUtil::isa&lt;NullPtrSVFGNode&gt;(node))</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a7a6af30f30f32d55fc910f2ae4909791">backtraceAlongDirectVF</a>(pts,dpm);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;GepSVFGNode&gt;(node))</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; CPtSet gepPts;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a7a6af30f30f32d55fc910f2ae4909791">backtraceAlongDirectVF</a>(gepPts,dpm);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">unionDDAPts</a>(pts, <a class="code" href="classSVF_1_1DDAVFSolver.html#ab10a34efa1acb6125ea32cf7a8cf919f">processGepPts</a>(SVFUtil::cast&lt;GepSVFGNode&gt;(node),gepPts));</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;LoadSVFGNode&gt;(node))</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; CPtSet loadpts;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#acd694c2092adf8c516d1aba5f798cec7">startNewPTCompFromLoadSrc</a>(loadpts,dpm);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">typename</span> CPtSet::iterator it = loadpts.begin(), eit = loadpts.end(); it!=eit; ++it)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">backtraceAlongIndirectVF</a>(pts,<a class="code" href="classSVF_1_1DDAVFSolver.html#ac4cb0b666d68d135c5e385bfc880fd67">getDPImWithOldCond</a>(dpm,*it,node));</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;StoreSVFGNode&gt;(node))</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a345e5379f53b618adef014aa6887bfe7">isMustAlias</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">getLoadDpm</a>(dpm),dpm))</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; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;+++must alias for load and store:&quot;</span>);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">getLoadDpm</a>(dpm).<a class="code" href="namespaceSVF.html#aae350f79ebcb9efd22ec9efa6678cd13">dump</a>());</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;+++\n&quot;</span>);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a0aec64ca944ea4f914a6fa799b7a8b38">_NumOfMustAliases</a>++);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#adbd209b4a2327b2b068fbb56e12042f7">backtraceToStoreSrc</a>(pts,dpm);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; CPtSet storepts;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aff744e724dcf06a2b1cdd7ba2b1093f1">startNewPTCompFromStoreDst</a>(storepts,dpm);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">typename</span> CPtSet::iterator it = storepts.begin(), eit = storepts.end(); it!=eit; ++it)</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ace35b8247204d9806ca1a4f01bff2364">propagateViaObj</a>(*it,<a class="code" href="classSVF_1_1DDAVFSolver.html#ad42efad8e857290459689833c224e467">getLoadCVar</a>(dpm)))</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#adbd209b4a2327b2b068fbb56e12042f7">backtraceToStoreSrc</a>(pts,<a class="code" href="classSVF_1_1DDAVFSolver.html#ac4cb0b666d68d135c5e385bfc880fd67">getDPImWithOldCond</a>(dpm,*it,node));</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a94bcddbc7b9ccecb3fbb693b13372785">isStrongUpdate</a>(storepts,SVFUtil::cast&lt;StoreSVFGNode&gt;(node)))</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;backward strong update for obj &quot;</span> &lt;&lt; dpm.getCurNodeID() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#aeb6b56cf3d140d251b0524eb5cbd6dce">addSUStat</a>(dpm,node);)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a7d0775354df32f293e98578ed071d33c">rmSUStat</a>(dpm,node);)</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">backtraceAlongIndirectVF</a>(pts,<a class="code" href="classSVF_1_1DDAVFSolver.html#ac4cb0b666d68d135c5e385bfc880fd67">getDPImWithOldCond</a>(dpm,*it,node));</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">backtraceAlongIndirectVF</a>(pts,dpm);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</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; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;MRSVFGNode&gt;(node))</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; <a class="code" href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">backtraceAlongIndirectVF</a>(pts,dpm);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;unexpected kind of SVFG nodes&quot;</span>);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a040bc02742836b0a6d46ce3c3e89fa46"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">SVF::DDAVFSolver::backtraceAlongIndirectVF</a></div><div class="ttdeci">void backtraceAlongIndirectVF(CPtSet &amp;pts, const DPIm &amp;oldDpm)</div><div class="ttdoc">Backward traverse along indirect value flows. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00325">DDAVFSolver.h:325</a></div></div>
2117
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00768">DDAVFSolver.h:768</a></div></div>
2118
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7d0775354df32f293e98578ed071d33c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7d0775354df32f293e98578ed071d33c">SVF::DDAVFSolver::rmSUStat</a></div><div class="ttdeci">void rmSUStat(const DPIm &amp;dpm, const SVFGNode *node)</div><div class="ttdoc">remove strong updates num if the dpm goes to weak updates branch </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00741">DDAVFSolver.h:741</a></div></div>
2119
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a99764ee5bc19378795fe464e9036e78b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">SVF::DDAVFSolver::unionDDAPts</a></div><div class="ttdeci">virtual bool unionDDAPts(CPtSet &amp;pts, const CPtSet &amp;targetPts)</div><div class="ttdoc">Union pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00080">DDAVFSolver.h:80</a></div></div>
2120
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aff744e724dcf06a2b1cdd7ba2b1093f1"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aff744e724dcf06a2b1cdd7ba2b1093f1">SVF::DDAVFSolver::startNewPTCompFromStoreDst</a></div><div class="ttdeci">void startNewPTCompFromStoreDst(CPtSet &amp;pts, const DPIm &amp;oldDpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00376">DDAVFSolver.h:376</a></div></div>
2121
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_adbd209b4a2327b2b068fbb56e12042f7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#adbd209b4a2327b2b068fbb56e12042f7">SVF::DDAVFSolver::backtraceToStoreSrc</a></div><div class="ttdeci">void backtraceToStoreSrc(CPtSet &amp;pts, const DPIm &amp;oldDpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00386">DDAVFSolver.h:386</a></div></div>
2122
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ad42efad8e857290459689833c224e467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ad42efad8e857290459689833c224e467">SVF::DDAVFSolver::getLoadCVar</a></div><div class="ttdeci">const CVar &amp; getLoadCVar(const DPIm &amp;dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00688">DDAVFSolver.h:688</a></div></div>
2123
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ace35b8247204d9806ca1a4f01bff2364"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ace35b8247204d9806ca1a4f01bff2364">SVF::DDAVFSolver::propagateViaObj</a></div><div class="ttdeci">virtual bool propagateViaObj(const CVar &amp;storeObj, const CVar &amp;loadObj)</div><div class="ttdoc">If the points-to contain the object obj, we could move forward along indirect value-flow edge...</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00461">DDAVFSolver.h:461</a></div></div>
2124
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a630aad14a285c954a50c632f9cb13fa9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">SVF::DDAVFSolver::getLoadDpm</a></div><div class="ttdeci">const DPIm &amp; getLoadDpm(const DPIm &amp;dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00674">DDAVFSolver.h:674</a></div></div>
2115
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00170">170</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2116
+ <div class="fragment"><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#afcc074be34dd0c45418ff16b3d9d4192">resolveFunPtr</a>(dpm);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* node = dpm.getLoc();</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;AddrSVFGNode&gt;(node))</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; <a class="code" href="classSVF_1_1DDAVFSolver.html#acfe7d961caac8f0f558881a9a006b1fa">handleAddr</a>(pts,dpm,SVFUtil::cast&lt;AddrSVFGNode&gt;(node));</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;CopySVFGNode&gt;(node) || SVFUtil::isa&lt;PHISVFGNode&gt;(node)</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; || SVFUtil::isa&lt;ActualParmSVFGNode&gt;(node) || SVFUtil::isa&lt;FormalParmSVFGNode&gt;(node)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; || SVFUtil::isa&lt;ActualRetSVFGNode&gt;(node) || SVFUtil::isa&lt;FormalRetSVFGNode&gt;(node)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; || SVFUtil::isa&lt;NullPtrSVFGNode&gt;(node))</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a7a6af30f30f32d55fc910f2ae4909791">backtraceAlongDirectVF</a>(pts,dpm);</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="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;GepSVFGNode&gt;(node))</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; CPtSet gepPts;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a7a6af30f30f32d55fc910f2ae4909791">backtraceAlongDirectVF</a>(gepPts,dpm);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">unionDDAPts</a>(pts, <a class="code" href="classSVF_1_1DDAVFSolver.html#ab10a34efa1acb6125ea32cf7a8cf919f">processGepPts</a>(SVFUtil::cast&lt;GepSVFGNode&gt;(node),gepPts));</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;LoadSVFGNode&gt;(node))</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; CPtSet loadpts;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#acd694c2092adf8c516d1aba5f798cec7">startNewPTCompFromLoadSrc</a>(loadpts,dpm);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">typename</span> CPtSet::iterator it = loadpts.begin(), eit = loadpts.end(); it!=eit; ++it)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">backtraceAlongIndirectVF</a>(pts,<a class="code" href="classSVF_1_1DDAVFSolver.html#ac4cb0b666d68d135c5e385bfc880fd67">getDPImWithOldCond</a>(dpm,*it,node));</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;StoreSVFGNode&gt;(node))</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a345e5379f53b618adef014aa6887bfe7">isMustAlias</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">getLoadDpm</a>(dpm),dpm))</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;+++must alias for load and store:&quot;</span>);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">getLoadDpm</a>(dpm).<a class="code" href="namespaceSVF.html#aae350f79ebcb9efd22ec9efa6678cd13">dump</a>());</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;+++\n&quot;</span>);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a0aec64ca944ea4f914a6fa799b7a8b38">_NumOfMustAliases</a>++);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#adbd209b4a2327b2b068fbb56e12042f7">backtraceToStoreSrc</a>(pts,dpm);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; CPtSet storepts;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aff744e724dcf06a2b1cdd7ba2b1093f1">startNewPTCompFromStoreDst</a>(storepts,dpm);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">typename</span> CPtSet::iterator it = storepts.begin(), eit = storepts.end(); it!=eit; ++it)</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; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ace35b8247204d9806ca1a4f01bff2364">propagateViaObj</a>(*it,<a class="code" href="classSVF_1_1DDAVFSolver.html#ad42efad8e857290459689833c224e467">getLoadCVar</a>(dpm)))</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; <a class="code" href="classSVF_1_1DDAVFSolver.html#adbd209b4a2327b2b068fbb56e12042f7">backtraceToStoreSrc</a>(pts,<a class="code" href="classSVF_1_1DDAVFSolver.html#ac4cb0b666d68d135c5e385bfc880fd67">getDPImWithOldCond</a>(dpm,*it,node));</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a94bcddbc7b9ccecb3fbb693b13372785">isStrongUpdate</a>(storepts,SVFUtil::cast&lt;StoreSVFGNode&gt;(node)))</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;backward strong update for obj &quot;</span> &lt;&lt; dpm.getCurNodeID() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#aeb6b56cf3d140d251b0524eb5cbd6dce">addSUStat</a>(dpm,node);)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">else</span></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="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a7d0775354df32f293e98578ed071d33c">rmSUStat</a>(dpm,node);)</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">backtraceAlongIndirectVF</a>(pts,<a class="code" href="classSVF_1_1DDAVFSolver.html#ac4cb0b666d68d135c5e385bfc880fd67">getDPImWithOldCond</a>(dpm,*it,node));</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">backtraceAlongIndirectVF</a>(pts,dpm);</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; }</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; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;MRSVFGNode&gt;(node))</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">backtraceAlongIndirectVF</a>(pts,dpm);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;unexpected kind of SVFG nodes&quot;</span>);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a040bc02742836b0a6d46ce3c3e89fa46"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">SVF::DDAVFSolver::backtraceAlongIndirectVF</a></div><div class="ttdeci">void backtraceAlongIndirectVF(CPtSet &amp;pts, const DPIm &amp;oldDpm)</div><div class="ttdoc">Backward traverse along indirect value flows. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00347">DDAVFSolver.h:347</a></div></div>
2117
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
2118
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7d0775354df32f293e98578ed071d33c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7d0775354df32f293e98578ed071d33c">SVF::DDAVFSolver::rmSUStat</a></div><div class="ttdeci">void rmSUStat(const DPIm &amp;dpm, const SVFGNode *node)</div><div class="ttdoc">remove strong updates num if the dpm goes to weak updates branch </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00763">DDAVFSolver.h:763</a></div></div>
2119
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a99764ee5bc19378795fe464e9036e78b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">SVF::DDAVFSolver::unionDDAPts</a></div><div class="ttdeci">virtual bool unionDDAPts(CPtSet &amp;pts, const CPtSet &amp;targetPts)</div><div class="ttdoc">Union pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00102">DDAVFSolver.h:102</a></div></div>
2120
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aff744e724dcf06a2b1cdd7ba2b1093f1"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aff744e724dcf06a2b1cdd7ba2b1093f1">SVF::DDAVFSolver::startNewPTCompFromStoreDst</a></div><div class="ttdeci">void startNewPTCompFromStoreDst(CPtSet &amp;pts, const DPIm &amp;oldDpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00398">DDAVFSolver.h:398</a></div></div>
2121
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_adbd209b4a2327b2b068fbb56e12042f7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#adbd209b4a2327b2b068fbb56e12042f7">SVF::DDAVFSolver::backtraceToStoreSrc</a></div><div class="ttdeci">void backtraceToStoreSrc(CPtSet &amp;pts, const DPIm &amp;oldDpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00408">DDAVFSolver.h:408</a></div></div>
2122
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ad42efad8e857290459689833c224e467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ad42efad8e857290459689833c224e467">SVF::DDAVFSolver::getLoadCVar</a></div><div class="ttdeci">const CVar &amp; getLoadCVar(const DPIm &amp;dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00710">DDAVFSolver.h:710</a></div></div>
2123
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ace35b8247204d9806ca1a4f01bff2364"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ace35b8247204d9806ca1a4f01bff2364">SVF::DDAVFSolver::propagateViaObj</a></div><div class="ttdeci">virtual bool propagateViaObj(const CVar &amp;storeObj, const CVar &amp;loadObj)</div><div class="ttdoc">If the points-to contain the object obj, we could move forward along indirect value-flow edge...</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00483">DDAVFSolver.h:483</a></div></div>
2124
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a630aad14a285c954a50c632f9cb13fa9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a630aad14a285c954a50c632f9cb13fa9">SVF::DDAVFSolver::getLoadDpm</a></div><div class="ttdeci">const DPIm &amp; getLoadDpm(const DPIm &amp;dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00696">DDAVFSolver.h:696</a></div></div>
2125
2125
  <div class="ttc" id="classSVF_1_1DDAVFSolver_html_acfe7d961caac8f0f558881a9a006b1fa"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acfe7d961caac8f0f558881a9a006b1fa">SVF::DDAVFSolver::handleAddr</a></div><div class="ttdeci">virtual void handleAddr(CPtSet &amp;pts, const DPIm &amp;dpm, const AddrSVFGNode *addr)=0</div><div class="ttdoc">Handle AddrSVFGNode to add proper points-to. </div></div>
2126
2126
  <div class="ttc" id="namespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
2127
2127
  <div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
2128
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ac4cb0b666d68d135c5e385bfc880fd67"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ac4cb0b666d68d135c5e385bfc880fd67">SVF::DDAVFSolver::getDPImWithOldCond</a></div><div class="ttdeci">virtual DPIm getDPImWithOldCond(const DPIm &amp;oldDpm, const CVar &amp;var, const SVFGNode *loc)</div><div class="ttdoc">Return dpm with old context and path conditions. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00567">DDAVFSolver.h:567</a></div></div>
2129
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a345e5379f53b618adef014aa6887bfe7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a345e5379f53b618adef014aa6887bfe7">SVF::DDAVFSolver::isMustAlias</a></div><div class="ttdeci">virtual bool isMustAlias(const DPIm &amp;, const DPIm &amp;)</div><div class="ttdoc">whether load and store are aliased </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00422">DDAVFSolver.h:422</a></div></div>
2128
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ac4cb0b666d68d135c5e385bfc880fd67"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ac4cb0b666d68d135c5e385bfc880fd67">SVF::DDAVFSolver::getDPImWithOldCond</a></div><div class="ttdeci">virtual DPIm getDPImWithOldCond(const DPIm &amp;oldDpm, const CVar &amp;var, const SVFGNode *loc)</div><div class="ttdoc">Return dpm with old context and path conditions. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00589">DDAVFSolver.h:589</a></div></div>
2129
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a345e5379f53b618adef014aa6887bfe7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a345e5379f53b618adef014aa6887bfe7">SVF::DDAVFSolver::isMustAlias</a></div><div class="ttdeci">virtual bool isMustAlias(const DPIm &amp;, const DPIm &amp;)</div><div class="ttdoc">whether load and store are aliased </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00444">DDAVFSolver.h:444</a></div></div>
2130
2130
  <div class="ttc" id="SVFBasicTypes_8h_html_a6c9e2209a2c38607a9e3b7fab242886a"><div class="ttname"><a href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a></div><div class="ttdeci">#define DOSTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00156">SVFBasicTypes.h:156</a></div></div>
2131
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_acd694c2092adf8c516d1aba5f798cec7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acd694c2092adf8c516d1aba5f798cec7">SVF::DDAVFSolver::startNewPTCompFromLoadSrc</a></div><div class="ttdeci">void startNewPTCompFromLoadSrc(CPtSet &amp;pts, const DPIm &amp;oldDpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00365">DDAVFSolver.h:365</a></div></div>
2132
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7a6af30f30f32d55fc910f2ae4909791"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7a6af30f30f32d55fc910f2ae4909791">SVF::DDAVFSolver::backtraceAlongDirectVF</a></div><div class="ttdeci">void backtraceAlongDirectVF(CPtSet &amp;pts, const DPIm &amp;oldDpm)</div><div class="ttdoc">Backward traverse along direct value flows. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00347">DDAVFSolver.h:347</a></div></div>
2131
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_acd694c2092adf8c516d1aba5f798cec7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acd694c2092adf8c516d1aba5f798cec7">SVF::DDAVFSolver::startNewPTCompFromLoadSrc</a></div><div class="ttdeci">void startNewPTCompFromLoadSrc(CPtSet &amp;pts, const DPIm &amp;oldDpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00387">DDAVFSolver.h:387</a></div></div>
2132
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7a6af30f30f32d55fc910f2ae4909791"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7a6af30f30f32d55fc910f2ae4909791">SVF::DDAVFSolver::backtraceAlongDirectVF</a></div><div class="ttdeci">void backtraceAlongDirectVF(CPtSet &amp;pts, const DPIm &amp;oldDpm)</div><div class="ttdoc">Backward traverse along direct value flows. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00369">DDAVFSolver.h:369</a></div></div>
2133
2133
  <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ab10a34efa1acb6125ea32cf7a8cf919f"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ab10a34efa1acb6125ea32cf7a8cf919f">SVF::DDAVFSolver::processGepPts</a></div><div class="ttdeci">virtual CPtSet processGepPts(const GepSVFGNode *gep, const CPtSet &amp;srcPts)=0</div><div class="ttdoc">ProcessGep node to generate field object nodes of a struct. </div></div>
2134
2134
  <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>
2135
- <div class="ttc" id="classSVF_1_1DDAStat_html_a0aec64ca944ea4f914a6fa799b7a8b38"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a0aec64ca944ea4f914a6fa799b7a8b38">SVF::DDAStat::_NumOfMustAliases</a></div><div class="ttdeci">u32_t _NumOfMustAliases</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00034">DDAStat.h:34</a></div></div>
2136
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aeb6b56cf3d140d251b0524eb5cbd6dce"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aeb6b56cf3d140d251b0524eb5cbd6dce">SVF::DDAVFSolver::addSUStat</a></div><div class="ttdeci">void addSUStat(const DPIm &amp;dpm, const SVFGNode *node)</div><div class="ttdoc">stat strong updates num </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00732">DDAVFSolver.h:732</a></div></div>
2135
+ <div class="ttc" id="classSVF_1_1DDAStat_html_a0aec64ca944ea4f914a6fa799b7a8b38"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a0aec64ca944ea4f914a6fa799b7a8b38">SVF::DDAStat::_NumOfMustAliases</a></div><div class="ttdeci">u32_t _NumOfMustAliases</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00056">DDAStat.h:56</a></div></div>
2136
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aeb6b56cf3d140d251b0524eb5cbd6dce"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aeb6b56cf3d140d251b0524eb5cbd6dce">SVF::DDAVFSolver::addSUStat</a></div><div class="ttdeci">void addSUStat(const DPIm &amp;dpm, const SVFGNode *node)</div><div class="ttdoc">stat strong updates num </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00754">DDAVFSolver.h:754</a></div></div>
2137
2137
  <div class="ttc" id="namespaceSVF_html_aae350f79ebcb9efd22ec9efa6678cd13"><div class="ttname"><a href="namespaceSVF.html#aae350f79ebcb9efd22ec9efa6678cd13">SVF::dump</a></div><div class="ttdeci">void dump(const SparseBitVector&lt; ElementSize &gt; &amp;LHS, std::ostream &amp;out)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01189">SparseBitVector.h:1189</a></div></div>
2138
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_afcc074be34dd0c45418ff16b3d9d4192"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afcc074be34dd0c45418ff16b3d9d4192">SVF::DDAVFSolver::resolveFunPtr</a></div><div class="ttdeci">void resolveFunPtr(const DPIm &amp;dpm)</div><div class="ttdoc">resolve function pointer </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00468">DDAVFSolver.h:468</a></div></div>
2138
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_afcc074be34dd0c45418ff16b3d9d4192"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afcc074be34dd0c45418ff16b3d9d4192">SVF::DDAVFSolver::resolveFunPtr</a></div><div class="ttdeci">void resolveFunPtr(const DPIm &amp;dpm)</div><div class="ttdoc">resolve function pointer </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00490">DDAVFSolver.h:490</a></div></div>
2139
2139
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
2140
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a94bcddbc7b9ccecb3fbb693b13372785"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a94bcddbc7b9ccecb3fbb693b13372785">SVF::DDAVFSolver::isStrongUpdate</a></div><div class="ttdeci">virtual bool isStrongUpdate(const CPtSet &amp;dstCPSet, const StoreSVFGNode *store)</div><div class="ttdoc">Return TRUE if this is a strong update STORE statement. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00427">DDAVFSolver.h:427</a></div></div>
2140
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a94bcddbc7b9ccecb3fbb693b13372785"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a94bcddbc7b9ccecb3fbb693b13372785">SVF::DDAVFSolver::isStrongUpdate</a></div><div class="ttdeci">virtual bool isStrongUpdate(const CPtSet &amp;dstCPSet, const StoreSVFGNode *store)</div><div class="ttdoc">Return TRUE if this is a strong update STORE statement. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00449">DDAVFSolver.h:449</a></div></div>
2141
2141
  </div><!-- fragment -->
2142
2142
  </div>
2143
2143
  </div>
@@ -2167,9 +2167,9 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2167
2167
  </table>
2168
2168
  </div><div class="memdoc">
2169
2169
 
2170
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00624">624</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2171
- <div class="fragment"><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; {</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keyword">const</span> MemObj* mem = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(var));</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; assert(mem &amp;&amp; <span class="stringliteral">&quot;memory object is null??&quot;</span>);</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">return</span> mem-&gt;isArray();</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fa002d4ba4194ffde62ecbdd361a24d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">SVF::DDAVFSolver::getPtrNodeID</a></div><div class="ttdeci">virtual NodeID getPtrNodeID(const CVar &amp;var) const =0</div><div class="ttdoc">Methods to be implemented in child class. </div></div>
2172
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00753">DDAVFSolver.h:753</a></div></div>
2170
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00646">646</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2171
+ <div class="fragment"><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; {</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keyword">const</span> MemObj* mem = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(var));</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; assert(mem &amp;&amp; <span class="stringliteral">&quot;memory object is null??&quot;</span>);</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordflow">return</span> mem-&gt;isArray();</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fa002d4ba4194ffde62ecbdd361a24d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">SVF::DDAVFSolver::getPtrNodeID</a></div><div class="ttdeci">virtual NodeID getPtrNodeID(const CVar &amp;var) const =0</div><div class="ttdoc">Methods to be implemented in child class. </div></div>
2172
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
2173
2173
  <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#l00344">SVFIR.h:344</a></div></div>
2174
2174
  </div><!-- fragment -->
2175
2175
  </div>
@@ -2200,8 +2200,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2200
2200
  </table>
2201
2201
  </div><div class="memdoc">
2202
2202
 
2203
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00519">519</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2204
- <div class="fragment"><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; {</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.find(dpm)!=<a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.end();</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a63d04c3af4529d0e0f82acd76ed57f6c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">SVF::DDAVFSolver::backwardVisited</a></div><div class="ttdeci">DPTItemSet backwardVisited</div><div class="ttdoc">visited map during backward traversing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00760">DDAVFSolver.h:760</a></div></div>
2203
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00541">541</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2204
+ <div class="fragment"><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; {</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.find(dpm)!=<a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.end();</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a63d04c3af4529d0e0f82acd76ed57f6c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">SVF::DDAVFSolver::backwardVisited</a></div><div class="ttdeci">DPTItemSet backwardVisited</div><div class="ttdoc">visited map during backward traversing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00782">DDAVFSolver.h:782</a></div></div>
2205
2205
  </div><!-- fragment -->
2206
2206
  </div>
2207
2207
  </div>
@@ -2231,10 +2231,10 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2231
2231
  </table>
2232
2232
  </div><div class="memdoc">
2233
2233
 
2234
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00630">630</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2235
- <div class="fragment"><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; {</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="keyword">const</span> MemObj* mem = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(var));</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordflow">return</span> mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>();</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_af76a55c3b8255a81a566bdce35ffc749"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">SVF::SVFIR::getBaseObj</a></div><div class="ttdeci">const MemObj * getBaseObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00410">SVFIR.h:410</a></div></div>
2234
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00652">652</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2235
+ <div class="fragment"><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; {</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keyword">const</span> MemObj* mem = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(var));</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="keywordflow">return</span> mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>();</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_af76a55c3b8255a81a566bdce35ffc749"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">SVF::SVFIR::getBaseObj</a></div><div class="ttdeci">const MemObj * getBaseObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00410">SVFIR.h:410</a></div></div>
2236
2236
  <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fa002d4ba4194ffde62ecbdd361a24d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">SVF::DDAVFSolver::getPtrNodeID</a></div><div class="ttdeci">virtual NodeID getPtrNodeID(const CVar &amp;var) const =0</div><div class="ttdoc">Methods to be implemented in child class. </div></div>
2237
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00753">DDAVFSolver.h:753</a></div></div>
2237
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
2238
2238
  <div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00738">SymbolTableInfo.cpp:738</a></div></div>
2239
2239
  </div><!-- fragment -->
2240
2240
  </div>
@@ -2279,9 +2279,9 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2279
2279
 
2280
2280
  <p>Reimplemented in <a class="el" href="classSVF_1_1ContextDDA.html#a02902af9bc4455b994a5da4a9d6cf121">SVF::ContextDDA</a>, and <a class="el" href="classSVF_1_1FlowDDA.html#afc3b2b4e0da7a2484ec35c3ce84a9d60">SVF::FlowDDA</a>.</p>
2281
2281
 
2282
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00617">617</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2283
- <div class="fragment"><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; {</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keyword">const</span> MemObj* mem = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(var));</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; assert(mem &amp;&amp; <span class="stringliteral">&quot;memory object is null??&quot;</span>);</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">return</span> mem-&gt;isHeap();</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fa002d4ba4194ffde62ecbdd361a24d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">SVF::DDAVFSolver::getPtrNodeID</a></div><div class="ttdeci">virtual NodeID getPtrNodeID(const CVar &amp;var) const =0</div><div class="ttdoc">Methods to be implemented in child class. </div></div>
2284
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00753">DDAVFSolver.h:753</a></div></div>
2282
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00639">639</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2283
+ <div class="fragment"><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; {</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keyword">const</span> MemObj* mem = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(var));</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; assert(mem &amp;&amp; <span class="stringliteral">&quot;memory object is null??&quot;</span>);</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordflow">return</span> mem-&gt;isHeap();</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fa002d4ba4194ffde62ecbdd361a24d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">SVF::DDAVFSolver::getPtrNodeID</a></div><div class="ttdeci">virtual NodeID getPtrNodeID(const CVar &amp;var) const =0</div><div class="ttdoc">Methods to be implemented in child class. </div></div>
2284
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
2285
2285
  <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#l00344">SVFIR.h:344</a></div></div>
2286
2286
  </div><!-- fragment -->
2287
2287
  </div>
@@ -2314,15 +2314,15 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2314
2314
 
2315
2315
  <p>Whether a local variable is in function recursions. </p>
2316
2316
 
2317
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00444">444</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2318
- <div class="fragment"><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; {</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span> = <a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(var);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keyword">const</span> MemObj* obj = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; assert(obj &amp;&amp; <span class="stringliteral">&quot;object not found!!&quot;</span>);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">if</span>(obj-&gt;isStack())</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</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#a53439a493963d16e5a1b5ed36ab6d33e">getFunction</a>())</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; {</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keyword">const</span> SVFFunction* svffun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(fun);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">_callGraphSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">_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="l00455"></a><span class="lineno"> 455</span>&#160; }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; }</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a4c307d486756daa1e79595b1e9edc40a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">SVF::DDAVFSolver::_callGraphSCC</a></div><div class="ttdeci">CallGraphSCC * _callGraphSCC</div><div class="ttdoc">SCC for CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00758">DDAVFSolver.h:758</a></div></div>
2317
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00466">466</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2318
+ <div class="fragment"><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; {</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span> = <a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(var);</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keyword">const</span> MemObj* obj = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; assert(obj &amp;&amp; <span class="stringliteral">&quot;object not found!!&quot;</span>);</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">if</span>(obj-&gt;isStack())</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; {</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</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#a53439a493963d16e5a1b5ed36ab6d33e">getFunction</a>())</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; {</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keyword">const</span> SVFFunction* svffun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(fun);</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">_callGraphSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">_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="l00477"></a><span class="lineno"> 477</span>&#160; }</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; }</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a4c307d486756daa1e79595b1e9edc40a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">SVF::DDAVFSolver::_callGraphSCC</a></div><div class="ttdeci">CallGraphSCC * _callGraphSCC</div><div class="ttdoc">SCC for CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00780">DDAVFSolver.h:780</a></div></div>
2319
2319
  <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>
2320
2320
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
2321
2321
  <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fa002d4ba4194ffde62ecbdd361a24d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">SVF::DDAVFSolver::getPtrNodeID</a></div><div class="ttdeci">virtual NodeID getPtrNodeID(const CVar &amp;var) const =0</div><div class="ttdoc">Methods to be implemented in child class. </div></div>
2322
2322
  <div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00070">BasicTypes.h:70</a></div></div>
2323
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_abf24080617c6a74abed9f0bb0bc9c0c5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">SVF::DDAVFSolver::_callGraph</a></div><div class="ttdeci">PTACallGraph * _callGraph</div><div class="ttdoc">CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00757">DDAVFSolver.h:757</a></div></div>
2323
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_abf24080617c6a74abed9f0bb0bc9c0c5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">SVF::DDAVFSolver::_callGraph</a></div><div class="ttdeci">PTACallGraph * _callGraph</div><div class="ttdoc">CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00779">DDAVFSolver.h:779</a></div></div>
2324
2324
  <div class="ttc" id="classSVF_1_1SVFVar_html_a53439a493963d16e5a1b5ed36ab6d33e"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a53439a493963d16e5a1b5ed36ab6d33e">SVF::SVFVar::getFunction</a></div><div class="ttdeci">virtual const Function * 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>
2325
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00753">DDAVFSolver.h:753</a></div></div>
2325
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
2326
2326
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00070">LLVMModule.h:70</a></div></div>
2327
2327
  <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#l00169">GenericGraph.h:169</a></div></div>
2328
2328
  <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>
@@ -2370,8 +2370,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2370
2370
 
2371
2371
  <p>whether load and store are aliased </p>
2372
2372
 
2373
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00422">422</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2374
- <div class="fragment"><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div></div><!-- fragment -->
2373
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00444">444</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2374
+ <div class="fragment"><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; {</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; }</div></div><!-- fragment -->
2375
2375
  </div>
2376
2376
  </div>
2377
2377
  <a id="a0b1f774883adc7d535f8363bf3c8b1e8"></a>
@@ -2400,8 +2400,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2400
2400
  </table>
2401
2401
  </div><div class="memdoc">
2402
2402
 
2403
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00719">719</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2404
- <div class="fragment"><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; {</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">outOfBudgetDpms</a>.find(dpm) != <a class="code" href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">outOfBudgetDpms</a>.end();</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aad57a954473f3099188cf8c8fba87880"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">SVF::DDAVFSolver::outOfBudgetDpms</a></div><div class="ttdeci">DPTItemSet outOfBudgetDpms</div><div class="ttdoc">out of budget dpm set </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00766">DDAVFSolver.h:766</a></div></div>
2403
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00741">741</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2404
+ <div class="fragment"><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; {</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">outOfBudgetDpms</a>.find(dpm) != <a class="code" href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">outOfBudgetDpms</a>.end();</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aad57a954473f3099188cf8c8fba87880"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">SVF::DDAVFSolver::outOfBudgetDpms</a></div><div class="ttdeci">DPTItemSet outOfBudgetDpms</div><div class="ttdoc">out of budget dpm set </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00788">DDAVFSolver.h:788</a></div></div>
2405
2405
  </div><!-- fragment -->
2406
2406
  </div>
2407
2407
  </div>
@@ -2430,8 +2430,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2430
2430
  </table>
2431
2431
  </div><div class="memdoc">
2432
2432
 
2433
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00711">711</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2434
- <div class="fragment"><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; {</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a>;</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_afdecfbacc64cb8d694268aa73ec8a7b6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">SVF::DDAVFSolver::outOfBudgetQuery</a></div><div class="ttdeci">bool outOfBudgetQuery</div><div class="ttdoc">Whether the current query is out of step limits. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00752">DDAVFSolver.h:752</a></div></div>
2433
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00733">733</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2434
+ <div class="fragment"><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; {</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a>;</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_afdecfbacc64cb8d694268aa73ec8a7b6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">SVF::DDAVFSolver::outOfBudgetQuery</a></div><div class="ttdeci">bool outOfBudgetQuery</div><div class="ttdoc">Whether the current query is out of step limits. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00774">DDAVFSolver.h:774</a></div></div>
2435
2435
  </div><!-- fragment -->
2436
2436
  </div>
2437
2437
  </div>
@@ -2474,11 +2474,11 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2474
2474
  <p>Return TRUE if this is a strong update STORE statement. </p>
2475
2475
  <p>Find the unique element in cpts </p>
2476
2476
 
2477
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00427">427</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2478
- <div class="fragment"><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">if</span> (dstCPSet.count() == 1)</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keyword">typename</span> CPtSet::iterator it = dstCPSet.begin();</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keyword">const</span> CVar&amp; var = *it;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="comment">// Strong update can be made if this points-to target is not heap, array or field-insensitive.</span></div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1DDAVFSolver.html#a645c7d0637b49e139898016ff652e1f3">isHeapCondMemObj</a>(var,store) &amp;&amp; !<a class="code" href="classSVF_1_1DDAVFSolver.html#a9aaa5ee3dc8abc51c4b6e463e1949ee7">isArrayCondMemObj</a>(var)</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; &amp;&amp; !<a class="code" href="classSVF_1_1DDAVFSolver.html#a37a6321f50bef2939b287cc088e76170">isFieldInsenCondMemObj</a>(var) &amp;&amp; !<a class="code" href="classSVF_1_1DDAVFSolver.html#a20cadb651b41343437e135e985c4e566">isLocalCVarInRecursion</a>(var))</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; {</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a37a6321f50bef2939b287cc088e76170"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a37a6321f50bef2939b287cc088e76170">SVF::DDAVFSolver::isFieldInsenCondMemObj</a></div><div class="ttdeci">bool isFieldInsenCondMemObj(const CVar &amp;var) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00630">DDAVFSolver.h:630</a></div></div>
2479
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a20cadb651b41343437e135e985c4e566"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a20cadb651b41343437e135e985c4e566">SVF::DDAVFSolver::isLocalCVarInRecursion</a></div><div class="ttdeci">virtual bool isLocalCVarInRecursion(const CVar &amp;var) const</div><div class="ttdoc">Whether a local variable is in function recursions. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00444">DDAVFSolver.h:444</a></div></div>
2480
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a9aaa5ee3dc8abc51c4b6e463e1949ee7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a9aaa5ee3dc8abc51c4b6e463e1949ee7">SVF::DDAVFSolver::isArrayCondMemObj</a></div><div class="ttdeci">bool isArrayCondMemObj(const CVar &amp;var) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00624">DDAVFSolver.h:624</a></div></div>
2481
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a645c7d0637b49e139898016ff652e1f3"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a645c7d0637b49e139898016ff652e1f3">SVF::DDAVFSolver::isHeapCondMemObj</a></div><div class="ttdeci">virtual bool isHeapCondMemObj(const CVar &amp;var, const StoreSVFGNode *)</div><div class="ttdoc">Check heap and array object. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00617">DDAVFSolver.h:617</a></div></div>
2477
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00449">449</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2478
+ <div class="fragment"><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">if</span> (dstCPSet.count() == 1)</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; {</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keyword">typename</span> CPtSet::iterator it = dstCPSet.begin();</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keyword">const</span> CVar&amp; var = *it;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="comment">// Strong update can be made if this points-to target is not heap, array or field-insensitive.</span></div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1DDAVFSolver.html#a645c7d0637b49e139898016ff652e1f3">isHeapCondMemObj</a>(var,store) &amp;&amp; !<a class="code" href="classSVF_1_1DDAVFSolver.html#a9aaa5ee3dc8abc51c4b6e463e1949ee7">isArrayCondMemObj</a>(var)</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; &amp;&amp; !<a class="code" href="classSVF_1_1DDAVFSolver.html#a37a6321f50bef2939b287cc088e76170">isFieldInsenCondMemObj</a>(var) &amp;&amp; !<a class="code" href="classSVF_1_1DDAVFSolver.html#a20cadb651b41343437e135e985c4e566">isLocalCVarInRecursion</a>(var))</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; {</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; }</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; }</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a37a6321f50bef2939b287cc088e76170"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a37a6321f50bef2939b287cc088e76170">SVF::DDAVFSolver::isFieldInsenCondMemObj</a></div><div class="ttdeci">bool isFieldInsenCondMemObj(const CVar &amp;var) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00652">DDAVFSolver.h:652</a></div></div>
2479
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a20cadb651b41343437e135e985c4e566"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a20cadb651b41343437e135e985c4e566">SVF::DDAVFSolver::isLocalCVarInRecursion</a></div><div class="ttdeci">virtual bool isLocalCVarInRecursion(const CVar &amp;var) const</div><div class="ttdoc">Whether a local variable is in function recursions. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00466">DDAVFSolver.h:466</a></div></div>
2480
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a9aaa5ee3dc8abc51c4b6e463e1949ee7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a9aaa5ee3dc8abc51c4b6e463e1949ee7">SVF::DDAVFSolver::isArrayCondMemObj</a></div><div class="ttdeci">bool isArrayCondMemObj(const CVar &amp;var) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00646">DDAVFSolver.h:646</a></div></div>
2481
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a645c7d0637b49e139898016ff652e1f3"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a645c7d0637b49e139898016ff652e1f3">SVF::DDAVFSolver::isHeapCondMemObj</a></div><div class="ttdeci">virtual bool isHeapCondMemObj(const CVar &amp;var, const StoreSVFGNode *)</div><div class="ttdoc">Check heap and array object. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00639">DDAVFSolver.h:639</a></div></div>
2482
2482
  </div><!-- fragment -->
2483
2483
  </div>
2484
2484
  </div>
@@ -2510,8 +2510,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2510
2510
 
2511
2511
  <p>Return whether this SVFGNode is in cycle. </p>
2512
2512
 
2513
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00596">596</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2514
- <div class="fragment"><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; {</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(node-&gt;getId());</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00759">DDAVFSolver.h:759</a></div></div>
2513
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00618">618</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2514
+ <div class="fragment"><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; {</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(node-&gt;getId());</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00781">DDAVFSolver.h:781</a></div></div>
2515
2515
  <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>
2516
2516
  </div><!-- fragment -->
2517
2517
  </div>
@@ -2544,8 +2544,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2544
2544
 
2545
2545
  <p>Whether this is a top-level pointer statement. </p>
2546
2546
 
2547
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00559">559</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2548
- <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">if</span> (SVFUtil::isa&lt;StoreSVFGNode&gt;(stmt) || SVFUtil::isa&lt;MRSVFGNode&gt;(stmt))</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; }</div></div><!-- fragment -->
2547
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00581">581</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2548
+ <div class="fragment"><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; {</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;StoreSVFGNode&gt;(stmt) || SVFUtil::isa&lt;MRSVFGNode&gt;(stmt))</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; }</div></div><!-- fragment -->
2549
2549
  </div>
2550
2550
  </div>
2551
2551
  <a id="a7112ce6145be0855f8b035bb0d8a331c"></a>
@@ -2576,8 +2576,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2576
2576
 
2577
2577
  <p>Visited flags to avoid cycles. </p>
2578
2578
 
2579
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00515">515</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2580
- <div class="fragment"><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; <a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.insert(dpm);</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a63d04c3af4529d0e0f82acd76ed57f6c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">SVF::DDAVFSolver::backwardVisited</a></div><div class="ttdeci">DPTItemSet backwardVisited</div><div class="ttdoc">visited map during backward traversing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00760">DDAVFSolver.h:760</a></div></div>
2579
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00537">537</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2580
+ <div class="fragment"><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; {</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.insert(dpm);</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a63d04c3af4529d0e0f82acd76ed57f6c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">SVF::DDAVFSolver::backwardVisited</a></div><div class="ttdeci">DPTItemSet backwardVisited</div><div class="ttdoc">visited map during backward traversing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00782">DDAVFSolver.h:782</a></div></div>
2581
2581
  </div><!-- fragment -->
2582
2582
  </div>
2583
2583
  </div>
@@ -2608,11 +2608,11 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2608
2608
 
2609
2609
  <p>Reset visited map if the current query is out-of-budget. </p>
2610
2610
 
2611
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00309">309</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2612
- <div class="fragment"><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; {</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">typename</span> LocToDPMVecMap::const_iterator it = <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>.begin(),eit = <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">DPTItemSet</a> dpmSet(it-&gt;second.begin(), it-&gt;second.end());</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">typename</span> DPTItemSet::const_iterator dit = dpmSet.begin(),deit=dpmSet.end(); dit!=deit; ++dit)</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a0b1f774883adc7d535f8363bf3c8b1e8">isOutOfBudgetDpm</a>(*dit)==<span class="keyword">false</span>)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">clearbkVisited</a>(*dit);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a0b1f774883adc7d535f8363bf3c8b1e8"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a0b1f774883adc7d535f8363bf3c8b1e8">SVF::DDAVFSolver::isOutOfBudgetDpm</a></div><div class="ttdeci">bool isOutOfBudgetDpm(const DPIm &amp;dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00719">DDAVFSolver.h:719</a></div></div>
2613
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a05d6b074b04aad7dc1f3cbe0ca587467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">SVF::DDAVFSolver::DPTItemSet</a></div><div class="ttdeci">OrderedSet&lt; DPIm &gt; DPTItemSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00033">DDAVFSolver.h:33</a></div></div>
2614
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa7e5839c5bc6f913561de10bce61e74b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">SVF::DDAVFSolver::clearbkVisited</a></div><div class="ttdeci">void clearbkVisited(const DPIm &amp;dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00523">DDAVFSolver.h:523</a></div></div>
2615
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00763">DDAVFSolver.h:763</a></div></div>
2611
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00331">331</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2612
+ <div class="fragment"><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">typename</span> LocToDPMVecMap::const_iterator it = <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>.begin(),eit = <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">DPTItemSet</a> dpmSet(it-&gt;second.begin(), it-&gt;second.end());</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">typename</span> DPTItemSet::const_iterator dit = dpmSet.begin(),deit=dpmSet.end(); dit!=deit; ++dit)</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a0b1f774883adc7d535f8363bf3c8b1e8">isOutOfBudgetDpm</a>(*dit)==<span class="keyword">false</span>)</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">clearbkVisited</a>(*dit);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a0b1f774883adc7d535f8363bf3c8b1e8"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a0b1f774883adc7d535f8363bf3c8b1e8">SVF::DDAVFSolver::isOutOfBudgetDpm</a></div><div class="ttdeci">bool isOutOfBudgetDpm(const DPIm &amp;dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00741">DDAVFSolver.h:741</a></div></div>
2613
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a05d6b074b04aad7dc1f3cbe0ca587467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">SVF::DDAVFSolver::DPTItemSet</a></div><div class="ttdeci">OrderedSet&lt; DPIm &gt; DPTItemSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00055">DDAVFSolver.h:55</a></div></div>
2614
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa7e5839c5bc6f913561de10bce61e74b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">SVF::DDAVFSolver::clearbkVisited</a></div><div class="ttdeci">void clearbkVisited(const DPIm &amp;dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00545">DDAVFSolver.h:545</a></div></div>
2615
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00785">DDAVFSolver.h:785</a></div></div>
2616
2616
  </div><!-- fragment -->
2617
2617
  </div>
2618
2618
  </div>
@@ -2698,8 +2698,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2698
2698
 
2699
2699
  <p>Reimplemented in <a class="el" href="classSVF_1_1ContextDDA.html#a45d7a381fec0692b4d2f7d0eec47ccf1">SVF::ContextDDA</a>.</p>
2700
2700
 
2701
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00461">461</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2702
- <div class="fragment"><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; {</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(storeObj) == <a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(loadObj))</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fa002d4ba4194ffde62ecbdd361a24d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">SVF::DDAVFSolver::getPtrNodeID</a></div><div class="ttdeci">virtual NodeID getPtrNodeID(const CVar &amp;var) const =0</div><div class="ttdoc">Methods to be implemented in child class. </div></div>
2701
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00483">483</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2702
+ <div class="fragment"><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; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(storeObj) == <a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(loadObj))</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a3fa002d4ba4194ffde62ecbdd361a24d"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">SVF::DDAVFSolver::getPtrNodeID</a></div><div class="ttdeci">virtual NodeID getPtrNodeID(const CVar &amp;var) const =0</div><div class="ttdoc">Methods to be implemented in child class. </div></div>
2703
2703
  </div><!-- fragment -->
2704
2704
  </div>
2705
2705
  </div>
@@ -2734,16 +2734,16 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2734
2734
  <p>callgraph scc detection for local variable in recursion</p>
2735
2735
  <p>re-compute for transitive closures </p>
2736
2736
 
2737
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00228">228</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2738
- <div class="fragment"><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVFGEdgeSet</a> newIndirectEdges;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a9235a60e7332c8416e113e7360441d97">isFunPtr</a>(dpm.getCurNodeID()))</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a0c590e9d56b6d37cb6e0c9081363a0ef">CallSiteSet</a>&amp; csSet = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abf209739a97b96ae0d1c8451fdc684e8">getIndCallSites</a>(dpm.getCurNodeID());</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">for</span>(CallSiteSet::const_iterator it = csSet.begin(), eit = csSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a637dddedd96942d56de6fd6d10c09169">updateCallGraphAndSVFG</a>(dpm, (*it),newIndirectEdges);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span>(!newIndirectEdges.empty())</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">_callGraphSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>();</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ace037388135f272365cee2e87844bfba">reComputeForEdges</a>(dpm,newIndirectEdges,<span class="keyword">true</span>);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVFGEdgeSet</a> edgeSet(dpm.getLoc()-&gt;getOutEdges());</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ace037388135f272365cee2e87844bfba">reComputeForEdges</a>(dpm,edgeSet,<span class="keyword">false</span>);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a4c307d486756daa1e79595b1e9edc40a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">SVF::DDAVFSolver::_callGraphSCC</a></div><div class="ttdeci">CallGraphSCC * _callGraphSCC</div><div class="ttdoc">SCC for CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00758">DDAVFSolver.h:758</a></div></div>
2739
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6489319b33a807f7caba2d34017a3e1b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVF::DDAVFSolver::SVFGEdgeSet</a></div><div class="ttdeci">SVFGEdge::SVFGEdgeSetTy SVFGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00039">DDAVFSolver.h:39</a></div></div>
2737
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00250">250</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2738
+ <div class="fragment"><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVFGEdgeSet</a> newIndirectEdges;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a9235a60e7332c8416e113e7360441d97">isFunPtr</a>(dpm.getCurNodeID()))</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a0c590e9d56b6d37cb6e0c9081363a0ef">CallSiteSet</a>&amp; csSet = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abf209739a97b96ae0d1c8451fdc684e8">getIndCallSites</a>(dpm.getCurNodeID());</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">for</span>(CallSiteSet::const_iterator it = csSet.begin(), eit = csSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a637dddedd96942d56de6fd6d10c09169">updateCallGraphAndSVFG</a>(dpm, (*it),newIndirectEdges);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">if</span>(!newIndirectEdges.empty())</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">_callGraphSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>();</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ace037388135f272365cee2e87844bfba">reComputeForEdges</a>(dpm,newIndirectEdges,<span class="keyword">true</span>);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVFGEdgeSet</a> edgeSet(dpm.getLoc()-&gt;getOutEdges());</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ace037388135f272365cee2e87844bfba">reComputeForEdges</a>(dpm,edgeSet,<span class="keyword">false</span>);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a4c307d486756daa1e79595b1e9edc40a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">SVF::DDAVFSolver::_callGraphSCC</a></div><div class="ttdeci">CallGraphSCC * _callGraphSCC</div><div class="ttdoc">SCC for CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00780">DDAVFSolver.h:780</a></div></div>
2739
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6489319b33a807f7caba2d34017a3e1b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVF::DDAVFSolver::SVFGEdgeSet</a></div><div class="ttdeci">SVFGEdge::SVFGEdgeSetTy SVFGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00061">DDAVFSolver.h:61</a></div></div>
2740
2740
  <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>
2741
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ace037388135f272365cee2e87844bfba"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ace037388135f272365cee2e87844bfba">SVF::DDAVFSolver::reComputeForEdges</a></div><div class="ttdeci">void reComputeForEdges(const DPIm &amp;dpm, const SVFGEdgeSet &amp;edgeSet, bool indirectCall=false)</div><div class="ttdoc">Traverse along out edges to find all nodes which may be affected by locDPM. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00249">DDAVFSolver.h:249</a></div></div>
2741
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ace037388135f272365cee2e87844bfba"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ace037388135f272365cee2e87844bfba">SVF::DDAVFSolver::reComputeForEdges</a></div><div class="ttdeci">void reComputeForEdges(const DPIm &amp;dpm, const SVFGEdgeSet &amp;edgeSet, bool indirectCall=false)</div><div class="ttdoc">Traverse along out edges to find all nodes which may be affected by locDPM. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00271">DDAVFSolver.h:271</a></div></div>
2742
2742
  <div class="ttc" id="classSVF_1_1SVFIR_html_a9235a60e7332c8416e113e7360441d97"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a9235a60e7332c8416e113e7360441d97">SVF::SVFIR::isFunPtr</a></div><div class="ttdeci">bool isFunPtr(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00319">SVFIR.h:319</a></div></div>
2743
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a637dddedd96942d56de6fd6d10c09169"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a637dddedd96942d56de6fd6d10c09169">SVF::DDAVFSolver::updateCallGraphAndSVFG</a></div><div class="ttdeci">virtual void updateCallGraphAndSVFG(const DPIm &amp;, const CallICFGNode *, SVFGEdgeSet &amp;)</div><div class="ttdoc">Update call graph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00510">DDAVFSolver.h:510</a></div></div>
2744
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00753">DDAVFSolver.h:753</a></div></div>
2743
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a637dddedd96942d56de6fd6d10c09169"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a637dddedd96942d56de6fd6d10c09169">SVF::DDAVFSolver::updateCallGraphAndSVFG</a></div><div class="ttdeci">virtual void updateCallGraphAndSVFG(const DPIm &amp;, const CallICFGNode *, SVFGEdgeSet &amp;)</div><div class="ttdoc">Update call graph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00532">DDAVFSolver.h:532</a></div></div>
2744
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
2745
2745
  <div class="ttc" id="classSVF_1_1SVFIR_html_abf209739a97b96ae0d1c8451fdc684e8"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abf209739a97b96ae0d1c8451fdc684e8">SVF::SVFIR::getIndCallSites</a></div><div class="ttdeci">const CallSiteSet &amp; getIndCallSites(NodeID funPtr) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00309">SVFIR.h:309</a></div></div>
2746
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a0c590e9d56b6d37cb6e0c9081363a0ef"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a0c590e9d56b6d37cb6e0c9081363a0ef">SVF::DDAVFSolver::CallSiteSet</a></div><div class="ttdeci">SVFIR::CallSiteSet CallSiteSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00032">DDAVFSolver.h:32</a></div></div>
2746
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a0c590e9d56b6d37cb6e0c9081363a0ef"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a0c590e9d56b6d37cb6e0c9081363a0ef">SVF::DDAVFSolver::CallSiteSet</a></div><div class="ttdeci">SVFIR::CallSiteSet CallSiteSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00054">DDAVFSolver.h:54</a></div></div>
2747
2747
  </div><!-- fragment -->
2748
2748
  </div>
2749
2749
  </div>
@@ -2792,18 +2792,18 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2792
2792
  <p>Traverse along out edges to find all nodes which may be affected by locDPM. </p>
2793
2793
  <p>Only collect nodes we have traversed </p>
2794
2794
 
2795
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00249">249</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2796
- <div class="fragment"><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> it = edgeSet.begin(), eit = edgeSet.end(); it != eit; ++it)</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>* edge = *it;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* dst = edge-&gt;getDstNode();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">typename</span> LocToDPMVecMap::const_iterator locIt = <a class="code" href="classSVF_1_1DDAVFSolver.html#ad849ae4509e88832f784c748468ab959">getLocToDPMVecMap</a>().find(dst-&gt;getId());</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">if</span> (locIt == <a class="code" href="classSVF_1_1DDAVFSolver.html#ad849ae4509e88832f784c748468ab959">getLocToDPMVecMap</a>().end())</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">DPTItemSet</a> dpmSet(locIt-&gt;second.begin(), locIt-&gt;second.end());</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">typename</span> DPTItemSet::const_iterator it = dpmSet.begin(),eit = dpmSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">const</span> DPIm&amp; dstDpm = *it;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span>(!indirectCall &amp;&amp; SVFUtil::isa&lt;IndirectSVFGEdge&gt;(edge) &amp;&amp; !SVFUtil::isa&lt;LoadSVFGNode&gt;(edge-&gt;getDstNode()))</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; {</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">if</span>(dstDpm.getCurNodeID() == dpm.getCurNodeID())</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t Recompute, forward from :&quot;</span>);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">_NumOfStepInCycle</a>++);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">clearbkVisited</a>(dstDpm);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(dstDpm);</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; <span class="keywordflow">else</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">if</span>(indirectCall)</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t Recompute for indirect call from :&quot;</span>);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t Recompute forward from :&quot;</span>);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">_NumOfStepInCycle</a>++);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">clearbkVisited</a>(dstDpm);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(dstDpm);</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; }</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00768">DDAVFSolver.h:768</a></div></div>
2797
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ad849ae4509e88832f784c748468ab959"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ad849ae4509e88832f784c748468ab959">SVF::DDAVFSolver::getLocToDPMVecMap</a></div><div class="ttdeci">const LocToDPMVecMap &amp; getLocToDPMVecMap() const</div><div class="ttdoc">Map a SVFGNode to its dpms for handling value-flow cycles. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00639">DDAVFSolver.h:639</a></div></div>
2798
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a52737dd41c63404ef91691154aa250ce"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">SVF::DDAVFSolver::findPT</a></div><div class="ttdeci">virtual const CPtSet &amp; findPT(const DPIm &amp;dpm)</div><div class="ttdoc">Compute points-to. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00116">DDAVFSolver.h:116</a></div></div>
2795
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00271">271</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2796
+ <div class="fragment"><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> it = edgeSet.begin(), eit = edgeSet.end(); it != eit; ++it)</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>* edge = *it;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* dst = edge-&gt;getDstNode();</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keyword">typename</span> LocToDPMVecMap::const_iterator locIt = <a class="code" href="classSVF_1_1DDAVFSolver.html#ad849ae4509e88832f784c748468ab959">getLocToDPMVecMap</a>().find(dst-&gt;getId());</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">if</span> (locIt == <a class="code" href="classSVF_1_1DDAVFSolver.html#ad849ae4509e88832f784c748468ab959">getLocToDPMVecMap</a>().end())</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">DPTItemSet</a> dpmSet(locIt-&gt;second.begin(), locIt-&gt;second.end());</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">typename</span> DPTItemSet::const_iterator it = dpmSet.begin(),eit = dpmSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">const</span> DPIm&amp; dstDpm = *it;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span>(!indirectCall &amp;&amp; SVFUtil::isa&lt;IndirectSVFGEdge&gt;(edge) &amp;&amp; !SVFUtil::isa&lt;LoadSVFGNode&gt;(edge-&gt;getDstNode()))</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">if</span>(dstDpm.getCurNodeID() == dpm.getCurNodeID())</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t Recompute, forward from :&quot;</span>);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">_NumOfStepInCycle</a>++);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">clearbkVisited</a>(dstDpm);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(dstDpm);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">else</span></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">if</span>(indirectCall)</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t Recompute for indirect call from :&quot;</span>);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t Recompute forward from :&quot;</span>);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">_NumOfStepInCycle</a>++);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">clearbkVisited</a>(dstDpm);</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(dstDpm);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; }</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
2797
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ad849ae4509e88832f784c748468ab959"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ad849ae4509e88832f784c748468ab959">SVF::DDAVFSolver::getLocToDPMVecMap</a></div><div class="ttdeci">const LocToDPMVecMap &amp; getLocToDPMVecMap() const</div><div class="ttdoc">Map a SVFGNode to its dpms for handling value-flow cycles. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00661">DDAVFSolver.h:661</a></div></div>
2798
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a52737dd41c63404ef91691154aa250ce"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">SVF::DDAVFSolver::findPT</a></div><div class="ttdeci">virtual const CPtSet &amp; findPT(const DPIm &amp;dpm)</div><div class="ttdoc">Compute points-to. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00138">DDAVFSolver.h:138</a></div></div>
2799
2799
  <div class="ttc" id="namespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
2800
2800
  <div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
2801
2801
  <div class="ttc" id="SVFBasicTypes_8h_html_a6c9e2209a2c38607a9e3b7fab242886a"><div class="ttname"><a href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a></div><div class="ttdeci">#define DOSTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00156">SVFBasicTypes.h:156</a></div></div>
2802
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a05d6b074b04aad7dc1f3cbe0ca587467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">SVF::DDAVFSolver::DPTItemSet</a></div><div class="ttdeci">OrderedSet&lt; DPIm &gt; DPTItemSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00033">DDAVFSolver.h:33</a></div></div>
2802
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a05d6b074b04aad7dc1f3cbe0ca587467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">SVF::DDAVFSolver::DPTItemSet</a></div><div class="ttdeci">OrderedSet&lt; DPIm &gt; DPTItemSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00055">DDAVFSolver.h:55</a></div></div>
2803
2803
  <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>
2804
- <div class="ttc" id="classSVF_1_1DDAStat_html_aa9daed44e9d2ca2722ea9ab9d4517a21"><div class="ttname"><a href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">SVF::DDAStat::_NumOfStepInCycle</a></div><div class="ttdeci">u64_t _NumOfStepInCycle</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00038">DDAStat.h:38</a></div></div>
2804
+ <div class="ttc" id="classSVF_1_1DDAStat_html_aa9daed44e9d2ca2722ea9ab9d4517a21"><div class="ttname"><a href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">SVF::DDAStat::_NumOfStepInCycle</a></div><div class="ttdeci">u64_t _NumOfStepInCycle</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00060">DDAStat.h:60</a></div></div>
2805
2805
  <div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
2806
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa7e5839c5bc6f913561de10bce61e74b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">SVF::DDAVFSolver::clearbkVisited</a></div><div class="ttdeci">void clearbkVisited(const DPIm &amp;dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00523">DDAVFSolver.h:523</a></div></div>
2806
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa7e5839c5bc6f913561de10bce61e74b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">SVF::DDAVFSolver::clearbkVisited</a></div><div class="ttdeci">void clearbkVisited(const DPIm &amp;dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00545">DDAVFSolver.h:545</a></div></div>
2807
2807
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
2808
2808
  <div class="ttc" id="namespaceSVF_html_aa4745cf70b26e17d59752356f0b19dd9"><div class="ttname"><a href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVF::SVFGEdge</a></div><div class="ttdeci">VFGEdge SVFGEdge</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00040">SVFG.h:40</a></div></div>
2809
2809
  </div><!-- fragment -->
@@ -2835,8 +2835,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2835
2835
  </table>
2836
2836
  </div><div class="memdoc">
2837
2837
 
2838
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00651">651</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2839
- <div class="fragment"><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; {</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; assert(dpm == <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>[dpm.getLoc()].back() &amp;&amp; <span class="stringliteral">&quot;dpm not match with the end of vector&quot;</span>);</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>[dpm.getLoc()-&gt;getId()].erase(dpm);</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00763">DDAVFSolver.h:763</a></div></div>
2838
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00673">673</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2839
+ <div class="fragment"><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; {</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; assert(dpm == <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>[dpm.getLoc()].back() &amp;&amp; <span class="stringliteral">&quot;dpm not match with the end of vector&quot;</span>);</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>[dpm.getLoc()-&gt;getId()].erase(dpm);</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00785">DDAVFSolver.h:785</a></div></div>
2840
2840
  </div><!-- fragment -->
2841
2841
  </div>
2842
2842
  </div>
@@ -2867,14 +2867,14 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2867
2867
 
2868
2868
  <p>Reset visited map for next points-to query. </p>
2869
2869
 
2870
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00297">297</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2871
- <div class="fragment"><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a>)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ab60c701f1881d88aa4440991fb972638">OOBResetVisited</a>();</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>.clear();</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.clear();</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.clear();</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">_NumOfStep</a> = 0;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00768">DDAVFSolver.h:768</a></div></div>
2872
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ab60c701f1881d88aa4440991fb972638"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ab60c701f1881d88aa4440991fb972638">SVF::DDAVFSolver::OOBResetVisited</a></div><div class="ttdeci">void OOBResetVisited()</div><div class="ttdoc">Reset visited map if the current query is out-of-budget. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00309">DDAVFSolver.h:309</a></div></div>
2873
- <div class="ttc" id="classSVF_1_1DDAStat_html_a674248754300d58fcef8eaf09436249e"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">SVF::DDAStat::_NumOfStep</a></div><div class="ttdeci">u64_t _NumOfStep</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00037">DDAStat.h:37</a></div></div>
2874
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6d62420837fe0c7814fc4da68a91eda4"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">SVF::DDAVFSolver::loadToPTCVarMap</a></div><div class="ttdeci">DPMToCVarMap loadToPTCVarMap</div><div class="ttdoc">map a load dpm to its cvar pointed by its pointer operand </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00765">DDAVFSolver.h:765</a></div></div>
2875
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a9d8959dfee05685cd74d0d7a78069692"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">SVF::DDAVFSolver::dpmToloadDpmMap</a></div><div class="ttdeci">DPMToDPMMap dpmToloadDpmMap</div><div class="ttdoc">dpms at loads for may/must-alias analysis with stores </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00764">DDAVFSolver.h:764</a></div></div>
2876
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_afdecfbacc64cb8d694268aa73ec8a7b6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">SVF::DDAVFSolver::outOfBudgetQuery</a></div><div class="ttdeci">bool outOfBudgetQuery</div><div class="ttdoc">Whether the current query is out of step limits. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00752">DDAVFSolver.h:752</a></div></div>
2877
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00763">DDAVFSolver.h:763</a></div></div>
2870
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00319">319</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2871
+ <div class="fragment"><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a>)</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ab60c701f1881d88aa4440991fb972638">OOBResetVisited</a>();</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>.clear();</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.clear();</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.clear();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">_NumOfStep</a> = 0;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
2872
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ab60c701f1881d88aa4440991fb972638"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ab60c701f1881d88aa4440991fb972638">SVF::DDAVFSolver::OOBResetVisited</a></div><div class="ttdeci">void OOBResetVisited()</div><div class="ttdoc">Reset visited map if the current query is out-of-budget. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00331">DDAVFSolver.h:331</a></div></div>
2873
+ <div class="ttc" id="classSVF_1_1DDAStat_html_a674248754300d58fcef8eaf09436249e"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">SVF::DDAStat::_NumOfStep</a></div><div class="ttdeci">u64_t _NumOfStep</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00059">DDAStat.h:59</a></div></div>
2874
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6d62420837fe0c7814fc4da68a91eda4"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">SVF::DDAVFSolver::loadToPTCVarMap</a></div><div class="ttdeci">DPMToCVarMap loadToPTCVarMap</div><div class="ttdoc">map a load dpm to its cvar pointed by its pointer operand </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00787">DDAVFSolver.h:787</a></div></div>
2875
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a9d8959dfee05685cd74d0d7a78069692"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">SVF::DDAVFSolver::dpmToloadDpmMap</a></div><div class="ttdeci">DPMToDPMMap dpmToloadDpmMap</div><div class="ttdoc">dpms at loads for may/must-alias analysis with stores </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00786">DDAVFSolver.h:786</a></div></div>
2876
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_afdecfbacc64cb8d694268aa73ec8a7b6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">SVF::DDAVFSolver::outOfBudgetQuery</a></div><div class="ttdeci">bool outOfBudgetQuery</div><div class="ttdoc">Whether the current query is out of step limits. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00774">DDAVFSolver.h:774</a></div></div>
2877
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa724698d499615bce7caf8f312b746a7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">SVF::DDAVFSolver::locToDpmSetMap</a></div><div class="ttdeci">LocToDPMVecMap locToDpmSetMap</div><div class="ttdoc">map location to its dpms </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00785">DDAVFSolver.h:785</a></div></div>
2878
2878
  </div><!-- fragment -->
2879
2879
  </div>
2880
2880
  </div>
@@ -2907,18 +2907,18 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2907
2907
  <p>resolve function pointer </p>
2908
2908
  <p>use pre-analysis call graph to approximate all potential callsites </p>
2909
2909
 
2910
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00468">468</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2911
- <div class="fragment"><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; {</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> CallICFGNode* cbn= <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;isCallSiteRetSVFGNode(dpm.getLoc()))</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; {</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23">isIndirectCallSites</a>(cbn))</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; {</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> funPtr = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6">getFunPtr</a>(cbn);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; DPIm funPtrDpm(dpm);</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; funPtrDpm.setLocVar(<a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(funPtr)),funPtr);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(funPtrDpm);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; }</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; }</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> SVFFunction* fun = <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;isFunEntrySVFGNode(dpm.getLoc()))</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; {</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ac227096ad71dfda8bc48c139fccb3af2">CallInstSet</a> csSet;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#a9a4b0c6672288b9201ab254b4c49548d">getIndCallSitesInvokingCallee</a>(fun,csSet);</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordflow">for</span>(CallInstSet::const_iterator it = csSet.begin(), eit = csSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; {</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> funPtr = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6">getFunPtr</a>(*it);</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; DPIm funPtrDpm(dpm);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; funPtrDpm.setLocVar(<a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(funPtr)),funPtr);</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(funPtrDpm);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; }</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; }</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a55803a2d30137b5ad15c5afeec7c6b28"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">SVF::DDAVFSolver::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">GetDefinition SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00320">DDAVFSolver.h:320</a></div></div>
2910
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00490">490</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2911
+ <div class="fragment"><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; {</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> CallICFGNode* cbn= <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;isCallSiteRetSVFGNode(dpm.getLoc()))</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23">isIndirectCallSites</a>(cbn))</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; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> funPtr = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6">getFunPtr</a>(cbn);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; DPIm funPtrDpm(dpm);</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; funPtrDpm.setLocVar(<a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(funPtr)),funPtr);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(funPtrDpm);</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; }</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> SVFFunction* fun = <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;isFunEntrySVFGNode(dpm.getLoc()))</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; <a class="code" href="classSVF_1_1DDAVFSolver.html#ac227096ad71dfda8bc48c139fccb3af2">CallInstSet</a> csSet;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#a9a4b0c6672288b9201ab254b4c49548d">getIndCallSitesInvokingCallee</a>(fun,csSet);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">for</span>(CallInstSet::const_iterator it = csSet.begin(), eit = csSet.end(); it!=eit; ++it)</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> funPtr = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6">getFunPtr</a>(*it);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; DPIm funPtrDpm(dpm);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; funPtrDpm.setLocVar(<a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(funPtr)),funPtr);</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(funPtrDpm);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; }</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; }</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a55803a2d30137b5ad15c5afeec7c6b28"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">SVF::DDAVFSolver::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">GetDefinition SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00342">DDAVFSolver.h:342</a></div></div>
2912
2912
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
2913
2913
  <div class="ttc" id="classSVF_1_1SVFIR_html_a3dbe0b17694daa74f648a70e77efaf23"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23">SVF::SVFIR::isIndirectCallSites</a></div><div class="ttdeci">bool isIndirectCallSites(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00315">SVFIR.h:315</a></div></div>
2914
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a52737dd41c63404ef91691154aa250ce"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">SVF::DDAVFSolver::findPT</a></div><div class="ttdeci">virtual const CPtSet &amp; findPT(const DPIm &amp;dpm)</div><div class="ttdoc">Compute points-to. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00116">DDAVFSolver.h:116</a></div></div>
2914
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a52737dd41c63404ef91691154aa250ce"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">SVF::DDAVFSolver::findPT</a></div><div class="ttdeci">virtual const CPtSet &amp; findPT(const DPIm &amp;dpm)</div><div class="ttdoc">Compute points-to. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00138">DDAVFSolver.h:138</a></div></div>
2915
2915
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00174">PointerAnalysis.h:174</a></div></div>
2916
2916
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a9a4b0c6672288b9201ab254b4c49548d"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a9a4b0c6672288b9201ab254b4c49548d">SVF::PTACallGraph::getIndCallSitesInvokingCallee</a></div><div class="ttdeci">void getIndCallSitesInvokingCallee(const SVFFunction *callee, PTACallGraphEdge::CallInstSet &amp;csSet)</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00248">PTACallGraph.cpp:248</a></div></div>
2917
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00753">DDAVFSolver.h:753</a></div></div>
2918
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ac227096ad71dfda8bc48c139fccb3af2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ac227096ad71dfda8bc48c139fccb3af2">SVF::DDAVFSolver::CallInstSet</a></div><div class="ttdeci">PTACallGraphEdge::CallInstSet CallInstSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00031">DDAVFSolver.h:31</a></div></div>
2917
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a5521918cc06c182c821b9fae8136e4fe"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">SVF::DDAVFSolver::_pag</a></div><div class="ttdeci">SVFIR * _pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00775">DDAVFSolver.h:775</a></div></div>
2918
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ac227096ad71dfda8bc48c139fccb3af2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ac227096ad71dfda8bc48c139fccb3af2">SVF::DDAVFSolver::CallInstSet</a></div><div class="ttdeci">PTACallGraphEdge::CallInstSet CallInstSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00053">DDAVFSolver.h:53</a></div></div>
2919
2919
  <div class="ttc" id="classSVF_1_1SVFIR_html_a17c5d9fa7c0bd3cd03c06b5ff0906eb6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6">SVF::SVFIR::getFunPtr</a></div><div class="ttdeci">NodeID getFunPtr(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00303">SVFIR.h:303</a></div></div>
2920
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00096">DDAVFSolver.h:96</a></div></div>
2921
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&amp;#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00755">DDAVFSolver.h:755</a></div></div>
2920
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00118">DDAVFSolver.h:118</a></div></div>
2921
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_aa1d1b6e8cc23f0a6d3935cbe4f02cbdf"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">SVF::DDAVFSolver::_ander</a></div><div class="ttdeci">AndersenWaveDiff * _ander</div><div class="ttdoc">Andersen&amp;#39;s analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00777">DDAVFSolver.h:777</a></div></div>
2922
2922
  <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#l00391">GenericGraph.h:391</a></div></div>
2923
2923
  </div><!-- fragment -->
2924
2924
  </div>
@@ -2961,13 +2961,13 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2961
2961
 
2962
2962
  <p>remove strong updates num if the dpm goes to weak updates branch </p>
2963
2963
 
2964
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00741">741</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2965
- <div class="fragment"><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; <a class="code" href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">DPTItemSet</a>&amp; dpmSet = <a class="code" href="classSVF_1_1DDAVFSolver.html#af66895278f0ecbc882f9e4f43ef9c8a8">storeToDPMs</a>[node];</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">if</span> (dpmSet.erase(dpm))</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; {</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">_NumOfStrongUpdates</a>--;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keywordflow">if</span>(dpmSet.empty())</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#ad53ad7a958c05b45624d2859a6a9e647">_StrongUpdateStores</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#ad5337b5aeed50f8b7ffd56b14ee25c9f">reset</a>(node-&gt;getId());</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; }</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00768">DDAVFSolver.h:768</a></div></div>
2964
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00763">763</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2965
+ <div class="fragment"><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; {</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">DPTItemSet</a>&amp; dpmSet = <a class="code" href="classSVF_1_1DDAVFSolver.html#af66895278f0ecbc882f9e4f43ef9c8a8">storeToDPMs</a>[node];</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <span class="keywordflow">if</span> (dpmSet.erase(dpm))</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; {</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">_NumOfStrongUpdates</a>--;</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="keywordflow">if</span>(dpmSet.empty())</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#ad53ad7a958c05b45624d2859a6a9e647">_StrongUpdateStores</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#ad5337b5aeed50f8b7ffd56b14ee25c9f">reset</a>(node-&gt;getId());</div><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; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
2966
2966
  <div class="ttc" id="classSVF_1_1SparseBitVector_html_ad5337b5aeed50f8b7ffd56b14ee25c9f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ad5337b5aeed50f8b7ffd56b14ee25c9f">SVF::SparseBitVector::reset</a></div><div class="ttdeci">void reset(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00722">SparseBitVector.h:722</a></div></div>
2967
- <div class="ttc" id="classSVF_1_1DDAStat_html_ad53ad7a958c05b45624d2859a6a9e647"><div class="ttname"><a href="classSVF_1_1DDAStat.html#ad53ad7a958c05b45624d2859a6a9e647">SVF::DDAStat::_StrongUpdateStores</a></div><div class="ttdeci">NodeBS _StrongUpdateStores</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00044">DDAStat.h:44</a></div></div>
2968
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a05d6b074b04aad7dc1f3cbe0ca587467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">SVF::DDAVFSolver::DPTItemSet</a></div><div class="ttdeci">OrderedSet&lt; DPIm &gt; DPTItemSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00033">DDAVFSolver.h:33</a></div></div>
2969
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_af66895278f0ecbc882f9e4f43ef9c8a8"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af66895278f0ecbc882f9e4f43ef9c8a8">SVF::DDAVFSolver::storeToDPMs</a></div><div class="ttdeci">StoreToPMSetMap storeToDPMs</div><div class="ttdoc">map store to set of DPM which have been stong updated there </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00767">DDAVFSolver.h:767</a></div></div>
2970
- <div class="ttc" id="classSVF_1_1DDAStat_html_a5c007645d73bfc5cfefef672f3c1dcf1"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">SVF::DDAStat::_NumOfStrongUpdates</a></div><div class="ttdeci">u32_t _NumOfStrongUpdates</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00033">DDAStat.h:33</a></div></div>
2967
+ <div class="ttc" id="classSVF_1_1DDAStat_html_ad53ad7a958c05b45624d2859a6a9e647"><div class="ttname"><a href="classSVF_1_1DDAStat.html#ad53ad7a958c05b45624d2859a6a9e647">SVF::DDAStat::_StrongUpdateStores</a></div><div class="ttdeci">NodeBS _StrongUpdateStores</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00066">DDAStat.h:66</a></div></div>
2968
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a05d6b074b04aad7dc1f3cbe0ca587467"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a05d6b074b04aad7dc1f3cbe0ca587467">SVF::DDAVFSolver::DPTItemSet</a></div><div class="ttdeci">OrderedSet&lt; DPIm &gt; DPTItemSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00055">DDAVFSolver.h:55</a></div></div>
2969
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_af66895278f0ecbc882f9e4f43ef9c8a8"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af66895278f0ecbc882f9e4f43ef9c8a8">SVF::DDAVFSolver::storeToDPMs</a></div><div class="ttdeci">StoreToPMSetMap storeToDPMs</div><div class="ttdoc">map store to set of DPM which have been stong updated there </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00789">DDAVFSolver.h:789</a></div></div>
2970
+ <div class="ttc" id="classSVF_1_1DDAStat_html_a5c007645d73bfc5cfefef672f3c1dcf1"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">SVF::DDAStat::_NumOfStrongUpdates</a></div><div class="ttdeci">u32_t _NumOfStrongUpdates</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00055">DDAStat.h:55</a></div></div>
2971
2971
  </div><!-- fragment -->
2972
2972
  </div>
2973
2973
  </div>
@@ -2999,8 +2999,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2999
2999
 
3000
3000
  <p>Set callgraph. </p>
3001
3001
 
3002
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00606">606</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3003
- <div class="fragment"><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; {</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">_callGraph</a> = cg;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_abf24080617c6a74abed9f0bb0bc9c0c5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">SVF::DDAVFSolver::_callGraph</a></div><div class="ttdeci">PTACallGraph * _callGraph</div><div class="ttdoc">CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00757">DDAVFSolver.h:757</a></div></div>
3002
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00628">628</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3003
+ <div class="fragment"><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; {</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">_callGraph</a> = cg;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_abf24080617c6a74abed9f0bb0bc9c0c5"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">SVF::DDAVFSolver::_callGraph</a></div><div class="ttdeci">PTACallGraph * _callGraph</div><div class="ttdoc">CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00779">DDAVFSolver.h:779</a></div></div>
3004
3004
  </div><!-- fragment -->
3005
3005
  </div>
3006
3006
  </div>
@@ -3032,8 +3032,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3032
3032
 
3033
3033
  <p>Set callgraphSCC. </p>
3034
3034
 
3035
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00611">611</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3036
- <div class="fragment"><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; {</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">_callGraphSCC</a> = scc;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a4c307d486756daa1e79595b1e9edc40a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">SVF::DDAVFSolver::_callGraphSCC</a></div><div class="ttdeci">CallGraphSCC * _callGraphSCC</div><div class="ttdoc">SCC for CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00758">DDAVFSolver.h:758</a></div></div>
3035
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00633">633</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3036
+ <div class="fragment"><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; {</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">_callGraphSCC</a> = scc;</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a4c307d486756daa1e79595b1e9edc40a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">SVF::DDAVFSolver::_callGraphSCC</a></div><div class="ttdeci">CallGraphSCC * _callGraphSCC</div><div class="ttdoc">SCC for CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00780">DDAVFSolver.h:780</a></div></div>
3037
3037
  </div><!-- fragment -->
3038
3038
  </div>
3039
3039
  </div>
@@ -3065,8 +3065,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3065
3065
 
3066
3066
  <p>Set <a class="el" href="classSVF_1_1DDAStat.html">DDAStat</a>. </p>
3067
3067
 
3068
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00726">726</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3069
- <div class="fragment"><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; {</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a> = s;</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>;</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00768">DDAVFSolver.h:768</a></div></div>
3068
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00748">748</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3069
+ <div class="fragment"><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; {</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a> = s;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
3070
3070
  </div><!-- fragment -->
3071
3071
  </div>
3072
3072
  </div>
@@ -3107,15 +3107,15 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3107
3107
  </div><div class="memdoc">
3108
3108
  <p>Backward traverse for top-level pointers of load/store statements </p>
3109
3109
 
3110
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00365">365</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3111
- <div class="fragment"><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; {</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a3ce49be3724e1e8423ccdfa726fbf6c8">LoadSVFGNode</a>* load = SVFUtil::cast&lt;LoadSVFGNode&gt;(oldDpm.getLoc());</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* loadSrc = <a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(load-&gt;getPAGSrcNode());</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;!##start new computation from loadSrc svfgNode &quot;</span> &lt;&lt;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; load-&gt;getId() &lt;&lt; <span class="stringliteral">&quot; --&gt; &quot;</span> &lt;&lt; loadSrc-&gt;getId() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1VFG.html#ae1348fd6d196ee8a6bd8d98022464d50">getIntraVFGEdge</a>(loadSrc,load,<a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVFGEdge::IntraDirectVF</a>);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;Edge not found!!&quot;</span>);</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">backwardPropDpm</a>(pts,load-&gt;getPAGSrcNodeID(),oldDpm,edge);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; }</div><div class="ttc" id="classSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVF::VFGEdge::IntraDirectVF</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00053">VFGEdge.h:53</a></div></div>
3112
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a55803a2d30137b5ad15c5afeec7c6b28"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">SVF::DDAVFSolver::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">GetDefinition SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00320">DDAVFSolver.h:320</a></div></div>
3110
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00387">387</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3111
+ <div class="fragment"><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a3ce49be3724e1e8423ccdfa726fbf6c8">LoadSVFGNode</a>* load = SVFUtil::cast&lt;LoadSVFGNode&gt;(oldDpm.getLoc());</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* loadSrc = <a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(load-&gt;getPAGSrcNode());</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;!##start new computation from loadSrc svfgNode &quot;</span> &lt;&lt;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; load-&gt;getId() &lt;&lt; <span class="stringliteral">&quot; --&gt; &quot;</span> &lt;&lt; loadSrc-&gt;getId() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1VFG.html#ae1348fd6d196ee8a6bd8d98022464d50">getIntraVFGEdge</a>(loadSrc,load,<a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVFGEdge::IntraDirectVF</a>);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;Edge not found!!&quot;</span>);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">backwardPropDpm</a>(pts,load-&gt;getPAGSrcNodeID(),oldDpm,edge);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</div><div class="ttc" id="classSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVF::VFGEdge::IntraDirectVF</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00053">VFGEdge.h:53</a></div></div>
3112
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a55803a2d30137b5ad15c5afeec7c6b28"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">SVF::DDAVFSolver::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">GetDefinition SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00342">DDAVFSolver.h:342</a></div></div>
3113
3113
  <div class="ttc" id="namespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
3114
3114
  <div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
3115
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &amp;pts, NodeID ptr, const DPIm &amp;oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00399">DDAVFSolver.h:399</a></div></div>
3115
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &amp;pts, NodeID ptr, const DPIm &amp;oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00421">DDAVFSolver.h:421</a></div></div>
3116
3116
  <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>
3117
3117
  <div class="ttc" id="classSVF_1_1VFG_html_ae1348fd6d196ee8a6bd8d98022464d50"><div class="ttname"><a href="classSVF_1_1VFG.html#ae1348fd6d196ee8a6bd8d98022464d50">SVF::VFG::getIntraVFGEdge</a></div><div class="ttdeci">VFGEdge * getIntraVFGEdge(const VFGNode *src, const VFGNode *dst, VFGEdge::VFGEdgeK kind)</div><div class="ttdoc">Get a SVFG edge according to src and dst. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l00916">VFG.cpp:916</a></div></div>
3118
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00096">DDAVFSolver.h:96</a></div></div>
3118
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00118">DDAVFSolver.h:118</a></div></div>
3119
3119
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
3120
3120
  <div class="ttc" id="namespaceSVF_html_aa4745cf70b26e17d59752356f0b19dd9"><div class="ttname"><a href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVF::SVFGEdge</a></div><div class="ttdeci">VFGEdge SVFGEdge</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00040">SVFG.h:40</a></div></div>
3121
3121
  <div class="ttc" id="namespaceSVF_html_a3ce49be3724e1e8423ccdfa726fbf6c8"><div class="ttname"><a href="namespaceSVF.html#a3ce49be3724e1e8423ccdfa726fbf6c8">SVF::LoadSVFGNode</a></div><div class="ttdeci">LoadVFGNode LoadSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00054">SVFG.h:54</a></div></div>
@@ -3158,16 +3158,16 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3158
3158
  </table>
3159
3159
  </div><div class="memdoc">
3160
3160
 
3161
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00376">376</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3162
- <div class="fragment"><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; {</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a54c5725186e66ead6faf53c10a288714">StoreSVFGNode</a>* store = SVFUtil::cast&lt;StoreSVFGNode&gt;(oldDpm.getLoc());</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* storeDst = <a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(store-&gt;getPAGDstNode());</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;!##start new computation from storeDst svfgNode &quot;</span> &lt;&lt;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; store-&gt;getId() &lt;&lt; <span class="stringliteral">&quot; --&gt; &quot;</span> &lt;&lt; storeDst-&gt;getId() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1VFG.html#ae1348fd6d196ee8a6bd8d98022464d50">getIntraVFGEdge</a>(storeDst,store,<a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVFGEdge::IntraDirectVF</a>);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;Edge not found!!&quot;</span>);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">backwardPropDpm</a>(pts,store-&gt;getPAGDstNodeID(),oldDpm,edge);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; }</div><div class="ttc" id="classSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVF::VFGEdge::IntraDirectVF</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00053">VFGEdge.h:53</a></div></div>
3163
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a55803a2d30137b5ad15c5afeec7c6b28"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">SVF::DDAVFSolver::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">GetDefinition SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00320">DDAVFSolver.h:320</a></div></div>
3161
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00398">398</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3162
+ <div class="fragment"><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a54c5725186e66ead6faf53c10a288714">StoreSVFGNode</a>* store = SVFUtil::cast&lt;StoreSVFGNode&gt;(oldDpm.getLoc());</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* storeDst = <a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(store-&gt;getPAGDstNode());</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;!##start new computation from storeDst svfgNode &quot;</span> &lt;&lt;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; store-&gt;getId() &lt;&lt; <span class="stringliteral">&quot; --&gt; &quot;</span> &lt;&lt; storeDst-&gt;getId() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1VFG.html#ae1348fd6d196ee8a6bd8d98022464d50">getIntraVFGEdge</a>(storeDst,store,<a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVFGEdge::IntraDirectVF</a>);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;Edge not found!!&quot;</span>);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">backwardPropDpm</a>(pts,store-&gt;getPAGDstNodeID(),oldDpm,edge);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; }</div><div class="ttc" id="classSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVF::VFGEdge::IntraDirectVF</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00053">VFGEdge.h:53</a></div></div>
3163
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a55803a2d30137b5ad15c5afeec7c6b28"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">SVF::DDAVFSolver::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">GetDefinition SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00342">DDAVFSolver.h:342</a></div></div>
3164
3164
  <div class="ttc" id="namespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
3165
3165
  <div class="ttc" id="SVFBasicTypes_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00166">SVFBasicTypes.h:166</a></div></div>
3166
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &amp;pts, NodeID ptr, const DPIm &amp;oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00399">DDAVFSolver.h:399</a></div></div>
3166
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_af6a6243b497df5fdab9f658b9add9c8a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">SVF::DDAVFSolver::backwardPropDpm</a></div><div class="ttdeci">virtual void backwardPropDpm(CPtSet &amp;pts, NodeID ptr, const DPIm &amp;oldDpm, const SVFGEdge *edge)</div><div class="ttdoc">dpm transit during backward tracing </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00421">DDAVFSolver.h:421</a></div></div>
3167
3167
  <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>
3168
3168
  <div class="ttc" id="namespaceSVF_html_a54c5725186e66ead6faf53c10a288714"><div class="ttname"><a href="namespaceSVF.html#a54c5725186e66ead6faf53c10a288714">SVF::StoreSVFGNode</a></div><div class="ttdeci">StoreVFGNode StoreSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00053">SVFG.h:53</a></div></div>
3169
3169
  <div class="ttc" id="classSVF_1_1VFG_html_ae1348fd6d196ee8a6bd8d98022464d50"><div class="ttname"><a href="classSVF_1_1VFG.html#ae1348fd6d196ee8a6bd8d98022464d50">SVF::VFG::getIntraVFGEdge</a></div><div class="ttdeci">VFGEdge * getIntraVFGEdge(const VFGNode *src, const VFGNode *dst, VFGEdge::VFGEdgeK kind)</div><div class="ttdoc">Get a SVFG edge according to src and dst. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l00916">VFG.cpp:916</a></div></div>
3170
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00096">DDAVFSolver.h:96</a></div></div>
3170
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00118">DDAVFSolver.h:118</a></div></div>
3171
3171
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
3172
3172
  <div class="ttc" id="namespaceSVF_html_aa4745cf70b26e17d59752356f0b19dd9"><div class="ttname"><a href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVF::SVFGEdge</a></div><div class="ttdeci">VFGEdge SVFGEdge</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00040">SVFG.h:40</a></div></div>
3173
3173
  </div><!-- fragment -->
@@ -3200,11 +3200,11 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3200
3200
 
3201
3201
  <p><a class="el" href="classSVF_1_1SVFG.html">SVFG</a> SCC detection. </p>
3202
3202
 
3203
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00582">582</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3204
- <div class="fragment"><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; {</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>==<span class="keyword">nullptr</span>)</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; <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a502207f81ed22fa42f9e18ccba83ad4e">SVFGSCC</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</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; <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>();</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; }</div><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>
3205
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a502207f81ed22fa42f9e18ccba83ad4e"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a502207f81ed22fa42f9e18ccba83ad4e">SVF::DDAVFSolver::SVFGSCC</a></div><div class="ttdeci">SCCDetection&lt; SVFG * &gt; SVFGSCC</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00029">DDAVFSolver.h:29</a></div></div>
3206
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00759">DDAVFSolver.h:759</a></div></div>
3207
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00096">DDAVFSolver.h:96</a></div></div>
3203
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00604">604</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3204
+ <div class="fragment"><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; {</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; {</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a502207f81ed22fa42f9e18ccba83ad4e">SVFGSCC</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>());</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; }</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">_svfgSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>();</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; }</div><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>
3205
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a502207f81ed22fa42f9e18ccba83ad4e"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a502207f81ed22fa42f9e18ccba83ad4e">SVF::DDAVFSolver::SVFGSCC</a></div><div class="ttdeci">SCCDetection&lt; SVFG * &gt; SVFGSCC</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00051">DDAVFSolver.h:51</a></div></div>
3206
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a54f5d4972238ae69f19c9da3b9f51644"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a54f5d4972238ae69f19c9da3b9f51644">SVF::DDAVFSolver::_svfgSCC</a></div><div class="ttdeci">SVFGSCC * _svfgSCC</div><div class="ttdoc">SCC for SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00781">DDAVFSolver.h:781</a></div></div>
3207
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_acb7980c7e0d1d8ad6abab0b80831d2a9"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">SVF::DDAVFSolver::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Return SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00118">DDAVFSolver.h:118</a></div></div>
3208
3208
  </div><!-- fragment -->
3209
3209
  </div>
3210
3210
  </div>
@@ -3234,11 +3234,11 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3234
3234
  </table>
3235
3235
  </div><div class="memdoc">
3236
3236
 
3237
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00704">704</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3238
- <div class="fragment"><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; {</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">if</span>(++<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">_NumOfStep</a> &gt; DPIm::getMaxBudget())</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a> = <span class="keyword">true</span>;</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_1DDAVFSolver.html#a0b1f774883adc7d535f8363bf3c8b1e8">isOutOfBudgetDpm</a>(dpm) || <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a>;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00768">DDAVFSolver.h:768</a></div></div>
3239
- <div class="ttc" id="classSVF_1_1DDAStat_html_a674248754300d58fcef8eaf09436249e"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">SVF::DDAStat::_NumOfStep</a></div><div class="ttdeci">u64_t _NumOfStep</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00037">DDAStat.h:37</a></div></div>
3240
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a0b1f774883adc7d535f8363bf3c8b1e8"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a0b1f774883adc7d535f8363bf3c8b1e8">SVF::DDAVFSolver::isOutOfBudgetDpm</a></div><div class="ttdeci">bool isOutOfBudgetDpm(const DPIm &amp;dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00719">DDAVFSolver.h:719</a></div></div>
3241
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_afdecfbacc64cb8d694268aa73ec8a7b6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">SVF::DDAVFSolver::outOfBudgetQuery</a></div><div class="ttdeci">bool outOfBudgetQuery</div><div class="ttdoc">Whether the current query is out of step limits. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00752">DDAVFSolver.h:752</a></div></div>
3237
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00726">726</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3238
+ <div class="fragment"><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; {</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a>) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">if</span>(++<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">_NumOfStep</a> &gt; DPIm::getMaxBudget())</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a0b1f774883adc7d535f8363bf3c8b1e8">isOutOfBudgetDpm</a>(dpm) || <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a>;</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
3239
+ <div class="ttc" id="classSVF_1_1DDAStat_html_a674248754300d58fcef8eaf09436249e"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">SVF::DDAStat::_NumOfStep</a></div><div class="ttdeci">u64_t _NumOfStep</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00059">DDAStat.h:59</a></div></div>
3240
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a0b1f774883adc7d535f8363bf3c8b1e8"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a0b1f774883adc7d535f8363bf3c8b1e8">SVF::DDAVFSolver::isOutOfBudgetDpm</a></div><div class="ttdeci">bool isOutOfBudgetDpm(const DPIm &amp;dpm) const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00741">DDAVFSolver.h:741</a></div></div>
3241
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_afdecfbacc64cb8d694268aa73ec8a7b6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">SVF::DDAVFSolver::outOfBudgetQuery</a></div><div class="ttdeci">bool outOfBudgetQuery</div><div class="ttdoc">Whether the current query is out of step limits. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00774">DDAVFSolver.h:774</a></div></div>
3242
3242
  </div><!-- fragment -->
3243
3243
  </div>
3244
3244
  </div>
@@ -3280,8 +3280,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3280
3280
 
3281
3281
  <p>Union pts. </p>
3282
3282
 
3283
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00080">80</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3284
- <div class="fragment"><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> (pts |= targetPts);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div></div><!-- fragment -->
3283
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00102">102</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3284
+ <div class="fragment"><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> (pts |= targetPts);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div></div><!-- fragment -->
3285
3285
  </div>
3286
3286
  </div>
3287
3287
  <a id="ae7949e141978474f3b6cb510bacafa37"></a>
@@ -3324,10 +3324,10 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3324
3324
 
3325
3325
  <p>Reimplemented in <a class="el" href="classSVF_1_1FlowDDA.html#a3d08dfe5a1571f5d631afcd304905a05">SVF::FlowDDA</a>.</p>
3326
3326
 
3327
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00085">85</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3328
- <div class="fragment"><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; CPtSet&amp; pts = <a class="code" href="classSVF_1_1DDAVFSolver.html#a7b35588de00e322afd742041bf735571">isTopLevelPtrStmt</a>(dpm.getLoc()) ? <a class="code" href="classSVF_1_1DDAVFSolver.html#a2d6df8149b45d719e22fc505df94171a">dpmToTLCPtSetMap</a>[dpm] : <a class="code" href="classSVF_1_1DDAVFSolver.html#a2565bf8dcacb22350dc1dc98ec7595f2">dpmToADCPtSetMap</a>[dpm];</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> pts |= targetPts;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7b35588de00e322afd742041bf735571"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7b35588de00e322afd742041bf735571">SVF::DDAVFSolver::isTopLevelPtrStmt</a></div><div class="ttdeci">bool isTopLevelPtrStmt(const SVFGNode *stmt)</div><div class="ttdoc">Whether this is a top-level pointer statement. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00559">DDAVFSolver.h:559</a></div></div>
3329
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2d6df8149b45d719e22fc505df94171a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2d6df8149b45d719e22fc505df94171a">SVF::DDAVFSolver::dpmToTLCPtSetMap</a></div><div class="ttdeci">DPImToCPtSetMap dpmToTLCPtSetMap</div><div class="ttdoc">points-to caching map for top-level vars </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00761">DDAVFSolver.h:761</a></div></div>
3330
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2565bf8dcacb22350dc1dc98ec7595f2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2565bf8dcacb22350dc1dc98ec7595f2">SVF::DDAVFSolver::dpmToADCPtSetMap</a></div><div class="ttdeci">DPImToCPtSetMap dpmToADCPtSetMap</div><div class="ttdoc">points-to caching map for address-taken vars </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00762">DDAVFSolver.h:762</a></div></div>
3327
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00107">107</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3328
+ <div class="fragment"><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; CPtSet&amp; pts = <a class="code" href="classSVF_1_1DDAVFSolver.html#a7b35588de00e322afd742041bf735571">isTopLevelPtrStmt</a>(dpm.getLoc()) ? <a class="code" href="classSVF_1_1DDAVFSolver.html#a2d6df8149b45d719e22fc505df94171a">dpmToTLCPtSetMap</a>[dpm] : <a class="code" href="classSVF_1_1DDAVFSolver.html#a2565bf8dcacb22350dc1dc98ec7595f2">dpmToADCPtSetMap</a>[dpm];</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">return</span> pts |= targetPts;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7b35588de00e322afd742041bf735571"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7b35588de00e322afd742041bf735571">SVF::DDAVFSolver::isTopLevelPtrStmt</a></div><div class="ttdeci">bool isTopLevelPtrStmt(const SVFGNode *stmt)</div><div class="ttdoc">Whether this is a top-level pointer statement. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00581">DDAVFSolver.h:581</a></div></div>
3329
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2d6df8149b45d719e22fc505df94171a"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2d6df8149b45d719e22fc505df94171a">SVF::DDAVFSolver::dpmToTLCPtSetMap</a></div><div class="ttdeci">DPImToCPtSetMap dpmToTLCPtSetMap</div><div class="ttdoc">points-to caching map for top-level vars </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00783">DDAVFSolver.h:783</a></div></div>
3330
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a2565bf8dcacb22350dc1dc98ec7595f2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a2565bf8dcacb22350dc1dc98ec7595f2">SVF::DDAVFSolver::dpmToADCPtSetMap</a></div><div class="ttdeci">DPImToCPtSetMap dpmToADCPtSetMap</div><div class="ttdoc">points-to caching map for address-taken vars </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00784">DDAVFSolver.h:784</a></div></div>
3331
3331
  </div><!-- fragment -->
3332
3332
  </div>
3333
3333
  </div>
@@ -3367,13 +3367,13 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3367
3367
  </table>
3368
3368
  </div><div class="memdoc">
3369
3369
 
3370
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00539">539</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3371
- <div class="fragment"><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; {</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">unionDDAPts</a>(dpm, pts))</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; {</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>());</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a8c5220108a65fa281959529cb1e9cc57">reCompute</a>(dpm);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#aae8366a4876154fa66298c7bf0fc47c4">_AnaTimeCyclePerQuery</a> += <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>() - start);</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; }</div><div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00768">DDAVFSolver.h:768</a></div></div>
3372
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a99764ee5bc19378795fe464e9036e78b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">SVF::DDAVFSolver::unionDDAPts</a></div><div class="ttdeci">virtual bool unionDDAPts(CPtSet &amp;pts, const CPtSet &amp;targetPts)</div><div class="ttdoc">Union pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00080">DDAVFSolver.h:80</a></div></div>
3373
- <div class="ttc" id="classSVF_1_1DDAStat_html_aae8366a4876154fa66298c7bf0fc47c4"><div class="ttname"><a href="classSVF_1_1DDAStat.html#aae8366a4876154fa66298c7bf0fc47c4">SVF::DDAStat::_AnaTimeCyclePerQuery</a></div><div class="ttdeci">double _AnaTimeCyclePerQuery</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00040">DDAStat.h:40</a></div></div>
3370
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00561">561</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3371
+ <div class="fragment"><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; {</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">unionDDAPts</a>(dpm, pts))</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; {</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>());</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a8c5220108a65fa281959529cb1e9cc57">reCompute</a>(dpm);</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#aae8366a4876154fa66298c7bf0fc47c4">_AnaTimeCyclePerQuery</a> += <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>() - start);</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_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00790">DDAVFSolver.h:790</a></div></div>
3372
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a99764ee5bc19378795fe464e9036e78b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">SVF::DDAVFSolver::unionDDAPts</a></div><div class="ttdeci">virtual bool unionDDAPts(CPtSet &amp;pts, const CPtSet &amp;targetPts)</div><div class="ttdoc">Union pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00102">DDAVFSolver.h:102</a></div></div>
3373
+ <div class="ttc" id="classSVF_1_1DDAStat_html_aae8366a4876154fa66298c7bf0fc47c4"><div class="ttname"><a href="classSVF_1_1DDAStat.html#aae8366a4876154fa66298c7bf0fc47c4">SVF::DDAStat::_AnaTimeCyclePerQuery</a></div><div class="ttdeci">double _AnaTimeCyclePerQuery</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00062">DDAStat.h:62</a></div></div>
3374
3374
  <div class="ttc" id="SVFBasicTypes_8h_html_a6c9e2209a2c38607a9e3b7fab242886a"><div class="ttname"><a href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a></div><div class="ttdeci">#define DOSTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00156">SVFBasicTypes.h:156</a></div></div>
3375
3375
  <div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00041">SVFStat.cpp:41</a></div></div>
3376
- <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a8c5220108a65fa281959529cb1e9cc57"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a8c5220108a65fa281959529cb1e9cc57">SVF::DDAVFSolver::reCompute</a></div><div class="ttdeci">void reCompute(const DPIm &amp;dpm)</div><div class="ttdoc">recompute points-to for value-flow cycles and indirect calls </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00228">DDAVFSolver.h:228</a></div></div>
3376
+ <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a8c5220108a65fa281959529cb1e9cc57"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a8c5220108a65fa281959529cb1e9cc57">SVF::DDAVFSolver::reCompute</a></div><div class="ttdeci">void reCompute(const DPIm &amp;dpm)</div><div class="ttdoc">recompute points-to for value-flow cycles and indirect calls </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00250">DDAVFSolver.h:250</a></div></div>
3377
3377
  </div><!-- fragment -->
3378
3378
  </div>
3379
3379
  </div>
@@ -3423,8 +3423,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3423
3423
 
3424
3424
  <p>Reimplemented in <a class="el" href="classSVF_1_1ContextDDA.html#a6fb1be7eef65008c7fbab6bdfe186061">SVF::ContextDDA</a>, and <a class="el" href="classSVF_1_1FlowDDA.html#ae6257ef91e9d1c5aa95fdf5333c528b0">SVF::FlowDDA</a>.</p>
3425
3425
 
3426
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00510">510</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3427
- <div class="fragment"><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;{}</div></div><!-- fragment -->
3426
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00532">532</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3427
+ <div class="fragment"><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;{}</div></div><!-- fragment -->
3428
3428
  </div>
3429
3429
  </div>
3430
3430
  <h2 class="groupheader">Friends And Related Function Documentation</h2>
@@ -3450,7 +3450,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3450
3450
  </table>
3451
3451
  </div><div class="memdoc">
3452
3452
 
3453
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00027">27</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3453
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00049">49</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3454
3454
 
3455
3455
  </div>
3456
3456
  </div>
@@ -3479,7 +3479,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3479
3479
 
3480
3480
  <p><a class="el" href="classSVF_1_1Andersen.html">Andersen</a>'s analysis. </p>
3481
3481
 
3482
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00755">755</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3482
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00777">777</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3483
3483
 
3484
3484
  </div>
3485
3485
  </div>
@@ -3507,7 +3507,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3507
3507
 
3508
3508
  <p>CallGraph. </p>
3509
3509
 
3510
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00757">757</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3510
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00779">779</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3511
3511
 
3512
3512
  </div>
3513
3513
  </div>
@@ -3535,7 +3535,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3535
3535
 
3536
3536
  <p>SCC for CallGraph. </p>
3537
3537
 
3538
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00758">758</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3538
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00780">780</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3539
3539
 
3540
3540
  </div>
3541
3541
  </div>
@@ -3563,7 +3563,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3563
3563
 
3564
3564
  <p><a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a>. </p>
3565
3565
 
3566
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00753">753</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3566
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00775">775</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3567
3567
 
3568
3568
  </div>
3569
3569
  </div>
@@ -3591,7 +3591,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3591
3591
 
3592
3592
  <p><a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
3593
3593
 
3594
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00754">754</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3594
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00776">776</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3595
3595
 
3596
3596
  </div>
3597
3597
  </div>
@@ -3619,7 +3619,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3619
3619
 
3620
3620
  <p>SCC for <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
3621
3621
 
3622
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00759">759</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3622
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00781">781</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3623
3623
 
3624
3624
  </div>
3625
3625
  </div>
@@ -3647,7 +3647,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3647
3647
 
3648
3648
  <p>visited map during backward traversing </p>
3649
3649
 
3650
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00760">760</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3650
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00782">782</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3651
3651
 
3652
3652
  </div>
3653
3653
  </div>
@@ -3675,7 +3675,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3675
3675
 
3676
3676
  <p>candidate pointers; </p>
3677
3677
 
3678
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00756">756</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3678
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00778">778</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3679
3679
 
3680
3680
  </div>
3681
3681
  </div>
@@ -3703,7 +3703,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3703
3703
 
3704
3704
  <p>DDA stat. </p>
3705
3705
 
3706
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00768">768</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3706
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00790">790</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3707
3707
 
3708
3708
  </div>
3709
3709
  </div>
@@ -3731,7 +3731,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3731
3731
 
3732
3732
  <p>points-to caching map for address-taken vars </p>
3733
3733
 
3734
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00762">762</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3734
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00784">784</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3735
3735
 
3736
3736
  </div>
3737
3737
  </div>
@@ -3759,7 +3759,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3759
3759
 
3760
3760
  <p>dpms at loads for may/must-alias analysis with stores </p>
3761
3761
 
3762
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00764">764</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3762
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00786">786</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3763
3763
 
3764
3764
  </div>
3765
3765
  </div>
@@ -3787,7 +3787,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3787
3787
 
3788
3788
  <p>points-to caching map for top-level vars </p>
3789
3789
 
3790
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00761">761</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3790
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00783">783</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3791
3791
 
3792
3792
  </div>
3793
3793
  </div>
@@ -3815,7 +3815,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3815
3815
 
3816
3816
  <p>map a load dpm to its cvar pointed by its pointer operand </p>
3817
3817
 
3818
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00765">765</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3818
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00787">787</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3819
3819
 
3820
3820
  </div>
3821
3821
  </div>
@@ -3843,7 +3843,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3843
3843
 
3844
3844
  <p>map location to its dpms </p>
3845
3845
 
3846
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00763">763</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3846
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00785">785</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3847
3847
 
3848
3848
  </div>
3849
3849
  </div>
@@ -3871,7 +3871,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3871
3871
 
3872
3872
  <p>out of budget dpm set </p>
3873
3873
 
3874
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00766">766</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3874
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00788">788</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3875
3875
 
3876
3876
  </div>
3877
3877
  </div>
@@ -3899,7 +3899,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3899
3899
 
3900
3900
  <p>Whether the current query is out of step limits. </p>
3901
3901
 
3902
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00752">752</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3902
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00774">774</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3903
3903
 
3904
3904
  </div>
3905
3905
  </div>
@@ -3927,7 +3927,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3927
3927
 
3928
3928
  <p>map store to set of DPM which have been stong updated there </p>
3929
3929
 
3930
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00767">767</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3930
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00789">789</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3931
3931
 
3932
3932
  </div>
3933
3933
  </div>
@@ -3955,7 +3955,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3955
3955
 
3956
3956
  <p><a class="el" href="classSVF_1_1SVFG.html">SVFG</a> Builder. </p>
3957
3957
 
3958
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00769">769</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3958
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00791">791</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3959
3959
 
3960
3960
  </div>
3961
3961
  </div>