svf-tools 1.0.577 → 1.0.578

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 (153) hide show
  1. package/SVF-doxygen/html/html/CFLAlias_8cpp.html +0 -1
  2. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +18 -25
  3. package/SVF-doxygen/html/html/CFLAlias_8h.html +1 -8
  4. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +23 -49
  5. package/SVF-doxygen/html/html/CFLBase_8h.html +103 -0
  6. package/SVF-doxygen/html/html/CFLBase_8h_source.html +124 -0
  7. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +2 -2
  8. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +5 -4
  9. package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +24 -19
  10. package/SVF-doxygen/html/html/CFLStat_8h.html +1 -0
  11. package/SVF-doxygen/html/html/CFLStat_8h_source.html +22 -21
  12. package/SVF-doxygen/html/html/CFLVF_8cpp.html +0 -2
  13. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +5 -8
  14. package/SVF-doxygen/html/html/CFLVF_8h.html +3 -8
  15. package/SVF-doxygen/html/html/CFLVF_8h_source.html +12 -26
  16. package/SVF-doxygen/html/html/CHG_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
  18. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
  19. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/html/ConsG_8h_source.html +1 -1
  21. package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
  22. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +1 -1
  23. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +1 -1
  24. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +1 -1
  25. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
  26. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  28. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
  29. package/SVF-doxygen/html/html/IRGraph_8h_source.html +1 -1
  30. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  32. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +1 -1
  33. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  34. package/SVF-doxygen/html/html/TCT_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/html/TCT_8h_source.html +1 -1
  36. package/SVF-doxygen/html/html/VFG_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/annotated.html +271 -270
  39. package/SVF-doxygen/html/html/cfl_8cpp.html +6 -9
  40. package/SVF-doxygen/html/html/cfl_8cpp_source.html +6 -8
  41. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +9 -8
  42. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.png +0 -0
  43. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +75 -71
  44. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +239 -679
  45. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.png +0 -0
  46. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +275 -0
  47. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +1341 -0
  48. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.png +0 -0
  49. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph-members.html +21 -20
  50. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +33 -3
  51. package/SVF-doxygen/html/html/classSVF_1_1CFLStat-members.html +2 -2
  52. package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +58 -58
  53. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +91 -72
  54. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +243 -274
  55. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.png +0 -0
  56. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  57. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
  58. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +21 -20
  59. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  60. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +12 -11
  61. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.png +0 -0
  62. package/SVF-doxygen/html/html/classes.html +96 -95
  63. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  64. package/SVF-doxygen/html/html/dir_ae8aa099e368efaa962140c6624142bc.html +2 -0
  65. package/SVF-doxygen/html/html/files.html +8 -7
  66. package/SVF-doxygen/html/html/functions_0x7e.html +2 -5
  67. package/SVF-doxygen/html/html/functions_a.html +10 -9
  68. package/SVF-doxygen/html/html/functions_c.html +28 -28
  69. package/SVF-doxygen/html/html/functions_f.html +17 -16
  70. package/SVF-doxygen/html/html/functions_func.html +6 -5
  71. package/SVF-doxygen/html/html/functions_func_0x7e.html +2 -5
  72. package/SVF-doxygen/html/html/functions_func_c.html +29 -21
  73. package/SVF-doxygen/html/html/functions_func_f.html +4 -1
  74. package/SVF-doxygen/html/html/functions_func_g.html +14 -11
  75. package/SVF-doxygen/html/html/functions_func_i.html +10 -7
  76. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  77. package/SVF-doxygen/html/html/functions_func_s.html +2 -2
  78. package/SVF-doxygen/html/html/functions_g.html +18 -17
  79. package/SVF-doxygen/html/html/functions_i.html +10 -7
  80. package/SVF-doxygen/html/html/functions_l.html +6 -6
  81. package/SVF-doxygen/html/html/functions_m.html +2 -2
  82. package/SVF-doxygen/html/html/functions_n.html +14 -11
  83. package/SVF-doxygen/html/html/functions_o.html +15 -15
  84. package/SVF-doxygen/html/html/functions_p.html +19 -15
  85. package/SVF-doxygen/html/html/functions_r.html +3 -7
  86. package/SVF-doxygen/html/html/functions_s.html +16 -16
  87. package/SVF-doxygen/html/html/functions_t.html +9 -6
  88. package/SVF-doxygen/html/html/functions_type_c.html +0 -1
  89. package/SVF-doxygen/html/html/functions_v.html +6 -6
  90. package/SVF-doxygen/html/html/functions_vars_a.html +1 -1
  91. package/SVF-doxygen/html/html/functions_vars_c.html +0 -1
  92. package/SVF-doxygen/html/html/functions_vars_g.html +2 -4
  93. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  94. package/SVF-doxygen/html/html/functions_vars_n.html +11 -8
  95. package/SVF-doxygen/html/html/functions_vars_p.html +1 -1
  96. package/SVF-doxygen/html/html/functions_vars_s.html +2 -4
  97. package/SVF-doxygen/html/html/functions_vars_t.html +9 -6
  98. package/SVF-doxygen/html/html/hierarchy.html +58 -57
  99. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  100. package/SVF-doxygen/html/html/namespaceSVF.html +2 -0
  101. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
  102. package/SVF-doxygen/html/html/search/all_1.js +2 -2
  103. package/SVF-doxygen/html/html/search/all_10.js +11 -11
  104. package/SVF-doxygen/html/html/search/all_11.js +2 -2
  105. package/SVF-doxygen/html/html/search/all_12.js +11 -11
  106. package/SVF-doxygen/html/html/search/all_13.js +9 -8
  107. package/SVF-doxygen/html/html/search/all_15.js +4 -4
  108. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  109. package/SVF-doxygen/html/html/search/all_19.js +1 -2
  110. package/SVF-doxygen/html/html/search/all_3.js +5 -2
  111. package/SVF-doxygen/html/html/search/all_6.js +2 -2
  112. package/SVF-doxygen/html/html/search/all_7.js +4 -3
  113. package/SVF-doxygen/html/html/search/all_9.js +2 -2
  114. package/SVF-doxygen/html/html/search/all_c.js +4 -4
  115. package/SVF-doxygen/html/html/search/all_d.js +3 -3
  116. package/SVF-doxygen/html/html/search/all_e.js +11 -10
  117. package/SVF-doxygen/html/html/search/all_f.js +2 -2
  118. package/SVF-doxygen/html/html/search/classes_2.js +1 -0
  119. package/SVF-doxygen/html/html/search/files_2.js +1 -0
  120. package/SVF-doxygen/html/html/search/functions_0.js +1 -1
  121. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  122. package/SVF-doxygen/html/html/search/functions_17.js +1 -2
  123. package/SVF-doxygen/html/html/search/functions_2.js +3 -1
  124. package/SVF-doxygen/html/html/search/functions_5.js +1 -1
  125. package/SVF-doxygen/html/html/search/functions_6.js +2 -1
  126. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  127. package/SVF-doxygen/html/html/search/functions_f.js +1 -1
  128. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  129. package/SVF-doxygen/html/html/search/variables_1.js +1 -1
  130. package/SVF-doxygen/html/html/search/variables_10.js +1 -1
  131. package/SVF-doxygen/html/html/search/variables_12.js +2 -2
  132. package/SVF-doxygen/html/html/search/variables_13.js +9 -8
  133. package/SVF-doxygen/html/html/search/variables_3.js +1 -1
  134. package/SVF-doxygen/html/html/search/variables_7.js +2 -2
  135. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  136. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  137. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  138. package/SVF-doxygen/html/html/search/variables_e.js +9 -8
  139. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.html +1 -1
  140. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html +2 -2
  141. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.html +1 -1
  142. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  143. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  144. package/include/CFL/CFLAlias.h +10 -47
  145. package/include/CFL/CFLBase.h +111 -0
  146. package/include/CFL/CFLStat.h +4 -2
  147. package/include/CFL/CFLVF.h +13 -23
  148. package/include/Graphs/CFLGraph.h +5 -0
  149. package/lib/CFL/CFLAlias.cpp +60 -52
  150. package/lib/CFL/CFLStat.cpp +11 -19
  151. package/lib/CFL/CFLVF.cpp +40 -35
  152. package/package.json +1 -1
  153. package/tools/CFL/cfl.cpp +12 -25
