svf-tools 1.0.604 → 1.0.606

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 (136) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +2 -2
  2. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/CSC_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/Casting_8h.html +3 -0
  10. package/SVF-doxygen/html/html/Casting_8h_source.html +22 -22
  11. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  12. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +15 -15
  13. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +3 -3
  14. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +1 -1
  15. package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
  16. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +82 -74
  18. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +14 -14
  19. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +9 -9
  20. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +27 -21
  22. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +18 -18
  23. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +1 -1
  24. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +2 -2
  25. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  26. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +1 -1
  27. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +2 -2
  28. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -1
  29. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/html/MHP_8cpp_source.html +33 -38
  31. package/SVF-doxygen/html/html/MHP_8h_source.html +22 -22
  32. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +1 -1
  33. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
  34. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
  36. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +12 -11
  38. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +11 -11
  39. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +2 -2
  40. package/SVF-doxygen/html/html/SVFValue_8h_source.html +1 -1
  41. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  42. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +8 -1
  43. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +11 -11
  44. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +8 -8
  45. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
  46. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  47. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  48. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
  49. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +2 -2
  50. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +1 -1
  51. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +2 -2
  52. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +5 -5
  53. package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +1 -1
  54. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +2 -2
  55. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +1 -1
  56. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
  57. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +2 -2
  58. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +19 -19
  59. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +11 -11
  60. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
  61. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +228 -220
  62. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +2 -2
  63. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +17 -17
  64. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +64 -58
  65. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  66. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +30 -38
  67. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
  68. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +3 -3
  69. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +2 -2
  70. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +1 -1
  71. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +2 -2
  72. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +67 -83
  73. package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +1 -1
  74. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +1 -1
  75. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +4 -4
  76. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +53 -53
  77. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
  78. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +1 -1
  79. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +1 -1
  80. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +5 -5
  81. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +1 -1
  82. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +46 -33
  83. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +4 -4
  84. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
  85. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +8 -1
  86. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +32 -32
  87. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
  88. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +1 -1
  89. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
  90. package/SVF-doxygen/html/html/classSVF_1_1VFCFLGraphBuilder.html +1 -1
  91. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +4 -4
  92. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
  93. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +2 -2
  94. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +7 -7
  95. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +50 -17
  96. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +2 -2
  97. package/SVF-doxygen/html/html/namespacemembers_func_i.html +7 -7
  98. package/SVF-doxygen/html/html/namespacemembers_i.html +8 -8
  99. package/SVF-doxygen/html/html/search/all_9.js +1 -1
  100. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  101. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__convert__val.html +3 -3
  102. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__convert__val_3_01To_00_01FromTy_00_01FromTy_01_4.html +3 -3
  103. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty.html +2 -2
  104. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl.html +2 -2
  105. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01From_01_5_01_4.html +2 -2
  106. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_4.html +2 -2
  107. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_5_01_4.html +2 -2
  108. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_5const_01_4.html +2 -2
  109. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01std_1_1unique__ptr_3_01From_01_4_01_4.html +4 -4
  110. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__wrap.html +2 -2
  111. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__wrap_3_01To_00_01FromTy_00_01FromTy_01_4.html +2 -2
  112. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__simple__type.html +2 -2
  113. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  114. package/include/DDA/DDAVFSolver.h +4 -8
  115. package/include/Graphs/SVFGOPT.h +2 -2
  116. package/include/MTA/MTAResultValidator.h +1 -1
  117. package/include/Util/Casting.h +7 -0
  118. package/lib/CFL/CFLStat.cpp +1 -1
  119. package/lib/DDA/ContextDDA.cpp +1 -1
  120. package/lib/Graphs/ConsG.cpp +2 -2
  121. package/lib/Graphs/SVFGOPT.cpp +15 -17
  122. package/lib/MTA/FSMPTA.cpp +7 -6
  123. package/lib/MTA/LockAnalysis.cpp +1 -1
  124. package/lib/MTA/MHP.cpp +216 -229
  125. package/lib/MemoryModel/LocationSet.cpp +1 -1
  126. package/lib/MemoryModel/PointerAnalysis.cpp +1 -1
  127. package/lib/SABER/SaberSVFGBuilder.cpp +1 -1
  128. package/lib/SABER/SrcSnkDDA.cpp +3 -3
  129. package/lib/SVF-LLVM/LLVMModule.cpp +1 -1
  130. package/lib/SVF-LLVM/LLVMUtil.cpp +1 -1
  131. package/lib/SVF-LLVM/SVFIRBuilder.cpp +4 -4
  132. package/lib/SVF-LLVM/SymbolTableBuilder.cpp +3 -2
  133. package/lib/SVFIR/SymbolTableInfo.cpp +1 -1
  134. package/lib/WPA/AndersenSFR.cpp +1 -1
  135. package/lib/WPA/FlowSensitive.cpp +23 -22
  136. package/package.json +1 -1
@@ -627,14 +627,14 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
627
627
  <p>Constructor. </p>
628
628
 
629
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#l00779">DDAVFSolver.h:779</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#l00789">DDAVFSolver.h:789</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#l00775">DDAVFSolver.h:775</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#l00780">DDAVFSolver.h:780</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#l00778">DDAVFSolver.h:778</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#l00774">DDAVFSolver.h:774</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#l00773">DDAVFSolver.h:773</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#l00776">DDAVFSolver.h:776</a></div></div>
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#l00775">DDAVFSolver.h:775</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#l00785">DDAVFSolver.h:785</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#l00771">DDAVFSolver.h:771</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#l00776">DDAVFSolver.h:776</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#l00774">DDAVFSolver.h:774</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#l00770">DDAVFSolver.h:770</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#l00769">DDAVFSolver.h:769</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#l00772">DDAVFSolver.h:772</a></div></div>
638
638
  </div><!-- fragment -->
639
639
  </div>
640
640
  </div>
@@ -666,11 +666,11 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
666
666
  <p>Destructor. </p>
667
667
 
668
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#l00779">DDAVFSolver.h:779</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#l00775">DDAVFSolver.h:775</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#l00780">DDAVFSolver.h:780</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#l00778">DDAVFSolver.h:778</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#l00776">DDAVFSolver.h:776</a></div></div>
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#l00775">DDAVFSolver.h:775</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#l00771">DDAVFSolver.h:771</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#l00776">DDAVFSolver.h:776</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#l00774">DDAVFSolver.h:774</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#l00772">DDAVFSolver.h:772</a></div></div>
674
674
  </div><!-- fragment -->
675
675
  </div>
676
676
  </div>
