svf-tools 1.0.620 → 1.0.622

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 (191) hide show
  1. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +7 -2
  2. package/SVF-doxygen/html/html/CFLAlias_8h.html +4 -0
  3. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +19 -10
  4. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/CFLBase_8h_source.html +1 -1
  6. package/SVF-doxygen/html/html/CFLDataBuilder_8h.html +96 -0
  7. package/SVF-doxygen/html/html/CFLDataBuilder_8h_source.html +99 -0
  8. package/SVF-doxygen/html/html/CFLData_8h.html +106 -0
  9. package/SVF-doxygen/html/html/CFLData_8h_source.html +136 -0
  10. package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +7 -7
  11. package/SVF-doxygen/html/html/CFLSolver_8h.html +4 -0
  12. package/SVF-doxygen/html/html/CFLSolver_8h_source.html +22 -16
  13. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
  15. package/SVF-doxygen/html/html/GraphWriter_8cpp_source.html +2 -1
  16. package/SVF-doxygen/html/html/GraphWriter_8h_source.html +2 -1
  17. package/SVF-doxygen/html/html/IntervalValue_8h_source.html +17 -15
  18. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
  21. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/Options_8cpp_source.html +4 -3
  23. package/SVF-doxygen/html/html/Options_8h_source.html +4 -3
  24. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +3 -3
  25. package/SVF-doxygen/html/html/PointsTo_8h_source.html +3 -3
  26. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
  27. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +22 -22
  28. package/SVF-doxygen/html/html/SVFG_8h_source.html +37 -36
  29. package/SVF-doxygen/html/html/SVFValue_8h_source.html +1 -1
  30. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +3 -3
  31. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
  32. package/SVF-doxygen/html/html/WTO_8h_source.html +1 -1
  33. package/SVF-doxygen/html/html/annotated.html +357 -351
  34. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -1
  35. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -1
  36. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +1 -0
  37. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.png +0 -0
  38. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +27 -24
  39. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.png +0 -0
  40. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +2 -1
  41. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.png +0 -0
  42. package/SVF-doxygen/html/html/classSVF_1_1CFLData-members.html +110 -0
  43. package/SVF-doxygen/html/html/classSVF_1_1CFLData.html +1126 -0
  44. package/SVF-doxygen/html/html/classSVF_1_1CFLDataBuilder-members.html +88 -0
  45. package/SVF-doxygen/html/html/classSVF_1_1CFLDataBuilder.html +380 -0
  46. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +48 -39
  47. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.png +0 -0
  48. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +1 -1
  49. package/SVF-doxygen/html/html/classSVF_1_1GraphWriter.html +3 -2
  50. package/SVF-doxygen/html/html/classSVF_1_1HybridData-members.html +89 -0
  51. package/SVF-doxygen/html/html/classSVF_1_1HybridData.html +449 -0
  52. package/SVF-doxygen/html/html/classSVF_1_1IntervalValue-members.html +5 -4
  53. package/SVF-doxygen/html/html/classSVF_1_1IntervalValue.html +32 -0
  54. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +1 -1
  55. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +1 -1
  56. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +45 -44
  57. package/SVF-doxygen/html/html/classSVF_1_1Options.html +28 -2
  58. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias-members.html +281 -0
  59. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.html +828 -0
  60. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.png +0 -0
  61. package/SVF-doxygen/html/html/classSVF_1_1POCRSolver-members.html +98 -0
  62. package/SVF-doxygen/html/html/classSVF_1_1POCRSolver.html +245 -0
  63. package/SVF-doxygen/html/html/classSVF_1_1POCRSolver.png +0 -0
  64. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +2 -1
  65. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.png +0 -0
  66. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +96 -95
  67. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +157 -121
  68. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +116 -115
  69. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +13 -10
  70. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +1 -1
  71. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +2 -2
  72. package/SVF-doxygen/html/html/classes.html +110 -109
  73. package/SVF-doxygen/html/html/dir_ae8aa099e368efaa962140c6624142bc.html +4 -0
  74. package/SVF-doxygen/html/html/fastcluster__dm_8cpp_8inc_source.html +1 -1
  75. package/SVF-doxygen/html/html/files.html +9 -7
  76. package/SVF-doxygen/html/html/functions.html +7 -1
  77. package/SVF-doxygen/html/html/functions_0x7e.html +18 -0
  78. package/SVF-doxygen/html/html/functions_a.html +38 -14
  79. package/SVF-doxygen/html/html/functions_b.html +9 -4
  80. package/SVF-doxygen/html/html/functions_c.html +59 -38
  81. package/SVF-doxygen/html/html/functions_d.html +7 -1
  82. package/SVF-doxygen/html/html/functions_e.html +5 -1
  83. package/SVF-doxygen/html/html/functions_func.html +35 -11
  84. package/SVF-doxygen/html/html/functions_func_0x7e.html +18 -0
  85. package/SVF-doxygen/html/html/functions_func_b.html +8 -3
  86. package/SVF-doxygen/html/html/functions_func_c.html +42 -27
  87. package/SVF-doxygen/html/html/functions_func_e.html +2 -1
  88. package/SVF-doxygen/html/html/functions_func_g.html +20 -7
  89. package/SVF-doxygen/html/html/functions_func_h.html +17 -7
  90. package/SVF-doxygen/html/html/functions_func_i.html +14 -10
  91. package/SVF-doxygen/html/html/functions_func_m.html +3 -2
  92. package/SVF-doxygen/html/html/functions_func_o.html +13 -11
  93. package/SVF-doxygen/html/html/functions_func_p.html +6 -3
  94. package/SVF-doxygen/html/html/functions_func_t.html +4 -0
  95. package/SVF-doxygen/html/html/functions_g.html +22 -9
  96. package/SVF-doxygen/html/html/functions_h.html +15 -5
  97. package/SVF-doxygen/html/html/functions_i.html +24 -15
  98. package/SVF-doxygen/html/html/functions_l.html +5 -5
  99. package/SVF-doxygen/html/html/functions_m.html +2 -1
  100. package/SVF-doxygen/html/html/functions_n.html +3 -3
  101. package/SVF-doxygen/html/html/functions_o.html +23 -21
  102. package/SVF-doxygen/html/html/functions_p.html +23 -20
  103. package/SVF-doxygen/html/html/functions_r.html +3 -5
  104. package/SVF-doxygen/html/html/functions_s.html +16 -13
  105. package/SVF-doxygen/html/html/functions_t.html +12 -2
  106. package/SVF-doxygen/html/html/functions_type_c.html +2 -1
  107. package/SVF-doxygen/html/html/functions_type_d.html +3 -0
  108. package/SVF-doxygen/html/html/functions_type_i.html +2 -1
  109. package/SVF-doxygen/html/html/functions_type_t.html +3 -0
  110. package/SVF-doxygen/html/html/functions_v.html +6 -6
  111. package/SVF-doxygen/html/html/functions_vars.html +7 -1
  112. package/SVF-doxygen/html/html/functions_vars_c.html +3 -0
  113. package/SVF-doxygen/html/html/functions_vars_d.html +3 -0
  114. package/SVF-doxygen/html/html/functions_vars_e.html +3 -0
  115. package/SVF-doxygen/html/html/functions_vars_i.html +4 -0
  116. package/SVF-doxygen/html/html/functions_vars_p.html +6 -0
  117. package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
  118. package/SVF-doxygen/html/html/functions_vars_t.html +3 -0
  119. package/SVF-doxygen/html/html/hierarchy.html +517 -511
  120. package/SVF-doxygen/html/html/namespaceSVF.html +59 -30
  121. package/SVF-doxygen/html/html/namespaceSVF_1_1DOT.html +3 -2
  122. package/SVF-doxygen/html/html/namespacemembers_l.html +3 -0
  123. package/SVF-doxygen/html/html/namespacemembers_type_l.html +3 -0
  124. package/SVF-doxygen/html/html/search/all_0.js +2 -1
  125. package/SVF-doxygen/html/html/search/all_1.js +8 -1
  126. package/SVF-doxygen/html/html/search/all_10.js +11 -8
  127. package/SVF-doxygen/html/html/search/all_11.js +3 -3
  128. package/SVF-doxygen/html/html/search/all_12.js +7 -6
  129. package/SVF-doxygen/html/html/search/all_13.js +8 -5
  130. package/SVF-doxygen/html/html/search/all_15.js +3 -3
  131. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  132. package/SVF-doxygen/html/html/search/all_19.js +6 -0
  133. package/SVF-doxygen/html/html/search/all_2.js +3 -2
  134. package/SVF-doxygen/html/html/search/all_3.js +11 -6
  135. package/SVF-doxygen/html/html/search/all_4.js +2 -1
  136. package/SVF-doxygen/html/html/search/all_5.js +2 -1
  137. package/SVF-doxygen/html/html/search/all_7.js +6 -2
  138. package/SVF-doxygen/html/html/search/all_8.js +5 -2
  139. package/SVF-doxygen/html/html/search/all_9.js +8 -6
  140. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  141. package/SVF-doxygen/html/html/search/all_c.js +4 -3
  142. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  143. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  144. package/SVF-doxygen/html/html/search/all_f.js +5 -5
  145. package/SVF-doxygen/html/html/search/classes_10.js +1 -0
  146. package/SVF-doxygen/html/html/search/classes_2.js +2 -0
  147. package/SVF-doxygen/html/html/search/classes_7.js +2 -1
  148. package/SVF-doxygen/html/html/search/classes_d.js +2 -0
  149. package/SVF-doxygen/html/html/search/files_2.js +2 -0
  150. package/SVF-doxygen/html/html/search/functions_0.js +8 -1
  151. package/SVF-doxygen/html/html/search/functions_1.js +3 -2
  152. package/SVF-doxygen/html/html/search/functions_12.js +2 -1
  153. package/SVF-doxygen/html/html/search/functions_17.js +6 -0
  154. package/SVF-doxygen/html/html/search/functions_2.js +4 -1
  155. package/SVF-doxygen/html/html/search/functions_4.js +1 -1
  156. package/SVF-doxygen/html/html/search/functions_6.js +5 -1
  157. package/SVF-doxygen/html/html/search/functions_7.js +5 -2
  158. package/SVF-doxygen/html/html/search/functions_8.js +2 -1
  159. package/SVF-doxygen/html/html/search/functions_c.js +1 -1
  160. package/SVF-doxygen/html/html/search/functions_e.js +2 -2
  161. package/SVF-doxygen/html/html/search/functions_f.js +1 -0
  162. package/SVF-doxygen/html/html/search/typedefs_11.js +2 -1
  163. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  164. package/SVF-doxygen/html/html/search/typedefs_3.js +1 -0
  165. package/SVF-doxygen/html/html/search/typedefs_7.js +1 -1
  166. package/SVF-doxygen/html/html/search/typedefs_a.js +1 -0
  167. package/SVF-doxygen/html/html/search/variables_0.js +2 -1
  168. package/SVF-doxygen/html/html/search/variables_10.js +2 -0
  169. package/SVF-doxygen/html/html/search/variables_12.js +1 -0
  170. package/SVF-doxygen/html/html/search/variables_13.js +3 -2
  171. package/SVF-doxygen/html/html/search/variables_3.js +1 -0
  172. package/SVF-doxygen/html/html/search/variables_4.js +1 -0
  173. package/SVF-doxygen/html/html/search/variables_5.js +1 -0
  174. package/SVF-doxygen/html/html/search/variables_7.js +1 -1
  175. package/SVF-doxygen/html/html/search/variables_9.js +2 -1
  176. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  177. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  178. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
  179. package/SVF-doxygen/html/html/structSVF_1_1HybridData_1_1TreeNode-members.html +86 -0
  180. package/SVF-doxygen/html/html/structSVF_1_1HybridData_1_1TreeNode.html +255 -0
  181. package/include/AbstractExecution/IntervalValue.h +5 -0
  182. package/include/CFL/CFLAlias.h +34 -0
  183. package/include/CFL/CFLData.h +316 -0
  184. package/include/CFL/CFLDataBuilder.h +91 -0
  185. package/include/CFL/CFLSolver.h +21 -0
  186. package/include/Graphs/SVFG.h +6 -0
  187. package/include/Util/Options.h +1 -0
  188. package/lib/CFL/CFLAlias.cpp +36 -0
  189. package/lib/Util/Options.cpp +5 -0
  190. package/package.json +1 -1
  191. package/tools/CFL/cfl.cpp +2 -0