@@ -66,33 +66,34 @@ $(function() {
66
66
  <div class="title">CFLStat.h</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="CFLStat_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">//===- CFLStat.h -- CFL statistics--------------------------------------------//</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;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * CFLStat.h</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Created on: 17/9/2022</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * Author: Pei Xu</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#ifndef CFL_CFLSTAT_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#define CFL_CFLSTAT_H_</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PTAStat_8h.html">Util/PTAStat.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CFLAlias_8h.html">CFL/CFLAlias.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></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="keyword">class </span>CFLAlias;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>SVFIR;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>ConstraintGraph;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html"> 47</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CFLStat.html">CFLStat</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1PTAStat.html">PTAStat</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a23c6ba004928f8ac6c9b12bd7ad49881"> 51</a></span>&#160; <a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>* <a class="code" href="classSVF_1_1CFLStat.html#a23c6ba004928f8ac6c9b12bd7ad49881">pta</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a1038d77be761d3033237724330631d3e"> 54</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1CFLStat.html#a1038d77be761d3033237724330631d3e">CollapseTime</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#aab012b94d23df8f5c78e74934aebf024"> 56</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#aab012b94d23df8f5c78e74934aebf024">_MaxPtsSize</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#ab6a95a6c55e582958cae3327e482ef7f"> 57</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#ab6a95a6c55e582958cae3327e482ef7f">_NumOfCycles</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a9866844333afd0bfffd336778e97ae02"> 58</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#a9866844333afd0bfffd336778e97ae02">_NumOfPWCCycles</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a404decd93db2bbcd36682cfdc3e5549c"> 59</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#a404decd93db2bbcd36682cfdc3e5549c">_NumOfNodesInCycles</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a3601b07709f1eef4c4685cc90a1648e2"> 60</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#a3601b07709f1eef4c4685cc90a1648e2">_MaxNumOfNodesInSCC</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#ab3e6256784b06ef36c0f93a88c7d8590"> 61</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#ab3e6256784b06ef36c0f93a88c7d8590">_NumOfNullPtr</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a4e0b174c9387ffa3bca0eb1976e489fb"> 62</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#a4e0b174c9387ffa3bca0eb1976e489fb">_NumOfConstantPtr</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#af4a3e4fded0ea25bf29f91b08b335236"> 63</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#af4a3e4fded0ea25bf29f91b08b335236">_NumOfBlackholePtr</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a99aa7227148c3df700542aec0b8ae98d"> 66</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#a99aa7227148c3df700542aec0b8ae98d">_NumofCFLGraphNode</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classSVF_1_1CFLStat.html#abde1d6206fcde988c3959affc8afbbad">CFLStat</a>(<a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>* <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#ac51498242513e203d0367b9d75f350f3"> 70</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1CFLStat.html#ac51498242513e203d0367b9d75f350f3">~CFLStat</a>()</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</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"> 75</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#a1d85a7c4b2c22d3d8e0115212362d83b">performStat</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; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#ae235e945a6856cfad961ba752b75d409">collectCycleInfo</a>(<a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a>* consCG);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#a915d2f3c684646f813687445c2d22622">collectCFLInfo</a>(<a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>* <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</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; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#a6bcca58ff4481dee06b06eb17ed603ea">statNullPtr</a>();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#a58ad0e3bdb93c985ffc7242dba074fea">constraintGraphStat</a>();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;};</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* FLOWSENSITIVESTAT_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="cJSON_8cpp_html_a009ef1d888ab6dbe77e6b42b0b39f1ae"><div class="ttname"><a href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a></div><div class="ttdeci">cJSON * p</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02559">cJSON.cpp:2559</a></div></div>
70
- <div class="ttc" id="classSVF_1_1CFLAlias_html"><div class="ttname"><a href="classSVF_1_1CFLAlias.html">SVF::CFLAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00048">CFLAlias.h:48</a></div></div>
71
- <div class="ttc" id="classSVF_1_1CFLStat_html_ac51498242513e203d0367b9d75f350f3"><div class="ttname"><a href="classSVF_1_1CFLStat.html#ac51498242513e203d0367b9d75f350f3">SVF::CFLStat::~CFLStat</a></div><div class="ttdeci">virtual ~CFLStat()</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00070">CFLStat.h:70</a></div></div>
72
- <div class="ttc" id="classSVF_1_1CFLStat_html_ab3e6256784b06ef36c0f93a88c7d8590"><div class="ttname"><a href="classSVF_1_1CFLStat.html#ab3e6256784b06ef36c0f93a88c7d8590">SVF::CFLStat::_NumOfNullPtr</a></div><div class="ttdeci">u32_t _NumOfNullPtr</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00061">CFLStat.h:61</a></div></div>
69
+ <a href="CFLStat_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">//===- CFLStat.h -- CFL statistics--------------------------------------------//</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;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * CFLStat.h</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Created on: 17/9/2022</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * Author: Pei Xu</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#ifndef CFL_CFLSTAT_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#define CFL_CFLSTAT_H_</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PTAStat_8h.html">Util/PTAStat.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CFLAlias_8h.html">CFL/CFLAlias.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CFLVF_8h.html">CFL/CFLVF.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></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;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>CFLAlias;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>CFLVF;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>SVFIR;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span>ConstraintGraph;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html"> 49</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CFLStat.html">CFLStat</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1PTAStat.html">PTAStat</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a6fc506f947be6c9309cc8914c6a8c3e0"> 53</a></span>&#160; <a class="code" href="classSVF_1_1CFLBase.html">CFLBase</a>* <a class="code" href="classSVF_1_1CFLStat.html#a6fc506f947be6c9309cc8914c6a8c3e0">pta</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a1038d77be761d3033237724330631d3e"> 56</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1CFLStat.html#a1038d77be761d3033237724330631d3e">CollapseTime</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_1CFLStat.html#aab012b94d23df8f5c78e74934aebf024"> 58</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#aab012b94d23df8f5c78e74934aebf024">_MaxPtsSize</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#ab6a95a6c55e582958cae3327e482ef7f"> 59</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#ab6a95a6c55e582958cae3327e482ef7f">_NumOfCycles</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a9866844333afd0bfffd336778e97ae02"> 60</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#a9866844333afd0bfffd336778e97ae02">_NumOfPWCCycles</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a404decd93db2bbcd36682cfdc3e5549c"> 61</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#a404decd93db2bbcd36682cfdc3e5549c">_NumOfNodesInCycles</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a3601b07709f1eef4c4685cc90a1648e2"> 62</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#a3601b07709f1eef4c4685cc90a1648e2">_MaxNumOfNodesInSCC</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#ab3e6256784b06ef36c0f93a88c7d8590"> 63</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#ab3e6256784b06ef36c0f93a88c7d8590">_NumOfNullPtr</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a4e0b174c9387ffa3bca0eb1976e489fb"> 64</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#a4e0b174c9387ffa3bca0eb1976e489fb">_NumOfConstantPtr</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#af4a3e4fded0ea25bf29f91b08b335236"> 65</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#af4a3e4fded0ea25bf29f91b08b335236">_NumOfBlackholePtr</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a99aa7227148c3df700542aec0b8ae98d"> 68</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#a99aa7227148c3df700542aec0b8ae98d">_NumofCFLGraphNode</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1CFLStat.html#ada5680cabe65962be3a574a8a740f59c">CFLStat</a>(<a class="code" href="classSVF_1_1CFLBase.html">CFLBase</a>* <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#ac51498242513e203d0367b9d75f350f3"> 72</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1CFLStat.html#ac51498242513e203d0367b9d75f350f3">~CFLStat</a>()</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; {</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"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#a1d85a7c4b2c22d3d8e0115212362d83b">performStat</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#ae235e945a6856cfad961ba752b75d409">collectCycleInfo</a>(<a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a>* consCG);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#a915d2f3c684646f813687445c2d22622">collectCFLInfo</a>(<a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>* <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#a6bcca58ff4481dee06b06eb17ed603ea">statNullPtr</a>();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</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_1CFLStat.html#a58ad0e3bdb93c985ffc7242dba074fea">constraintGraphStat</a>();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* FLOWSENSITIVESTAT_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="cJSON_8cpp_html_a009ef1d888ab6dbe77e6b42b0b39f1ae"><div class="ttname"><a href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a></div><div class="ttdeci">cJSON * p</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02559">cJSON.cpp:2559</a></div></div>
70
+ <div class="ttc" id="classSVF_1_1CFLStat_html_ac51498242513e203d0367b9d75f350f3"><div class="ttname"><a href="classSVF_1_1CFLStat.html#ac51498242513e203d0367b9d75f350f3">SVF::CFLStat::~CFLStat</a></div><div class="ttdeci">virtual ~CFLStat()</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00072">CFLStat.h:72</a></div></div>
71
+ <div class="ttc" id="classSVF_1_1CFLStat_html_ab3e6256784b06ef36c0f93a88c7d8590"><div class="ttname"><a href="classSVF_1_1CFLStat.html#ab3e6256784b06ef36c0f93a88c7d8590">SVF::CFLStat::_NumOfNullPtr</a></div><div class="ttdeci">u32_t _NumOfNullPtr</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00063">CFLStat.h:63</a></div></div>
73
72
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html">SVF::ConstraintGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00044">ConsG.h:44</a></div></div>
73
+ <div class="ttc" id="classSVF_1_1CFLStat_html_a6fc506f947be6c9309cc8914c6a8c3e0"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a6fc506f947be6c9309cc8914c6a8c3e0">SVF::CFLStat::pta</a></div><div class="ttdeci">CFLBase * pta</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00053">CFLStat.h:53</a></div></div>
74
74
  <div class="ttc" id="classSVF_1_1CFLGraph_html"><div class="ttname"><a href="classSVF_1_1CFLGraph.html">SVF::CFLGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00086">CFLGraph.h:86</a></div></div>
75
- <div class="ttc" id="classSVF_1_1CFLStat_html_a9866844333afd0bfffd336778e97ae02"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a9866844333afd0bfffd336778e97ae02">SVF::CFLStat::_NumOfPWCCycles</a></div><div class="ttdeci">static u32_t _NumOfPWCCycles</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00058">CFLStat.h:58</a></div></div>
76
- <div class="ttc" id="classSVF_1_1CFLStat_html_a1d85a7c4b2c22d3d8e0115212362d83b"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a1d85a7c4b2c22d3d8e0115212362d83b">SVF::CFLStat::performStat</a></div><div class="ttdeci">virtual void performStat()</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8cpp_source.html#l00220">CFLStat.cpp:220</a></div></div>
77
- <div class="ttc" id="classSVF_1_1CFLStat_html_abde1d6206fcde988c3959affc8afbbad"><div class="ttname"><a href="classSVF_1_1CFLStat.html#abde1d6206fcde988c3959affc8afbbad">SVF::CFLStat::CFLStat</a></div><div class="ttdeci">CFLStat(CFLAlias *p)</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8cpp_source.html#l00047">CFLStat.cpp:47</a></div></div>
75
+ <div class="ttc" id="classSVF_1_1CFLStat_html_a9866844333afd0bfffd336778e97ae02"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a9866844333afd0bfffd336778e97ae02">SVF::CFLStat::_NumOfPWCCycles</a></div><div class="ttdeci">static u32_t _NumOfPWCCycles</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00060">CFLStat.h:60</a></div></div>
76
+ <div class="ttc" id="classSVF_1_1CFLStat_html_a1d85a7c4b2c22d3d8e0115212362d83b"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a1d85a7c4b2c22d3d8e0115212362d83b">SVF::CFLStat::performStat</a></div><div class="ttdeci">virtual void performStat()</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8cpp_source.html#l00216">CFLStat.cpp:216</a></div></div>
78
77
  <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="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
79
- <div class="ttc" id="classSVF_1_1CFLStat_html_a6bcca58ff4481dee06b06eb17ed603ea"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a6bcca58ff4481dee06b06eb17ed603ea">SVF::CFLStat::statNullPtr</a></div><div class="ttdeci">void statNullPtr()</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8cpp_source.html#l00166">CFLStat.cpp:166</a></div></div>
80
- <div class="ttc" id="classSVF_1_1CFLStat_html_a404decd93db2bbcd36682cfdc3e5549c"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a404decd93db2bbcd36682cfdc3e5549c">SVF::CFLStat::_NumOfNodesInCycles</a></div><div class="ttdeci">static u32_t _NumOfNodesInCycles</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00059">CFLStat.h:59</a></div></div>
81
- <div class="ttc" id="classSVF_1_1CFLStat_html_a99aa7227148c3df700542aec0b8ae98d"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a99aa7227148c3df700542aec0b8ae98d">SVF::CFLStat::_NumofCFLGraphNode</a></div><div class="ttdeci">u32_t _NumofCFLGraphNode</div><div class="ttdoc">CFL Stat. </div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00066">CFLStat.h:66</a></div></div>
82
- <div class="ttc" id="classSVF_1_1CFLStat_html_a1038d77be761d3033237724330631d3e"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a1038d77be761d3033237724330631d3e">SVF::CFLStat::CollapseTime</a></div><div class="ttdeci">static const char * CollapseTime</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00054">CFLStat.h:54</a></div></div>
83
- <div class="ttc" id="classSVF_1_1CFLStat_html_a58ad0e3bdb93c985ffc7242dba074fea"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a58ad0e3bdb93c985ffc7242dba074fea">SVF::CFLStat::constraintGraphStat</a></div><div class="ttdeci">void constraintGraphStat()</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8cpp_source.html#l00112">CFLStat.cpp:112</a></div></div>
84
- <div class="ttc" id="classSVF_1_1CFLStat_html_a3601b07709f1eef4c4685cc90a1648e2"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a3601b07709f1eef4c4685cc90a1648e2">SVF::CFLStat::_MaxNumOfNodesInSCC</a></div><div class="ttdeci">static u32_t _MaxNumOfNodesInSCC</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00060">CFLStat.h:60</a></div></div>
85
- <div class="ttc" id="classSVF_1_1CFLStat_html_a4e0b174c9387ffa3bca0eb1976e489fb"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a4e0b174c9387ffa3bca0eb1976e489fb">SVF::CFLStat::_NumOfConstantPtr</a></div><div class="ttdeci">u32_t _NumOfConstantPtr</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00062">CFLStat.h:62</a></div></div>
86
- <div class="ttc" id="classSVF_1_1CFLStat_html_ab6a95a6c55e582958cae3327e482ef7f"><div class="ttname"><a href="classSVF_1_1CFLStat.html#ab6a95a6c55e582958cae3327e482ef7f">SVF::CFLStat::_NumOfCycles</a></div><div class="ttdeci">static u32_t _NumOfCycles</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00057">CFLStat.h:57</a></div></div>
87
- <div class="ttc" id="classSVF_1_1CFLStat_html_ae235e945a6856cfad961ba752b75d409"><div class="ttname"><a href="classSVF_1_1CFLStat.html#ae235e945a6856cfad961ba752b75d409">SVF::CFLStat::collectCycleInfo</a></div><div class="ttdeci">void collectCycleInfo(ConstraintGraph *consCG)</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8cpp_source.html#l00072">CFLStat.cpp:72</a></div></div>
88
- <div class="ttc" id="classSVF_1_1CFLStat_html"><div class="ttname"><a href="classSVF_1_1CFLStat.html">SVF::CFLStat</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00047">CFLStat.h:47</a></div></div>
78
+ <div class="ttc" id="classSVF_1_1CFLStat_html_a6bcca58ff4481dee06b06eb17ed603ea"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a6bcca58ff4481dee06b06eb17ed603ea">SVF::CFLStat::statNullPtr</a></div><div class="ttdeci">void statNullPtr()</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8cpp_source.html#l00162">CFLStat.cpp:162</a></div></div>
79
+ <div class="ttc" id="classSVF_1_1CFLStat_html_a404decd93db2bbcd36682cfdc3e5549c"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a404decd93db2bbcd36682cfdc3e5549c">SVF::CFLStat::_NumOfNodesInCycles</a></div><div class="ttdeci">static u32_t _NumOfNodesInCycles</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00061">CFLStat.h:61</a></div></div>
80
+ <div class="ttc" id="classSVF_1_1CFLStat_html_a99aa7227148c3df700542aec0b8ae98d"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a99aa7227148c3df700542aec0b8ae98d">SVF::CFLStat::_NumofCFLGraphNode</a></div><div class="ttdeci">u32_t _NumofCFLGraphNode</div><div class="ttdoc">CFL Stat. </div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00068">CFLStat.h:68</a></div></div>
81
+ <div class="ttc" id="classSVF_1_1CFLStat_html_a1038d77be761d3033237724330631d3e"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a1038d77be761d3033237724330631d3e">SVF::CFLStat::CollapseTime</a></div><div class="ttdeci">static const char * CollapseTime</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00056">CFLStat.h:56</a></div></div>
82
+ <div class="ttc" id="classSVF_1_1CFLStat_html_a58ad0e3bdb93c985ffc7242dba074fea"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a58ad0e3bdb93c985ffc7242dba074fea">SVF::CFLStat::constraintGraphStat</a></div><div class="ttdeci">void constraintGraphStat()</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8cpp_source.html#l00108">CFLStat.cpp:108</a></div></div>
83
+ <div class="ttc" id="classSVF_1_1CFLStat_html_a3601b07709f1eef4c4685cc90a1648e2"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a3601b07709f1eef4c4685cc90a1648e2">SVF::CFLStat::_MaxNumOfNodesInSCC</a></div><div class="ttdeci">static u32_t _MaxNumOfNodesInSCC</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00062">CFLStat.h:62</a></div></div>
84
+ <div class="ttc" id="classSVF_1_1CFLStat_html_a4e0b174c9387ffa3bca0eb1976e489fb"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a4e0b174c9387ffa3bca0eb1976e489fb">SVF::CFLStat::_NumOfConstantPtr</a></div><div class="ttdeci">u32_t _NumOfConstantPtr</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00064">CFLStat.h:64</a></div></div>
85
+ <div class="ttc" id="classSVF_1_1CFLStat_html_ab6a95a6c55e582958cae3327e482ef7f"><div class="ttname"><a href="classSVF_1_1CFLStat.html#ab6a95a6c55e582958cae3327e482ef7f">SVF::CFLStat::_NumOfCycles</a></div><div class="ttdeci">static u32_t _NumOfCycles</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00059">CFLStat.h:59</a></div></div>
86
+ <div class="ttc" id="classSVF_1_1CFLStat_html_ae235e945a6856cfad961ba752b75d409"><div class="ttname"><a href="classSVF_1_1CFLStat.html#ae235e945a6856cfad961ba752b75d409">SVF::CFLStat::collectCycleInfo</a></div><div class="ttdeci">void collectCycleInfo(ConstraintGraph *consCG)</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8cpp_source.html#l00068">CFLStat.cpp:68</a></div></div>
87
+ <div class="ttc" id="classSVF_1_1CFLStat_html"><div class="ttname"><a href="classSVF_1_1CFLStat.html">SVF::CFLStat</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00049">CFLStat.h:49</a></div></div>
89
88
  <div class="ttc" id="classSVF_1_1PTAStat_html"><div class="ttname"><a href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00048">PTAStat.h:48</a></div></div>
89
+ <div class="ttc" id="classSVF_1_1CFLBase_html"><div class="ttname"><a href="classSVF_1_1CFLBase.html">SVF::CFLBase</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00048">CFLBase.h:48</a></div></div>
90
+ <div class="ttc" id="classSVF_1_1CFLStat_html_ada5680cabe65962be3a574a8a740f59c"><div class="ttname"><a href="classSVF_1_1CFLStat.html#ada5680cabe65962be3a574a8a740f59c">SVF::CFLStat::CFLStat</a></div><div class="ttdeci">CFLStat(CFLBase *p)</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8cpp_source.html#l00047">CFLStat.cpp:47</a></div></div>
90
91
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
91
- <div class="ttc" id="classSVF_1_1CFLStat_html_a23c6ba004928f8ac6c9b12bd7ad49881"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a23c6ba004928f8ac6c9b12bd7ad49881">SVF::CFLStat::pta</a></div><div class="ttdeci">CFLAlias * pta</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00051">CFLStat.h:51</a></div></div>
92
- <div class="ttc" id="classSVF_1_1CFLStat_html_a915d2f3c684646f813687445c2d22622"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a915d2f3c684646f813687445c2d22622">SVF::CFLStat::collectCFLInfo</a></div><div class="ttdeci">void collectCFLInfo(CFLGraph *CFLGraph)</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8cpp_source.html#l00058">CFLStat.cpp:58</a></div></div>
93
- <div class="ttc" id="classSVF_1_1CFLStat_html_af4a3e4fded0ea25bf29f91b08b335236"><div class="ttname"><a href="classSVF_1_1CFLStat.html#af4a3e4fded0ea25bf29f91b08b335236">SVF::CFLStat::_NumOfBlackholePtr</a></div><div class="ttdeci">u32_t _NumOfBlackholePtr</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00063">CFLStat.h:63</a></div></div>
92
+ <div class="ttc" id="CFLVF_8h_html"><div class="ttname"><a href="CFLVF_8h.html">CFLVF.h</a></div></div>
93
+ <div class="ttc" id="classSVF_1_1CFLStat_html_a915d2f3c684646f813687445c2d22622"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a915d2f3c684646f813687445c2d22622">SVF::CFLStat::collectCFLInfo</a></div><div class="ttdeci">void collectCFLInfo(CFLGraph *CFLGraph)</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8cpp_source.html#l00055">CFLStat.cpp:55</a></div></div>
94
+ <div class="ttc" id="classSVF_1_1CFLStat_html_af4a3e4fded0ea25bf29f91b08b335236"><div class="ttname"><a href="classSVF_1_1CFLStat.html#af4a3e4fded0ea25bf29f91b08b335236">SVF::CFLStat::_NumOfBlackholePtr</a></div><div class="ttdeci">u32_t _NumOfBlackholePtr</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00065">CFLStat.h:65</a></div></div>
94
95
  <div class="ttc" id="CFLAlias_8h_html"><div class="ttname"><a href="CFLAlias_8h.html">CFLAlias.h</a></div></div>
95
- <div class="ttc" id="classSVF_1_1CFLStat_html_aab012b94d23df8f5c78e74934aebf024"><div class="ttname"><a href="classSVF_1_1CFLStat.html#aab012b94d23df8f5c78e74934aebf024">SVF::CFLStat::_MaxPtsSize</a></div><div class="ttdeci">static u32_t _MaxPtsSize</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00056">CFLStat.h:56</a></div></div>
96
+ <div class="ttc" id="classSVF_1_1CFLStat_html_aab012b94d23df8f5c78e74934aebf024"><div class="ttname"><a href="classSVF_1_1CFLStat.html#aab012b94d23df8f5c78e74934aebf024">SVF::CFLStat::_MaxPtsSize</a></div><div class="ttdeci">static u32_t _MaxPtsSize</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00058">CFLStat.h:58</a></div></div>
96
97
  <div class="ttc" id="PTAStat_8h_html"><div class="ttname"><a href="PTAStat_8h.html">PTAStat.h</a></div></div>
97
98
  </div><!-- fragment --></div><!-- contents -->
98
99
  <!-- start footer part -->
@@ -67,8 +67,6 @@ $(function() {
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
69
  <div class="textblock"><code>#include &quot;<a class="el" href="CFLVF_8h_source.html">CFL/CFLVF.h</a>&quot;</code><br />
70
- <code>#include &quot;<a class="el" href="SVFBasicTypes_8h_source.html">Util/SVFBasicTypes.h</a>&quot;</code><br />
71
- <code>#include &quot;<a class="el" href="Andersen_8h_source.html">WPA/Andersen.h</a>&quot;</code><br />
72
70
  </div>
73
71
  <p><a href="CFLVF_8cpp_source.html">Go to the source code of this file.</a></p>
74
72
  </div><!-- contents -->
@@ -66,32 +66,29 @@ $(function() {
66
66
  <div class="title">CFLVF.cpp</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="CFLVF_8cpp.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">//===----- CFLVF.cpp -- CFL Value Flow Client--------------//</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-&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"> * CFLAlias.cpp</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: September 7 , 2022</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Pei Xu</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;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CFLVF_8h.html">CFL/CFLVF.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFBasicTypes_8h.html">Util/SVFBasicTypes.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Andersen_8h.html">WPA/Andersen.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacecppUtil.html">cppUtil</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVFUtil.html">SVFUtil</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</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"><a class="line" href="classSVF_1_1CFLVF.html#a52bf916b33278f48d26c3f02947bf720"> 40</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLVF.html#a52bf916b33278f48d26c3f02947bf720">CFLVF::analyze</a>()</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="classSVF_1_1GrammarBuilder.html">GrammarBuilder</a> grammarBuilder = <a class="code" href="classSVF_1_1GrammarBuilder.html">GrammarBuilder</a>(<a class="code" href="classSVF_1_1Options.html#aa929e2ae2c0a78181c3a1311bfe73596">Options::GrammarFilename</a>);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="classSVF_1_1CFGNormalizer.html">CFGNormalizer</a> normalizer = <a class="code" href="classSVF_1_1CFGNormalizer.html">CFGNormalizer</a>();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="classSVF_1_1VFCFLGraphBuilder.html">VFCFLGraphBuilder</a> cflGraphBuilder = <a class="code" href="classSVF_1_1VFCFLGraphBuilder.html">VFCFLGraphBuilder</a>();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="classSVF_1_1CFLGramGraphChecker.html">CFLGramGraphChecker</a> cflChecker = <a class="code" href="classSVF_1_1CFLGramGraphChecker.html">CFLGramGraphChecker</a>();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a87b63f1f8f4f65cdf6647f9f056ffc53">Options::CFLGraph</a>.empty())</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">PointerAnalysis::initialize</a>();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammarBase = grammarBuilder.<a class="code" href="classSVF_1_1GrammarBuilder.html#a23d03b2cd348d85bda1ee582dded6505">build</a>();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="classSVF_1_1AndersenWaveDiff.html">AndersenWaveDiff</a>* ander = <a class="code" href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">AndersenWaveDiff::createAndersenWaveDiff</a>(pag);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; svfg = memSSA.buildFullSVFG(ander);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a> *consCG = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a>(svfir);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a7d566af0280a0c2457947fd426c81c81">Options::PEGTransfer</a>)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; graph = cflGraphBuilder.<a class="code" href="classSVF_1_1VFCFLGraphBuilder.html#ac4a6620622ad6642ed8543e0f8c65c20">buildBiPEGgraph</a>(consCG, grammarBase-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a8921a7d7a006e31f13d88b8c808c931b">getStartKind</a>(), grammarBase, svfir);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; graph = cflGraphBuilder.<a class="code" href="classSVF_1_1VFCFLGraphBuilder.html#acd5ade19c0e058bfb41a1a8dd84748e1">buildBigraph</a>(svfg, grammarBase-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a8921a7d7a006e31f13d88b8c808c931b">getStartKind</a>(), grammarBase);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; cflChecker.<a class="code" href="classSVF_1_1CFLGramGraphChecker.html#ada643d980c2590711660eb5f2a4e5f93">check</a>(grammarBase, &amp;cflGraphBuilder, graph);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; grammar = normalizer.<a class="code" href="classSVF_1_1CFGNormalizer.html#ae8e2b22944e9d3d2ec14cd6aaa8b93c9">normalize</a>(grammarBase);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; cflChecker.<a class="code" href="classSVF_1_1CFLGramGraphChecker.html#ada643d980c2590711660eb5f2a4e5f93">check</a>(grammar, &amp;cflGraphBuilder, graph);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">delete</span> consCG;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">delete</span> grammarBase;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammarBase = grammarBuilder.<a class="code" href="classSVF_1_1GrammarBuilder.html#a23d03b2cd348d85bda1ee582dded6505">build</a>();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; graph = cflGraphBuilder.<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a6c9fa25204550dc5bea1cae52a61472b">buildFromDot</a>(<a class="code" href="classSVF_1_1Options.html#a87b63f1f8f4f65cdf6647f9f056ffc53">Options::CFLGraph</a>, grammarBase);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; cflChecker.<a class="code" href="classSVF_1_1CFLGramGraphChecker.html#ada643d980c2590711660eb5f2a4e5f93">check</a>(grammarBase, &amp;cflGraphBuilder, graph);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; grammar = normalizer.<a class="code" href="classSVF_1_1CFGNormalizer.html#ae8e2b22944e9d3d2ec14cd6aaa8b93c9">normalize</a>(grammarBase);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; cflChecker.<a class="code" href="classSVF_1_1CFLGramGraphChecker.html#ada643d980c2590711660eb5f2a4e5f93">check</a>(grammar, &amp;cflGraphBuilder, graph);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">delete</span> grammarBase;</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; solver = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLSolver.html">CFLSolver</a>(graph, grammar);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; solver-&gt;solve();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a0beb2da0f9ab691c0b7729bb42f8354c">Options::PrintCFL</a> == <span class="keyword">true</span>)</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; svfir-&gt;dump(<span class="stringliteral">&quot;IR&quot;</span>);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; grammar-&gt;dump(<span class="stringliteral">&quot;Grammar&quot;</span>);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; graph-&gt;dump(<span class="stringliteral">&quot;CFLGraph&quot;</span>);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a87b63f1f8f4f65cdf6647f9f056ffc53">Options::CFLGraph</a>.empty())</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a118dabc50024b5cd91095814ade47166">PointerAnalysis::finalize</a>();</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"> 89</span>&#160;}</div><div class="ttc" id="Andersen_8h_html"><div class="ttname"><a href="Andersen_8h.html">Andersen.h</a></div></div>
70
- <div class="ttc" id="classSVF_1_1CFLGramGraphChecker_html_ada643d980c2590711660eb5f2a4e5f93"><div class="ttname"><a href="classSVF_1_1CFLGramGraphChecker.html#ada643d980c2590711660eb5f2a4e5f93">SVF::CFLGramGraphChecker::check</a></div><div class="ttdeci">void check(GrammarBase *grammar, CFLGraphBuilder *graphBuilder, CFLGraph *graph)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGramGraphChecker_8h_source.html#l00040">CFLGramGraphChecker.h:40</a></div></div>
69
+ <a href="CFLVF_8cpp.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">//===----- CFLVF.cpp -- CFL Value Flow Client--------------//</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-&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"> * CFLAlias.cpp</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: September 7 , 2022</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Pei Xu</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;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CFLVF_8h.html">CFL/CFLVF.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacecppUtil.html">cppUtil</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVFUtil.html">SVFUtil</a>;</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"><a class="line" href="classSVF_1_1CFLVF.html#a852ed935576ca426287cf4afa6a585e3"> 36</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLVF.html#a852ed935576ca426287cf4afa6a585e3">CFLVF::initialize</a>()</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="comment">// Build CFL Grammar and Normalize</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="classSVF_1_1GrammarBuilder.html">GrammarBuilder</a> grammarBuilder = <a class="code" href="classSVF_1_1GrammarBuilder.html">GrammarBuilder</a>(<a class="code" href="classSVF_1_1Options.html#aa929e2ae2c0a78181c3a1311bfe73596">Options::GrammarFilename</a>);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammarBase = grammarBuilder.<a class="code" href="classSVF_1_1GrammarBuilder.html#a23d03b2cd348d85bda1ee582dded6505">build</a>();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">// Build CFL Graph</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="classSVF_1_1VFCFLGraphBuilder.html">VFCFLGraphBuilder</a> cflGraphBuilder = <a class="code" href="classSVF_1_1VFCFLGraphBuilder.html">VFCFLGraphBuilder</a>();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a87b63f1f8f4f65cdf6647f9f056ffc53">Options::CFLGraph</a>.empty()) <span class="comment">// built from svfir</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">PointerAnalysis::initialize</a>();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="classSVF_1_1AndersenWaveDiff.html">AndersenWaveDiff</a>* ander = <a class="code" href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">AndersenWaveDiff::createAndersenWaveDiff</a>(pag);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; svfg = memSSA.buildFullSVFG(ander);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; graph = cflGraphBuilder.<a class="code" href="classSVF_1_1VFCFLGraphBuilder.html#acd5ade19c0e058bfb41a1a8dd84748e1">buildBigraph</a>(svfg, grammarBase-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a8921a7d7a006e31f13d88b8c808c931b">getStartKind</a>(), grammarBase);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; graph = cflGraphBuilder.<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a6c9fa25204550dc5bea1cae52a61472b">buildFromDot</a>(<a class="code" href="classSVF_1_1Options.html#a87b63f1f8f4f65cdf6647f9f056ffc53">Options::CFLGraph</a>, grammarBase);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">// Check CFL Graph and Grammar are accordance with grammar</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="classSVF_1_1CFLGramGraphChecker.html">CFLGramGraphChecker</a> cflChecker = <a class="code" href="classSVF_1_1CFLGramGraphChecker.html">CFLGramGraphChecker</a>();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; cflChecker.<a class="code" href="classSVF_1_1CFLGramGraphChecker.html#ada643d980c2590711660eb5f2a4e5f93">check</a>(grammarBase, &amp;cflGraphBuilder, graph);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="comment">// Normalize grammar</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="classSVF_1_1CFGNormalizer.html">CFGNormalizer</a> normalizer = <a class="code" href="classSVF_1_1CFGNormalizer.html">CFGNormalizer</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; grammar = normalizer.<a class="code" href="classSVF_1_1CFGNormalizer.html#ae8e2b22944e9d3d2ec14cd6aaa8b93c9">normalize</a>(grammarBase);</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; solver = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLSolver.html">CFLSolver</a>(graph, grammar);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">delete</span> grammarBase;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#a6047084ea0cfe2827130facdd54e4806"> 66</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLVF.html#a6047084ea0cfe2827130facdd54e4806">CFLVF::finalize</a>()</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a0beb2da0f9ab691c0b7729bb42f8354c">Options::PrintCFL</a> == <span class="keyword">true</span>)</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a87b63f1f8f4f65cdf6647f9f056ffc53">Options::CFLGraph</a>.empty())</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; svfir-&gt;dump(<span class="stringliteral">&quot;IR&quot;</span>);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; grammar-&gt;dump(<span class="stringliteral">&quot;Grammar&quot;</span>);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; graph-&gt;dump(<span class="stringliteral">&quot;CFLGraph&quot;</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"> 75</span>&#160;}</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#a52bf916b33278f48d26c3f02947bf720"> 77</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLVF.html#a52bf916b33278f48d26c3f02947bf720">CFLVF::analyze</a>()</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; initialize();</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; solver-&gt;solve();</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; finalize();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;}</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#a7c52b3587c5100d6eb7b2783f732b992"> 86</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLVF.html#a7c52b3587c5100d6eb7b2783f732b992">CFLVF::countSumEdges</a>()</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; numOfSumEdges = 0;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = getCFLGraph()-&gt;getCFLEdges().begin(); it != getCFLGraph()-&gt;getCFLEdges().end(); it++ )</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span> ((*it)-&gt;getEdgeKind() == grammar-&gt;getStartKind())</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; numOfSumEdges++;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;}</div><div class="ttc" id="classSVF_1_1CFLGramGraphChecker_html_ada643d980c2590711660eb5f2a4e5f93"><div class="ttname"><a href="classSVF_1_1CFLGramGraphChecker.html#ada643d980c2590711660eb5f2a4e5f93">SVF::CFLGramGraphChecker::check</a></div><div class="ttdeci">void check(GrammarBase *grammar, CFLGraphBuilder *graphBuilder, CFLGraph *graph)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGramGraphChecker_8h_source.html#l00040">CFLGramGraphChecker.h:40</a></div></div>
71
70
  <div class="ttc" id="classSVF_1_1CFLGramGraphChecker_html"><div class="ttname"><a href="classSVF_1_1CFLGramGraphChecker.html">SVF::CFLGramGraphChecker</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGramGraphChecker_8h_source.html#l00037">CFLGramGraphChecker.h:37</a></div></div>
72
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html">SVF::ConstraintGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00044">ConsG.h:44</a></div></div>
73
71
  <div class="ttc" id="classSVF_1_1VFCFLGraphBuilder_html"><div class="ttname"><a href="classSVF_1_1VFCFLGraphBuilder.html">SVF::VFCFLGraphBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00171">CFLGraphBuilder.h:171</a></div></div>
72
+ <div class="ttc" id="classSVF_1_1CFLVF_html_a6047084ea0cfe2827130facdd54e4806"><div class="ttname"><a href="classSVF_1_1CFLVF.html#a6047084ea0cfe2827130facdd54e4806">SVF::CFLVF::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Print grammar and graph. </div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8cpp_source.html#l00066">CFLVF.cpp:66</a></div></div>
74
73
  <div class="ttc" id="classSVF_1_1AndersenWaveDiff_html"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html">SVF::AndersenWaveDiff</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00378">Andersen.h:378</a></div></div>
75
74
  <div class="ttc" id="classSVF_1_1GrammarBuilder_html"><div class="ttname"><a href="classSVF_1_1GrammarBuilder.html">SVF::GrammarBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="GrammarBuilder_8h_source.html#l00070">GrammarBuilder.h:70</a></div></div>
76
75
  <div class="ttc" id="classSVF_1_1CFLSolver_html"><div class="ttname"><a href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00041">CFLSolver.h:41</a></div></div>
77
- <div class="ttc" id="classSVF_1_1Options_html_a7d566af0280a0c2457947fd426c81c81"><div class="ttname"><a href="classSVF_1_1Options.html#a7d566af0280a0c2457947fd426c81c81">SVF::Options::PEGTransfer</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PEGTransfer</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00256">Options.h:256</a></div></div>
78
76
  <div class="ttc" id="classSVF_1_1CFGNormalizer_html_ae8e2b22944e9d3d2ec14cd6aaa8b93c9"><div class="ttname"><a href="classSVF_1_1CFGNormalizer.html#ae8e2b22944e9d3d2ec14cd6aaa8b93c9">SVF::CFGNormalizer::normalize</a></div><div class="ttdeci">CFLGrammar * normalize(GrammarBase *generalGrammar)</div><div class="ttdoc">Binary Normal Form(BNF) normalization with variable attribute expanded. </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8cpp_source.html#l00042">CFGNormalizer.cpp:42</a></div></div>
79
77
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a8921a7d7a006e31f13d88b8c808c931b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a8921a7d7a006e31f13d88b8c808c931b">SVF::GrammarBase::getStartKind</a></div><div class="ttdeci">Kind getStartKind()</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00195">CFLGrammar.h:195</a></div></div>
80
- <div class="ttc" id="SVFBasicTypes_8h_html"><div class="ttname"><a href="SVFBasicTypes_8h.html">SVFBasicTypes.h</a></div></div>
81
- <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a118dabc50024b5cd91095814ade47166"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a118dabc50024b5cd91095814ade47166">SVF::PointerAnalysis::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalization of a pointer analysis, including checking alias correctness. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00192">PointerAnalysis.cpp:192</a></div></div>
82
78
  <div class="ttc" id="classSVF_1_1CFGNormalizer_html"><div class="ttname"><a href="classSVF_1_1CFGNormalizer.html">SVF::CFGNormalizer</a></div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00047">CFGNormalizer.h:47</a></div></div>
83
79
  <div class="ttc" id="namespaceSVFUtil_html"><div class="ttname"><a href="namespaceSVFUtil.html">SVFUtil</a></div></div>
84
80
  <div class="ttc" id="classSVF_1_1Options_html_a87b63f1f8f4f65cdf6647f9f056ffc53"><div class="ttname"><a href="classSVF_1_1Options.html#a87b63f1f8f4f65cdf6647f9f056ffc53">SVF::Options::CFLGraph</a></div><div class="ttdeci">static const llvm::cl::opt&lt; std::string &gt; CFLGraph</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00253">Options.h:253</a></div></div>
85
- <div class="ttc" id="classSVF_1_1CFLVF_html_a52bf916b33278f48d26c3f02947bf720"><div class="ttname"><a href="classSVF_1_1CFLVF.html#a52bf916b33278f48d26c3f02947bf720">SVF::CFLVF::analyze</a></div><div class="ttdeci">virtual void analyze()</div><div class="ttdoc">Start Analysis here (main part of pointer analysis). </div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8cpp_source.html#l00040">CFLVF.cpp:40</a></div></div>
81
+ <div class="ttc" id="classSVF_1_1CFLVF_html_a52bf916b33278f48d26c3f02947bf720"><div class="ttname"><a href="classSVF_1_1CFLVF.html#a52bf916b33278f48d26c3f02947bf720">SVF::CFLVF::analyze</a></div><div class="ttdeci">virtual void analyze()</div><div class="ttdoc">Start Analysis here (main part of pointer analysis). </div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8cpp_source.html#l00077">CFLVF.cpp:77</a></div></div>
86
82
  <div class="ttc" id="classSVF_1_1Options_html_a0beb2da0f9ab691c0b7729bb42f8354c"><div class="ttname"><a href="classSVF_1_1Options.html#a0beb2da0f9ab691c0b7729bb42f8354c">SVF::Options::PrintCFL</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PrintCFL</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00254">Options.h:254</a></div></div>
87
83
  <div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a6c9fa25204550dc5bea1cae52a61472b"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a6c9fa25204550dc5bea1cae52a61472b">SVF::CFLGraphBuilder::buildFromDot</a></div><div class="ttdeci">CFLGraph * buildFromDot(std::string filename, GrammarBase *grammar)</div><div class="ttdoc">Build graph from Dot. </div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00059">CFLGraphBuilder.cpp:59</a></div></div>
88
84
  <div class="ttc" id="classSVF_1_1GrammarBase_html"><div class="ttname"><a href="classSVF_1_1GrammarBase.html">SVF::GrammarBase</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00036">CFLGrammar.h:36</a></div></div>
89
- <div class="ttc" id="classSVF_1_1VFCFLGraphBuilder_html_ac4a6620622ad6642ed8543e0f8c65c20"><div class="ttname"><a href="classSVF_1_1VFCFLGraphBuilder.html#ac4a6620622ad6642ed8543e0f8c65c20">SVF::VFCFLGraphBuilder::buildBiPEGgraph</a></div><div class="ttdeci">CFLGraph * buildBiPEGgraph(ConstraintGraph *graph, Kind startKind, GrammarBase *grammar, SVFIR *pag)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00513">CFLGraphBuilder.cpp:513</a></div></div>
90
85
  <div class="ttc" id="classSVF_1_1Options_html_aa929e2ae2c0a78181c3a1311bfe73596"><div class="ttname"><a href="classSVF_1_1Options.html#aa929e2ae2c0a78181c3a1311bfe73596">SVF::Options::GrammarFilename</a></div><div class="ttdeci">static const llvm::cl::opt&lt; std::string &gt; GrammarFilename</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00252">Options.h:252</a></div></div>
91
86
  <div class="ttc" id="classSVF_1_1AndersenWaveDiff_html_a48ff6fc4badc79ad3204ae9bd95cc540"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">SVF::AndersenWaveDiff::createAndersenWaveDiff</a></div><div class="ttdeci">static AndersenWaveDiff * createAndersenWaveDiff(SVFIR *_pag)</div><div class="ttdoc">Create an singleton instance directly instead of invoking llvm pass manager. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00389">Andersen.h:389</a></div></div>
87
+ <div class="ttc" id="classSVF_1_1CFLVF_html_a852ed935576ca426287cf4afa6a585e3"><div class="ttname"><a href="classSVF_1_1CFLVF.html#a852ed935576ca426287cf4afa6a585e3">SVF::CFLVF::initialize</a></div><div class="ttdeci">virtual void initialize()</div><div class="ttdoc">Initialize the grammar, graph, solver. </div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8cpp_source.html#l00036">CFLVF.cpp:36</a></div></div>
92
88
  <div class="ttc" id="namespacecppUtil_html"><div class="ttname"><a href="namespacecppUtil.html">cppUtil</a></div></div>
93
89
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
94
90
  <div class="ttc" id="CFLVF_8h_html"><div class="ttname"><a href="CFLVF_8h.html">CFLVF.h</a></div></div>
91
+ <div class="ttc" id="classSVF_1_1CFLVF_html_a7c52b3587c5100d6eb7b2783f732b992"><div class="ttname"><a href="classSVF_1_1CFLVF.html#a7c52b3587c5100d6eb7b2783f732b992">SVF::CFLVF::countSumEdges</a></div><div class="ttdeci">virtual void countSumEdges()</div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8cpp_source.html#l00086">CFLVF.cpp:86</a></div></div>
95
92
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a431ec4f85eb0f029e5740b92fd9ceb32"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">SVF::PointerAnalysis::initialize</a></div><div class="ttdeci">virtual void initialize()</div><div class="ttdoc">Initialization of a pointer analysis, including building symbol table and SVFIR etc. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00111">PointerAnalysis.cpp:111</a></div></div>
96
93
  <div class="ttc" id="classSVF_1_1VFCFLGraphBuilder_html_acd5ade19c0e058bfb41a1a8dd84748e1"><div class="ttname"><a href="classSVF_1_1VFCFLGraphBuilder.html#acd5ade19c0e058bfb41a1a8dd84748e1">SVF::VFCFLGraphBuilder::buildBigraph</a></div><div class="ttdeci">CFLGraph * buildBigraph(SVFG *graph, Kind startKind, GrammarBase *grammar)</div><div class="ttdoc">Build Bidirectional graph by copying nodes and edges from const graph inherited from GenericGraph...</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00405">CFLGraphBuilder.cpp:405</a></div></div>
97
94
  <div class="ttc" id="classSVF_1_1GrammarBuilder_html_a23d03b2cd348d85bda1ee582dded6505"><div class="ttname"><a href="classSVF_1_1GrammarBuilder.html#a23d03b2cd348d85bda1ee582dded6505">SVF::GrammarBuilder::build</a></div><div class="ttdeci">GrammarBase * build() const</div><div class="ttdoc">Build grammarBase from fileName. </div><div class="ttdef"><b>Definition:</b> <a href="GrammarBuilder_8cpp_source.html#l00110">GrammarBuilder.cpp:110</a></div></div>
@@ -69,15 +69,10 @@ $(function() {
69
69
  <div class="title">CFLVF.h File Reference</div> </div>
70
70
  </div><!--header-->
71
71
  <div class="contents">
72
- <div class="textblock"><code>#include &quot;<a class="el" href="CFLSolver_8h_source.html">CFL/CFLSolver.h</a>&quot;</code><br />
73
- <code>#include &quot;<a class="el" href="CFGNormalizer_8h_source.html">CFL/CFGNormalizer.h</a>&quot;</code><br />
74
- <code>#include &quot;<a class="el" href="GrammarBuilder_8h_source.html">CFL/GrammarBuilder.h</a>&quot;</code><br />
75
- <code>#include &quot;<a class="el" href="CFLGraphBuilder_8h_source.html">CFL/CFLGraphBuilder.h</a>&quot;</code><br />
76
- <code>#include &quot;<a class="el" href="CFLGramGraphChecker_8h_source.html">CFL/CFLGramGraphChecker.h</a>&quot;</code><br />
77
- <code>#include &quot;<a class="el" href="PointerAnalysis_8h_source.html">MemoryModel/PointerAnalysis.h</a>&quot;</code><br />
78
- <code>#include &quot;<a class="el" href="ConsG_8h_source.html">Graphs/ConsG.h</a>&quot;</code><br />
79
- <code>#include &quot;<a class="el" href="Options_8h_source.html">Util/Options.h</a>&quot;</code><br />
72
+ <div class="textblock"><code>#include &quot;<a class="el" href="CFLBase_8h_source.html">CFL/CFLBase.h</a>&quot;</code><br />
73
+ <code>#include &quot;<a class="el" href="CFLStat_8h_source.html">CFL/CFLStat.h</a>&quot;</code><br />
80
74
  <code>#include &quot;<a class="el" href="SaberSVFGBuilder_8h_source.html">SABER/SaberSVFGBuilder.h</a>&quot;</code><br />
75
+ <code>#include &quot;<a class="el" href="Andersen_8h_source.html">WPA/Andersen.h</a>&quot;</code><br />
81
76
  </div>
82
77
  <p><a href="CFLVF_8h_source.html">Go to the source code of this file.</a></p>
83
78
  <table class="memberdecls">