@@ -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#l00668">668</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
747
- <div class="fragment"><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; {</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>[dpm.getLoc()-&gt;getId()].insert(dpm);</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</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#l00784">DDAVFSolver.h:784</a></div></div>
746
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00664">664</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
747
+ <div class="fragment"><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; {</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>[dpm.getLoc()-&gt;getId()].insert(dpm);</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</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#l00780">DDAVFSolver.h:780</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#l00701">701</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
788
- <div class="fragment"><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; {</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keyword">typename</span> DPMToCVarMap::iterator it = <a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.find(dpm);</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</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="l00705"></a><span class="lineno"> 705</span>&#160; it-&gt;second = loadVar;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.insert(std::make_pair(dpm,loadVar));</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</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#l00786">DDAVFSolver.h:786</a></div></div>
787
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00697">697</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
788
+ <div class="fragment"><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; {</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="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="l00700"></a><span class="lineno"> 700</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="l00701"></a><span class="lineno"> 701</span>&#160; it-&gt;second = loadVar;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00703"></a><span class="lineno"> 703</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="l00704"></a><span class="lineno"> 704</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#l00782">DDAVFSolver.h:782</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#l00687">687</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
831
- <div class="fragment"><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; {</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <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="l00690"></a><span class="lineno"> 690</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="l00691"></a><span class="lineno"> 691</span>&#160; it-&gt;second = loadDpm;</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00693"></a><span class="lineno"> 693</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="l00694"></a><span class="lineno"> 694</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#l00785">DDAVFSolver.h:785</a></div></div>
830
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00683">683</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
831
+ <div class="fragment"><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; {</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="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="l00686"></a><span class="lineno"> 686</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="l00687"></a><span class="lineno"> 687</span>&#160; it-&gt;second = loadDpm;</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00689"></a><span class="lineno"> 689</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="l00690"></a><span class="lineno"> 690</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#l00781">DDAVFSolver.h:781</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#l00681">681</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
880
- <div class="fragment"><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; {</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a7579491400f1781356cb7d1913537547">addLoadCVar</a>(dpm,loadVar);</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a4725013a7617645e1418ed670d4837b5">addLoadDpm</a>(dpm,loadDpm);</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</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#l00687">DDAVFSolver.h:687</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#l00701">DDAVFSolver.h:701</a></div></div>
879
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00677">677</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
880
+ <div class="fragment"><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; {</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a7579491400f1781356cb7d1913537547">addLoadCVar</a>(dpm,loadVar);</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a4725013a7617645e1418ed670d4837b5">addLoadDpm</a>(dpm,loadDpm);</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</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#l00683">DDAVFSolver.h:683</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#l00697">DDAVFSolver.h:697</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#l00736">736</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
912
- <div class="fragment"><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; {</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">outOfBudgetDpms</a>.insert(dpm);</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</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#l00787">DDAVFSolver.h:787</a></div></div>
911
+ <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>
912
+ <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; <a class="code" href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">outOfBudgetDpms</a>.insert(dpm);</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</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#l00783">DDAVFSolver.h:783</a></div></div>
913
913
  </div><!-- fragment -->
914
914
  </div>
915
915
  </div>
@@ -951,10 +951,10 @@ 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#l00753">753</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
955
- <div class="fragment"><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; {</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</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="l00756"></a><span class="lineno"> 756</span>&#160; {</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</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="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#ad53ad7a958c05b45624d2859a6a9e647">_StrongUpdateStores</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(node-&gt;getId());</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; }</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</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#l00789">DDAVFSolver.h:789</a></div></div>
954
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00749">749</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
955
+ <div class="fragment"><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; {</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#af66895278f0ecbc882f9e4f43ef9c8a8">storeToDPMs</a>[node].insert(dpm).second)</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; {</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <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="l00754"></a><span class="lineno"> 754</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="l00755"></a><span class="lineno"> 755</span>&#160; }</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; }</div><div class="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#l00785">DDAVFSolver.h:785</a></div></div>
956
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#l00788">DDAVFSolver.h:788</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#l00784">DDAVFSolver.h:784</a></div></div>
958
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#l00747">SparseBitVector.h:747</a></div></div>
960
960
  </div><!-- fragment -->
@@ -998,10 +998,10 @@ 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#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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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>
1001
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00368">368</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1002
+ <div class="fragment"><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; {</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* node = oldDpm.getLoc();</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</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="l00372"></a><span class="lineno"> 372</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="l00373"></a><span class="lineno"> 373</span>&#160; {</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> DirectSVFGEdge* dirEdge = SVFUtil::dyn_cast&lt;DirectSVFGEdge&gt;(*it))</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; {</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="l00377"></a><span class="lineno"> 377</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="l00378"></a><span class="lineno"> 378</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="l00379"></a><span class="lineno"> 379</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="l00380"></a><span class="lineno"> 380</span>&#160; }</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; }</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; }</div><div class="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
- <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>
1004
+ <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#l00420">DDAVFSolver.h:420</a></div></div>
1005
1005
  <div class="ttc" id="SVFType_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00430">SVFType.h:430</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>
@@ -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#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#a350ae9bf8606bdfe23c8679681b969dc">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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
1051
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00346">346</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1052
+ <div class="fragment"><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* node = oldDpm.getLoc();</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> obj = oldDpm.getCurNodeID();</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</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="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</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="l00353"></a><span class="lineno"> 353</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="l00354"></a><span class="lineno"> 354</span>&#160; {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</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="l00356"></a><span class="lineno"> 356</span>&#160; {</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#aa7b6a13e52671de8524b130738aeb564">NodeBS</a>&amp; guard = indirEdge-&gt;getPointsTo();</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">if</span>(guard.test(obj))</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; {</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="l00361"></a><span class="lineno"> 361</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="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#af6a6243b497df5fdab9f658b9add9c8a">backwardPropDpm</a>(pts,oldDpm.getCurNodeID(),oldDpm,indirEdge);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; }</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; }</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; }</div><div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
1053
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#l00413">SVFIR.h:413</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
- <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>
1056
+ <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#l00420">DDAVFSolver.h:420</a></div></div>
1057
1057
  <div class="ttc" id="SVFType_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00430">SVFType.h:430</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="SVFType_8h_source.html#l00061">SVFType.h:61</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#l00774">DDAVFSolver.h:774</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#l00770">DDAVFSolver.h:770</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#l00671">SVFIR.cpp:671</a></div></div>
1063
1063
  <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00419">SVFType.h:419</a></div></div>
@@ -1100,12 +1100,12 @@ 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#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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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#l00695">DDAVFSolver.h:695</a></div></div>
1103
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00407">407</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1104
+ <div class="fragment"><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; {</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="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="l00410"></a><span class="lineno"> 410</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="l00411"></a><span class="lineno"> 411</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="l00412"></a><span class="lineno"> 412</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="l00413"></a><span class="lineno"> 413</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="l00414"></a><span class="lineno"> 414</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;Edge not found!!&quot;</span>);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</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="l00416"></a><span class="lineno"> 416</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#l00341">DDAVFSolver.h:341</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#l00691">DDAVFSolver.h:691</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
- <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>
1108
+ <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#l00420">DDAVFSolver.h:420</a></div></div>
1109
1109
  <div class="ttc" id="SVFType_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00430">SVFType.h:430</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>
@@ -1169,13 +1169,13 @@ 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#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="SVFType_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>(<span class="keyword">true</span>));</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="SVFType_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>(<span class="keyword">true</span>) - start);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_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="SVFType_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#l00789">DDAVFSolver.h:789</a></div></div>
1172
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00420">420</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1173
+ <div class="fragment"><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; {</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; DPIm dpm(oldDpm);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; dpm.setLocVar(edge-&gt;getSrcNode(),ptr);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <a class="code" href="SVFType_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>(<span class="keyword">true</span>));</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</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="l00427"></a><span class="lineno"> 427</span>&#160; {</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <a class="code" href="SVFType_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>(<span class="keyword">true</span>) - start);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="l00430"></a><span class="lineno"> 430</span>&#160; <a class="code" href="SVFType_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="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; }</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;IndirectSVFGEdge&gt;(edge))</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</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="l00437"></a><span class="lineno"> 437</span>&#160;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <a class="code" href="SVFType_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="l00440"></a><span class="lineno"> 440</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="l00441"></a><span class="lineno"> 441</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#l00785">DDAVFSolver.h:785</a></div></div>
1174
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#l00681">DDAVFSolver.h:681</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#l00677">DDAVFSolver.h:677</a></div></div>
1176
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#l00709">DDAVFSolver.h:709</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#l00695">DDAVFSolver.h:695</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#l00705">DDAVFSolver.h:705</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#l00691">DDAVFSolver.h:691</a></div></div>
1179
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
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="SVFType_8h_html_ab6f41e9db3675dc689c5492418885041"><div class="ttname"><a href="SVFType_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a></div><div class="ttdeci">#define DOTIMESTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00421">SVFType.h:421</a></div></div>
@@ -1183,7 +1183,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </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#l00047">SVFStat.cpp:47</a></div></div>
1185
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#l00526">DDAVFSolver.h:526</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#l00525">DDAVFSolver.h:525</a></div></div>
1187
1187
  <div class="ttc" id="SVFType_8h_html_a6c9e2209a2c38607a9e3b7fab242886a"><div class="ttname"><a href="SVFType_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a></div><div class="ttdeci">#define DOSTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00420">SVFType.h:420</a></div></div>
1188
1188
  <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00419">SVFType.h:419</a></div></div>
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#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#l00790">DDAVFSolver.h:790</a></div></div>
1220
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00311">311</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1221
+ <div class="fragment"><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <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="l00314"></a><span class="lineno"> 314</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="l00315"></a><span class="lineno"> 315</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="l00316"></a><span class="lineno"> 316</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#l00786">DDAVFSolver.h:786</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#l00775">DDAVFSolver.h:775</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#l00774">DDAVFSolver.h:774</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#l00771">DDAVFSolver.h:771</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#l00770">DDAVFSolver.h:770</a></div></div>
1226
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#l00776">DDAVFSolver.h:776</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#l00772">DDAVFSolver.h:772</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#l00544">544</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1258
- <div class="fragment"><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; {</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; 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="l00547"></a><span class="lineno"> 547</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.erase(dpm);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</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#l00781">DDAVFSolver.h:781</a></div></div>
1257
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00543">543</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1258
+ <div class="fragment"><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; {</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</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="l00546"></a><span class="lineno"> 546</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.erase(dpm);</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</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#l00777">DDAVFSolver.h:777</a></div></div>
1259
1259
  </div><!-- fragment -->
1260
1260
  </div>
1261
1261
  </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#l00622">622</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1322
- <div class="fragment"><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; {</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">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="l00625"></a><span class="lineno"> 625</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#l00612">DDAVFSolver.h:612</a></div></div>
1321
+ <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>
1322
+ <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#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="l00621"></a><span class="lineno"> 621</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#l00608">DDAVFSolver.h:608</a></div></div>
1323
1323
  </div><!-- fragment -->
1324
1324
  </div>
1325
1325
  </div>
@@ -1353,16 +1353,16 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1353
1353
  <p>Add successors of current stmt if its pts has been changed. </p>
1354
1354
 
1355
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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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#l00668">DDAVFSolver.h:668</a></div></div>
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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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#l00664">DDAVFSolver.h:664</a></div></div>
1357
1357
  <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>
1358
1358
  <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>
1359
- <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#l00725">DDAVFSolver.h:725</a></div></div>
1359
+ <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#l00721">DDAVFSolver.h:721</a></div></div>
1360
1360
  <div class="ttc" id="SVFType_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00430">SVFType.h:430</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#l00560">DDAVFSolver.h:560</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#l00559">DDAVFSolver.h:559</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#l00553">DDAVFSolver.h:553</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#l00536">DDAVFSolver.h:536</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#l00540">DDAVFSolver.h:540</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#l00552">DDAVFSolver.h:552</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#l00535">DDAVFSolver.h:535</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#l00539">DDAVFSolver.h:539</a></div></div>
1366
1366
  <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00419">SVFType.h:419</a></div></div>
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#l00717">717</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1398
- <div class="fragment"><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; {</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a>;</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</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#l00776">DDAVFSolver.h:776</a></div></div>
1397
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00713">713</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1398
+ <div class="fragment"><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; {</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a>;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</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#l00772">DDAVFSolver.h:772</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#l00573">573</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1429
- <div class="fragment"><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">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a2565bf8dcacb22350dc1dc98ec7595f2">dpmToADCPtSetMap</a>[dpm];</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</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#l00783">DDAVFSolver.h:783</a></div></div>
1428
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00572">572</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1429
+ <div class="fragment"><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; {</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a2565bf8dcacb22350dc1dc98ec7595f2">dpmToADCPtSetMap</a>[dpm];</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</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#l00779">DDAVFSolver.h:779</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#l00553">553</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1462
- <div class="fragment"><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a7b35588de00e322afd742041bf735571">isTopLevelPtrStmt</a>(dpm.getLoc()))</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</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="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00558"></a><span class="lineno"> 558</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="l00559"></a><span class="lineno"> 559</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#l00580">DDAVFSolver.h:580</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#l00573">DDAVFSolver.h:573</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#l00569">DDAVFSolver.h:569</a></div></div>
1461
+ <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>
1462
+ <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">if</span> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a7b35588de00e322afd742041bf735571">isTopLevelPtrStmt</a>(dpm.getLoc()))</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</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="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">else</span></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#a2a2b3783074c9f509fc265b97b979704">getCachedADPointsTo</a>(dpm);</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</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#l00579">DDAVFSolver.h:579</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#l00572">DDAVFSolver.h:572</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#l00568">DDAVFSolver.h:568</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#l00569">569</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1497
- <div class="fragment"><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; {</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a2d6df8149b45d719e22fc505df94171a">dpmToTLCPtSetMap</a>[dpm];</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</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#l00782">DDAVFSolver.h:782</a></div></div>
1496
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00568">568</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1497
+ <div class="fragment"><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; {</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#a2d6df8149b45d719e22fc505df94171a">dpmToTLCPtSetMap</a>[dpm];</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</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#l00778">DDAVFSolver.h:778</a></div></div>
1498
1498
  </div><!-- fragment -->
1499
1499
  </div>
1500
1500
  </div>
@@ -1526,7 +1526,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1526
1526
  <p>Return candidate pointers for DDA. </p>
1527
1527
 
1528
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#l00777">DDAVFSolver.h:777</a></div></div>
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#l00773">DDAVFSolver.h:773</a></div></div>
1530
1530
  </div><!-- fragment -->
1531
1531
  </div>
1532
1532
  </div>
@@ -1590,8 +1590,8 @@ 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#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>
1593
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00341">341</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1594
+ <div class="fragment"><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">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="l00344"></a><span class="lineno"> 344</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
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>
@@ -1682,11 +1682,11 @@ 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#l00588">588</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1686
- <div class="fragment"><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; {</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; DPIm dpm(oldDpm);</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; dpm.setLocVar(loc,<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(var));</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;StoreSVFGNode&gt;(loc))</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</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="l00595"></a><span class="lineno"> 595</span>&#160;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;LoadSVFGNode&gt;(loc))</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">addLoadDpmAndCVar</a>(dpm,oldDpm,var);</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <a class="code" href="SVFType_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="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordflow">return</span> dpm;</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</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#l00789">DDAVFSolver.h:789</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#l00681">DDAVFSolver.h:681</a></div></div>
1685
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00584">584</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1686
+ <div class="fragment"><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; DPIm dpm(oldDpm);</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; dpm.setLocVar(loc,<a class="code" href="classSVF_1_1DDAVFSolver.html#a3fa002d4ba4194ffde62ecbdd361a24d">getPtrNodeID</a>(var));</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;StoreSVFGNode&gt;(loc))</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</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="l00591"></a><span class="lineno"> 591</span>&#160;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;LoadSVFGNode&gt;(loc))</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a1cd1023bca18db16bc54e622c881e494">addLoadDpmAndCVar</a>(dpm,oldDpm,var);</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <a class="code" href="SVFType_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="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">return</span> dpm;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</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#l00785">DDAVFSolver.h:785</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#l00677">DDAVFSolver.h:677</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#l00695">DDAVFSolver.h:695</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#l00691">DDAVFSolver.h:691</a></div></div>
1690
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="SVFType_8h_html_a6c9e2209a2c38607a9e3b7fab242886a"><div class="ttname"><a href="SVFType_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a></div><div class="ttdeci">#define DOSTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00420">SVFType.h:420</a></div></div>
1692
1692
  </div><!-- fragment -->
@@ -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#l00664">664</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1722
- <div class="fragment"><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; {</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <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="l00667"></a><span class="lineno"> 667</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#l00784">DDAVFSolver.h:784</a></div></div>
1721
+ <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>
1722
+ <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; <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="l00663"></a><span class="lineno"> 663</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#l00780">DDAVFSolver.h:780</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#l00709">709</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1753
- <div class="fragment"><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; {</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="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="l00712"></a><span class="lineno"> 712</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="l00713"></a><span class="lineno"> 713</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</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#l00786">DDAVFSolver.h:786</a></div></div>
1752
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00705">705</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1753
+ <div class="fragment"><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; {</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="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="l00708"></a><span class="lineno"> 708</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="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</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#l00782">DDAVFSolver.h:782</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#l00695">695</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1784
- <div class="fragment"><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; {</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="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="l00698"></a><span class="lineno"> 698</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="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</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#l00785">DDAVFSolver.h:785</a></div></div>
1783
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00691">691</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1784
+ <div class="fragment"><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; {</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="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="l00694"></a><span class="lineno"> 694</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="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</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#l00781">DDAVFSolver.h:781</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#l00660">660</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1816
- <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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</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#l00784">DDAVFSolver.h:784</a></div></div>
1815
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00656">656</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1816
+ <div class="fragment"><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; {</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>;</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</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#l00780">DDAVFSolver.h:780</a></div></div>
1817
1817
  </div><!-- fragment -->
1818
1818
  </div>
1819
1819
  </div>
@@ -1878,7 +1878,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1878
1878
  <p>Return <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
1879
1879
 
1880
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#l00775">DDAVFSolver.h:775</a></div></div>
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#l00771">DDAVFSolver.h:771</a></div></div>
1882
1882
  </div><!-- fragment -->
1883
1883
  </div>
1884
1884
  </div>
@@ -1910,7 +1910,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
1910
1910
  <p>Return SVFGSCC. </p>
1911
1911
 
1912
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#l00780">DDAVFSolver.h:780</a></div></div>
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#l00776">DDAVFSolver.h:776</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#l00612">612</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1946
- <div class="fragment"><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; {</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</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="l00615"></a><span class="lineno"> 615</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#l00780">DDAVFSolver.h:780</a></div></div>
1945
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00608">608</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
1946
+ <div class="fragment"><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; <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="l00611"></a><span class="lineno"> 611</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#l00776">DDAVFSolver.h:776</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#l00526">526</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2040
- <div class="fragment"><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; {</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; }</div></div><!-- fragment -->
2039
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00525">525</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2040
+ <div class="fragment"><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; {</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</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#l00724">724</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2073
- <div class="fragment"><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;{}</div></div><!-- fragment -->
2072
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00720">720</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2073
+ <div class="fragment"><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;{}</div></div><!-- fragment -->
2074
2074
  </div>
2075
2075
  </div>
2076
2076
  <a id="a99f631cf1bc438e3f08f7f935e98e38d"></a>
@@ -2113,31 +2113,39 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2113
2113
  <p>resolve function pointer first at indirect callsite </p>
2114
2114
 
2115
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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_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="SVFType_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#l00789">DDAVFSolver.h:789</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#l00762">DDAVFSolver.h:762</a></div></div>
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> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737">SVFUtil::isa</a>&lt;<a class="code" href="namespaceSVF.html#ab98f7c9e6311e649cdfd5d2f3f8e59be">CopySVFGNode</a>, <a class="code" href="namespaceSVF.html#a71d4e214e049f02bf26537cba6328673">PHISVFGNode</a>, <a class="code" href="namespaceSVF.html#a11c50c2f81327753b3ff3ffdbe356812">ActualParmSVFGNode</a>,</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="namespaceSVF.html#ad466edced10faeafd48e96daf193b8a9">FormalParmSVFGNode</a>, <a class="code" href="namespaceSVF.html#a77b8b8ca831e1eba3e47f2ca29667f67">ActualRetSVFGNode</a>,</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="namespaceSVF.html#ae5987da3ffd5681e8ec4ef14ba54588e">FormalRetSVFGNode</a>, <a class="code" href="namespaceSVF.html#aeccd0bd024319173c1cda5ff1a79c5ae">NullPtrSVFGNode</a>&gt;(node))</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="classSVF_1_1DDAVFSolver.html#a7a6af30f30f32d55fc910f2ae4909791">backtraceAlongDirectVF</a>(pts,dpm);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;GepSVFGNode&gt;(node))</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; CPtSet gepPts;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a7a6af30f30f32d55fc910f2ae4909791">backtraceAlongDirectVF</a>(gepPts,dpm);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</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="l00191"></a><span class="lineno"> 191</span>&#160; }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;LoadSVFGNode&gt;(node))</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; CPtSet loadpts;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#acd694c2092adf8c516d1aba5f798cec7">startNewPTCompFromLoadSrc</a>(loadpts,dpm);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</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="l00197"></a><span class="lineno"> 197</span>&#160; {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</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="l00199"></a><span class="lineno"> 199</span>&#160; }</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">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&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; <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="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#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="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="SVFType_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="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#adbd209b4a2327b2b068fbb56e12042f7">backtraceToStoreSrc</a>(pts,dpm);</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; CPtSet storepts;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aff744e724dcf06a2b1cdd7ba2b1093f1">startNewPTCompFromStoreDst</a>(storepts,dpm);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</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="l00217"></a><span class="lineno"> 217</span>&#160; {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</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="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="classSVF_1_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="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</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="l00223"></a><span class="lineno"> 223</span>&#160; {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="SVFType_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#aeb6b56cf3d140d251b0524eb5cbd6dce">addSUStat</a>(dpm,node);)</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; {</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="SVFType_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a7d0775354df32f293e98578ed071d33c">rmSUStat</a>(dpm,node);)</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</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="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">backtraceAlongIndirectVF</a>(pts,dpm);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</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; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;MRSVFGNode&gt;(node))</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a040bc02742836b0a6d46ce3c3e89fa46">backtraceAlongIndirectVF</a>(pts,dpm);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</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="l00246"></a><span class="lineno"> 246</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#l00346">DDAVFSolver.h:346</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#l00785">DDAVFSolver.h:785</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#l00758">DDAVFSolver.h:758</a></div></div>
2119
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#l00709">DDAVFSolver.h:709</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#l00482">DDAVFSolver.h:482</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#l00695">DDAVFSolver.h:695</a></div></div>
2120
+ <div class="ttc" id="namespaceSVF_html_ab98f7c9e6311e649cdfd5d2f3f8e59be"><div class="ttname"><a href="namespaceSVF.html#ab98f7c9e6311e649cdfd5d2f3f8e59be">SVF::CopySVFGNode</a></div><div class="ttdeci">CopyVFGNode CopySVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00052">SVFG.h:52</a></div></div>
2121
+ <div class="ttc" id="namespaceSVF_html_a71d4e214e049f02bf26537cba6328673"><div class="ttname"><a href="namespaceSVF.html#a71d4e214e049f02bf26537cba6328673">SVF::PHISVFGNode</a></div><div class="ttdeci">PHIVFGNode PHISVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00056">SVFG.h:56</a></div></div>
2122
+ <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#l00397">DDAVFSolver.h:397</a></div></div>
2123
+ <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#l00407">DDAVFSolver.h:407</a></div></div>
2124
+ <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#l00705">DDAVFSolver.h:705</a></div></div>
2125
+ <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#l00481">DDAVFSolver.h:481</a></div></div>
2126
+ <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#l00691">DDAVFSolver.h:691</a></div></div>
2125
2127
  <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>
2128
+ <div class="ttc" id="namespaceSVF_html_ad466edced10faeafd48e96daf193b8a9"><div class="ttname"><a href="namespaceSVF.html#ad466edced10faeafd48e96daf193b8a9">SVF::FormalParmSVFGNode</a></div><div class="ttdeci">FormalParmVFGNode FormalParmSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00046">SVFG.h:46</a></div></div>
2126
2129
  <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
- <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#l00588">DDAVFSolver.h:588</a></div></div>
2128
- <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>
2129
- <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>
2130
+ <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#l00584">DDAVFSolver.h:584</a></div></div>
2131
+ <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#l00443">DDAVFSolver.h:443</a></div></div>
2132
+ <div class="ttc" id="namespaceSVF_html_aeccd0bd024319173c1cda5ff1a79c5ae"><div class="ttname"><a href="namespaceSVF.html#aeccd0bd024319173c1cda5ff1a79c5ae">SVF::NullPtrSVFGNode</a></div><div class="ttdeci">NullPtrVFGNode NullPtrSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00049">SVFG.h:49</a></div></div>
2133
+ <div class="ttc" id="namespaceSVF_html_a77b8b8ca831e1eba3e47f2ca29667f67"><div class="ttname"><a href="namespaceSVF.html#a77b8b8ca831e1eba3e47f2ca29667f67">SVF::ActualRetSVFGNode</a></div><div class="ttdeci">ActualRetVFGNode ActualRetSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00045">SVFG.h:45</a></div></div>
2134
+ <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#l00386">DDAVFSolver.h:386</a></div></div>
2130
2135
  <div class="ttc" id="SVFType_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00430">SVFType.h:430</a></div></div>
2131
- <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>
2136
+ <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#l00368">DDAVFSolver.h:368</a></div></div>
2132
2137
  <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>
2133
2138
  <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>
2134
2139
  <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>
2135
- <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#l00753">DDAVFSolver.h:753</a></div></div>
2140
+ <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#l00749">DDAVFSolver.h:749</a></div></div>
2141
+ <div class="ttc" id="namespaceSVF_html_a11c50c2f81327753b3ff3ffdbe356812"><div class="ttname"><a href="namespaceSVF.html#a11c50c2f81327753b3ff3ffdbe356812">SVF::ActualParmSVFGNode</a></div><div class="ttdeci">ActualParmVFGNode ActualParmSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00044">SVFG.h:44</a></div></div>
2142
+ <div class="ttc" id="namespaceSVF_html_ae5987da3ffd5681e8ec4ef14ba54588e"><div class="ttname"><a href="namespaceSVF.html#ae5987da3ffd5681e8ec4ef14ba54588e">SVF::FormalRetSVFGNode</a></div><div class="ttdeci">FormalRetVFGNode FormalRetSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00047">SVFG.h:47</a></div></div>
2136
2143
  <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#l01191">SparseBitVector.h:1191</a></div></div>
2137
- <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#l00489">DDAVFSolver.h:489</a></div></div>
2144
+ <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#l00488">DDAVFSolver.h:488</a></div></div>
2145
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a5c8cbc986cccb9d84f87aae162df3737"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737">SVF::SVFUtil::isa</a></div><div class="ttdeci">LLVM_NODISCARD bool isa(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00241">Casting.h:241</a></div></div>
2138
2146
  <div class="ttc" id="SVFType_8h_html_a6c9e2209a2c38607a9e3b7fab242886a"><div class="ttname"><a href="SVFType_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a></div><div class="ttdeci">#define DOSTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00420">SVFType.h:420</a></div></div>
2139
2147
  <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00419">SVFType.h:419</a></div></div>
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>
2148
+ <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#l00448">DDAVFSolver.h:448</a></div></div>
2141
2149
  </div><!-- fragment -->
2142
2150
  </div>
2143
2151
  </div>
@@ -2167,9 +2175,9 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2167
2175
  </table>
2168
2176
  </div><div class="memdoc">
2169
2177
 
2170
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00645">645</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2171
- <div class="fragment"><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; {</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="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="l00648"></a><span class="lineno"> 648</span>&#160; assert(mem &amp;&amp; <span class="stringliteral">&quot;memory object is null??&quot;</span>);</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="keywordflow">return</span> mem-&gt;isArray();</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</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#l00774">DDAVFSolver.h:774</a></div></div>
2178
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00641">641</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2179
+ <div class="fragment"><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; {</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</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="l00644"></a><span class="lineno"> 644</span>&#160; assert(mem &amp;&amp; <span class="stringliteral">&quot;memory object is null??&quot;</span>);</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">return</span> mem-&gt;isArray();</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</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>
2180
+ <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#l00770">DDAVFSolver.h:770</a></div></div>
2173
2181
  <div class="ttc" id="classSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00365">SVFIR.h:365</a></div></div>
2174
2182
  </div><!-- fragment -->
2175
2183
  </div>
@@ -2200,8 +2208,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2200
2208
  </table>
2201
2209
  </div><div class="memdoc">
2202
2210
 
2203
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00540">540</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2204
- <div class="fragment"><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; {</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">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="l00543"></a><span class="lineno"> 543</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#l00781">DDAVFSolver.h:781</a></div></div>
2211
+ <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>
2212
+ <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">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="l00542"></a><span class="lineno"> 542</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#l00777">DDAVFSolver.h:777</a></div></div>
2205
2213
  </div><!-- fragment -->
2206
2214
  </div>
2207
2215
  </div>
@@ -2231,10 +2239,10 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2231
2239
  </table>
2232
2240
  </div><div class="memdoc">
2233
2241
 
2234
- <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>
2235
- <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; <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="l00654"></a><span class="lineno"> 654</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="l00655"></a><span class="lineno"> 655</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#l00431">SVFIR.h:431</a></div></div>
2242
+ <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>
2243
+ <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; <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="l00650"></a><span class="lineno"> 650</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="l00651"></a><span class="lineno"> 651</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#l00431">SVFIR.h:431</a></div></div>
2236
2244
  <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#l00774">DDAVFSolver.h:774</a></div></div>
2245
+ <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#l00770">DDAVFSolver.h:770</a></div></div>
2238
2246
  <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#l00457">SymbolTableInfo.cpp:457</a></div></div>
2239
2247
  </div><!-- fragment -->
2240
2248
  </div>
@@ -2279,9 +2287,9 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2279
2287
 
2280
2288
  <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
2289
 
2282
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00638">638</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2283
- <div class="fragment"><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; {</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <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="l00641"></a><span class="lineno"> 641</span>&#160; assert(mem &amp;&amp; <span class="stringliteral">&quot;memory object is null??&quot;</span>);</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">return</span> mem-&gt;isHeap();</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</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#l00774">DDAVFSolver.h:774</a></div></div>
2290
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00634">634</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2291
+ <div class="fragment"><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; {</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</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="l00637"></a><span class="lineno"> 637</span>&#160; assert(mem &amp;&amp; <span class="stringliteral">&quot;memory object is null??&quot;</span>);</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <span class="keywordflow">return</span> mem-&gt;isHeap();</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</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>
2292
+ <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#l00770">DDAVFSolver.h:770</a></div></div>
2285
2293
  <div class="ttc" id="classSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00365">SVFIR.h:365</a></div></div>
2286
2294
  </div><!-- fragment -->
2287
2295
  </div>
@@ -2314,13 +2322,13 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2314
2322
 
2315
2323
  <p>Whether a local variable is in function recursions. </p>
2316
2324
 
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#a350ae9bf8606bdfe23c8679681b969dc">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> SVFFunction* svffun = <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#a79b35a312248e96a89a28cbf1b99b6fe">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="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="l00476"></a><span class="lineno"> 476</span>&#160; }</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; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</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#l00779">DDAVFSolver.h:779</a></div></div>
2325
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00465">465</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2326
+ <div class="fragment"><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">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="l00468"></a><span class="lineno"> 468</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="l00469"></a><span class="lineno"> 469</span>&#160; assert(obj &amp;&amp; <span class="stringliteral">&quot;object not found!!&quot;</span>);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">if</span>(obj-&gt;isStack())</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>(<span class="keyword">const</span> SVFFunction* svffun = <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#a79b35a312248e96a89a28cbf1b99b6fe">getFunction</a>())</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; <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="l00475"></a><span class="lineno"> 475</span>&#160; }</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; }</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</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#l00775">DDAVFSolver.h:775</a></div></div>
2319
2327
  <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
2328
  <div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
2321
2329
  <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
- <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#l00778">DDAVFSolver.h:778</a></div></div>
2323
- <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#l00774">DDAVFSolver.h:774</a></div></div>
2330
+ <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#l00774">DDAVFSolver.h:774</a></div></div>
2331
+ <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#l00770">DDAVFSolver.h:770</a></div></div>
2324
2332
  <div class="ttc" id="classSVF_1_1SVFVar_html_a79b35a312248e96a89a28cbf1b99b6fe"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a79b35a312248e96a89a28cbf1b99b6fe">SVF::SVFVar::getFunction</a></div><div class="ttdeci">virtual const SVFFunction * getFunction() const</div><div class="ttdoc">Return the function that this SVFVar resides in. Return nullptr if it is a global or constantexpr nod...</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00127">SVFVariables.h:127</a></div></div>
2325
2333
  <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00171">GenericGraph.h:171</a></div></div>
2326
2334
  <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>
@@ -2367,8 +2375,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2367
2375
 
2368
2376
  <p>whether load and store are aliased </p>
2369
2377
 
2370
- <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>
2371
- <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 -->
2378
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00443">443</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2379
+ <div class="fragment"><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div></div><!-- fragment -->
2372
2380
  </div>
2373
2381
  </div>
2374
2382
  <a id="a0b1f774883adc7d535f8363bf3c8b1e8"></a>
@@ -2397,8 +2405,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2397
2405
  </table>
2398
2406
  </div><div class="memdoc">
2399
2407
 
2400
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00740">740</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2401
- <div class="fragment"><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; {</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</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="l00743"></a><span class="lineno"> 743</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#l00787">DDAVFSolver.h:787</a></div></div>
2408
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00736">736</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2409
+ <div class="fragment"><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; {</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="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="l00739"></a><span class="lineno"> 739</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#l00783">DDAVFSolver.h:783</a></div></div>
2402
2410
  </div><!-- fragment -->
2403
2411
  </div>
2404
2412
  </div>
@@ -2427,8 +2435,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2427
2435
  </table>
2428
2436
  </div><div class="memdoc">
2429
2437
 
2430
- <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>
2431
- <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">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a>;</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</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#l00773">DDAVFSolver.h:773</a></div></div>
2438
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00728">728</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2439
+ <div class="fragment"><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; {</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a>;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</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#l00769">DDAVFSolver.h:769</a></div></div>
2432
2440
  </div><!-- fragment -->
2433
2441
  </div>
2434
2442
  </div>
@@ -2471,11 +2479,11 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2471
2479
  <p>Return TRUE if this is a strong update STORE statement. </p>
2472
2480
  <p>Find the unique element in cpts </p>
2473
2481
 
2474
- <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>
2475
- <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#l00651">DDAVFSolver.h:651</a></div></div>
2476
- <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>
2477
- <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#l00645">DDAVFSolver.h:645</a></div></div>
2478
- <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#l00638">DDAVFSolver.h:638</a></div></div>
2482
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00448">448</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2483
+ <div class="fragment"><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; {</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">if</span> (dstCPSet.count() == 1)</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; {</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keyword">typename</span> CPtSet::iterator it = dstCPSet.begin();</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keyword">const</span> CVar&amp; var = *it;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</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="l00456"></a><span class="lineno"> 456</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="l00457"></a><span class="lineno"> 457</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="l00458"></a><span class="lineno"> 458</span>&#160; {</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; }</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; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</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#l00647">DDAVFSolver.h:647</a></div></div>
2484
+ <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#l00465">DDAVFSolver.h:465</a></div></div>
2485
+ <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#l00641">DDAVFSolver.h:641</a></div></div>
2486
+ <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#l00634">DDAVFSolver.h:634</a></div></div>
2479
2487
  </div><!-- fragment -->
2480
2488
  </div>
2481
2489
  </div>
@@ -2507,8 +2515,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2507
2515
 
2508
2516
  <p>Return whether this SVFGNode is in cycle. </p>
2509
2517
 
2510
- <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>
2511
- <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="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="l00620"></a><span class="lineno"> 620</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#l00780">DDAVFSolver.h:780</a></div></div>
2518
+ <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>
2519
+ <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#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(node-&gt;getId());</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</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#l00776">DDAVFSolver.h:776</a></div></div>
2512
2520
  <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>
2513
2521
  </div><!-- fragment -->
2514
2522
  </div>
@@ -2541,8 +2549,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2541
2549
 
2542
2550
  <p>Whether this is a top-level pointer statement. </p>
2543
2551
 
2544
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00580">580</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2545
- <div class="fragment"><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; {</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;StoreSVFGNode&gt;(stmt) || SVFUtil::isa&lt;MRSVFGNode&gt;(stmt))</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; }</div></div><!-- fragment -->
2552
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00579">579</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2553
+ <div class="fragment"><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; {</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">return</span> !SVFUtil::isa&lt;StoreSVFGNode, MRSVFGNode&gt;(stmt);</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; }</div></div><!-- fragment -->
2546
2554
  </div>
2547
2555
  </div>
2548
2556
  <a id="a7112ce6145be0855f8b035bb0d8a331c"></a>
@@ -2573,8 +2581,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2573
2581
 
2574
2582
  <p>Visited flags to avoid cycles. </p>
2575
2583
 
2576
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00536">536</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2577
- <div class="fragment"><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; {</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.insert(dpm);</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</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#l00781">DDAVFSolver.h:781</a></div></div>
2584
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00535">535</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2585
+ <div class="fragment"><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; {</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">backwardVisited</a>.insert(dpm);</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</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#l00777">DDAVFSolver.h:777</a></div></div>
2578
2586
  </div><!-- fragment -->
2579
2587
  </div>
2580
2588
  </div>
@@ -2605,11 +2613,11 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2605
2613
 
2606
2614
  <p>Reset visited map if the current query is out-of-budget. </p>
2607
2615
 
2608
- <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>
2609
- <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#l00740">DDAVFSolver.h:740</a></div></div>
2616
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00330">330</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2617
+ <div class="fragment"><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; {</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</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="l00333"></a><span class="lineno"> 333</span>&#160; {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</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="l00335"></a><span class="lineno"> 335</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="l00336"></a><span class="lineno"> 336</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="l00337"></a><span class="lineno"> 337</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">clearbkVisited</a>(*dit);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div><div class="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#l00736">DDAVFSolver.h:736</a></div></div>
2610
2618
  <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>
2611
- <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#l00544">DDAVFSolver.h:544</a></div></div>
2612
- <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#l00784">DDAVFSolver.h:784</a></div></div>
2619
+ <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#l00543">DDAVFSolver.h:543</a></div></div>
2620
+ <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#l00780">DDAVFSolver.h:780</a></div></div>
2613
2621
  </div><!-- fragment -->
2614
2622
  </div>
2615
2623
  </div>
@@ -2695,8 +2703,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2695
2703
 
2696
2704
  <p>Reimplemented in <a class="el" href="classSVF_1_1ContextDDA.html#a45d7a381fec0692b4d2f7d0eec47ccf1">SVF::ContextDDA</a>.</p>
2697
2705
 
2698
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00482">482</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2699
- <div class="fragment"><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; {</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="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="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</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>
2706
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00481">481</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2707
+ <div class="fragment"><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; {</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</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="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</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>
2700
2708
  </div><!-- fragment -->
2701
2709
  </div>
2702
2710
  </div>
@@ -2731,14 +2739,14 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2731
2739
  <p>callgraph scc detection for local variable in recursion</p>
2732
2740
  <p>re-compute for transitive closures </p>
2733
2741
 
2734
- <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>
2735
- <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#l00779">DDAVFSolver.h:779</a></div></div>
2742
+ <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>
2743
+ <div class="fragment"><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVFGEdgeSet</a> newIndirectEdges;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</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="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</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="l00256"></a><span class="lineno"> 256</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="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a637dddedd96942d56de6fd6d10c09169">updateCallGraphAndSVFG</a>(dpm, (*it),newIndirectEdges);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">if</span>(!newIndirectEdges.empty())</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</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="l00262"></a><span class="lineno"> 262</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="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVFGEdgeSet</a> edgeSet(dpm.getLoc()-&gt;getOutEdges());</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</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="l00267"></a><span class="lineno"> 267</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#l00775">DDAVFSolver.h:775</a></div></div>
2736
2744
  <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>
2737
2745
  <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>
2738
- <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>
2746
+ <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#l00270">DDAVFSolver.h:270</a></div></div>
2739
2747
  <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#l00340">SVFIR.h:340</a></div></div>
2740
- <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#l00531">DDAVFSolver.h:531</a></div></div>
2741
- <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#l00774">DDAVFSolver.h:774</a></div></div>
2748
+ <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#l00530">DDAVFSolver.h:530</a></div></div>
2749
+ <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#l00770">DDAVFSolver.h:770</a></div></div>
2742
2750
  <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#l00330">SVFIR.h:330</a></div></div>
2743
2751
  <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>
2744
2752
  </div><!-- fragment -->
@@ -2789,9 +2797,9 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2789
2797
  <p>Traverse along out edges to find all nodes which may be affected by locDPM. </p>
2790
2798
  <p>Only collect nodes we have traversed </p>
2791
2799
 
2792
- <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>
2793
- <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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="SVFType_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#l00789">DDAVFSolver.h:789</a></div></div>
2794
- <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#l00660">DDAVFSolver.h:660</a></div></div>
2800
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00270">270</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2801
+ <div class="fragment"><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <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="l00273"></a><span class="lineno"> 273</span>&#160; {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>* edge = *it;</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#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* dst = edge-&gt;getDstNode();</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</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="l00278"></a><span class="lineno"> 278</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="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</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="l00281"></a><span class="lineno"> 281</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="l00282"></a><span class="lineno"> 282</span>&#160; {</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">const</span> DPIm&amp; dstDpm = *it;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</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="l00285"></a><span class="lineno"> 285</span>&#160; {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">if</span>(dstDpm.getCurNodeID() == dpm.getCurNodeID())</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; {</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="SVFType_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="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">clearbkVisited</a>(dstDpm);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(dstDpm);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">if</span>(indirectCall)</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="l00301"></a><span class="lineno"> 301</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, dpm.dump());</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="SVFType_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="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa7e5839c5bc6f913561de10bce61e74b">clearbkVisited</a>(dstDpm);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(dstDpm);</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</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="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#l00785">DDAVFSolver.h:785</a></div></div>
2802
+ <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#l00656">DDAVFSolver.h:656</a></div></div>
2795
2803
  <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>
2796
2804
  <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>
2797
2805
  <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>
@@ -2799,7 +2807,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2799
2807
  <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>
2800
2808
  <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>
2801
2809
  <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>
2802
- <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#l00544">DDAVFSolver.h:544</a></div></div>
2810
+ <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#l00543">DDAVFSolver.h:543</a></div></div>
2803
2811
  <div class="ttc" id="SVFType_8h_html_a6c9e2209a2c38607a9e3b7fab242886a"><div class="ttname"><a href="SVFType_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a></div><div class="ttdeci">#define DOSTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00420">SVFType.h:420</a></div></div>
2804
2812
  <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00419">SVFType.h:419</a></div></div>
2805
2813
  <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>
@@ -2832,8 +2840,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2832
2840
  </table>
2833
2841
  </div><div class="memdoc">
2834
2842
 
2835
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00672">672</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2836
- <div class="fragment"><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; {</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; 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="l00675"></a><span class="lineno"> 675</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="l00676"></a><span class="lineno"> 676</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#l00784">DDAVFSolver.h:784</a></div></div>
2843
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00668">668</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2844
+ <div class="fragment"><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; {</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; 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="l00671"></a><span class="lineno"> 671</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="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#l00780">DDAVFSolver.h:780</a></div></div>
2837
2845
  </div><!-- fragment -->
2838
2846
  </div>
2839
2847
  </div>
@@ -2864,14 +2872,14 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2864
2872
 
2865
2873
  <p>Reset visited map for next points-to query. </p>
2866
2874
 
2867
- <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>
2868
- <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#l00789">DDAVFSolver.h:789</a></div></div>
2869
- <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>
2875
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00318">318</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2876
+ <div class="fragment"><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; {</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a>)</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ab60c701f1881d88aa4440991fb972638">OOBResetVisited</a>();</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#aa724698d499615bce7caf8f312b746a7">locToDpmSetMap</a>.clear();</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a9d8959dfee05685cd74d0d7a78069692">dpmToloadDpmMap</a>.clear();</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a6d62420837fe0c7814fc4da68a91eda4">loadToPTCVarMap</a>.clear();</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</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="l00328"></a><span class="lineno"> 328</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#l00785">DDAVFSolver.h:785</a></div></div>
2877
+ <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#l00330">DDAVFSolver.h:330</a></div></div>
2870
2878
  <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>
2871
- <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#l00786">DDAVFSolver.h:786</a></div></div>
2872
- <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#l00785">DDAVFSolver.h:785</a></div></div>
2873
- <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#l00773">DDAVFSolver.h:773</a></div></div>
2874
- <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#l00784">DDAVFSolver.h:784</a></div></div>
2879
+ <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#l00782">DDAVFSolver.h:782</a></div></div>
2880
+ <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#l00781">DDAVFSolver.h:781</a></div></div>
2881
+ <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#l00769">DDAVFSolver.h:769</a></div></div>
2882
+ <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#l00780">DDAVFSolver.h:780</a></div></div>
2875
2883
  </div><!-- fragment -->
2876
2884
  </div>
2877
2885
  </div>
@@ -2904,18 +2912,18 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2904
2912
  <p>resolve function pointer </p>
2905
2913
  <p>use pre-analysis call graph to approximate all potential callsites </p>
2906
2914
 
2907
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00489">489</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2908
- <div class="fragment"><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; {</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="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="l00492"></a><span class="lineno"> 492</span>&#160; {</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</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="l00494"></a><span class="lineno"> 494</span>&#160; {</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">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="l00496"></a><span class="lineno"> 496</span>&#160; DPIm funPtrDpm(dpm);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</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="l00498"></a><span class="lineno"> 498</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(funPtrDpm);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; }</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; }</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="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="l00502"></a><span class="lineno"> 502</span>&#160; {</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ac227096ad71dfda8bc48c139fccb3af2">CallInstSet</a> csSet;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</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="l00506"></a><span class="lineno"> 506</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="l00507"></a><span class="lineno"> 507</span>&#160; {</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">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="l00509"></a><span class="lineno"> 509</span>&#160; DPIm funPtrDpm(dpm);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</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="l00511"></a><span class="lineno"> 511</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(funPtrDpm);</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; }</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; }</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; }</div><div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
2909
- <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>
2915
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00488">488</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
2916
+ <div class="fragment"><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; {</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="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="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>(<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="l00493"></a><span class="lineno"> 493</span>&#160; {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">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="l00495"></a><span class="lineno"> 495</span>&#160; DPIm funPtrDpm(dpm);</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</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="l00497"></a><span class="lineno"> 497</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(funPtrDpm);</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; }</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; }</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</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="l00501"></a><span class="lineno"> 501</span>&#160; {</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ac227096ad71dfda8bc48c139fccb3af2">CallInstSet</a> csSet;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</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="l00505"></a><span class="lineno"> 505</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="l00506"></a><span class="lineno"> 506</span>&#160; {</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">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="l00508"></a><span class="lineno"> 508</span>&#160; DPIm funPtrDpm(dpm);</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</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="l00510"></a><span class="lineno"> 510</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(funPtrDpm);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; }</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; }</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; }</div><div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
2917
+ <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#l00341">DDAVFSolver.h:341</a></div></div>
2910
2918
  <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#l00336">SVFIR.h:336</a></div></div>
2911
2919
  <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>
2912
2920
  <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>
2913
2921
  <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#l00249">PTACallGraph.cpp:249</a></div></div>
2914
- <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#l00774">DDAVFSolver.h:774</a></div></div>
2922
+ <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#l00770">DDAVFSolver.h:770</a></div></div>
2915
2923
  <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>
2916
2924
  <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#l00324">SVFIR.h:324</a></div></div>
2917
2925
  <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>
2918
- <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#l00776">DDAVFSolver.h:776</a></div></div>
2926
+ <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#l00772">DDAVFSolver.h:772</a></div></div>
2919
2927
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00395">GenericGraph.h:395</a></div></div>
2920
2928
  </div><!-- fragment -->
2921
2929
  </div>
@@ -2958,12 +2966,12 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2958
2966
 
2959
2967
  <p>remove strong updates num if the dpm goes to weak updates branch </p>
2960
2968
 
2961
- <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>
2962
- <div class="fragment"><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; {</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</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="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">if</span> (dpmSet.erase(dpm))</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; {</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</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="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keywordflow">if</span>(dpmSet.empty())</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</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="l00770"></a><span class="lineno"> 770</span>&#160; }</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</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#l00789">DDAVFSolver.h:789</a></div></div>
2969
+ <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>
2970
+ <div class="fragment"><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; {</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</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="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keywordflow">if</span> (dpmSet.erase(dpm))</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; {</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</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="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keywordflow">if</span>(dpmSet.empty())</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</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="l00766"></a><span class="lineno"> 766</span>&#160; }</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</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#l00785">DDAVFSolver.h:785</a></div></div>
2963
2971
  <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#l00724">SparseBitVector.h:724</a></div></div>
2964
2972
  <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>
2965
2973
  <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>
2966
- <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#l00788">DDAVFSolver.h:788</a></div></div>
2974
+ <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#l00784">DDAVFSolver.h:784</a></div></div>
2967
2975
  <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>
2968
2976
  </div><!-- fragment -->
2969
2977
  </div>
@@ -2996,8 +3004,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
2996
3004
 
2997
3005
  <p>Set callgraph. </p>
2998
3006
 
2999
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00627">627</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3000
- <div class="fragment"><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; {</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">_callGraph</a> = cg;</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</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#l00778">DDAVFSolver.h:778</a></div></div>
3007
+ <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>
3008
+ <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; <a class="code" href="classSVF_1_1DDAVFSolver.html#abf24080617c6a74abed9f0bb0bc9c0c5">_callGraph</a> = cg;</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</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#l00774">DDAVFSolver.h:774</a></div></div>
3001
3009
  </div><!-- fragment -->
3002
3010
  </div>
3003
3011
  </div>
@@ -3029,8 +3037,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3029
3037
 
3030
3038
  <p>Set callgraphSCC. </p>
3031
3039
 
3032
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00632">632</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3033
- <div class="fragment"><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; {</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a4c307d486756daa1e79595b1e9edc40a">_callGraphSCC</a> = scc;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</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#l00779">DDAVFSolver.h:779</a></div></div>
3040
+ <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>
3041
+ <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#a4c307d486756daa1e79595b1e9edc40a">_callGraphSCC</a> = scc;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</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#l00775">DDAVFSolver.h:775</a></div></div>
3034
3042
  </div><!-- fragment -->
3035
3043
  </div>
3036
3044
  </div>
@@ -3062,8 +3070,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3062
3070
 
3063
3071
  <p>Set <a class="el" href="classSVF_1_1DDAStat.html">DDAStat</a>. </p>
3064
3072
 
3065
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00747">747</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3066
- <div class="fragment"><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; {</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a> = s;</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</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#l00789">DDAVFSolver.h:789</a></div></div>
3073
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00743">743</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3074
+ <div class="fragment"><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; {</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a> = s;</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</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#l00785">DDAVFSolver.h:785</a></div></div>
3067
3075
  </div><!-- fragment -->
3068
3076
  </div>
3069
3077
  </div>
@@ -3104,11 +3112,11 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3104
3112
  </div><div class="memdoc">
3105
3113
  <p>Backward traverse for top-level pointers of load/store statements </p>
3106
3114
 
3107
- <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>
3108
- <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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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>
3109
- <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>
3115
+ <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>
3116
+ <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#a3ce49be3724e1e8423ccdfa726fbf6c8">LoadSVFGNode</a>* load = SVFUtil::cast&lt;LoadSVFGNode&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>* loadSrc = <a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(load-&gt;getPAGSrcNode());</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="l00391"></a><span class="lineno"> 391</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="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>(loadSrc,load,<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,load-&gt;getPAGSrcNodeID(),oldDpm,edge);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</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>
3117
+ <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#l00341">DDAVFSolver.h:341</a></div></div>
3110
3118
  <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>
3111
- <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>
3119
+ <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#l00420">DDAVFSolver.h:420</a></div></div>
3112
3120
  <div class="ttc" id="SVFType_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00430">SVFType.h:430</a></div></div>
3113
3121
  <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>
3114
3122
  <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#l00919">VFG.cpp:919</a></div></div>
@@ -3155,11 +3163,11 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3155
3163
  </table>
3156
3164
  </div><div class="memdoc">
3157
3165
 
3158
- <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>
3159
- <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="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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>
3160
- <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>
3166
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00397">397</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3167
+ <div class="fragment"><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="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="l00400"></a><span class="lineno"> 400</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="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_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="l00402"></a><span class="lineno"> 402</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="l00403"></a><span class="lineno"> 403</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="l00404"></a><span class="lineno"> 404</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;Edge not found!!&quot;</span>);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</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="l00406"></a><span class="lineno"> 406</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>
3168
+ <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#l00341">DDAVFSolver.h:341</a></div></div>
3161
3169
  <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>
3162
- <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>
3170
+ <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#l00420">DDAVFSolver.h:420</a></div></div>
3163
3171
  <div class="ttc" id="SVFType_8h_html_a40845b3027a1237076aa8297ca39e730"><div class="ttname"><a href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a></div><div class="ttdeci">#define DDDA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00430">SVFType.h:430</a></div></div>
3164
3172
  <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>
3165
3173
  <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>
@@ -3197,10 +3205,10 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3197
3205
 
3198
3206
  <p><a class="el" href="classSVF_1_1SVFG.html">SVFG</a> SCC detection. </p>
3199
3207
 
3200
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00603">603</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3201
- <div class="fragment"><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; {</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="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="l00606"></a><span class="lineno"> 606</span>&#160; {</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</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="l00608"></a><span class="lineno"> 608</span>&#160; }</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</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="l00610"></a><span class="lineno"> 610</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>
3208
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00599">599</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3209
+ <div class="fragment"><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; {</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <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="l00602"></a><span class="lineno"> 602</span>&#160; {</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</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="l00604"></a><span class="lineno"> 604</span>&#160; }</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</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="l00606"></a><span class="lineno"> 606</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>
3202
3210
  <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>
3203
- <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#l00780">DDAVFSolver.h:780</a></div></div>
3211
+ <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#l00776">DDAVFSolver.h:776</a></div></div>
3204
3212
  <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>
3205
3213
  </div><!-- fragment -->
3206
3214
  </div>
@@ -3231,11 +3239,11 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3231
3239
  </table>
3232
3240
  </div><div class="memdoc">
3233
3241
 
3234
- <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>
3235
- <div class="fragment"><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; {</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</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="l00728"></a><span class="lineno"> 728</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="l00729"></a><span class="lineno"> 729</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</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="l00731"></a><span class="lineno"> 731</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#l00789">DDAVFSolver.h:789</a></div></div>
3242
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00721">721</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3243
+ <div class="fragment"><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; {</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</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="l00724"></a><span class="lineno"> 724</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="l00725"></a><span class="lineno"> 725</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</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="l00727"></a><span class="lineno"> 727</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#l00785">DDAVFSolver.h:785</a></div></div>
3236
3244
  <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>
3237
- <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#l00740">DDAVFSolver.h:740</a></div></div>
3238
- <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#l00773">DDAVFSolver.h:773</a></div></div>
3245
+ <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#l00736">DDAVFSolver.h:736</a></div></div>
3246
+ <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#l00769">DDAVFSolver.h:769</a></div></div>
3239
3247
  </div><!-- fragment -->
3240
3248
  </div>
3241
3249
  </div>
@@ -3322,9 +3330,9 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3322
3330
  <p>Reimplemented in <a class="el" href="classSVF_1_1FlowDDA.html#a3d08dfe5a1571f5d631afcd304905a05">SVF::FlowDDA</a>.</p>
3323
3331
 
3324
3332
  <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>
3325
- <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#l00580">DDAVFSolver.h:580</a></div></div>
3326
- <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#l00782">DDAVFSolver.h:782</a></div></div>
3327
- <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#l00783">DDAVFSolver.h:783</a></div></div>
3333
+ <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#l00579">DDAVFSolver.h:579</a></div></div>
3334
+ <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#l00778">DDAVFSolver.h:778</a></div></div>
3335
+ <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#l00779">DDAVFSolver.h:779</a></div></div>
3328
3336
  </div><!-- fragment -->
3329
3337
  </div>
3330
3338
  </div>
@@ -3364,13 +3372,13 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3364
3372
  </table>
3365
3373
  </div><div class="memdoc">
3366
3374
 
3367
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00560">560</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3368
- <div class="fragment"><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; {</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</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="l00563"></a><span class="lineno"> 563</span>&#160; {</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <a class="code" href="SVFType_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>(<span class="keyword">true</span>));</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a8c5220108a65fa281959529cb1e9cc57">reCompute</a>(dpm);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <a class="code" href="SVFType_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>(<span class="keyword">true</span>) - start);</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; }</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</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#l00789">DDAVFSolver.h:789</a></div></div>
3375
+ <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>
3376
+ <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> (<a class="code" href="classSVF_1_1DDAVFSolver.html#a99764ee5bc19378795fe464e9036e78b">unionDDAPts</a>(dpm, pts))</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; {</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <a class="code" href="SVFType_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>(<span class="keyword">true</span>));</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#a8c5220108a65fa281959529cb1e9cc57">reCompute</a>(dpm);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <a class="code" href="SVFType_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>(<span class="keyword">true</span>) - start);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; }</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</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#l00785">DDAVFSolver.h:785</a></div></div>
3369
3377
  <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>
3370
3378
  <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>
3371
3379
  <div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
3372
3380
  <div class="ttc" id="SVFType_8h_html_a6c9e2209a2c38607a9e3b7fab242886a"><div class="ttname"><a href="SVFType_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a></div><div class="ttdeci">#define DOSTAT(X)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00420">SVFType.h:420</a></div></div>
3373
- <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>
3381
+ <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#l00249">DDAVFSolver.h:249</a></div></div>
3374
3382
  </div><!-- fragment -->
3375
3383
  </div>
3376
3384
  </div>
@@ -3420,8 +3428,8 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3420
3428
 
3421
3429
  <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>
3422
3430
 
3423
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00531">531</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3424
- <div class="fragment"><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;{}</div></div><!-- fragment -->
3431
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00530">530</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3432
+ <div class="fragment"><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;{}</div></div><!-- fragment -->
3425
3433
  </div>
3426
3434
  </div>
3427
3435
  <h2 class="groupheader">Friends And Related Function Documentation</h2>
@@ -3476,7 +3484,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3476
3484
 
3477
3485
  <p><a class="el" href="classSVF_1_1Andersen.html">Andersen</a>'s analysis. </p>
3478
3486
 
3479
- <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>
3487
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00772">772</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3480
3488
 
3481
3489
  </div>
3482
3490
  </div>
@@ -3504,7 +3512,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3504
3512
 
3505
3513
  <p>CallGraph. </p>
3506
3514
 
3507
- <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>
3515
+ <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>
3508
3516
 
3509
3517
  </div>
3510
3518
  </div>
@@ -3532,7 +3540,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3532
3540
 
3533
3541
  <p>SCC for CallGraph. </p>
3534
3542
 
3535
- <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>
3543
+ <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>
3536
3544
 
3537
3545
  </div>
3538
3546
  </div>
@@ -3560,7 +3568,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3560
3568
 
3561
3569
  <p><a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a>. </p>
3562
3570
 
3563
- <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>
3571
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00770">770</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3564
3572
 
3565
3573
  </div>
3566
3574
  </div>
@@ -3588,7 +3596,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3588
3596
 
3589
3597
  <p><a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
3590
3598
 
3591
- <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>
3599
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00771">771</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3592
3600
 
3593
3601
  </div>
3594
3602
  </div>
@@ -3616,7 +3624,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3616
3624
 
3617
3625
  <p>SCC for <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
3618
3626
 
3619
- <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>
3627
+ <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>
3620
3628
 
3621
3629
  </div>
3622
3630
  </div>
@@ -3644,7 +3652,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3644
3652
 
3645
3653
  <p>visited map during backward traversing </p>
3646
3654
 
3647
- <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>
3655
+ <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>
3648
3656
 
3649
3657
  </div>
3650
3658
  </div>
@@ -3672,7 +3680,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3672
3680
 
3673
3681
  <p>candidate pointers; </p>
3674
3682
 
3675
- <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>
3683
+ <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00773">773</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3676
3684
 
3677
3685
  </div>
3678
3686
  </div>
@@ -3700,7 +3708,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3700
3708
 
3701
3709
  <p>DDA stat. </p>
3702
3710
 
3703
- <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>
3711
+ <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>
3704
3712
 
3705
3713
  </div>
3706
3714
  </div>
@@ -3728,7 +3736,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3728
3736
 
3729
3737
  <p>points-to caching map for address-taken vars </p>
3730
3738
 
3731
- <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>
3739
+ <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>
3732
3740
 
3733
3741
  </div>
3734
3742
  </div>
@@ -3756,7 +3764,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3756
3764
 
3757
3765
  <p>dpms at loads for may/must-alias analysis with stores </p>
3758
3766
 
3759
- <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>
3767
+ <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>
3760
3768
 
3761
3769
  </div>
3762
3770
  </div>
@@ -3784,7 +3792,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3784
3792
 
3785
3793
  <p>points-to caching map for top-level vars </p>
3786
3794
 
3787
- <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>
3795
+ <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>
3788
3796
 
3789
3797
  </div>
3790
3798
  </div>
@@ -3812,7 +3820,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3812
3820
 
3813
3821
  <p>map a load dpm to its cvar pointed by its pointer operand </p>
3814
3822
 
3815
- <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>
3823
+ <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>
3816
3824
 
3817
3825
  </div>
3818
3826
  </div>
@@ -3840,7 +3848,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3840
3848
 
3841
3849
  <p>map location to its dpms </p>
3842
3850
 
3843
- <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>
3851
+ <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>
3844
3852
 
3845
3853
  </div>
3846
3854
  </div>
@@ -3868,7 +3876,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3868
3876
 
3869
3877
  <p>out of budget dpm set </p>
3870
3878
 
3871
- <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>
3879
+ <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>
3872
3880
 
3873
3881
  </div>
3874
3882
  </div>
@@ -3896,7 +3904,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3896
3904
 
3897
3905
  <p>Whether the current query is out of step limits. </p>
3898
3906
 
3899
- <p class="definition">Definition at line <a class="el" href="DDAVFSolver_8h_source.html#l00773">773</a> of file <a class="el" href="DDAVFSolver_8h_source.html">DDAVFSolver.h</a>.</p>
3907
+ <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>
3900
3908
 
3901
3909
  </div>
3902
3910
  </div>
@@ -3924,7 +3932,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3924
3932
 
3925
3933
  <p>map store to set of DPM which have been stong updated there </p>
3926
3934
 
3927
- <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>
3935
+ <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>
3928
3936
 
3929
3937
  </div>
3930
3938
  </div>
@@ -3952,7 +3960,7 @@ template&lt;class CVar, class CPtSet, class DPIm&gt; </div>
3952
3960
 
3953
3961
  <p><a class="el" href="classSVF_1_1SVFG.html">SVFG</a> Builder. </p>
3954
3962
 
3955
- <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>
3963
+ <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>
3956
3964
 
3957
3965
  </div>
3958
3966
  </div>