@@ -82,7 +82,7 @@ $(function() {
82
82
  <div class="ttc" id="classSVF_1_1SparseBitVector_html_a355247d17d1c17b857b4ee572e19b91f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a355247d17d1c17b857b4ee572e19b91f">SVF::SparseBitVector::test_and_set</a></div><div class="ttdeci">bool test_and_set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00768">SparseBitVector.h:768</a></div></div>
83
83
  <div class="ttc" id="classSVF_1_1CoreBitVector_html_a835bf11a1f698942db8e6bdadbbfd1f3"><div class="ttname"><a href="classSVF_1_1CoreBitVector.html#a835bf11a1f698942db8e6bdadbbfd1f3">SVF::CoreBitVector::begin</a></div><div class="ttdeci">const_iterator begin(void) const</div><div class="ttdef"><b>Definition:</b> <a href="CoreBitVector_8cpp_source.html#l00313">CoreBitVector.cpp:313</a></div></div>
84
84
  <div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00181">PointsTo.h:181</a></div></div>
85
- <div class="ttc" id="namespaceSVF_html_a4bddb7dbd28d3c0deb3cd35e48179a36"><div class="ttname"><a href="namespaceSVF.html#a4bddb7dbd28d3c0deb3cd35e48179a36">SVF::operator-</a></div><div class="ttdeci">IntervalValue operator-(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Substract IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00458">IntervalValue.h:458</a></div></div>
85
+ <div class="ttc" id="namespaceSVF_html_a4bddb7dbd28d3c0deb3cd35e48179a36"><div class="ttname"><a href="namespaceSVF.html#a4bddb7dbd28d3c0deb3cd35e48179a36">SVF::operator-</a></div><div class="ttdeci">IntervalValue operator-(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Substract IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00463">IntervalValue.h:463</a></div></div>
86
86
  <div class="ttc" id="classSVF_1_1PointsTo_html_a731a028a2a4ed30e86992652ad71a63f"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a731a028a2a4ed30e86992652ad71a63f">SVF::PointsTo::checkAndRemap</a></div><div class="ttdeci">void checkAndRemap()</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00378">PointsTo.cpp:378</a></div></div>
87
87
  <div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html_a8be3dd8b1e66eac8577bf16b7403c9c5"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">SVF::PointsTo::PointsToIterator::pt</a></div><div class="ttdeci">const PointsTo * pt</div><div class="ttdoc">PointsTo we are iterating over. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00222">PointsTo.h:222</a></div></div>
88
88
  <div class="ttc" id="classSVF_1_1SparseBitVector_html_a112f2ede1240c95f9fe810f2882fab80"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">SVF::SparseBitVector::test</a></div><div class="ttdeci">bool test(unsigned Idx) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00700">SparseBitVector.h:700</a></div></div>
@@ -91,14 +91,14 @@ $(function() {
91
91
  <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#l00716">SparseBitVector.h:716</a></div></div>
92
92
  <div class="ttc" id="classSVF_1_1PointsTo_html_a32b52339998976ec5bdd9f2cc7ed9e3f"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a32b52339998976ec5bdd9f2cc7ed9e3f">SVF::PointsTo::hash</a></div><div class="ttdeci">size_t hash() const</div><div class="ttdoc">Return a hash of this set. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00320">PointsTo.cpp:320</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html_aa90476b4c0e75a256f8ff855f99ca970"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa90476b4c0e75a256f8ff855f99ca970">SVF::PointsTo::PointsToIterator::operator!=</a></div><div class="ttdeci">bool operator!=(const PointsToIterator &amp;rhs) const</div><div class="ttdoc">Inequality: *this != rhs. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00545">PointsTo.cpp:545</a></div></div>
94
- <div class="ttc" id="namespaceSVF_html_aeb5348e052254496cad4e036073c3941"><div class="ttname"><a href="namespaceSVF.html#aeb5348e052254496cad4e036073c3941">SVF::operator &amp;</a></div><div class="ttdeci">IntervalValue operator &amp;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise AND of IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00770">IntervalValue.h:770</a></div></div>
94
+ <div class="ttc" id="namespaceSVF_html_aeb5348e052254496cad4e036073c3941"><div class="ttname"><a href="namespaceSVF.html#aeb5348e052254496cad4e036073c3941">SVF::operator &amp;</a></div><div class="ttdeci">IntervalValue operator &amp;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise AND of IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00775">IntervalValue.h:775</a></div></div>
95
95
  <div class="ttc" id="classSVF_1_1PointsTo_html_a21bc5e2236fdd3cb8c185d8eb142fdac"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a21bc5e2236fdd3cb8c185d8eb142fdac">SVF::PointsTo::~PointsTo</a></div><div class="ttdeci">~PointsTo()</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00055">PointsTo.cpp:55</a></div></div>
96
96
  <div class="ttc" id="classSVF_1_1SparseBitVector_html_a8b481ef53a27a351affecab90310b1ef"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a8b481ef53a27a351affecab90310b1ef">SVF::SparseBitVector::intersectWithComplement</a></div><div class="ttdeci">bool intersectWithComplement(const SparseBitVector &amp;RHS)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00897">SparseBitVector.h:897</a></div></div>
97
97
  <div class="ttc" id="classSVF_1_1SparseBitVector_html_a9f96e6a886fa69e07cda5dbfaed8b7c9"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">SVF::SparseBitVector::count</a></div><div class="ttdeci">unsigned count() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01096">SparseBitVector.h:1096</a></div></div>
98
98
  <div class="ttc" id="classSVF_1_1PointsTo_html_ae349a9ce6a8739925baffd83d1878b0e"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ae349a9ce6a8739925baffd83d1878b0e">SVF::PointsTo::getCurrentBestNodeMapping</a></div><div class="ttdeci">static MappingPtr getCurrentBestNodeMapping()</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00361">PointsTo.cpp:361</a></div></div>
99
99
  <div class="ttc" id="classSVF_1_1PointsTo_html_aa1e773b7abda97441d6ffe39c668d4ec"><div class="ttname"><a href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">SVF::PointsTo::metaSame</a></div><div class="ttdeci">bool metaSame(const PointsTo &amp;pt) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00356">PointsTo.cpp:356</a></div></div>
100
100
  <div class="ttc" id="classSVF_1_1PointsTo_html_a5fd783872908d85e9192f4348ac0b493"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a5fd783872908d85e9192f4348ac0b493">SVF::PointsTo::getNodeMapping</a></div><div class="ttdeci">MappingPtr getNodeMapping() const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00337">PointsTo.cpp:337</a></div></div>
101
- <div class="ttc" id="namespaceSVF_html_abed4354cf0282ae30b8330c0e91008d8"><div class="ttname"><a href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8">SVF::operator|</a></div><div class="ttdeci">IntervalValue operator|(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise OR of IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00797">IntervalValue.h:797</a></div></div>
101
+ <div class="ttc" id="namespaceSVF_html_abed4354cf0282ae30b8330c0e91008d8"><div class="ttname"><a href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8">SVF::operator|</a></div><div class="ttdeci">IntervalValue operator|(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise OR of IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00802">IntervalValue.h:802</a></div></div>
102
102
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
103
103
  <div class="ttc" id="classSVF_1_1PointsTo_html_a888f05fe8da4b95c44226f3c69469c75"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a888f05fe8da4b95c44226f3c69469c75">SVF::PointsTo::operator!=</a></div><div class="ttdeci">bool operator!=(const PointsTo &amp;rhs) const</div><div class="ttdoc">Returns true if either this set or rhs has an element not in the other. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00223">PointsTo.cpp:223</a></div></div>
104
104
  <div class="ttc" id="classSVF_1_1PointsTo_html_af61271fefa574c39f405fdfee59a8b3f"><div class="ttname"><a href="classSVF_1_1PointsTo.html#af61271fefa574c39f405fdfee59a8b3f">SVF::PointsTo::test</a></div><div class="ttdeci">bool test(u32_t n) const</div><div class="ttdoc">Returns true if n is in this set. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00131">PointsTo.cpp:131</a></div></div>
@@ -79,7 +79,7 @@ $(function() {
79
79
  <div class="ttc" id="classSVF_1_1CoreBitVector_html_a624ebc80d138fbf2b015bf557d2891a6"><div class="ttname"><a href="classSVF_1_1CoreBitVector.html#a624ebc80d138fbf2b015bf557d2891a6">SVF::CoreBitVector::iterator</a></div><div class="ttdeci">const_iterator iterator</div><div class="ttdef"><b>Definition:</b> <a href="CoreBitVector_8h_source.html#l00038">CoreBitVector.h:38</a></div></div>
80
80
  <div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html_aea5c1fe642e6cc0ac3243f8a7b3fe613"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aea5c1fe642e6cc0ac3243f8a7b3fe613">SVF::PointsTo::PointsToIterator::atEnd</a></div><div class="ttdeci">bool atEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00552">PointsTo.cpp:552</a></div></div>
81
81
  <div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00181">PointsTo.h:181</a></div></div>
82
- <div class="ttc" id="namespaceSVF_html_a4bddb7dbd28d3c0deb3cd35e48179a36"><div class="ttname"><a href="namespaceSVF.html#a4bddb7dbd28d3c0deb3cd35e48179a36">SVF::operator-</a></div><div class="ttdeci">IntervalValue operator-(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Substract IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00458">IntervalValue.h:458</a></div></div>
82
+ <div class="ttc" id="namespaceSVF_html_a4bddb7dbd28d3c0deb3cd35e48179a36"><div class="ttname"><a href="namespaceSVF.html#a4bddb7dbd28d3c0deb3cd35e48179a36">SVF::operator-</a></div><div class="ttdeci">IntervalValue operator-(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Substract IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00463">IntervalValue.h:463</a></div></div>
83
83
  <div class="ttc" id="CoreBitVector_8h_html"><div class="ttname"><a href="CoreBitVector_8h.html">CoreBitVector.h</a></div></div>
84
84
  <div class="ttc" id="classSVF_1_1PointsTo_html_a731a028a2a4ed30e86992652ad71a63f"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a731a028a2a4ed30e86992652ad71a63f">SVF::PointsTo::checkAndRemap</a></div><div class="ttdeci">void checkAndRemap()</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00378">PointsTo.cpp:378</a></div></div>
85
85
  <div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html_a8be3dd8b1e66eac8577bf16b7403c9c5"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">SVF::PointsTo::PointsToIterator::pt</a></div><div class="ttdeci">const PointsTo * pt</div><div class="ttdoc">PointsTo we are iterating over. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00222">PointsTo.h:222</a></div></div>
@@ -88,7 +88,7 @@ $(function() {
88
88
  <div class="ttc" id="classSVF_1_1PointsTo_html_a32b52339998976ec5bdd9f2cc7ed9e3f"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a32b52339998976ec5bdd9f2cc7ed9e3f">SVF::PointsTo::hash</a></div><div class="ttdeci">size_t hash() const</div><div class="ttdoc">Return a hash of this set. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00320">PointsTo.cpp:320</a></div></div>
89
89
  <div class="ttc" id="SVFType_8h_html"><div class="ttname"><a href="SVFType_8h.html">SVFType.h</a></div></div>
90
90
  <div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html_aa90476b4c0e75a256f8ff855f99ca970"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa90476b4c0e75a256f8ff855f99ca970">SVF::PointsTo::PointsToIterator::operator!=</a></div><div class="ttdeci">bool operator!=(const PointsToIterator &amp;rhs) const</div><div class="ttdoc">Inequality: *this != rhs. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00545">PointsTo.cpp:545</a></div></div>
91
- <div class="ttc" id="namespaceSVF_html_aeb5348e052254496cad4e036073c3941"><div class="ttname"><a href="namespaceSVF.html#aeb5348e052254496cad4e036073c3941">SVF::operator &amp;</a></div><div class="ttdeci">IntervalValue operator &amp;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise AND of IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00770">IntervalValue.h:770</a></div></div>
91
+ <div class="ttc" id="namespaceSVF_html_aeb5348e052254496cad4e036073c3941"><div class="ttname"><a href="namespaceSVF.html#aeb5348e052254496cad4e036073c3941">SVF::operator &amp;</a></div><div class="ttdeci">IntervalValue operator &amp;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise AND of IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00775">IntervalValue.h:775</a></div></div>
92
92
  <div class="ttc" id="classSVF_1_1PointsTo_html_a21bc5e2236fdd3cb8c185d8eb142fdac"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a21bc5e2236fdd3cb8c185d8eb142fdac">SVF::PointsTo::~PointsTo</a></div><div class="ttdeci">~PointsTo()</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00055">PointsTo.cpp:55</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1PointsTo_html_ae349a9ce6a8739925baffd83d1878b0e"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ae349a9ce6a8739925baffd83d1878b0e">SVF::PointsTo::getCurrentBestNodeMapping</a></div><div class="ttdeci">static MappingPtr getCurrentBestNodeMapping()</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00361">PointsTo.cpp:361</a></div></div>
94
94
  <div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html_a79da80a016d68d70b63bcaa884cf53cb"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a79da80a016d68d70b63bcaa884cf53cb">SVF::PointsTo::PointsToIterator::difference_type</a></div><div class="ttdeci">std::ptrdiff_t difference_type</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00186">PointsTo.h:186</a></div></div>
@@ -96,7 +96,7 @@ $(function() {
96
96
  <div class="ttc" id="BitVector_8h_html"><div class="ttname"><a href="BitVector_8h.html">BitVector.h</a></div></div>
97
97
  <div class="ttc" id="classSVF_1_1PointsTo_html_aa1e773b7abda97441d6ffe39c668d4ec"><div class="ttname"><a href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">SVF::PointsTo::metaSame</a></div><div class="ttdeci">bool metaSame(const PointsTo &amp;pt) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00356">PointsTo.cpp:356</a></div></div>
98
98
  <div class="ttc" id="classSVF_1_1PointsTo_html_a5fd783872908d85e9192f4348ac0b493"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a5fd783872908d85e9192f4348ac0b493">SVF::PointsTo::getNodeMapping</a></div><div class="ttdeci">MappingPtr getNodeMapping() const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00337">PointsTo.cpp:337</a></div></div>
99
- <div class="ttc" id="namespaceSVF_html_abed4354cf0282ae30b8330c0e91008d8"><div class="ttname"><a href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8">SVF::operator|</a></div><div class="ttdeci">IntervalValue operator|(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise OR of IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00797">IntervalValue.h:797</a></div></div>
99
+ <div class="ttc" id="namespaceSVF_html_abed4354cf0282ae30b8330c0e91008d8"><div class="ttname"><a href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8">SVF::operator|</a></div><div class="ttdeci">IntervalValue operator|(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise OR of IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00802">IntervalValue.h:802</a></div></div>
100
100
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
101
101
  <div class="ttc" id="classSVF_1_1PointsTo_html_a888f05fe8da4b95c44226f3c69469c75"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a888f05fe8da4b95c44226f3c69469c75">SVF::PointsTo::operator!=</a></div><div class="ttdeci">bool operator!=(const PointsTo &amp;rhs) const</div><div class="ttdoc">Returns true if either this set or rhs has an element not in the other. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00223">PointsTo.cpp:223</a></div></div>
102
102
  <div class="ttc" id="classSVF_1_1PointsTo_html_af61271fefa574c39f405fdfee59a8b3f"><div class="ttname"><a href="classSVF_1_1PointsTo.html#af61271fefa574c39f405fdfee59a8b3f">SVF::PointsTo::test</a></div><div class="ttdeci">bool test(u32_t n) const</div><div class="ttdoc">Returns true if n is in this set. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00131">PointsTo.cpp:131</a></div></div>
@@ -68,7 +68,7 @@ $(function() {
68
68
  <div class="contents">
69
69
  <a href="SVFGOPT_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- SVFGOPT.h -- SVFG optimizer--------------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * @file: SVFGOPT.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * @author: yesen</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * @date: 20/03/2014</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * @version: 1.0</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * @section LICENSE</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * @section DESCRIPTION</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#ifndef SVFGOPT_H_</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#define SVFGOPT_H_</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFG_8h.html">Graphs/SVFG.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="WorkList_8h.html">Util/WorkList.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html"> 56</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFGOPT.html">SVFGOPT</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a07874e1a77bcd5ff593757d202a4edd6"> 58</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;SVFGNode*&gt;</a> <a class="code" href="classSVF_1_1SVFGOPT.html#a07874e1a77bcd5ff593757d202a4edd6">SVFGNodeSet</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a581349a9fc0066945ca4ce9706a81646"> 59</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID, NodeID&gt;</a> <a class="code" href="classSVF_1_1SVFGOPT.html#a581349a9fc0066945ca4ce9706a81646">NodeIDToNodeIDMap</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a3ee399dc45e90a512be7575642855f40"> 60</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList&lt;const MSSAPHISVFGNode*&gt;</a> <a class="code" href="classSVF_1_1SVFGOPT.html#a3ee399dc45e90a512be7575642855f40">WorkList</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a64c300c8a9f8cc2ac13eef65c1108d01"> 64</a></span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#a64c300c8a9f8cc2ac13eef65c1108d01">SVFGOPT</a>(std::unique_ptr&lt;MemSSA&gt; <a class="code" href="classSVF_1_1SVFG.html#aa6a563cab8678b2256ca6ae7838285c8">mssa</a>, <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6">VFGK</a> <a class="code" href="classSVF_1_1VFG.html#a3867c591a231bad0aa2e6ab7c095a42f">kind</a>) : <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>(<a class="code" href="namespacestd.html">std</a>::<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">move</a>(mssa), kind)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">keepAllSelfCycle</a> = <a class="code" href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">keepContextSelfCycle</a> = <a class="code" href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">keepActualOutFormalIn</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#ac9c5f279353ceea5a93dbdf002e3be0c">~SVFGOPT</a>() <span class="keyword">override</span> = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#af0c1bb4055d3c4b7f5c6133c433144ad"> 71</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#af0c1bb4055d3c4b7f5c6133c433144ad">setTokeepActualOutFormalIn</a>()</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; <a class="code" href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">keepActualOutFormalIn</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a99cce24804a9116f9bf4e773b2f28e85"> 75</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a99cce24804a9116f9bf4e773b2f28e85">setTokeepAllSelfCycle</a>()</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; <a class="code" href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">keepAllSelfCycle</a> = <span class="keyword">true</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"><a class="line" href="classSVF_1_1SVFGOPT.html#abe2392e0971f6c46537727f001fa44de"> 79</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#abe2392e0971f6c46537727f001fa44de">setTokeepContextSelfCycle</a>()</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">keepContextSelfCycle</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a788fded648d6d037dc7be4b7796a3e7a">buildSVFG</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a82c28afbba24b90ef0394c9dcd0aae57"> 89</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a82c28afbba24b90ef0394c9dcd0aae57">connectAParamAndFParam</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* cs_arg, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* fun_arg, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>*, <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges)<span class="keyword"> override</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> phiId = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(fun_arg);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1VFG.html#aa01f63b17acdd52122a7f1ade329ccea">addCallEdge</a>(<a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(cs_arg), phiId, csId);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="classSVF_1_1PHIVFGNode.html">PHISVFGNode</a>* phi = SVFUtil::cast&lt;PHISVFGNode&gt;(<a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(phiId));</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#a30a4165300d0b7ac9b31d9f9c496d943">addInterPHIOperands</a>(phi, cs_arg);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; edges.insert(edge);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#ae5648d1248af4e4ce755ee5d32f84a06"> 101</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#ae5648d1248af4e4ce755ee5d32f84a06">connectFRetAndARet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* fun_ret, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* cs_ret, <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges)<span class="keyword"> override</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> phiId = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(cs_ret);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> retdef = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(fun_ret);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a5de67390d38bfacd5b63b776a0ecbfff">isPhiNode</a>(fun_ret)==<span class="keyword">false</span>)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1VFG.html#a27ac8d60de7be75e831b4a28f8f8f1d2">addRetEdge</a>(retdef, phiId, csId);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="classSVF_1_1PHIVFGNode.html">PHISVFGNode</a>* phi = SVFUtil::cast&lt;PHISVFGNode&gt;(<a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(phiId));</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#a30a4165300d0b7ac9b31d9f9c496d943">addInterPHIOperands</a>(phi, fun_ret);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; edges.insert(edge);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a624c36b40fd301d67a71952adf206e47"> 120</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a624c36b40fd301d67a71952adf206e47">connectAInAndFIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* actualIn, <span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>* formalIn, <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges)<span class="keyword"> override</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> intersection = actualIn-&gt;<a class="code" href="classSVF_1_1MRSVFGNode.html#a28fe266d0e4618aa4448aa218495a332">getPointsTo</a>();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; intersection &amp;= formalIn-&gt;<a class="code" href="classSVF_1_1MRSVFGNode.html#a28fe266d0e4618aa4448aa218495a332">getPointsTo</a>();</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span> (intersection.<a class="code" href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">empty</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> aiDef = <a class="code" href="classSVF_1_1SVFGOPT.html#a550f93b640a6fd68773fbafd2944d7df">getActualINDef</a>(actualIn-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1SVFGOPT.html#a11dc712bf74ba61160fed7a5c3efaeee">addCallIndirectSVFGEdge</a>(aiDef,formalIn-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),csId,intersection);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; edges.insert(edge);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#ad88f85a4d5c397b3b6896608ba035bd3"> 133</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#ad88f85a4d5c397b3b6896608ba035bd3">connectFOutAndAOut</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>* formalOut, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* actualOut, <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="code" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a>&amp; edges)<span class="keyword"> override</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> intersection = formalOut-&gt;<a class="code" href="classSVF_1_1MRSVFGNode.html#a28fe266d0e4618aa4448aa218495a332">getPointsTo</a>();</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; intersection &amp;= actualOut-&gt;<a class="code" href="classSVF_1_1MRSVFGNode.html#a28fe266d0e4618aa4448aa218495a332">getPointsTo</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span> (intersection.<a class="code" href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">empty</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> foDef = <a class="code" href="classSVF_1_1SVFGOPT.html#a8d0b44ba9f3e6f9344a10d085d7be2b4">getFormalOUTDef</a>(formalOut-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1SVFGOPT.html#afa99da68ef756d968d39a85f0fac3649">addRetIndirectSVFGEdge</a>(foDef,actualOut-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),csId,intersection);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; edges.insert(edge);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a550f93b640a6fd68773fbafd2944d7df"> 149</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <a class="code" href="classSVF_1_1SVFGOPT.html#a550f93b640a6fd68773fbafd2944d7df">getActualINDef</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> ai)<span class="keyword"> const</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; NodeIDToNodeIDMap::const_iterator it = <a class="code" href="classSVF_1_1SVFGOPT.html#a9741514d915bf7f14787cc346b9d7c98">actualInToDefMap</a>.find(ai);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; assert(it != <a class="code" href="classSVF_1_1SVFGOPT.html#a9741514d915bf7f14787cc346b9d7c98">actualInToDefMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;can not find actual-in&#39;s def&quot;</span>);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a8d0b44ba9f3e6f9344a10d085d7be2b4"> 155</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <a class="code" href="classSVF_1_1SVFGOPT.html#a8d0b44ba9f3e6f9344a10d085d7be2b4">getFormalOUTDef</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> fo)<span class="keyword"> const</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; NodeIDToNodeIDMap::const_iterator it = <a class="code" href="classSVF_1_1SVFGOPT.html#abbd6ac28826b9cc4c4981271393c8b19">formalOutToDefMap</a>.find(fo);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; assert(it != <a class="code" href="classSVF_1_1SVFGOPT.html#abbd6ac28826b9cc4c4981271393c8b19">formalOutToDefMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;can not find formal-out&#39;s def&quot;</span>);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#ac3b14bf191cadb832e3a34affd7e569d">parseSelfCycleHandleOption</a>();</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* <a class="code" href="classSVF_1_1SVFGOPT.html#a11dc712bf74ba61160fed7a5c3efaeee">addCallIndirectSVFGEdge</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> srcId, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dstId, <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csid, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; cpts);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* <a class="code" href="classSVF_1_1SVFGOPT.html#afa99da68ef756d968d39a85f0fac3649">addRetIndirectSVFGEdge</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> srcId, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dstId, <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csid, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; cpts);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a4c698184cc23730fb44904d4048958da">handleInterValueFlow</a>();</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</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="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a1fd6d26203d7d574b5664b8fcae54c1a">replaceFParamARetWithPHI</a>(<a class="code" href="classSVF_1_1PHIVFGNode.html">PHISVFGNode</a>* phi, <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* svfgNode);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#abefe3efa0232106f1843351ff6dd1063">retargetEdgesOfAInFOut</a>(<a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a2285d20f7c4d128a8ede2e7f4f41f798">retargetEdgesOfAOutFIn</a>(<a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a21429d8c3fba209d9cdc22e3623c5573">handleIntraValueFlow</a>();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#ae825e01893d3304379f72380d314f09c"> 202</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#ae825e01893d3304379f72380d314f09c">initialWorkList</a>()</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">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">SVFG::const_iterator</a> it = <a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = <a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it != eit; ++it)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#a72c573ecbc12c44e6ce1d67527f888a8">addIntoWorklist</a>(it-&gt;second);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a72c573ecbc12c44e6ce1d67527f888a8"> 211</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a72c573ecbc12c44e6ce1d67527f888a8">addIntoWorklist</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</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">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSAPHISVFGNode.html">MSSAPHISVFGNode</a>* phi = SVFUtil::dyn_cast&lt;MSSAPHISVFGNode&gt;(node))</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; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFGOPT.html#aa23c967a8fcadbaf47e93a5b3610c84d">isConnectingTwoCallSites</a>(phi) == <span class="keyword">false</span> &amp;&amp; <a class="code" href="classSVF_1_1SVFGOPT.html#a0e78edc04f5e8bfcca7a3f04f7568665">isDefOfAInFOut</a>(phi) == <span class="keyword">false</span>)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a925f39665e13b18dfe66c2dded44c194">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(phi);</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">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a4f3890f637ffe03c2a1981e75e3d2e16">bypassMSSAPHINode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSAPHISVFGNode.html">MSSAPHISVFGNode</a>* node);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFGOPT.html#afb068fd46dfbf993decd7d6c8ca2c9ba">checkSelfCycleEdges</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSAPHISVFGNode.html">MSSAPHISVFGNode</a>* node);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a6aeeb727f1d9d917ff6cffbb88350b7a">addNewSVFGEdge</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> srcId, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dstId, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* preEdge, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* succEdge);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a6d5cdb3b78e4ed482b0da4c64323b463"> 231</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a6d5cdb3b78e4ed482b0da4c64323b463">bothInterEdges</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge1, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge2)<span class="keyword"> const</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordtype">bool</span> inter1 = SVFUtil::isa&lt;CallIndSVFGEdge, RetIndSVFGEdge&gt;(edge1);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordtype">bool</span> inter2 = SVFUtil::isa&lt;CallIndSVFGEdge, RetIndSVFGEdge&gt;(edge2);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> (inter1 &amp;&amp; inter2);</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"><a class="line" href="classSVF_1_1SVFGOPT.html#a30a4165300d0b7ac9b31d9f9c496d943"> 238</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a30a4165300d0b7ac9b31d9f9c496d943">addInterPHIOperands</a>(<a class="code" href="classSVF_1_1PHIVFGNode.html">PHISVFGNode</a>* phi, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* operand)</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; phi-&gt;<a class="code" href="classSVF_1_1PHIVFGNode.html#a36f469a129063b43161a8d1423414ce5">setOpVer</a>(phi-&gt;<a class="code" href="classSVF_1_1PHIVFGNode.html#aa147f43ddf3efac3e0143235ab611cf2">getOpVerNum</a>(), operand);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a374a31b9500ceda00477b03e9702d0a8"> 244</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1InterPHIVFGNode.html">InterPHISVFGNode</a>* <a class="code" href="classSVF_1_1SVFGOPT.html#a374a31b9500ceda00477b03e9702d0a8">addInterPHIForFP</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmSVFGNode</a>* fp)</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; {</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="classSVF_1_1InterPHIVFGNode.html">InterPHISVFGNode</a>* sNode = <span class="keyword">new</span> <a class="code" href="namespaceSVF.html#a0f7ff1d9a479df87241b45bb9c81d3ca">InterPHISVFGNode</a>(<a class="code" href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">totalVFGNode</a>++,fp);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode, <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a0dca4655c2f6112a5be1f921b8e81076">getFunEntryICFGNode</a>(fp-&gt;<a class="code" href="classSVF_1_1FormalParmVFGNode.html#af3039ab67875b177f7ba0bf246cec2f8">getFun</a>()));</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#af504407e6cd42cfe2ea27165ff15df40">resetDef</a>(fp-&gt;<a class="code" href="classSVF_1_1FormalParmVFGNode.html#ab1a9031c1fc5102e072b5035151c131c">getParam</a>(),sNode);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#ad4203fa8afbf0c0a5d6775be937c6e1d"> 252</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1InterPHIVFGNode.html">InterPHISVFGNode</a>* <a class="code" href="classSVF_1_1SVFGOPT.html#ad4203fa8afbf0c0a5d6775be937c6e1d">addInterPHIForAR</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetSVFGNode</a>* ar)</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="classSVF_1_1InterPHIVFGNode.html">InterPHISVFGNode</a>* sNode = <span class="keyword">new</span> <a class="code" href="namespaceSVF.html#a0f7ff1d9a479df87241b45bb9c81d3ca">InterPHISVFGNode</a>(<a class="code" href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">totalVFGNode</a>++,ar);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">addSVFGNode</a>(sNode, <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a881fe977f3a6fde223bd786121e35fcf">getRetICFGNode</a>(ar-&gt;<a class="code" href="classSVF_1_1ActualRetVFGNode.html#a06ea783375c18198b00121214c357c18">getCallSite</a>()-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()));</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#af504407e6cd42cfe2ea27165ff15df40">resetDef</a>(ar-&gt;<a class="code" href="classSVF_1_1ActualRetVFGNode.html#a4bcfddf05da46729c670b4f450f9d606">getRev</a>(),sNode);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#af504407e6cd42cfe2ea27165ff15df40"> 260</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#af504407e6cd42cfe2ea27165ff15df40">resetDef</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; PAGNodeToDefMapTy::iterator it = <a class="code" href="classSVF_1_1VFG.html#ac89b3917ed73ac70aac6205af8f7a4fe">PAGNodeToDefMap</a>.find(pagNode);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; assert(it != <a class="code" href="classSVF_1_1VFG.html#ac89b3917ed73ac70aac6205af8f7a4fe">PAGNodeToDefMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;a SVFIR node doesn&#39;t have definition before&quot;</span>);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; it-&gt;second = node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a490695ab536cd455c531fbdc57499cac"> 269</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a490695ab536cd455c531fbdc57499cac">setActualINDef</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> ai, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> def)</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordtype">bool</span> inserted = <a class="code" href="classSVF_1_1SVFGOPT.html#a9741514d915bf7f14787cc346b9d7c98">actualInToDefMap</a>.emplace(ai, def).second;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; (void)inserted; <span class="comment">// Suppress warning of unused variable under release build</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; assert(inserted &amp;&amp; <span class="stringliteral">&quot;can not set actual-in&#39;s def twice&quot;</span>);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">defNodes</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(def);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div><div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a3e2b811dd939c93bcf9fb94e91d553b1"> 276</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a3e2b811dd939c93bcf9fb94e91d553b1">setFormalOUTDef</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> fo, <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> def)</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordtype">bool</span> inserted = <a class="code" href="classSVF_1_1SVFGOPT.html#abbd6ac28826b9cc4c4981271393c8b19">formalOutToDefMap</a>.emplace(fo, def).second;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; (void) inserted;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; assert(inserted &amp;&amp; <span class="stringliteral">&quot;can not set formal-out&#39;s def twice&quot;</span>);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">defNodes</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(def);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a0e78edc04f5e8bfcca7a3f04f7568665"> 285</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a0e78edc04f5e8bfcca7a3f04f7568665">isDefOfAInFOut</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</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">return</span> <a class="code" href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">defNodes</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">test</a>(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</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;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#af6fa424cd7518b330a6017839a789bf6"> 292</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFGOPT.html#af6fa424cd7518b330a6017839a789bf6">actualInOfIndCS</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a>* ai)<span class="keyword"> const</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>()-&gt;isIndirectCallSites(ai-&gt;<a class="code" href="classSVF_1_1ActualINSVFGNode.html#aab3b2931f60adeb9fd8c87087074d834">getCallSite</a>()));</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"><a class="line" href="classSVF_1_1SVFGOPT.html#a79c435e456474b41e4402c2c9c269fc9"> 296</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a79c435e456474b41e4402c2c9c269fc9">actualOutOfIndCS</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a>* ao)<span class="keyword"> const</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>()-&gt;isIndirectCallSites(ao-&gt;<a class="code" href="classSVF_1_1ActualOUTSVFGNode.html#a89cb274936513df411a75fb33a86702f">getCallSite</a>()));</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a6eeec9fa475316f52689728a1af7bd05"> 304</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a6eeec9fa475316f52689728a1af7bd05">formalInOfAddressTakenFunc</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a>* fi)<span class="keyword"> const</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">return</span> (fi-&gt;<a class="code" href="classSVF_1_1VFGNode.html#ab98e74dfd4756e70e3e3c5b7d5e5ae27">getFun</a>()-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a731b978178937e74c80d2882c429dc9e">hasAddressTaken</a>());</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"><a class="line" href="classSVF_1_1SVFGOPT.html#a86cb63258b49077587d44ba45d023f02"> 308</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a86cb63258b49077587d44ba45d023f02">formalOutOfAddressTakenFunc</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a>* fo)<span class="keyword"> const</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">return</span> (fo-&gt;<a class="code" href="classSVF_1_1VFGNode.html#ab98e74dfd4756e70e3e3c5b7d5e5ae27">getFun</a>()-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a731b978178937e74c80d2882c429dc9e">hasAddressTaken</a>());</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFGOPT.html#aa23c967a8fcadbaf47e93a5b3610c84d">isConnectingTwoCallSites</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node) <span class="keyword">const</span>;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFGOPT.html#ab72ce28409a440bbf5b84a68e5f82b85">canBeRemoved</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a> * node);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#ac15b3c2cb127b17ebad3a30fc04b6f40"> 330</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#ac15b3c2cb127b17ebad3a30fc04b6f40">removeAllEdges</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div><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; <a class="code" href="classSVF_1_1SVFGOPT.html#a5a2fe12411de408dfb57e910e413957f">removeInEdges</a>(node);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#ae85391a5f0828362c61d55e162eef04d">removeOutEdges</a>(node);</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"><a class="line" href="classSVF_1_1SVFGOPT.html#a5a2fe12411de408dfb57e910e413957f"> 335</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a5a2fe12411de408dfb57e910e413957f">removeInEdges</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">while</span> (node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a06a7373b11143e709784de784fa476fe">hasIncomingEdge</a>())</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">removeSVFGEdge</a>(*(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">InEdgeBegin</a>()));</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#ae85391a5f0828362c61d55e162eef04d"> 341</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGOPT.html#ae85391a5f0828362c61d55e162eef04d">removeOutEdges</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">while</span> (node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a0931220d7a38e03f206cbdc6465d32ad">hasOutgoingEdge</a>())</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">removeSVFGEdge</a>(*(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>()));</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a9741514d915bf7f14787cc346b9d7c98"> 349</a></span>&#160; NodeIDToNodeIDMap <a class="code" href="classSVF_1_1SVFGOPT.html#a9741514d915bf7f14787cc346b9d7c98">actualInToDefMap</a>; </div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#abbd6ac28826b9cc4c4981271393c8b19"> 350</a></span>&#160; NodeIDToNodeIDMap <a class="code" href="classSVF_1_1SVFGOPT.html#abbd6ac28826b9cc4c4981271393c8b19">formalOutToDefMap</a>; </div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b"> 351</a></span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">defNodes</a>; </div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a925f39665e13b18dfe66c2dded44c194"> 353</a></span>&#160; WorkList <a class="code" href="classSVF_1_1SVFGOPT.html#a925f39665e13b18dfe66c2dded44c194">worklist</a>; </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"><a class="line" href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d"> 355</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">keepActualOutFormalIn</a>;</div><div class="line"><a name="l00356"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d"> 356</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">keepAllSelfCycle</a>;</div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f"> 357</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">keepContextSelfCycle</a>;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;};</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;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* SVFGOPT_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1SVFGOPT_html_ae85391a5f0828362c61d55e162eef04d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ae85391a5f0828362c61d55e162eef04d">SVF::SVFGOPT::removeOutEdges</a></div><div class="ttdeci">void removeOutEdges(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00341">SVFGOPT.h:341</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00369">GenericGraph.h:369</a></div></div>
71
- <div class="ttc" id="classSVF_1_1SVFG_html_a931d8b82e10a54d68c68cf6bd80264be"><div class="ttname"><a href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">SVF::SVFG::removeSVFGEdge</a></div><div class="ttdeci">void removeSVFGEdge(SVFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00231">SVFG.h:231</a></div></div>
71
+ <div class="ttc" id="classSVF_1_1SVFG_html_a931d8b82e10a54d68c68cf6bd80264be"><div class="ttname"><a href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">SVF::SVFG::removeSVFGEdge</a></div><div class="ttdeci">void removeSVFGEdge(SVFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00237">SVFG.h:237</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1GenericNode_html_a06a7373b11143e709784de784fa476fe"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a06a7373b11143e709784de784fa476fe">SVF::GenericNode::hasIncomingEdge</a></div><div class="ttdeci">bool hasIncomingEdge() const</div><div class="ttdoc">Has incoming/outgoing edge set. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00196">GenericGraph.h:196</a></div></div>
73
73
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a3ee399dc45e90a512be7575642855f40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a3ee399dc45e90a512be7575642855f40">SVF::SVFGOPT::WorkList</a></div><div class="ttdeci">FIFOWorkList&lt; const MSSAPHISVFGNode * &gt; WorkList</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00060">SVFGOPT.h:60</a></div></div>
74
74
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_ad4203fa8afbf0c0a5d6775be937c6e1d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ad4203fa8afbf0c0a5d6775be937c6e1d">SVF::SVFGOPT::addInterPHIForAR</a></div><div class="ttdeci">InterPHISVFGNode * addInterPHIForAR(const ActualRetSVFGNode *ar)</div><div class="ttdoc">Add inter PHI SVFG node for actual return. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00252">SVFGOPT.h:252</a></div></div>
@@ -150,7 +150,7 @@ $(function() {
150
150
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_af6fa424cd7518b330a6017839a789bf6"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#af6fa424cd7518b330a6017839a789bf6">SVF::SVFGOPT::actualInOfIndCS</a></div><div class="ttdeci">bool actualInOfIndCS(const ActualINSVFGNode *ai) const</div><div class="ttdoc">Check if actual-in/actual-out exist at indirect call site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00292">SVFGOPT.h:292</a></div></div>
151
151
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a2285d20f7c4d128a8ede2e7f4f41f798"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a2285d20f7c4d128a8ede2e7f4f41f798">SVF::SVFGOPT::retargetEdgesOfAOutFIn</a></div><div class="ttdeci">void retargetEdgesOfAOutFIn(SVFGNode *node)</div><div class="ttdoc">Connect actual-out/formal-in&amp;#39;s predecessors to their successors directly. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00250">SVFGOPT.cpp:250</a></div></div>
152
152
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_abe2392e0971f6c46537727f001fa44de"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#abe2392e0971f6c46537727f001fa44de">SVF::SVFGOPT::setTokeepContextSelfCycle</a></div><div class="ttdeci">void setTokeepContextSelfCycle()</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00079">SVFGOPT.h:79</a></div></div>
153
- <div class="ttc" id="classSVF_1_1SVFG_html_abd917826bf50ed409a307ce00562c97d"><div class="ttname"><a href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">SVF::SVFG::getDef</a></div><div class="ttdeci">NodeID getDef(const PAGNode *pagNode) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00349">SVFG.h:349</a></div></div>
153
+ <div class="ttc" id="classSVF_1_1SVFG_html_abd917826bf50ed409a307ce00562c97d"><div class="ttname"><a href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">SVF::SVFG::getDef</a></div><div class="ttdeci">NodeID getDef(const PAGNode *pagNode) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00355">SVFG.h:355</a></div></div>
154
154
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a490695ab536cd455c531fbdc57499cac"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a490695ab536cd455c531fbdc57499cac">SVF::SVFGOPT::setActualINDef</a></div><div class="ttdeci">void setActualINDef(NodeID ai, NodeID def)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00269">SVFGOPT.h:269</a></div></div>
155
155
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_aa23c967a8fcadbaf47e93a5b3610c84d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#aa23c967a8fcadbaf47e93a5b3610c84d">SVF::SVFGOPT::isConnectingTwoCallSites</a></div><div class="ttdeci">bool isConnectingTwoCallSites(const SVFGNode *node) const</div><div class="ttdoc">Return TRUE if this node has both incoming call/ret and outgoing call/ret edges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00292">SVFGOPT.cpp:292</a></div></div>
156
156
  <div class="ttc" id="classSVF_1_1ActualRetVFGNode_html_a4bcfddf05da46729c670b4f450f9d606"><div class="ttname"><a href="classSVF_1_1ActualRetVFGNode.html#a4bcfddf05da46729c670b4f450f9d606">SVF::ActualRetVFGNode::getRev</a></div><div class="ttdeci">const PAGNode * getRev() const</div><div class="ttdoc">Receive parameter at callsite. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00993">VFGNode.h:993</a></div></div>
@@ -176,7 +176,7 @@ $(function() {
176
176
  <div class="ttc" id="classSVF_1_1FormalParmVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalParmVFGNode.html">SVF::FormalParmVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00898">VFGNode.h:898</a></div></div>
177
177
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a6d5cdb3b78e4ed482b0da4c64323b463"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a6d5cdb3b78e4ed482b0da4c64323b463">SVF::SVFGOPT::bothInterEdges</a></div><div class="ttdeci">bool bothInterEdges(const SVFGEdge *edge1, const SVFGEdge *edge2) const</div><div class="ttdoc">Return TRUE if both edges are indirect call/ret edges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00231">SVFGOPT.h:231</a></div></div>
178
178
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_af504407e6cd42cfe2ea27165ff15df40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#af504407e6cd42cfe2ea27165ff15df40">SVF::SVFGOPT::resetDef</a></div><div class="ttdeci">void resetDef(const PAGNode *pagNode, const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00260">SVFGOPT.h:260</a></div></div>
179
- <div class="ttc" id="classSVF_1_1SVFG_html_a88e1f6f77421c5274ceeb14928bdcb43"><div class="ttname"><a href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">SVF::SVFG::addSVFGNode</a></div><div class="ttdeci">virtual void addSVFGNode(SVFGNode *node, ICFGNode *icfgNode)</div><div class="ttdoc">Add SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00390">SVFG.h:390</a></div></div>
179
+ <div class="ttc" id="classSVF_1_1SVFG_html_a88e1f6f77421c5274ceeb14928bdcb43"><div class="ttname"><a href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">SVF::SVFG::addSVFGNode</a></div><div class="ttdeci">virtual void addSVFGNode(SVFGNode *node, ICFGNode *icfgNode)</div><div class="ttdoc">Add SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00396">SVFG.h:396</a></div></div>
180
180
  <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00163">SVFIR.h:163</a></div></div>
181
181
  <div class="ttc" id="classSVF_1_1VFG_html_ac2e2f555975063da3fa1932ac35802c6"><div class="ttname"><a href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6">SVF::VFG::VFGK</a></div><div class="ttdeci">VFGK</div><div class="ttdoc">VFG kind. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00055">VFG.h:55</a></div></div>
182
182
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a4c698184cc23730fb44904d4048958da"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a4c698184cc23730fb44904d4048958da">SVF::SVFGOPT::handleInterValueFlow</a></div><div class="ttdeci">void handleInterValueFlow()</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00090">SVFGOPT.cpp:90</a></div></div>