svf-tools 1.0.577 → 1.0.579
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.
- package/SVF-doxygen/html/html/CFLAlias_8cpp.html +0 -1
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +10 -42
- package/SVF-doxygen/html/html/CFLAlias_8h.html +1 -8
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +22 -49
- package/SVF-doxygen/html/html/CFLBase_8cpp.html +89 -0
- package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +119 -0
- package/SVF-doxygen/html/html/CFLBase_8h.html +104 -0
- package/SVF-doxygen/html/html/CFLBase_8h_source.html +117 -0
- package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CFLGraph_8h_source.html +5 -4
- package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +17 -58
- package/SVF-doxygen/html/html/CFLStat_8h.html +1 -0
- package/SVF-doxygen/html/html/CFLStat_8h_source.html +12 -22
- package/SVF-doxygen/html/html/CFLVF_8cpp.html +0 -2
- package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +4 -15
- package/SVF-doxygen/html/html/CFLVF_8h.html +3 -8
- package/SVF-doxygen/html/html/CFLVF_8h_source.html +11 -26
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TCT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/annotated.html +271 -270
- package/SVF-doxygen/html/html/cfl_8cpp.html +6 -9
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +6 -8
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +9 -8
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +120 -121
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +212 -713
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +270 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +1199 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph-members.html +21 -20
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +33 -3
- package/SVF-doxygen/html/html/classSVF_1_1CFLStat-members.html +21 -31
- package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +62 -358
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +94 -80
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +207 -287
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +21 -20
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +12 -11
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +1 -1
- package/SVF-doxygen/html/html/classes.html +96 -95
- package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/dir_98f9a352f241e0e917d4efaa4086f6e8.html +2 -0
- package/SVF-doxygen/html/html/dir_ae8aa099e368efaa962140c6624142bc.html +2 -0
- package/SVF-doxygen/html/html/files.html +15 -13
- package/SVF-doxygen/html/html/functions.html +0 -8
- package/SVF-doxygen/html/html/functions_0x7e.html +2 -5
- package/SVF-doxygen/html/html/functions_a.html +9 -11
- package/SVF-doxygen/html/html/functions_b.html +11 -4
- package/SVF-doxygen/html/html/functions_c.html +33 -32
- package/SVF-doxygen/html/html/functions_f.html +16 -14
- package/SVF-doxygen/html/html/functions_func.html +6 -7
- package/SVF-doxygen/html/html/functions_func_0x7e.html +2 -5
- package/SVF-doxygen/html/html/functions_func_b.html +7 -0
- package/SVF-doxygen/html/html/functions_func_c.html +31 -23
- package/SVF-doxygen/html/html/functions_func_f.html +3 -1
- package/SVF-doxygen/html/html/functions_func_g.html +14 -11
- package/SVF-doxygen/html/html/functions_func_i.html +9 -7
- package/SVF-doxygen/html/html/functions_func_n.html +3 -0
- package/SVF-doxygen/html/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/html/functions_func_s.html +14 -13
- package/SVF-doxygen/html/html/functions_g.html +19 -15
- package/SVF-doxygen/html/html/functions_i.html +16 -14
- package/SVF-doxygen/html/html/functions_l.html +6 -6
- package/SVF-doxygen/html/html/functions_m.html +1 -2
- package/SVF-doxygen/html/html/functions_n.html +15 -8
- package/SVF-doxygen/html/html/functions_p.html +10 -10
- package/SVF-doxygen/html/html/functions_r.html +1 -1
- package/SVF-doxygen/html/html/functions_s.html +22 -21
- package/SVF-doxygen/html/html/functions_t.html +17 -13
- package/SVF-doxygen/html/html/functions_type_c.html +0 -1
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars.html +0 -8
- package/SVF-doxygen/html/html/functions_vars_a.html +0 -1
- package/SVF-doxygen/html/html/functions_vars_c.html +0 -2
- package/SVF-doxygen/html/html/functions_vars_g.html +5 -4
- package/SVF-doxygen/html/html/functions_vars_m.html +0 -1
- package/SVF-doxygen/html/html/functions_vars_n.html +12 -8
- package/SVF-doxygen/html/html/functions_vars_p.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_s.html +2 -4
- package/SVF-doxygen/html/html/functions_vars_t.html +12 -6
- package/SVF-doxygen/html/html/hierarchy.html +58 -57
- package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/namespaceSVF.html +3 -0
- package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/search/all_0.js +8 -8
- package/SVF-doxygen/html/html/search/all_1.js +2 -2
- package/SVF-doxygen/html/html/search/all_10.js +6 -6
- package/SVF-doxygen/html/html/search/all_11.js +1 -1
- package/SVF-doxygen/html/html/search/all_12.js +11 -11
- package/SVF-doxygen/html/html/search/all_13.js +16 -12
- package/SVF-doxygen/html/html/search/all_15.js +3 -3
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_19.js +1 -2
- package/SVF-doxygen/html/html/search/all_2.js +2 -0
- package/SVF-doxygen/html/html/search/all_3.js +12 -7
- package/SVF-doxygen/html/html/search/all_6.js +4 -4
- package/SVF-doxygen/html/html/search/all_7.js +5 -4
- package/SVF-doxygen/html/html/search/all_9.js +4 -4
- package/SVF-doxygen/html/html/search/all_b.js +1 -1
- package/SVF-doxygen/html/html/search/all_c.js +4 -4
- package/SVF-doxygen/html/html/search/all_d.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +14 -9
- package/SVF-doxygen/html/html/search/classes_2.js +1 -0
- package/SVF-doxygen/html/html/search/files_2.js +2 -0
- package/SVF-doxygen/html/html/search/functions_0.js +1 -1
- package/SVF-doxygen/html/html/search/functions_1.js +2 -0
- package/SVF-doxygen/html/html/search/functions_11.js +3 -3
- package/SVF-doxygen/html/html/search/functions_17.js +1 -2
- package/SVF-doxygen/html/html/search/functions_2.js +5 -2
- package/SVF-doxygen/html/html/search/functions_5.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +2 -1
- package/SVF-doxygen/html/html/search/functions_8.js +1 -1
- package/SVF-doxygen/html/html/search/functions_d.js +1 -0
- package/SVF-doxygen/html/html/search/functions_f.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
- package/SVF-doxygen/html/html/search/variables_0.js +8 -8
- package/SVF-doxygen/html/html/search/variables_1.js +1 -1
- package/SVF-doxygen/html/html/search/variables_10.js +1 -1
- package/SVF-doxygen/html/html/search/variables_12.js +2 -2
- package/SVF-doxygen/html/html/search/variables_13.js +13 -9
- package/SVF-doxygen/html/html/search/variables_3.js +2 -2
- package/SVF-doxygen/html/html/search/variables_7.js +3 -2
- package/SVF-doxygen/html/html/search/variables_9.js +1 -1
- package/SVF-doxygen/html/html/search/variables_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +12 -8
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
- package/include/CFL/CFLAlias.h +12 -51
- package/include/CFL/CFLBase.h +110 -0
- package/include/CFL/CFLStat.h +7 -18
- package/include/CFL/CFLVF.h +13 -25
- package/include/Graphs/CFLGraph.h +5 -0
- package/lib/CFL/CFLAlias.cpp +33 -66
- package/lib/CFL/CFLBase.cpp +133 -0
- package/lib/CFL/CFLStat.cpp +22 -149
- package/lib/CFL/CFLVF.cpp +28 -38
- package/package.json +1 -1
- package/tools/CFL/cfl.cpp +12 -25
|
@@ -66,33 +66,23 @@ $(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> <span class="comment">//===- CFLStat.h -- CFL statistics--------------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <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> <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> <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> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <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> <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> <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> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <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> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">/*</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> * CFLStat.h</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> *</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Created on: 17/9/2022</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> * Author: Pei Xu</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> */</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef CFL_CFLSTAT_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#define CFL_CFLSTAT_H_</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="PTAStat_8h.html">Util/PTAStat.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="CFLAlias_8h.html">CFL/CFLAlias.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <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> {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">class </span>CFLAlias;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">class </span>SVFIR;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">class </span>ConstraintGraph;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html"> 47</a></span> <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> {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <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>  <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> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <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>  <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> </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#aab012b94d23df8f5c78e74934aebf024"> 56</a></span>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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> </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a99aa7227148c3df700542aec0b8ae98d"> 66</a></span>  <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> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <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> </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#ac51498242513e203d0367b9d75f350f3"> 70</a></span>  <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>  {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <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> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <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> </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <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> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <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> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <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> };</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <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="
|
|
71
|
-
<div class="ttc" id="
|
|
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>
|
|
73
|
-
<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>
|
|
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> <span class="comment">//===- CFLStat.h -- CFL statistics--------------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <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> <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> <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> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <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> <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> <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> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <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> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">/*</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> * CFLStat.h</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> *</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Created on: 17/9/2022</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> * Author: Pei Xu</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> */</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef CFL_CFLSTAT_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#define CFL_CFLSTAT_H_</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="PTAStat_8h.html">Util/PTAStat.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="CFLAlias_8h.html">CFL/CFLAlias.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="CFLVF_8h.html">CFL/CFLVF.h</a>"</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <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> {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">class </span>CFLAlias;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">class </span>CFLVF;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">class </span>SVFIR;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">class </span>ConstraintGraph;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html"> 49</a></span> <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> {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <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>  <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> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a99aa7227148c3df700542aec0b8ae98d"> 57</a></span>  <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="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <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="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#ac51498242513e203d0367b9d75f350f3"> 61</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1CFLStat.html#ac51498242513e203d0367b9d75f350f3">~CFLStat</a>()</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <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="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <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="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#a58ad0e3bdb93c985ffc7242dba074fea">constraintGraphStat</a>();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#a1fbe39f511320df60f54235bd7842257">CFLGrammarStat</a>();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> };</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#endif </span><span class="comment">/* CFL_CFLSTAT_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#l00061">CFLStat.h:61</a></div></div>
|
|
71
|
+
<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
72
|
<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="
|
|
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>
|
|
73
|
+
<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#l00118">CFLStat.cpp:118</a></div></div>
|
|
78
74
|
<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="
|
|
80
|
-
<div class="ttc" id="
|
|
81
|
-
<div class="ttc" id="
|
|
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>
|
|
75
|
+
<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#l00057">CFLStat.h:57</a></div></div>
|
|
76
|
+
<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#l00056">CFLStat.cpp:56</a></div></div>
|
|
77
|
+
<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
78
|
<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>
|
|
79
|
+
<div class="ttc" id="classSVF_1_1CFLBase_html"><div class="ttname"><a href="classSVF_1_1CFLBase.html">SVF::CFLBase</a></div><div class="ttdoc">CFL Client Base Class. </div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00049">CFLBase.h:49</a></div></div>
|
|
80
|
+
<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#l00039">CFLStat.cpp:39</a></div></div>
|
|
90
81
|
<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="
|
|
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#
|
|
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>
|
|
82
|
+
<div class="ttc" id="CFLVF_8h_html"><div class="ttname"><a href="CFLVF_8h.html">CFLVF.h</a></div></div>
|
|
83
|
+
<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#l00047">CFLStat.cpp:47</a></div></div>
|
|
94
84
|
<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="
|
|
85
|
+
<div class="ttc" id="classSVF_1_1CFLStat_html_a1fbe39f511320df60f54235bd7842257"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a1fbe39f511320df60f54235bd7842257">SVF::CFLStat::CFLGrammarStat</a></div><div class="ttdeci">void CFLGrammarStat()</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8cpp_source.html#l00108">CFLStat.cpp:108</a></div></div>
|
|
96
86
|
<div class="ttc" id="PTAStat_8h_html"><div class="ttname"><a href="PTAStat_8h.html">PTAStat.h</a></div></div>
|
|
97
87
|
</div><!-- fragment --></div><!-- contents -->
|
|
98
88
|
<!-- start footer part -->
|
|
@@ -67,8 +67,6 @@ $(function() {
|
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
69
|
<div class="textblock"><code>#include "<a class="el" href="CFLVF_8h_source.html">CFL/CFLVF.h</a>"</code><br />
|
|
70
|
-
<code>#include "<a class="el" href="SVFBasicTypes_8h_source.html">Util/SVFBasicTypes.h</a>"</code><br />
|
|
71
|
-
<code>#include "<a class="el" href="Andersen_8h_source.html">WPA/Andersen.h</a>"</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,35 +66,24 @@ $(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> <span class="comment">//===----- CFLVF.cpp -- CFL Value Flow Client--------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <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> <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> <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> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <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> <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> <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> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <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> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * CFLAlias.cpp</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * Created on: September 7 , 2022</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Author: Pei Xu</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="CFLVF_8h.html">CFL/CFLVF.h</a>"</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="SVFBasicTypes_8h.html">Util/SVFBasicTypes.h</a>"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="Andersen_8h.html">WPA/Andersen.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <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> <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> <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> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#a52bf916b33278f48d26c3f02947bf720"> 40</a></span> <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> {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <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>  <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>  <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>  <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>  <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>  {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <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>  <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>  <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>  svfg = memSSA.buildFullSVFG(ander);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <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>  <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>  {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  graph = cflGraphBuilder.<a class="code" href="classSVF_1_1VFCFLGraphBuilder.html#ac4a6620622ad6642ed8543e0f8c65c20">buildBiPEGgraph</a>(consCG, grammarBase-><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>  }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  graph = cflGraphBuilder.<a class="code" href="classSVF_1_1VFCFLGraphBuilder.html#acd5ade19c0e058bfb41a1a8dd84748e1">buildBigraph</a>(svfg, grammarBase-><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>  }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  cflChecker.<a class="code" href="classSVF_1_1CFLGramGraphChecker.html#ada643d980c2590711660eb5f2a4e5f93">check</a>(grammarBase, &cflGraphBuilder, graph);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  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>  cflChecker.<a class="code" href="classSVF_1_1CFLGramGraphChecker.html#ada643d980c2590711660eb5f2a4e5f93">check</a>(grammar, &cflGraphBuilder, graph);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">delete</span> consCG;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">delete</span> grammarBase;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <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>  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>  cflChecker.<a class="code" href="classSVF_1_1CFLGramGraphChecker.html#ada643d980c2590711660eb5f2a4e5f93">check</a>(grammarBase, &cflGraphBuilder, graph);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  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>  cflChecker.<a class="code" href="classSVF_1_1CFLGramGraphChecker.html#ada643d980c2590711660eb5f2a4e5f93">check</a>(grammar, &cflGraphBuilder, graph);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">delete</span> grammarBase;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  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>  solver->solve();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <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>  {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  svfir->dump(<span class="stringliteral">"IR"</span>);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  grammar->dump(<span class="stringliteral">"Grammar"</span>);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  graph->dump(<span class="stringliteral">"CFLGraph"</span>);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <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>  {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <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>  }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> }</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> <span class="comment">//===----- CFLVF.cpp -- CFL Value Flow Client--------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <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> <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> <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> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <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> <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> <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> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <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> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * CFLAlias.cpp</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * Created on: September 7 , 2022</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Author: Pei Xu</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="CFLVF_8h.html">CFL/CFLVF.h</a>"</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <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> <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> <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> </div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#aa20f8d27da439c831f36b31312daf047"> 36</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLVF.html#aa20f8d27da439c831f36b31312daf047">CFLVF::buildCFLGraph</a>()</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="comment">// Build CFL Graph</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <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="l00040"></a><span class="lineno"> 40</span>  <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="l00041"></a><span class="lineno"> 41</span>  {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">PointerAnalysis::initialize</a>();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <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="l00044"></a><span class="lineno"> 44</span>  svfg = memSSA.buildFullSVFG(ander);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  graph = cflGraphBuilder.<a class="code" href="classSVF_1_1VFCFLGraphBuilder.html#acd5ade19c0e058bfb41a1a8dd84748e1">buildBigraph</a>(svfg, grammarBase->getStartKind(), grammarBase);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  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="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="comment">// Check CFL Graph and Grammar are accordance with grammar</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <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="l00052"></a><span class="lineno"> 52</span>  cflChecker.<a class="code" href="classSVF_1_1CFLGramGraphChecker.html#ada643d980c2590711660eb5f2a4e5f93">check</a>(grammarBase, &cflGraphBuilder, graph);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#a852ed935576ca426287cf4afa6a585e3"> 55</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLVF.html#a852ed935576ca426287cf4afa6a585e3">CFLVF::initialize</a>()</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="comment">// Build CFL Grammar</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  buildCFLGrammar();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">// Build CFL Graph</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  buildCFLGraph();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="comment">// Normalize grammar</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  normalizeCFLGrammar();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="comment">// Initialize sovler</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  solver = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLSolver.html">CFLSolver</a>(graph, grammar);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#a6047084ea0cfe2827130facdd54e4806"> 70</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLVF.html#a6047084ea0cfe2827130facdd54e4806">CFLVF::finalize</a>()</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <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="l00073"></a><span class="lineno"> 73</span>  {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a87b63f1f8f4f65cdf6647f9f056ffc53">Options::CFLGraph</a>.empty())</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  svfir->dump(<span class="stringliteral">"IR"</span>);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  grammar->dump(<span class="stringliteral">"Grammar"</span>);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  graph->dump(<span class="stringliteral">"CFLGraph"</span>);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> }</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#l00070">CFLVF.cpp:70</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
|
-
<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
74
|
<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< bool > PEGTransfer</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00256">Options.h:256</a></div></div>
|
|
78
|
-
<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
|
-
<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
|
-
<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
75
|
<div class="ttc" id="namespaceSVFUtil_html"><div class="ttname"><a href="namespaceSVFUtil.html">SVFUtil</a></div></div>
|
|
84
76
|
<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< std::string > 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>
|
|
86
77
|
<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< bool > PrintCFL</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00254">Options.h:254</a></div></div>
|
|
87
78
|
<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
|
-
<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
|
-
<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< std::string > GrammarFilename</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00252">Options.h:252</a></div></div>
|
|
91
79
|
<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>
|
|
80
|
+
<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#l00055">CFLVF.cpp:55</a></div></div>
|
|
92
81
|
<div class="ttc" id="namespacecppUtil_html"><div class="ttname"><a href="namespacecppUtil.html">cppUtil</a></div></div>
|
|
93
82
|
<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
83
|
<div class="ttc" id="CFLVF_8h_html"><div class="ttname"><a href="CFLVF_8h.html">CFLVF.h</a></div></div>
|
|
95
84
|
<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>
|
|
85
|
+
<div class="ttc" id="classSVF_1_1CFLVF_html_aa20f8d27da439c831f36b31312daf047"><div class="ttname"><a href="classSVF_1_1CFLVF.html#aa20f8d27da439c831f36b31312daf047">SVF::CFLVF::buildCFLGraph</a></div><div class="ttdeci">void buildCFLGraph()</div><div class="ttdoc">Build CFLGraph via VFG. </div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8cpp_source.html#l00036">CFLVF.cpp:36</a></div></div>
|
|
96
86
|
<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
|
-
<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>
|
|
98
87
|
</div><!-- fragment --></div><!-- contents -->
|
|
99
88
|
<!-- start footer part -->
|
|
100
89
|
<hr class="footer"/><address class="footer"><small>
|
|
@@ -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 "<a class="el" href="
|
|
73
|
-
<code>#include "<a class="el" href="
|
|
74
|
-
<code>#include "<a class="el" href="GrammarBuilder_8h_source.html">CFL/GrammarBuilder.h</a>"</code><br />
|
|
75
|
-
<code>#include "<a class="el" href="CFLGraphBuilder_8h_source.html">CFL/CFLGraphBuilder.h</a>"</code><br />
|
|
76
|
-
<code>#include "<a class="el" href="CFLGramGraphChecker_8h_source.html">CFL/CFLGramGraphChecker.h</a>"</code><br />
|
|
77
|
-
<code>#include "<a class="el" href="PointerAnalysis_8h_source.html">MemoryModel/PointerAnalysis.h</a>"</code><br />
|
|
78
|
-
<code>#include "<a class="el" href="ConsG_8h_source.html">Graphs/ConsG.h</a>"</code><br />
|
|
79
|
-
<code>#include "<a class="el" href="Options_8h_source.html">Util/Options.h</a>"</code><br />
|
|
72
|
+
<div class="textblock"><code>#include "<a class="el" href="CFLBase_8h_source.html">CFL/CFLBase.h</a>"</code><br />
|
|
73
|
+
<code>#include "<a class="el" href="CFLStat_8h_source.html">CFL/CFLStat.h</a>"</code><br />
|
|
80
74
|
<code>#include "<a class="el" href="SaberSVFGBuilder_8h_source.html">SABER/SaberSVFGBuilder.h</a>"</code><br />
|
|
75
|
+
<code>#include "<a class="el" href="Andersen_8h_source.html">WPA/Andersen.h</a>"</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">
|
|
@@ -66,39 +66,24 @@ $(function() {
|
|
|
66
66
|
<div class="title">CFLVF.h</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="CFLVF_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> <span class="comment">//===----- CFLVF.h -- CFL Value-Flow Client--------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <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> <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> <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> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <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> <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> <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> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <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> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * CFLVF.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * Created on: September 5, 2022</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Author: Pei Xu</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#ifndef INCLUDE_CFL_CFLVF_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#define INCLUDE_CFL_CFLVF_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="CFLSolver_8h.html">CFL/CFLSolver.h</a>"</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="CFGNormalizer_8h.html">CFL/CFGNormalizer.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="GrammarBuilder_8h.html">CFL/GrammarBuilder.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="CFLGraphBuilder_8h.html">CFL/CFLGraphBuilder.h</a>"</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="CFLGramGraphChecker_8h.html">CFL/CFLGramGraphChecker.h</a>"</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="PointerAnalysis_8h.html">MemoryModel/PointerAnalysis.h</a>"</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "<a class="code" href="ConsG_8h.html">Graphs/ConsG.h</a>"</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "<a class="code" href="Options_8h.html">Util/Options.h</a>"</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "<a class="code" href="SaberSVFGBuilder_8h.html">SABER/SaberSVFGBuilder.h</a>"</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html"> 46</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CFLVF.html">CFLVF</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#a2cb0e830ee529c6debd9c95a8f6299e6"> 50</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap<CallSite, NodeID></a> <a class="code" href="classSVF_1_1CFLVF.html#a2cb0e830ee529c6debd9c95a8f6299e6">CallSite2DummyValPN</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#a1e6a36bc27f7b325086f8f44d745d519"> 52</a></span>  <a class="code" href="classSVF_1_1CFLVF.html#a1e6a36bc27f7b325086f8f44d745d519">CFLVF</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* ir) : <a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>(ir, <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>::<a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ab87dcf990c05d31f91b9bfdfcfb54b7d">CFLFSCS_WPA</a>, <a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), <a class="code" href="classSVF_1_1CFLVF.html#a32b774f456dc6ca596cfe2fcd77efbc9">svfir</a>(ir), <a class="code" href="classSVF_1_1CFLVF.html#a30732e01e523dc5e2fc4c9d1ea83d414">graph</a>(nullptr), <a class="code" href="classSVF_1_1CFLVF.html#a7ba9ca8cbafa6f799278c33fe5edd4fb">grammar</a>(nullptr), <a class="code" href="classSVF_1_1CFLVF.html#ab7ff36646da4c568d160ca2563b9b087">solver</a>(nullptr)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#ac993bd9c186eef2447d6f50d6451f014"> 57</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1CFLVF.html#ac993bd9c186eef2447d6f50d6451f014">~CFLVF</a>()</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1CFLVF.html#ab7ff36646da4c568d160ca2563b9b087">solver</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLVF.html#a52bf916b33278f48d26c3f02947bf720">analyze</a>();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#a8449ed8950c983cabe92c74139ebef70"> 66</a></span>  CallSite2DummyValPN <a class="code" href="classSVF_1_1CFLVF.html#a8449ed8950c983cabe92c74139ebef70">callsite2DummyValPN</a>; </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#a32b774f456dc6ca596cfe2fcd77efbc9"> 67</a></span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* <a class="code" href="classSVF_1_1CFLVF.html#a32b774f456dc6ca596cfe2fcd77efbc9">svfir</a>;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#a30732e01e523dc5e2fc4c9d1ea83d414"> 68</a></span>  <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>* <a class="code" href="classSVF_1_1CFLVF.html#a30732e01e523dc5e2fc4c9d1ea83d414">graph</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#a7ba9ca8cbafa6f799278c33fe5edd4fb"> 69</a></span>  <a class="code" href="classSVF_1_1CFLGrammar.html">CFLGrammar</a>* <a class="code" href="classSVF_1_1CFLVF.html#a7ba9ca8cbafa6f799278c33fe5edd4fb">grammar</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#ab7ff36646da4c568d160ca2563b9b087"> 70</a></span>  <a class="code" href="classSVF_1_1CFLSolver.html">CFLSolver</a> *<a class="code" href="classSVF_1_1CFLVF.html#ab7ff36646da4c568d160ca2563b9b087">solver</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#a42998aacf670d108b2a00b8993507e1e"> 71</a></span>  <a class="code" href="classSVF_1_1SaberSVFGBuilder.html">SaberSVFGBuilder</a> <a class="code" href="classSVF_1_1CFLVF.html#a42998aacf670d108b2a00b8993507e1e">memSSA</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#aed71ea423497a4f64c8b62ee4187210e"> 72</a></span>  <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1CFLVF.html#aed71ea423497a4f64c8b62ee4187210e">svfg</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> };</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#endif </span><span class="comment">/* INCLUDE_CFL_CFLVF_H_*/</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1CFLVF_html_a42998aacf670d108b2a00b8993507e1e"><div class="ttname"><a href="classSVF_1_1CFLVF.html#a42998aacf670d108b2a00b8993507e1e">SVF::CFLVF::memSSA</a></div><div class="ttdeci">SaberSVFGBuilder memSSA</div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8h_source.html#l00071">CFLVF.h:71</a></div></div>
|
|
70
|
-
<div class="ttc" id="
|
|
71
|
-
<div class="ttc" id="classSVF_1_1CFLVF_html_a1e6a36bc27f7b325086f8f44d745d519"><div class="ttname"><a href="classSVF_1_1CFLVF.html#a1e6a36bc27f7b325086f8f44d745d519">SVF::CFLVF::CFLVF</a></div><div class="ttdeci">CFLVF(SVFIR *ir)</div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8h_source.html#
|
|
72
|
-
<div class="ttc" id="classSVF_1_1CFLVF_html_a30732e01e523dc5e2fc4c9d1ea83d414"><div class="ttname"><a href="classSVF_1_1CFLVF.html#a30732e01e523dc5e2fc4c9d1ea83d414">SVF::CFLVF::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8h_source.html#l00068">CFLVF.h:68</a></div></div>
|
|
73
|
-
<div class="ttc" id="classSVF_1_1CFLVF_html_ac993bd9c186eef2447d6f50d6451f014"><div class="ttname"><a href="classSVF_1_1CFLVF.html#ac993bd9c186eef2447d6f50d6451f014">SVF::CFLVF::~CFLVF</a></div><div class="ttdeci">virtual ~CFLVF()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8h_source.html#l00057">CFLVF.h:57</a></div></div>
|
|
69
|
+
<a href="CFLVF_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> <span class="comment">//===----- CFLVF.h -- CFL Value-Flow Client--------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <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> <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> <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> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <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> <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> <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> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <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> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * CFLVF.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * Created on: September 5, 2022</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Author: Pei Xu</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#ifndef INCLUDE_CFL_CFLVF_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#define INCLUDE_CFL_CFLVF_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="CFLBase_8h.html">CFL/CFLBase.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="CFLStat_8h.html">CFL/CFLStat.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="SaberSVFGBuilder_8h.html">SABER/SaberSVFGBuilder.h</a>"</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="Andersen_8h.html">WPA/Andersen.h</a>"</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html"> 41</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CFLVF.html">CFLVF</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1CFLBase.html">CFLBase</a></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#a1e6a36bc27f7b325086f8f44d745d519"> 45</a></span>  <a class="code" href="classSVF_1_1CFLVF.html#a1e6a36bc27f7b325086f8f44d745d519">CFLVF</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* ir) : <a class="code" href="classSVF_1_1CFLBase.html">CFLBase</a>(ir, <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>::<a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ab87dcf990c05d31f91b9bfdfcfb54b7d">CFLFSCS_WPA</a>)</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLVF.html#a852ed935576ca426287cf4afa6a585e3">initialize</a>();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLVF.html#a6047084ea0cfe2827130facdd54e4806">finalize</a>();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLVF.html#aa20f8d27da439c831f36b31312daf047">buildCFLGraph</a>();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#a42998aacf670d108b2a00b8993507e1e"> 59</a></span>  <a class="code" href="classSVF_1_1SaberSVFGBuilder.html">SaberSVFGBuilder</a> <a class="code" href="classSVF_1_1CFLVF.html#a42998aacf670d108b2a00b8993507e1e">memSSA</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLVF.html#aed71ea423497a4f64c8b62ee4187210e"> 60</a></span>  <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1CFLVF.html#aed71ea423497a4f64c8b62ee4187210e">svfg</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> };</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#endif </span><span class="comment">/* INCLUDE_CFL_CFLVF_H_*/</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1CFLVF_html_a42998aacf670d108b2a00b8993507e1e"><div class="ttname"><a href="classSVF_1_1CFLVF.html#a42998aacf670d108b2a00b8993507e1e">SVF::CFLVF::memSSA</a></div><div class="ttdeci">SaberSVFGBuilder memSSA</div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8h_source.html#l00059">CFLVF.h:59</a></div></div>
|
|
70
|
+
<div class="ttc" id="Andersen_8h_html"><div class="ttname"><a href="Andersen_8h.html">Andersen.h</a></div></div>
|
|
71
|
+
<div class="ttc" id="classSVF_1_1CFLVF_html_a1e6a36bc27f7b325086f8f44d745d519"><div class="ttname"><a href="classSVF_1_1CFLVF.html#a1e6a36bc27f7b325086f8f44d745d519">SVF::CFLVF::CFLVF</a></div><div class="ttdeci">CFLVF(SVFIR *ir)</div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8h_source.html#l00045">CFLVF.h:45</a></div></div>
|
|
74
72
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85ab87dcf990c05d31f91b9bfdfcfb54b7d"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ab87dcf990c05d31f91b9bfdfcfb54b7d">SVF::PointerAnalysis::CFLFSCS_WPA</a></div><div class="ttdoc">Flow-, context-, CFL-reachability-based analysis. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00079">PointerAnalysis.h:79</a></div></div>
|
|
75
|
-
<div class="ttc" id="
|
|
76
|
-
<div class="ttc" id="
|
|
77
|
-
<div class="ttc" id="
|
|
78
|
-
<div class="ttc" id="
|
|
79
|
-
<div class="ttc" id="
|
|
80
|
-
<div class="ttc" id="cJSON_8cpp_html_a65e9886d74aaee76545e83dd09011727"><div class="ttname"><a href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a></div><div class="ttdeci">#define false</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00070">cJSON.cpp:70</a></div></div>
|
|
81
|
-
<div class="ttc" id="PointerAnalysis_8h_html"><div class="ttname"><a href="PointerAnalysis_8h.html">PointerAnalysis.h</a></div></div>
|
|
82
|
-
<div class="ttc" id="CFLSolver_8h_html"><div class="ttname"><a href="CFLSolver_8h.html">CFLSolver.h</a></div></div>
|
|
83
|
-
<div class="ttc" id="classSVF_1_1CFLVF_html_a8449ed8950c983cabe92c74139ebef70"><div class="ttname"><a href="classSVF_1_1CFLVF.html#a8449ed8950c983cabe92c74139ebef70">SVF::CFLVF::callsite2DummyValPN</a></div><div class="ttdeci">CallSite2DummyValPN callsite2DummyValPN</div><div class="ttdoc">Map an instruction to a dummy obj which created at an indirect callsite, which invokes a heap allocat...</div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8h_source.html#l00066">CFLVF.h:66</a></div></div>
|
|
84
|
-
<div class="ttc" id="classSVF_1_1CFLVF_html_ab7ff36646da4c568d160ca2563b9b087"><div class="ttname"><a href="classSVF_1_1CFLVF.html#ab7ff36646da4c568d160ca2563b9b087">SVF::CFLVF::solver</a></div><div class="ttdeci">CFLSolver * solver</div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8h_source.html#l00070">CFLVF.h:70</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>
|
|
86
|
-
<div class="ttc" id="CFLGramGraphChecker_8h_html"><div class="ttname"><a href="CFLGramGraphChecker_8h.html">CFLGramGraphChecker.h</a></div></div>
|
|
87
|
-
<div class="ttc" id="classSVF_1_1CFLVF_html_a7ba9ca8cbafa6f799278c33fe5edd4fb"><div class="ttname"><a href="classSVF_1_1CFLVF.html#a7ba9ca8cbafa6f799278c33fe5edd4fb">SVF::CFLVF::grammar</a></div><div class="ttdeci">CFLGrammar * grammar</div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8h_source.html#l00069">CFLVF.h:69</a></div></div>
|
|
88
|
-
<div class="ttc" id="Options_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
89
|
-
<div class="ttc" id="classSVF_1_1CFLVF_html"><div class="ttname"><a href="classSVF_1_1CFLVF.html">SVF::CFLVF</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8h_source.html#l00046">CFLVF.h:46</a></div></div>
|
|
73
|
+
<div class="ttc" id="CFLStat_8h_html"><div class="ttname"><a href="CFLStat_8h.html">CFLStat.h</a></div></div>
|
|
74
|
+
<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#l00070">CFLVF.cpp:70</a></div></div>
|
|
75
|
+
<div class="ttc" id="classSVF_1_1CFLVF_html_aed71ea423497a4f64c8b62ee4187210e"><div class="ttname"><a href="classSVF_1_1CFLVF.html#aed71ea423497a4f64c8b62ee4187210e">SVF::CFLVF::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8h_source.html#l00060">CFLVF.h:60</a></div></div>
|
|
76
|
+
<div class="ttc" id="CFLBase_8h_html"><div class="ttname"><a href="CFLBase_8h.html">CFLBase.h</a></div></div>
|
|
77
|
+
<div class="ttc" id="classSVF_1_1CFLVF_html"><div class="ttname"><a href="classSVF_1_1CFLVF.html">SVF::CFLVF</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8h_source.html#l00041">CFLVF.h:41</a></div></div>
|
|
90
78
|
<div class="ttc" id="SaberSVFGBuilder_8h_html"><div class="ttname"><a href="SaberSVFGBuilder_8h.html">SaberSVFGBuilder.h</a></div></div>
|
|
91
|
-
<div class="ttc" id="
|
|
79
|
+
<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#l00055">CFLVF.cpp:55</a></div></div>
|
|
80
|
+
<div class="ttc" id="classSVF_1_1CFLBase_html"><div class="ttname"><a href="classSVF_1_1CFLBase.html">SVF::CFLBase</a></div><div class="ttdoc">CFL Client Base Class. </div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00049">CFLBase.h:49</a></div></div>
|
|
92
81
|
<div class="ttc" id="classSVF_1_1SVFG_html"><div class="ttname"><a href="classSVF_1_1SVFG.html">SVF::SVFG</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00065">SVFG.h:65</a></div></div>
|
|
93
82
|
<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
|
-
<div class="ttc" id="classSVF_1_1CFLVF_html_a32b774f456dc6ca596cfe2fcd77efbc9"><div class="ttname"><a href="classSVF_1_1CFLVF.html#a32b774f456dc6ca596cfe2fcd77efbc9">SVF::CFLVF::svfir</a></div><div class="ttdeci">SVFIR * svfir</div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8h_source.html#l00067">CFLVF.h:67</a></div></div>
|
|
95
|
-
<div class="ttc" id="GrammarBuilder_8h_html"><div class="ttname"><a href="GrammarBuilder_8h.html">GrammarBuilder.h</a></div></div>
|
|
96
83
|
<div class="ttc" id="classSVF_1_1SaberSVFGBuilder_html"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html">SVF::SaberSVFGBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8h_source.html#l00040">SaberSVFGBuilder.h:40</a></div></div>
|
|
97
|
-
<div class="ttc" id="CFLGraphBuilder_8h_html"><div class="ttname"><a href="CFLGraphBuilder_8h.html">CFLGraphBuilder.h</a></div></div>
|
|
98
84
|
<div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
99
|
-
<div class="ttc" id="
|
|
85
|
+
<div class="ttc" id="classSVF_1_1CFLVF_html_aa20f8d27da439c831f36b31312daf047"><div class="ttname"><a href="classSVF_1_1CFLVF.html#aa20f8d27da439c831f36b31312daf047">SVF::CFLVF::buildCFLGraph</a></div><div class="ttdeci">void buildCFLGraph()</div><div class="ttdoc">Build CFLGraph via VFG. </div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8cpp_source.html#l00036">CFLVF.cpp:36</a></div></div>
|
|
100
86
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html">SVF::PointerAnalysis</a></div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00057">PointerAnalysis.h:57</a></div></div>
|
|
101
|
-
<div class="ttc" id="namespaceSVF_html_aedf0d6718ca176e0b9e17ab4b30729c6"><div class="ttname"><a href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">SVF::OrderedMap</a></div><div class="ttdeci">std::map< Key, Value, Compare, Allocator > OrderedMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00117">SVFBasicTypes.h:117</a></div></div>
|
|
102
87
|
</div><!-- fragment --></div><!-- contents -->
|
|
103
88
|
<!-- start footer part -->
|
|
104
89
|
<hr class="footer"/><address class="footer"><small>
|