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,77 +66,36 @@ $(function() {
|
|
|
66
66
|
<div class="title">CFLStat.cpp</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="CFLStat_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">//===- CFLStat.cpp -- Statistics of CFL Reachability's analysis------------------//</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> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * CFLStat.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: 17 Sep, 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="CFLStat_8h.html">CFL/CFLStat.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="namespaceSVFUtil.html">SVFUtil</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">using namespace </span><a class="code" href="namespacestd.html">std</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"> 36</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#aab012b94d23df8f5c78e74934aebf024">CFLStat::_MaxPtsSize</a> = 0;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#ab6a95a6c55e582958cae3327e482ef7f">CFLStat::_NumOfCycles</a> = 0;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#a9866844333afd0bfffd336778e97ae02">CFLStat::_NumOfPWCCycles</a> = 0;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#a404decd93db2bbcd36682cfdc3e5549c">CFLStat::_NumOfNodesInCycles</a> = 0;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CFLStat.html#a3601b07709f1eef4c4685cc90a1648e2">CFLStat::_MaxNumOfNodesInSCC</a> = 0;</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> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1CFLStat.html#a1038d77be761d3033237724330631d3e">CFLStat::CollapseTime</a> = <span class="stringliteral">"CollapseTime"</span>;</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#abde1d6206fcde988c3959affc8afbbad"> 47</a></span> <a class="code" href="classSVF_1_1CFLStat.html#abde1d6206fcde988c3959affc8afbbad">CFLStat::CFLStat</a>(<a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>* <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>): <a class="code" href="classSVF_1_1PTAStat.html">PTAStat</a>(p),pta(p)</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>  <a class="code" href="classSVF_1_1CFLStat.html#ab3e6256784b06ef36c0f93a88c7d8590">_NumOfNullPtr</a> = 0;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="classSVF_1_1CFLStat.html#a4e0b174c9387ffa3bca0eb1976e489fb">_NumOfConstantPtr</a>= 0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="classSVF_1_1CFLStat.html#af4a3e4fded0ea25bf29f91b08b335236">_NumOfBlackholePtr</a> = 0;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="classSVF_1_1SVFStat.html#a730cc814fede3edb563aa9957c869e9e">startClk</a>();</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="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a915d2f3c684646f813687445c2d22622"> 58</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#a915d2f3c684646f813687445c2d22622">CFLStat::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="l00059"></a><span class="lineno"> 59</span> {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classSVF_1_1CFLStat.html#ab6a95a6c55e582958cae3327e482ef7f">_NumOfCycles</a> = 0;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="classSVF_1_1CFLStat.html#a9866844333afd0bfffd336778e97ae02">_NumOfPWCCycles</a> = 0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classSVF_1_1CFLStat.html#a404decd93db2bbcd36682cfdc3e5549c">_NumOfNodesInCycles</a> = 0;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> repNodes;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  repNodes.clear();</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> </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> </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#ae235e945a6856cfad961ba752b75d409"> 72</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#ae235e945a6856cfad961ba752b75d409">CFLStat::collectCycleInfo</a>(<a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a>* consCG)</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>  <a class="code" href="classSVF_1_1CFLStat.html#ab6a95a6c55e582958cae3327e482ef7f">_NumOfCycles</a> = 0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="classSVF_1_1CFLStat.html#a9866844333afd0bfffd336778e97ae02">_NumOfPWCCycles</a> = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classSVF_1_1CFLStat.html#a404decd93db2bbcd36682cfdc3e5549c">_NumOfNodesInCycles</a> = 0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> repNodes;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  repNodes.clear();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">ConstraintGraph::iterator</a> it = consCG-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = consCG-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it!=eit; ++it)</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="comment">// sub nodes have been removed from the constraint graph, only rep nodes are left.</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> repNode = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">sccRepNode</a>(it->first);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& subNodes = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#aed605b010e313f4b11e95b83fe50e3b3">sccSubNodes</a>(repNode);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> clone = subNodes;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it != eit; ++it)</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="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = *it;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = <a class="code" href="classSVF_1_1CFLStat.html#a23c6ba004928f8ac6c9b12bd7ad49881">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(nodeId);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">if</span> (SVFUtil::isa<ObjVar>(pagNode) && <a class="code" href="classSVF_1_1CFLStat.html#a23c6ba004928f8ac6c9b12bd7ad49881">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">isFieldInsensitive</a>(nodeId))</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> baseId = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#a6e8c46641da751fe3369c9d5407ce415">getBaseObjVar</a>(nodeId);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  clone.<a class="code" href="classSVF_1_1SparseBitVector.html#ad5337b5aeed50f8b7ffd56b14ee25c9f">reset</a>(nodeId);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  clone.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(baseId);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = clone.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">if</span> (num > 1)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">if</span>(repNodes.insert(repNode).second)</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="classSVF_1_1CFLStat.html#a404decd93db2bbcd36682cfdc3e5549c">_NumOfNodesInCycles</a> += num;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">if</span>(consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#a84468bc9355d31e8c3e18369036ddf5c">isPWCNode</a>(repNode))</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classSVF_1_1CFLStat.html#a9866844333afd0bfffd336778e97ae02">_NumOfPWCCycles</a> ++;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">if</span>( num > <a class="code" href="classSVF_1_1CFLStat.html#a3601b07709f1eef4c4685cc90a1648e2">_MaxNumOfNodesInSCC</a>)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="classSVF_1_1CFLStat.html#a3601b07709f1eef4c4685cc90a1648e2">_MaxNumOfNodesInSCC</a> = num;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="classSVF_1_1CFLStat.html#ab6a95a6c55e582958cae3327e482ef7f">_NumOfCycles</a> += repNodes.size();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a58ad0e3bdb93c985ffc7242dba074fea"> 112</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#a58ad0e3bdb93c985ffc7242dba074fea">CFLStat::constraintGraphStat</a>()</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfCopys = 0;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfGeps = 0;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalNodeNumber = 0;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> cgNodeNumber = 0;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objNodeNumber = 0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> addrtotalIn = 0;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> addrmaxIn = 0;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> addrmaxOut = 0;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> copytotalIn = 0;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> copymaxIn = 0;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> copymaxOut = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> loadtotalIn = 0;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> loadmaxIn = 0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> loadmaxOut = 0;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> storetotalIn = 0;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> storemaxIn = 0;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> storemaxOut = 0;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordtype">double</span> storeavgIn = (double)storetotalIn/cgNodeNumber;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordtype">double</span> loadavgIn = (double)loadtotalIn/cgNodeNumber;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordtype">double</span> copyavgIn = (double)copytotalIn/cgNodeNumber;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordtype">double</span> addravgIn = (double)addrtotalIn/cgNodeNumber;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordtype">double</span> avgIn = (double)(addrtotalIn + copytotalIn + loadtotalIn + storetotalIn)/cgNodeNumber;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfCGNode"</span>] = totalNodeNumber;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"TotalValidNode"</span>] = cgNodeNumber;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"TotalValidObjNode"</span>] = objNodeNumber;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfCopys"</span>] = numOfCopys;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfGeps"</span>] = numOfGeps;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"MaxInCopyEdge"</span>] = copymaxIn;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"MaxOutCopyEdge"</span>] = copymaxOut;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"MaxInLoadEdge"</span>] = loadmaxIn;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"MaxOutLoadEdge"</span>] = loadmaxOut;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"MaxInStoreEdge"</span>] = storemaxIn;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"MaxOutStoreEdge"</span>] = storemaxOut;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"AvgIn/OutStoreEdge"</span>] = storeavgIn;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"MaxInAddrEdge"</span>] = addrmaxIn;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"MaxOutAddrEdge"</span>] = addrmaxOut;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"AvgIn/OutCopyEdge"</span>] = copyavgIn;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"AvgIn/OutLoadEdge"</span>] = loadavgIn;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"AvgIn/OutAddrEdge"</span>] = addravgIn;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"AvgIn/OutEdge"</span>] = avgIn;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <a class="code" href="classSVF_1_1SVFStat.html#a178fcefed6ffffc78bbe9b23e0e1babe">PTAStat::printStat</a>(<span class="stringliteral">"CFL Graph Stats"</span>);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> }</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a6bcca58ff4481dee06b06eb17ed603ea"> 166</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#a6bcca58ff4481dee06b06eb17ed603ea">CFLStat::statNullPtr</a>()</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="classSVF_1_1CFLStat.html#ab3e6256784b06ef36c0f93a88c7d8590">_NumOfNullPtr</a> = 0;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> iter = <a class="code" href="classSVF_1_1CFLStat.html#a23c6ba004928f8ac6c9b12bd7ad49881">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eiter = <a class="code" href="classSVF_1_1CFLStat.html#a23c6ba004928f8ac6c9b12bd7ad49881">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  iter != eiter; ++iter)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> pagNodeId = iter->first;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = iter->second;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">if</span> (SVFUtil::isa<ValVar>(pagNode) == <span class="keyword">false</span>)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& inComingStore = pagNode-><a class="code" href="classSVF_1_1SVFVar.html#a76964ef7d4842a469d7720881499d8a6">getIncomingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& outGoingLoad = pagNode-><a class="code" href="classSVF_1_1SVFVar.html#a927733580b47be5ffcfced44ba9fd6c3">getOutgoingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">if</span> (inComingStore.empty()==<span class="keyword">false</span> || outGoingLoad.empty()==<span class="keyword">false</span>)</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts = <a class="code" href="classSVF_1_1CFLStat.html#a23c6ba004928f8ac6c9b12bd7ad49881">pta</a>-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(pagNodeId);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLStat.html#a23c6ba004928f8ac6c9b12bd7ad49881">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a56368369bc37e37b13f19e5eb1890063">containBlackHoleNode</a>(pts))</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="classSVF_1_1CFLStat.html#af4a3e4fded0ea25bf29f91b08b335236">_NumOfBlackholePtr</a>++;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLStat.html#a23c6ba004928f8ac6c9b12bd7ad49881">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#afa7d9f6209904acd7893ae583e28dafd">containConstantNode</a>(pts))</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="classSVF_1_1CFLStat.html#a4e0b174c9387ffa3bca0eb1976e489fb">_NumOfConstantPtr</a>++;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordflow">if</span>(pts.<a class="code" href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">empty</a>())</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">if</span> (!SVFUtil::isa<DummyValVar>(pagNode) && !SVFUtil::isa<DummyObjVar>(pagNode) )</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="comment">// if a pointer is in dead function, we do not care</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#a33b2c83db77cd2ac72b1d591789ef1c5">SymbolTableInfo::isPtrInUncalledFunction</a>(pagNode-><a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>()) == <span class="keyword">false</span>)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <a class="code" href="classSVF_1_1CFLStat.html#ab3e6256784b06ef36c0f93a88c7d8590">_NumOfNullPtr</a>++;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  rawstr << <span class="stringliteral">"##Null Pointer : (NodeID "</span> << pagNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  << <span class="stringliteral">") PtrName:"</span> << pagNode-><a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>()->getName();</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(rawstr.str());</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="comment">//pagNode->getValue()->dump();</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="classSVF_1_1CFLStat.html#ab3e6256784b06ef36c0f93a88c7d8590">_NumOfNullPtr</a>++;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  rawstr << <span class="stringliteral">"##Null Pointer : (NodeID "</span> << pagNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() << <span class="stringliteral">")"</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(rawstr.str());</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a1d85a7c4b2c22d3d8e0115212362d83b"> 220</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#a1d85a7c4b2c22d3d8e0115212362d83b">CFLStat::performStat</a>()</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  assert(SVFUtil::isa<CFLAlias>(<a class="code" href="classSVF_1_1CFLStat.html#a23c6ba004928f8ac6c9b12bd7ad49881">pta</a>) && <span class="stringliteral">"not an CFLAlias pass!! what else??"</span>);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <a class="code" href="classSVF_1_1SVFStat.html#a1b7f1e3381de87f75f06cddb9c6c1ec1">endClk</a>();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="comment">// SVFIR* pag = pta->getPAG();</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>* <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a> = <a class="code" href="classSVF_1_1CFLStat.html#a23c6ba004928f8ac6c9b12bd7ad49881">pta</a>-><a class="code" href="classSVF_1_1CFLAlias.html#ade2773347ef08df69713e14cf1a24352">getCFLGraph</a>();</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="comment">// collect cfl graph infor</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="classSVF_1_1CFLStat.html#a915d2f3c684646f813687445c2d22622">collectCFLInfo</a>(CFLGraph);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="comment">// delete CFLGraph;</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="comment">// collect constraint graph cycles</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="comment">// collectCycleInfo(consCG);</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="comment">// stat null ptr number</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="classSVF_1_1CFLStat.html#a6bcca58ff4481dee06b06eb17ed603ea">statNullPtr</a>();</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalPointers = 0;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalTopLevPointers = 0;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalPtsSize = 0;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalTopLevPtsSize = 0;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> iter = <a class="code" href="classSVF_1_1CFLStat.html#a23c6ba004928f8ac6c9b12bd7ad49881">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eiter = <a class="code" href="classSVF_1_1CFLStat.html#a23c6ba004928f8ac6c9b12bd7ad49881">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  iter != eiter; ++iter)</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node = iter->first;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts = <a class="code" href="classSVF_1_1CFLStat.html#a23c6ba004928f8ac6c9b12bd7ad49881">pta</a>-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(node);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> size = pts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>();</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  totalPointers++;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  totalPtsSize+=size;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLStat.html#a23c6ba004928f8ac6c9b12bd7ad49881">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(<a class="code" href="classSVF_1_1CFLStat.html#a23c6ba004928f8ac6c9b12bd7ad49881">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(node)))</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  totalTopLevPointers++;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  totalTopLevPtsSize+=size;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">if</span>(size > <a class="code" href="classSVF_1_1CFLStat.html#aab012b94d23df8f5c78e74934aebf024">_MaxPtsSize</a> )</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <a class="code" href="classSVF_1_1CFLStat.html#aab012b94d23df8f5c78e74934aebf024">_MaxPtsSize</a> = size;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <a class="code" href="classSVF_1_1PTAStat.html#ad6de9d3f25c20705768000c987af0eb6">PTAStat::performStat</a>();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <a class="code" href="classSVF_1_1CFLStat.html#a58ad0e3bdb93c985ffc7242dba074fea">constraintGraphStat</a>();</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"PointsToConstPtr"</span>] = <a class="code" href="classSVF_1_1CFLStat.html#a4e0b174c9387ffa3bca0eb1976e489fb">_NumOfConstantPtr</a>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"PointsToBlkPtr"</span>] = <a class="code" href="classSVF_1_1CFLStat.html#af4a3e4fded0ea25bf29f91b08b335236">_NumOfBlackholePtr</a>;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="classSVF_1_1SVFStat.html#a178fcefed6ffffc78bbe9b23e0e1babe">PTAStat::printStat</a>(<span class="stringliteral">"CFL Alias Analysis Stats"</span>);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00534">SparseBitVector.h:534</a></div></div>
|
|
70
|
-
<div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
|
|
71
|
-
<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>
|
|
72
|
-
<div class="ttc" id="classSVF_1_1CFLAlias_html"><div class="ttname"><a href="classSVF_1_1CFLAlias.html">SVF::CFLAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00048">CFLAlias.h:48</a></div></div>
|
|
69
|
+
<a href="CFLStat_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">//===- CFLStat.cpp -- Statistics of CFL Reachability's analysis------------------//</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> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * CFLStat.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: 17 Sep, 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="CFLStat_8h.html">CFL/CFLStat.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="namespaceSVFUtil.html">SVFUtil</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">using namespace </span><a class="code" href="namespacestd.html">std</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#ada5680cabe65962be3a574a8a740f59c"> 39</a></span> <a class="code" href="classSVF_1_1CFLStat.html#ada5680cabe65962be3a574a8a740f59c">CFLStat::CFLStat</a>(<a class="code" href="classSVF_1_1CFLBase.html">CFLBase</a>* <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>): <a class="code" href="classSVF_1_1PTAStat.html">PTAStat</a>(p),pta(p)</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>  <a class="code" href="classSVF_1_1SVFStat.html#a730cc814fede3edb563aa9957c869e9e">startClk</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="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a915d2f3c684646f813687445c2d22622"> 47</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#a915d2f3c684646f813687445c2d22622">CFLStat::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="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"timeOfBuildCFLGraph"</span>] = <a class="code" href="classSVF_1_1CFLStat.html#a6fc506f947be6c9309cc8914c6a8c3e0">pta</a>-><a class="code" href="classSVF_1_1CFLBase.html#a9453bf479ccd00bacb3b371fa6383a9c">timeOfBuildCFLGraph</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfNodes"</span>] = CFLGraph-><a class="code" href="classSVF_1_1GenericGraph.html#a8c8d16036008f87c7811586047599858">getTotalNodeNum</a>();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfEdges"</span>] = CFLGraph-><a class="code" href="classSVF_1_1CFLGraph.html#afcf910a94a3b081067f5a55599475a16">getCFLEdges</a>().size();</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>  <a class="code" href="classSVF_1_1SVFStat.html#a178fcefed6ffffc78bbe9b23e0e1babe">PTAStat::printStat</a>(<span class="stringliteral">"CFLGraph Stats"</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="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a58ad0e3bdb93c985ffc7242dba074fea"> 56</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#a58ad0e3bdb93c985ffc7242dba074fea">CFLStat::constraintGraphStat</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> </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>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfCopys = 0;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfGeps = 0;</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>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalNodeNumber = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> cgNodeNumber = 0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objNodeNumber = 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> addrtotalIn = 0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> addrmaxIn = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> addrmaxOut = 0;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> copytotalIn = 0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> copymaxIn = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> copymaxOut = 0;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> loadtotalIn = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> loadmaxIn = 0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> loadmaxOut = 0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> storetotalIn = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> storemaxIn = 0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> storemaxOut = 0;</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">double</span> storeavgIn = (double)storetotalIn/cgNodeNumber;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordtype">double</span> loadavgIn = (double)loadtotalIn/cgNodeNumber;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordtype">double</span> copyavgIn = (double)copytotalIn/cgNodeNumber;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordtype">double</span> addravgIn = (double)addrtotalIn/cgNodeNumber;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordtype">double</span> avgIn = (double)(addrtotalIn + copytotalIn + loadtotalIn + storetotalIn)/cgNodeNumber;</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>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfCGNode"</span>] = totalNodeNumber;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"TotalValidNode"</span>] = cgNodeNumber;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"TotalValidObjNode"</span>] = objNodeNumber;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfCopys"</span>] = numOfCopys;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"NumOfGeps"</span>] = numOfGeps;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"MaxInCopyEdge"</span>] = copymaxIn;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"MaxOutCopyEdge"</span>] = copymaxOut;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"MaxInLoadEdge"</span>] = loadmaxIn;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"MaxOutLoadEdge"</span>] = loadmaxOut;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"MaxInStoreEdge"</span>] = storemaxIn;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"MaxOutStoreEdge"</span>] = storemaxOut;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"AvgIn/OutStoreEdge"</span>] = storeavgIn;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"MaxInAddrEdge"</span>] = addrmaxIn;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"MaxOutAddrEdge"</span>] = addrmaxOut;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"AvgIn/OutCopyEdge"</span>] = copyavgIn;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"AvgIn/OutLoadEdge"</span>] = loadavgIn;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"AvgIn/OutAddrEdge"</span>] = addravgIn;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"AvgIn/OutEdge"</span>] = avgIn;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="classSVF_1_1SVFStat.html#a178fcefed6ffffc78bbe9b23e0e1babe">PTAStat::printStat</a>(<span class="stringliteral">"CFL Graph Stats"</span>);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a1fbe39f511320df60f54235bd7842257"> 108</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#a1fbe39f511320df60f54235bd7842257">CFLStat::CFLGrammarStat</a>()</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"timeOfBuildCFLGrammar"</span>] = <a class="code" href="classSVF_1_1CFLStat.html#a6fc506f947be6c9309cc8914c6a8c3e0">pta</a>-><a class="code" href="classSVF_1_1CFLBase.html#a0d3217f4c3796b58a98add5c92298ad2">timeOfBuildCFLGrammar</a>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"timeOfNormalizeGrammar"</span>] = <a class="code" href="classSVF_1_1CFLStat.html#a6fc506f947be6c9309cc8914c6a8c3e0">pta</a>-><a class="code" href="classSVF_1_1CFLBase.html#ad4d65dd4c3e173d014199ac6b08a5261">timeOfNormalizeGrammar</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="classSVF_1_1SVFStat.html#a178fcefed6ffffc78bbe9b23e0e1babe">PTAStat::printStat</a>(<span class="stringliteral">"CFLGrammar Stats"</span>);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLStat.html#a1d85a7c4b2c22d3d8e0115212362d83b"> 118</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLStat.html#a1d85a7c4b2c22d3d8e0115212362d83b">CFLStat::performStat</a>()</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  assert((SVFUtil::isa<CFLAlias>(<a class="code" href="classSVF_1_1CFLStat.html#a6fc506f947be6c9309cc8914c6a8c3e0">pta</a>)||SVFUtil::isa<CFLVF>(<a class="code" href="classSVF_1_1CFLStat.html#a6fc506f947be6c9309cc8914c6a8c3e0">pta</a>)) && <span class="stringliteral">"not an CFLAlias pass!! what else??"</span>);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classSVF_1_1SVFStat.html#a1b7f1e3381de87f75f06cddb9c6c1ec1">endClk</a>();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="classSVF_1_1CFLStat.html#a6fc506f947be6c9309cc8914c6a8c3e0">pta</a>-><a class="code" href="classSVF_1_1CFLBase.html#a824da17d03599090d4e3b4c50aeccff9">countSumEdges</a>();</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="comment">// CFLGraph stat</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>* <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a> = <a class="code" href="classSVF_1_1CFLStat.html#a6fc506f947be6c9309cc8914c6a8c3e0">pta</a>-><a class="code" href="classSVF_1_1CFLBase.html#a22ab9bbaee16e06d04817db8c394cc0b">getCFLGraph</a>();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="classSVF_1_1CFLStat.html#a915d2f3c684646f813687445c2d22622">collectCFLInfo</a>(CFLGraph);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// Solver stat</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"AnalysisTime"</span>] = <a class="code" href="classSVF_1_1CFLStat.html#a6fc506f947be6c9309cc8914c6a8c3e0">pta</a>-><a class="code" href="classSVF_1_1CFLBase.html#a88e40af43705550a78837b8589bbf3f8">timeOfSolving</a>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">PTNumStatMap</a>[<span class="stringliteral">"SumEdges"</span>] = <a class="code" href="classSVF_1_1CFLStat.html#a6fc506f947be6c9309cc8914c6a8c3e0">pta</a>-><a class="code" href="classSVF_1_1CFLBase.html#a25a593cb2a855a93d3593efba382a58c">numOfStartEdges</a>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="classSVF_1_1SVFStat.html#a178fcefed6ffffc78bbe9b23e0e1babe">PTAStat::printStat</a>(<span class="stringliteral">"CFL-reachability analysis Stats"</span>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="comment">// Grammar stat</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="classSVF_1_1CFLStat.html#a1fbe39f511320df60f54235bd7842257">CFLGrammarStat</a>();</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="classSVF_1_1PTAStat.html#ad6de9d3f25c20705768000c987af0eb6">PTAStat::performStat</a>();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="comment">// ConstraintGraph stat</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="classSVF_1_1CFLStat.html#a58ad0e3bdb93c985ffc7242dba074fea">constraintGraphStat</a>();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</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>
|
|
73
70
|
<div class="ttc" id="classSVF_1_1SVFStat_html_a1b7f1e3381de87f75f06cddb9c6c1ec1"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a1b7f1e3381de87f75f06cddb9c6c1ec1">SVF::SVFStat::endClk</a></div><div class="ttdeci">virtual void endClk()</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00063">SVFStat.h:63</a></div></div>
|
|
74
|
-
<div class="ttc" id="
|
|
75
|
-
<div class="ttc" id="
|
|
76
|
-
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVF::SVFStmt::Load</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
77
|
-
<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>
|
|
78
|
-
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
|
|
79
|
-
<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>
|
|
71
|
+
<div class="ttc" id="classSVF_1_1GenericGraph_html_a8c8d16036008f87c7811586047599858"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a8c8d16036008f87c7811586047599858">SVF::GenericGraph::getTotalNodeNum</a></div><div class="ttdeci">u32_t getTotalNodeNum() const</div><div class="ttdoc">Get total number of node/edge. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00418">GenericGraph.h:418</a></div></div>
|
|
72
|
+
<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>
|
|
80
73
|
<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>
|
|
81
|
-
<div class="ttc" id="classSVF_1_1CFLStat_html_a9866844333afd0bfffd336778e97ae02"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a9866844333afd0bfffd336778e97ae02">SVF::CFLStat::_NumOfPWCCycles</a></div><div class="ttdeci">static u32_t _NumOfPWCCycles</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00058">CFLStat.h:58</a></div></div>
|
|
82
74
|
<div class="ttc" id="CFLStat_8h_html"><div class="ttname"><a href="CFLStat_8h.html">CFLStat.h</a></div></div>
|
|
83
|
-
<div class="ttc" id="
|
|
84
|
-
<div class="ttc" id="
|
|
85
|
-
<div class="ttc" id="classSVF_1_1CFLStat_html_abde1d6206fcde988c3959affc8afbbad"><div class="ttname"><a href="classSVF_1_1CFLStat.html#abde1d6206fcde988c3959affc8afbbad">SVF::CFLStat::CFLStat</a></div><div class="ttdeci">CFLStat(CFLAlias *p)</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8cpp_source.html#l00047">CFLStat.cpp:47</a></div></div>
|
|
75
|
+
<div class="ttc" id="classSVF_1_1CFLStat_html_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>
|
|
76
|
+
<div class="ttc" id="classSVF_1_1CFLBase_html_a22ab9bbaee16e06d04817db8c394cc0b"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a22ab9bbaee16e06d04817db8c394cc0b">SVF::CFLBase::getCFLGraph</a></div><div class="ttdeci">CFLGraph * getCFLGraph()</div><div class="ttdoc">Get CFL graph. </div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8cpp_source.html#l00118">CFLBase.cpp:118</a></div></div>
|
|
86
77
|
<div class="ttc" id="classSVF_1_1SVFStat_html_a11c34e8ba16769d218432d9504ba26a0"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">SVF::SVFStat::PTNumStatMap</a></div><div class="ttdeci">NUMStatMap PTNumStatMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00074">SVFStat.h:74</a></div></div>
|
|
87
|
-
<div class="ttc" id="classSVF_1_1SVFStmt_html_a8cd7b6c6fd8b030b1421d95a086359f4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVF::SVFStmt::SVFStmtSetTy</a></div><div class="ttdeci">GenericNode< SVFVar, SVFStmt >::GEdgeSetTy SVFStmtSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00177">SVFStatements.h:177</a></div></div>
|
|
88
|
-
<div class="ttc" id="classSVF_1_1SparseBitVector_html_ad5337b5aeed50f8b7ffd56b14ee25c9f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ad5337b5aeed50f8b7ffd56b14ee25c9f">SVF::SparseBitVector::reset</a></div><div class="ttdeci">void reset(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00722">SparseBitVector.h:722</a></div></div>
|
|
89
|
-
<div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
|
|
90
|
-
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_afa7d9f6209904acd7893ae583e28dafd"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#afa7d9f6209904acd7893ae583e28dafd">SVF::PointerAnalysis::containConstantNode</a></div><div class="ttdeci">bool containConstantNode(const PointsTo &pts)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00296">PointerAnalysis.h:296</a></div></div>
|
|
91
78
|
<div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div></div>
|
|
92
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_aed605b010e313f4b11e95b83fe50e3b3"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aed605b010e313f4b11e95b83fe50e3b3">SVF::ConstraintGraph::sccSubNodes</a></div><div class="ttdeci">NodeBS & sccSubNodes(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00241">ConsG.h:241</a></div></div>
|
|
93
|
-
<div class="ttc" id="classSVF_1_1SparseBitVector_html_a9f96e6a886fa69e07cda5dbfaed8b7c9"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">SVF::SparseBitVector::count</a></div><div class="ttdeci">unsigned count() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01102">SparseBitVector.h:1102</a></div></div>
|
|
94
|
-
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a33b2c83db77cd2ac72b1d591789ef1c5"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a33b2c83db77cd2ac72b1d591789ef1c5">SVF::SymbolTableInfo::isPtrInUncalledFunction</a></div><div class="ttdeci">static bool isPtrInUncalledFunction(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00340">SymbolTableInfo.cpp:340</a></div></div>
|
|
95
79
|
<div class="ttc" id="classSVF_1_1SVFStat_html_a730cc814fede3edb563aa9957c869e9e"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a730cc814fede3edb563aa9957c869e9e">SVF::SVFStat::startClk</a></div><div class="ttdeci">virtual void startClk()</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00058">SVFStat.h:58</a></div></div>
|
|
80
|
+
<div class="ttc" id="classSVF_1_1CFLBase_html_ad4d65dd4c3e173d014199ac6b08a5261"><div class="ttname"><a href="classSVF_1_1CFLBase.html#ad4d65dd4c3e173d014199ac6b08a5261">SVF::CFLBase::timeOfNormalizeGrammar</a></div><div class="ttdeci">static double timeOfNormalizeGrammar</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00089">CFLBase.h:89</a></div></div>
|
|
96
81
|
<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>
|
|
97
|
-
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a077caa1b10ab84d101d79fc7ea50db2d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVF::SVFUtil::writeWrnMsg</a></div><div class="ttdeci">void writeWrnMsg(std::string msg)</div><div class="ttdoc">Writes a message run through wrnMsg. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00067">SVFUtil.cpp:67</a></div></div>
|
|
98
|
-
<div class="ttc" id="classSVF_1_1CFLStat_html_a6bcca58ff4481dee06b06eb17ed603ea"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a6bcca58ff4481dee06b06eb17ed603ea">SVF::CFLStat::statNullPtr</a></div><div class="ttdeci">void statNullPtr()</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8cpp_source.html#l00166">CFLStat.cpp:166</a></div></div>
|
|
99
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a84468bc9355d31e8c3e18369036ddf5c"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a84468bc9355d31e8c3e18369036ddf5c">SVF::ConstraintGraph::isPWCNode</a></div><div class="ttdeci">bool isPWCNode(NodeID nodeId)</div><div class="ttdoc">Check/Set PWC (positive weight cycle) flag. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00348">ConsG.h:348</a></div></div>
|
|
100
|
-
<div class="ttc" id="classSVF_1_1CFLStat_html_a404decd93db2bbcd36682cfdc3e5549c"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a404decd93db2bbcd36682cfdc3e5549c">SVF::CFLStat::_NumOfNodesInCycles</a></div><div class="ttdeci">static u32_t _NumOfNodesInCycles</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00059">CFLStat.h:59</a></div></div>
|
|
101
|
-
<div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00369">GenericGraph.h:369</a></div></div>
|
|
102
|
-
<div class="ttc" id="classSVF_1_1GenericGraph_html_ac213302cf5c7cdf3b66f7b18649d0fbc"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVF::GenericGraph< ConstraintNode, ConstraintEdge >::iterator</a></div><div class="ttdeci">IDToNodeMapTy::iterator iterator</div><div class="ttdoc">Node Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00342">GenericGraph.h:342</a></div></div>
|
|
103
82
|
<div class="ttc" id="classSVF_1_1SVFStat_html_a178fcefed6ffffc78bbe9b23e0e1babe"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a178fcefed6ffffc78bbe9b23e0e1babe">SVF::SVFStat::printStat</a></div><div class="ttdeci">virtual void printStat(std::string str="")</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00066">SVFStat.cpp:66</a></div></div>
|
|
104
|
-
<div class="ttc" id="
|
|
105
|
-
<div class="ttc" id="
|
|
106
|
-
<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>
|
|
107
|
-
<div class="ttc" id="classSVF_1_1PointsTo_html_a879783ba6629e500af9aa7dfcda2563d"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">SVF::PointsTo::count</a></div><div class="ttdeci">u32_t count(void) const</div><div class="ttdoc">Returns number of elements. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00107">PointsTo.cpp:107</a></div></div>
|
|
108
|
-
<div class="ttc" id="classSVF_1_1SVFVar_html_a927733580b47be5ffcfced44ba9fd6c3"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a927733580b47be5ffcfced44ba9fd6c3">SVF::SVFVar::getOutgoingEdges</a></div><div class="ttdeci">SVFStmt::SVFStmtSetTy & getOutgoingEdges(SVFStmt::PEDGEK kind)</div><div class="ttdoc">Get outgoing SVFIR statements (edges) </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00147">SVFVariables.h:147</a></div></div>
|
|
109
|
-
<div class="ttc" id="classSVF_1_1SVFIR_html_a5c3b194ebada47baaccf0e9f3ab1a139"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">SVF::SVFIR::isValidTopLevelPtr</a></div><div class="ttdeci">bool isValidTopLevelPtr(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00705">SVFIR.cpp:705</a></div></div>
|
|
110
|
-
<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>
|
|
111
|
-
<div class="ttc" id="classSVF_1_1PointsTo_html_ac4688413177b49b37dbbfd3ed188d59b"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">SVF::PointsTo::empty</a></div><div class="ttdeci">bool empty(void) const</div><div class="ttdoc">Returns true if set is empty. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00094">PointsTo.cpp:94</a></div></div>
|
|
83
|
+
<div class="ttc" id="classSVF_1_1CFLBase_html_a0d3217f4c3796b58a98add5c92298ad2"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a0d3217f4c3796b58a98add5c92298ad2">SVF::CFLBase::timeOfBuildCFLGrammar</a></div><div class="ttdeci">static double timeOfBuildCFLGrammar</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00088">CFLBase.h:88</a></div></div>
|
|
84
|
+
<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>
|
|
112
85
|
<div class="ttc" id="namespaceSVFUtil_html"><div class="ttname"><a href="namespaceSVFUtil.html">SVFUtil</a></div></div>
|
|
113
|
-
<div class="ttc" id="
|
|
114
|
-
<div class="ttc" id="
|
|
115
|
-
<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>
|
|
116
|
-
<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>
|
|
117
|
-
<div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01118">SparseBitVector.h:1118</a></div></div>
|
|
118
|
-
<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>
|
|
86
|
+
<div class="ttc" id="classSVF_1_1CFLBase_html_a25a593cb2a855a93d3593efba382a58c"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a25a593cb2a855a93d3593efba382a58c">SVF::CFLBase::numOfStartEdges</a></div><div class="ttdeci">static double numOfStartEdges</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00095">CFLBase.h:95</a></div></div>
|
|
87
|
+
<div class="ttc" id="classSVF_1_1CFLBase_html_a9453bf479ccd00bacb3b371fa6383a9c"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a9453bf479ccd00bacb3b371fa6383a9c">SVF::CFLBase::timeOfBuildCFLGraph</a></div><div class="ttdeci">static double timeOfBuildCFLGraph</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00091">CFLBase.h:91</a></div></div>
|
|
119
88
|
<div class="ttc" id="classSVF_1_1SVFStat_html_a5383691a34426a1a997b5eed387f1831"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">SVF::SVFStat::timeStatMap</a></div><div class="ttdeci">TIMEStatMap timeStatMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00075">SVFStat.h:75</a></div></div>
|
|
120
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a39b973543acdcdc5493832cc9d0f586f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">SVF::ConstraintGraph::sccRepNode</a></div><div class="ttdeci">NodeID sccRepNode(NodeID id) const</div><div class="ttdoc">SCC rep/sub nodes methods. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00233">ConsG.h:233</a></div></div>
|
|
121
89
|
<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>
|
|
122
|
-
<div class="ttc" id="
|
|
123
|
-
<div class="ttc" id="
|
|
124
|
-
<div class="ttc" id="
|
|
125
|
-
<div class="ttc" id="
|
|
90
|
+
<div class="ttc" id="classSVF_1_1CFLGraph_html_afcf910a94a3b081067f5a55599475a16"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#afcf910a94a3b081067f5a55599475a16">SVF::CFLGraph::getCFLEdges</a></div><div class="ttdeci">const CFLEdgeSet & getCFLEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00112">CFLGraph.h:112</a></div></div>
|
|
91
|
+
<div class="ttc" id="classSVF_1_1CFLBase_html_a824da17d03599090d4e3b4c50aeccff9"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a824da17d03599090d4e3b4c50aeccff9">SVF::CFLBase::countSumEdges</a></div><div class="ttdeci">virtual void countSumEdges()</div><div class="ttdoc">Count the num of Nonterminal Edges. </div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8cpp_source.html#l00123">CFLBase.cpp:123</a></div></div>
|
|
92
|
+
<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>
|
|
93
|
+
<div class="ttc" id="classSVF_1_1CFLBase_html_a88e40af43705550a78837b8589bbf3f8"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a88e40af43705550a78837b8589bbf3f8">SVF::CFLBase::timeOfSolving</a></div><div class="ttdeci">static double timeOfSolving</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00097">CFLBase.h:97</a></div></div>
|
|
94
|
+
<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>
|
|
126
95
|
<div class="ttc" id="classSVF_1_1PTAStat_html_ad6de9d3f25c20705768000c987af0eb6"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ad6de9d3f25c20705768000c987af0eb6">SVF::PTAStat::performStat</a></div><div class="ttdeci">void performStat() override</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00043">PTAStat.cpp:43</a></div></div>
|
|
127
96
|
<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>
|
|
128
|
-
<div class="ttc" id="
|
|
129
|
-
<div class="ttc" id="
|
|
130
|
-
<div class="ttc" id="classSVF_1_1CFLStat_html_a23c6ba004928f8ac6c9b12bd7ad49881"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a23c6ba004928f8ac6c9b12bd7ad49881">SVF::CFLStat::pta</a></div><div class="ttdeci">CFLAlias * pta</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00051">CFLStat.h:51</a></div></div>
|
|
131
|
-
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a6e8c46641da751fe3369c9d5407ce415"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a6e8c46641da751fe3369c9d5407ce415">SVF::ConstraintGraph::getBaseObjVar</a></div><div class="ttdeci">NodeID getBaseObjVar(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00318">ConsG.h:318</a></div></div>
|
|
132
|
-
<div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00745">SparseBitVector.h:745</a></div></div>
|
|
133
|
-
<div class="ttc" id="classSVF_1_1CFLStat_html_a915d2f3c684646f813687445c2d22622"><div class="ttname"><a href="classSVF_1_1CFLStat.html#a915d2f3c684646f813687445c2d22622">SVF::CFLStat::collectCFLInfo</a></div><div class="ttdeci">void collectCFLInfo(CFLGraph *CFLGraph)</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8cpp_source.html#l00058">CFLStat.cpp:58</a></div></div>
|
|
134
|
-
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0f71e4cd0948b294c7d33a690bde7dbe"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">SVF::PointerAnalysis::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00354">PointerAnalysis.h:354</a></div></div>
|
|
135
|
-
<div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00391">GenericGraph.h:391</a></div></div>
|
|
136
|
-
<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>
|
|
137
|
-
<div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
|
|
138
|
-
<div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
139
|
-
<div class="ttc" id="classSVF_1_1CFLStat_html_aab012b94d23df8f5c78e74934aebf024"><div class="ttname"><a href="classSVF_1_1CFLStat.html#aab012b94d23df8f5c78e74934aebf024">SVF::CFLStat::_MaxPtsSize</a></div><div class="ttdeci">static u32_t _MaxPtsSize</div><div class="ttdef"><b>Definition:</b> <a href="CFLStat_8h_source.html#l00056">CFLStat.h:56</a></div></div>
|
|
97
|
+
<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>
|
|
98
|
+
<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>
|
|
140
99
|
</div><!-- fragment --></div><!-- contents -->
|
|
141
100
|
<!-- start footer part -->
|
|
142
101
|
<hr class="footer"/><address class="footer"><small>
|
|
@@ -71,6 +71,7 @@ $(function() {
|
|
|
71
71
|
<div class="contents">
|
|
72
72
|
<div class="textblock"><code>#include "<a class="el" href="PTAStat_8h_source.html">Util/PTAStat.h</a>"</code><br />
|
|
73
73
|
<code>#include "<a class="el" href="CFLAlias_8h_source.html">CFL/CFLAlias.h</a>"</code><br />
|
|
74
|
+
<code>#include "<a class="el" href="CFLVF_8h_source.html">CFL/CFLVF.h</a>"</code><br />
|
|
74
75
|
</div>
|
|
75
76
|
<p><a href="CFLStat_8h_source.html">Go to the source code of this file.</a></p>
|
|
76
77
|
<table class="memberdecls">
|