svf-tools 1.0.556 → 1.0.559
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/README.md +2 -2
- package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +15 -15
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +12 -11
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +11 -10
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +47 -46
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +9 -8
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +35 -34
- package/SVF-doxygen/html/html/Andersen_8h_source.html +6 -6
- package/SVF-doxygen/html/html/CHGBuilder_8cpp.html +2 -2
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +19 -18
- package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +15 -15
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +13 -12
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +11 -11
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +20 -19
- package/SVF-doxygen/html/html/DDAStat_8h_source.html +13 -13
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +5 -2
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -2
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +5 -4
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +67 -69
- package/SVF-doxygen/html/html/PTAStat_8h.html +1 -0
- package/SVF-doxygen/html/html/PTAStat_8h_source.html +70 -76
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +5 -4
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +22 -21
- package/SVF-doxygen/html/html/SVFGStat_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFStat_8cpp.html +81 -0
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +85 -0
- package/SVF-doxygen/html/html/SVFStat_8h.html +94 -0
- package/SVF-doxygen/html/html/SVFStat_8h_source.html +103 -0
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/WPAStat_8h_source.html +8 -8
- package/SVF-doxygen/html/html/annotated.html +39 -38
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +79 -79
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +37 -37
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat-members.html +24 -22
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +97 -86
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +47 -47
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat-members.html +24 -23
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +80 -67
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +40 -5
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat-members.html +24 -22
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +67 -56
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat-members.html +23 -21
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +55 -42
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat-members.html +25 -23
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +59 -48
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat-members.html +22 -21
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +57 -44
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat-members.html +24 -22
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +186 -420
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat-members.html +33 -32
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +100 -87
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat-members.html +100 -0
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +605 -0
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat-members.html +26 -24
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +65 -54
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.png +0 -0
- package/SVF-doxygen/html/html/classes.html +50 -50
- package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
- package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/dir_862d3276083eaac55caed79b9120bf29.html +2 -0
- package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
- package/SVF-doxygen/html/html/files.html +10 -8
- package/SVF-doxygen/html/html/functions_0x7e.html +3 -0
- package/SVF-doxygen/html/html/functions_c.html +28 -29
- package/SVF-doxygen/html/html/functions_e.html +3 -2
- package/SVF-doxygen/html/html/functions_enum.html +1 -1
- package/SVF-doxygen/html/html/functions_eval_c.html +1 -1
- package/SVF-doxygen/html/html/functions_eval_w.html +1 -1
- package/SVF-doxygen/html/html/functions_func_0x7e.html +3 -0
- package/SVF-doxygen/html/html/functions_func_c.html +28 -27
- package/SVF-doxygen/html/html/functions_func_e.html +1 -1
- package/SVF-doxygen/html/html/functions_func_g.html +1 -1
- package/SVF-doxygen/html/html/functions_func_i.html +11 -8
- package/SVF-doxygen/html/html/functions_func_p.html +9 -7
- package/SVF-doxygen/html/html/functions_func_s.html +15 -12
- package/SVF-doxygen/html/html/functions_g.html +2 -2
- package/SVF-doxygen/html/html/functions_i.html +8 -5
- package/SVF-doxygen/html/html/functions_l.html +3 -3
- package/SVF-doxygen/html/html/functions_m.html +2 -1
- package/SVF-doxygen/html/html/functions_n.html +1 -1
- package/SVF-doxygen/html/html/functions_p.html +17 -13
- package/SVF-doxygen/html/html/functions_r.html +7 -3
- package/SVF-doxygen/html/html/functions_s.html +23 -21
- package/SVF-doxygen/html/html/functions_t.html +6 -6
- package/SVF-doxygen/html/html/functions_type_n.html +1 -1
- package/SVF-doxygen/html/html/functions_type_s.html +1 -1
- package/SVF-doxygen/html/html/functions_type_t.html +1 -1
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_e.html +1 -0
- package/SVF-doxygen/html/html/functions_vars_g.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_m.html +1 -0
- package/SVF-doxygen/html/html/functions_vars_s.html +1 -0
- package/SVF-doxygen/html/html/functions_vars_t.html +1 -1
- package/SVF-doxygen/html/html/functions_w.html +1 -1
- package/SVF-doxygen/html/html/hierarchy.html +47 -46
- package/SVF-doxygen/html/html/namespaceSVF.html +2 -0
- package/SVF-doxygen/html/html/search/all_10.js +8 -8
- package/SVF-doxygen/html/html/search/all_11.js +2 -2
- package/SVF-doxygen/html/html/search/all_12.js +13 -10
- package/SVF-doxygen/html/html/search/all_13.js +4 -4
- package/SVF-doxygen/html/html/search/all_14.js +1 -1
- package/SVF-doxygen/html/html/search/all_15.js +2 -2
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_19.js +1 -0
- package/SVF-doxygen/html/html/search/all_3.js +3 -3
- package/SVF-doxygen/html/html/search/all_5.js +2 -2
- package/SVF-doxygen/html/html/search/all_7.js +2 -2
- package/SVF-doxygen/html/html/search/all_9.js +1 -0
- package/SVF-doxygen/html/html/search/all_c.js +1 -1
- package/SVF-doxygen/html/html/search/all_d.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +2 -2
- package/SVF-doxygen/html/html/search/all_f.js +1 -1
- package/SVF-doxygen/html/html/search/classes_f.js +1 -0
- package/SVF-doxygen/html/html/search/enums_1.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_2.js +1 -1
- package/SVF-doxygen/html/html/search/files_d.js +2 -0
- package/SVF-doxygen/html/html/search/functions_11.js +3 -2
- package/SVF-doxygen/html/html/search/functions_17.js +1 -0
- package/SVF-doxygen/html/html/search/functions_2.js +1 -1
- package/SVF-doxygen/html/html/search/functions_4.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +1 -1
- package/SVF-doxygen/html/html/search/functions_8.js +1 -0
- package/SVF-doxygen/html/html/search/functions_f.js +4 -4
- package/SVF-doxygen/html/html/search/typedefs_10.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_c.js +1 -1
- package/SVF-doxygen/html/html/search/variables_12.js +1 -1
- package/SVF-doxygen/html/html/search/variables_13.js +2 -2
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_5.js +1 -1
- package/SVF-doxygen/html/html/search/variables_7.js +1 -1
- package/SVF-doxygen/html/html/search/variables_d.js +1 -1
- package/include/Graphs/ICFGStat.h +1 -1
- package/include/Util/ExtAPI.h +3 -0
- package/include/Util/ExtAPI.json +1456 -44
- package/include/Util/PTAStat.h +6 -36
- package/include/Util/SVFStat.h +95 -0
- package/include/WPA/AndersenPWC.h +1 -1
- package/lib/DDA/DDAPass.cpp +1 -0
- package/lib/DDA/DDAStat.cpp +1 -0
- package/lib/Graphs/SVFGReadWrite.cpp +1 -0
- package/lib/Graphs/SVFGStat.cpp +1 -0
- package/lib/SVF-FE/CHGBuilder.cpp +1 -0
- package/lib/Util/ExtAPI.cpp +42 -4
- package/lib/Util/PTAStat.cpp +2 -21
- package/lib/Util/SVFStat.cpp +58 -0
- package/lib/WPA/Andersen.cpp +1 -0
- package/lib/WPA/AndersenSCD.cpp +1 -0
- package/lib/WPA/AndersenSFR.cpp +1 -0
- package/lib/WPA/AndersenStat.cpp +1 -0
- package/lib/WPA/AndersenWaveDiff.cpp +1 -0
- package/package.json +1 -1
|
@@ -66,11 +66,12 @@ $(function() {
|
|
|
66
66
|
<div class="title">SVFGStat.cpp</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="SVFGStat_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">//===- SVFGStat.cpp -- SVFG statistics---------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * SVFGStat.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: 28/11/2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Author: yesen</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="SVFG_8h.html">Graphs/SVFG.h</a>"</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="SVFGStat_8h.html">Graphs/SVFGStat.h</a>"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="PTACallGraph_8h.html">Graphs/PTACallGraph.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a7dd7e6af850b9d724ea580450bfd3afd">MemSSAStat::TotalTimeOfConstructMemSSA</a> = <span class="stringliteral">"TotalMSSATime"</span>; </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a74c36654b7452aa94aa241881f0a83c5">MemSSAStat::TimeOfGeneratingMemRegions</a> = <span class="stringliteral">"GenRegionTime"</span>; </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a48c70f0ed1c7d031a3cd528035162e52">MemSSAStat::TimeOfCreateMUCHI</a> = <span class="stringliteral">"GenMUCHITime"</span>; </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a0c24822c8549af6a96e82312954fab9b">MemSSAStat::TimeOfInsertingPHI</a> = <span class="stringliteral">"InsertPHITime"</span>; </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a887ff23a7ea1a18f08b1744ff30da773">MemSSAStat::TimeOfSSARenaming</a> = <span class="stringliteral">"SSARenameTime"</span>; </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#acf3732557238de882bf7f34c49bd6cee">MemSSAStat::NumOfMaxRegion</a> = <span class="stringliteral">"MaxRegSize"</span>; </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a6e29fa9c935de324441c765e40faa2a5">MemSSAStat::NumOfAveragePtsInRegion</a> = <span class="stringliteral">"AverageRegSize"</span>; </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a95695aa32886776804e192b4c4ddcc1d">MemSSAStat::NumOfMemRegions</a> = <span class="stringliteral">"MemRegions"</span>; </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#ad96437d0c28f8088c711a718d2f2730e">MemSSAStat::NumOfEntryChi</a> = <span class="stringliteral">"FunEntryChi"</span>; </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a1459465f0a76c09b5dd7d777467ac2e4">MemSSAStat::NumOfRetMu</a> = <span class="stringliteral">"FunRetMu"</span>; </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a921a0f4eba4b891ab9b7699ea0d3f91c">MemSSAStat::NumOfCSChi</a> = <span class="stringliteral">"CSChiNode"</span>; </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a7b07190a20361e30999cd9107749599d">MemSSAStat::NumOfCSMu</a> = <span class="stringliteral">"CSMuNode"</span>; </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a284dbb01e051945a40179b315bdb112f">MemSSAStat::NumOfLoadMu</a> = <span class="stringliteral">"LoadMuNode"</span>; </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a810965c025da84c58575c8066bc84056">MemSSAStat::NumOfStoreChi</a> = <span class="stringliteral">"StoreChiNode"</span>; </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a4b598cb1d06c4c0963787036862b1c3d">MemSSAStat::NumOfMSSAPhi</a> = <span class="stringliteral">"MSSAPhi"</span>; </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#aee2e0df55c40745a9b9aac415aa7a399">MemSSAStat::NumOfFunHasEntryChi</a> = <span class="stringliteral">"FunHasEntryChi"</span>; </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#ab1cdbd2ebe54dc5bb752a89d069423b7">MemSSAStat::NumOfFunHasRetMu</a> = <span class="stringliteral">"FunHasRetMu"</span>; </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#ae57c6e5b97581150b7561c93e0887569">MemSSAStat::NumOfCSHasChi</a> = <span class="stringliteral">"CSHasChi"</span>; </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#af5855348e45f50d16cd41cfa9c28f67c">MemSSAStat::NumOfCSHasMu</a> = <span class="stringliteral">"CSHasMu"</span>; </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#ad3139d2643f5e79dcd4ca9569ebbe7df">MemSSAStat::NumOfLoadHasMu</a> = <span class="stringliteral">"LoadHasMu"</span>; </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a3bc14307bd0f986cbd8ba5970f1abf0f">MemSSAStat::NumOfStoreHasChi</a> = <span class="stringliteral">"StoreHasChi"</span>; </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a67d9c55f52cb59168e89320c3264a15a">MemSSAStat::NumOfBBHasMSSAPhi</a> = <span class="stringliteral">"BBHasMSSAPhi"</span>; </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSAStat.html#a53f3d85a8eb63676d3dc47ee648efb66"> 64</a></span> <a class="code" href="classSVF_1_1MemSSAStat.html#a53f3d85a8eb63676d3dc47ee648efb66">MemSSAStat::MemSSAStat</a>(<a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* memSSA) : <a class="code" href="classSVF_1_1PTAStat.html">PTAStat</a>(nullptr)</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>  <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a> = memSSA;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="classSVF_1_1PTAStat.html#a5524ff7901659f56e9de343992be8f3b">startClk</a>();</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSAStat.html#a8b4b9466a676d2391c71d38e8be16bc9"> 73</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSAStat.html#a8b4b9466a676d2391c71d38e8be16bc9">MemSSAStat::performStat</a>()</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classSVF_1_1PTAStat.html#afe854f7416ea408104721a083ee9fee0">endClk</a>();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="classSVF_1_1MRGenerator.html">MRGenerator</a>* mrGenerator = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#ab2dfdcf6fb50ba6cacad1254350a5b09">getMRGenerator</a>();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> regionNumber = mrGenerator-><a class="code" href="classSVF_1_1MRGenerator.html#aff53860ef2b0effb9250dc7348640085">getMRNum</a>();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> maxRegionSize = 0;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalRegionPtsNum = 0;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRGenerator::MRSet</a> & mrSet = mrGenerator-><a class="code" href="classSVF_1_1MRGenerator.html#a1f69924c587c4e68a029fd4e86cffacf">getMRSet</a>();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  MRGenerator::MRSet::const_iterator it = mrSet.begin();</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  MRGenerator::MRSet::const_iterator eit = mrSet.end();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">for</span> (; it != eit; it++)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* region = *it;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> regionSize = region-><a class="code" href="classSVF_1_1MemRegion.html#a99f106d47fd67f1ae53e144d72a223c9">getRegionSize</a>();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">if</span> (regionSize > maxRegionSize)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  maxRegionSize = regionSize;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  totalRegionPtsNum += regionSize;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</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>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a7dd7e6af850b9d724ea580450bfd3afd">TotalTimeOfConstructMemSSA</a>] = (<a class="code" href="classSVF_1_1PTAStat.html#a267ba4aac2e7ceb65f008f9486d3d9f7">endTime</a> - <a class="code" href="classSVF_1_1PTAStat.html#a59e0fe6fa506f1cf319b5acaf9d28be9">startTime</a>)/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a74c36654b7452aa94aa241881f0a83c5">TimeOfGeneratingMemRegions</a>] = <a class="code" href="classSVF_1_1MemSSA.html#a37dca8a7d155de4870358146d219b5e5">MemSSA::timeOfGeneratingMemRegions</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a48c70f0ed1c7d031a3cd528035162e52">TimeOfCreateMUCHI</a>] = <a class="code" href="classSVF_1_1MemSSA.html#a4d2418b7df74f23d8fd328f66e29f198">MemSSA::timeOfCreateMUCHI</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a0c24822c8549af6a96e82312954fab9b">TimeOfInsertingPHI</a>] = <a class="code" href="classSVF_1_1MemSSA.html#a3c7b5fa73fdc7c805ee3673fbe812b44">MemSSA::timeOfInsertingPHI</a>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a887ff23a7ea1a18f08b1744ff30da773">TimeOfSSARenaming</a>] = <a class="code" href="classSVF_1_1MemSSA.html#a97ccd5e0b9ab6144415e26bdf95cbabd">MemSSA::timeOfSSARenaming</a>;</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_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#acf3732557238de882bf7f34c49bd6cee">NumOfMaxRegion</a>] = maxRegionSize;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a6e29fa9c935de324441c765e40faa2a5">NumOfAveragePtsInRegion</a>] = (regionNumber == 0) ? 0 : ((<span class="keywordtype">double</span>)totalRegionPtsNum / regionNumber);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a95695aa32886776804e192b4c4ddcc1d">NumOfMemRegions</a>] = regionNumber;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#ad96437d0c28f8088c711a718d2f2730e">NumOfEntryChi</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a15272a4ed019d1c323d1826c1bedb70f">getFunEntryChiNum</a>();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a1459465f0a76c09b5dd7d777467ac2e4">NumOfRetMu</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a67175188232e08f5c5374f92ff61810f">getFunRetMuNum</a>();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a921a0f4eba4b891ab9b7699ea0d3f91c">NumOfCSChi</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a2c65795ca63a53c833f5ac17a752b6dc">getCallSiteChiNum</a>();</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a7b07190a20361e30999cd9107749599d">NumOfCSMu</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a9e8c5b85957485635d0f72c2f48bb8b5">getCallSiteMuNum</a>();</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a284dbb01e051945a40179b315bdb112f">NumOfLoadMu</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#aafc83f7f22ebf3b3683607440c488bef">getLoadMuNum</a>();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a810965c025da84c58575c8066bc84056">NumOfStoreChi</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#aa8c45b455e6fc60cab955534c3e50bfa">getStoreChiNum</a>();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a4b598cb1d06c4c0963787036862b1c3d">NumOfMSSAPhi</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a9bb6512999cbf9c7c03153be77c8af20">getBBPhiNum</a>();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#aee2e0df55c40745a9b9aac415aa7a399">NumOfFunHasEntryChi</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#afd4787df4466c24948d8384e3a756198">getFunToEntryChiSetMap</a>().size();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#ab1cdbd2ebe54dc5bb752a89d069423b7">NumOfFunHasRetMu</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a44cbdb1231c2709c24d19ad2bae2475a">getFunToRetMuSetMap</a>().size();</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#ae57c6e5b97581150b7561c93e0887569">NumOfCSHasChi</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a8f88acad31782bfa962e4349d8f4185d">getCallSiteToChiSetMap</a>().size();</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#af5855348e45f50d16cd41cfa9c28f67c">NumOfCSHasMu</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a06081aa029b1fe3f9427f85a0261fd43">getCallSiteToMuSetMap</a>().size();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#ad3139d2643f5e79dcd4ca9569ebbe7df">NumOfLoadHasMu</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a70dd35ef458c452330dfebcdde17b84c">getLoadToMUSetMap</a>().size();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a3bc14307bd0f986cbd8ba5970f1abf0f">NumOfStoreHasChi</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a97166aa7102816a16734d7e2f1c130b0">getStoreToChiSetMap</a>().size();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a67d9c55f52cb59168e89320c3264a15a">NumOfBBHasMSSAPhi</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a966477062a453901da3631015fcf737d">getBBToPhiSetMap</a>().size();</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>  <a class="code" href="classSVF_1_1MemSSAStat.html#ad5fbe23c3374e5b3a45ac5fa4900441a">printStat</a>();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </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> </div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSAStat.html#ad5fbe23c3374e5b3a45ac5fa4900441a"> 127</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSAStat.html#ad5fbe23c3374e5b3a45ac5fa4900441a">MemSSAStat::printStat</a>(<span class="keywordtype">string</span> str)</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>  <a class="code" href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">PTAStat::printStat</a>(<span class="stringliteral">"Memory SSA Statistics"</span>);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGStat.html#ae61d5bd92ef495a0f6c2f9dedac3da03"> 135</a></span> <a class="code" href="classSVF_1_1SVFGStat.html#ae61d5bd92ef495a0f6c2f9dedac3da03">SVFGStat::SVFGStat</a>(<a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* g) : <a class="code" href="classSVF_1_1PTAStat.html">PTAStat</a>(nullptr)</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_1SVFGStat.html#a3d06ead4c3222ce8a0535d9f3d504c3d">graph</a> = g;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a737352ac44d808c55a91e8bd5e9e0aac">clear</a>();</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="classSVF_1_1PTAStat.html#a5524ff7901659f56e9de343992be8f3b">startClk</a>();</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a0a967faad014cdd53f5dddfdc59edbc3">connectDirSVFGEdgeTimeStart</a> = <a class="code" href="classSVF_1_1SVFGStat.html#ac243fababbb9d2f3efbea5411f947c21">connectDirSVFGEdgeTimeEnd</a> = 0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a2a697caecf23413187aef90a8097e0b0">connectIndSVFGEdgeTimeStart</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a3210cc1283669129234aa2c3feb67654">connectIndSVFGEdgeTimeEnd</a> = 0;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="classSVF_1_1SVFGStat.html#ad72d8706cdc97443556c0d878a393727">addTopLevelNodeTimeStart</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a89f40e0cb98fdb65a320686b1698d909">addTopLevelNodeTimeEnd</a> = 0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="classSVF_1_1SVFGStat.html#aa35ff9ddfc4f00be698a903adf3285f5">addAddrTakenNodeTimeStart</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a2f7a49d2b3aae6cdb1cbc0e8ae18d1c2">addAddrTakenNodeTimeEnd</a> = 0;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a1e92f02d43f06ef31e107859d1bd8ac2">svfgOptTimeStart</a> = <a class="code" href="classSVF_1_1SVFGStat.html#ac06625b26e1aa1a0ed171c9f5cea0f35">svfgOptTimeEnd</a> = 0;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGStat.html#a737352ac44d808c55a91e8bd5e9e0aac"> 147</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGStat.html#a737352ac44d808c55a91e8bd5e9e0aac">SVFGStat::clear</a>()</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="classSVF_1_1SVFGStat.html#ab499c24856a990dd4adb366107eb3302">numOfNodes</a> = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="classSVF_1_1SVFGStat.html#abc5e079242666bb55ec7dbc7f258b3db">numOfFormalIn</a> = <a class="code" href="classSVF_1_1SVFGStat.html#ab20900eb0ecb0d2e1e601755848ac531">numOfFormalOut</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a1e9ddd5678b05e145af41a6d53f47748">numOfFormalParam</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a29807c066e60ef3905a5e01e0b86ffd2">numOfFormalRet</a> = 0;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a5365744d2ec3594e2255d274f7256569">numOfActualIn</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a122555f5c4b9746cc2b7f38c7cd6b505">numOfActualOut</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a0494c59483520b57acdca95952c93d76">numOfActualParam</a> = <a class="code" href="classSVF_1_1SVFGStat.html#ad37e5b2e57e02f8e4319f6d038c51414">numOfActualRet</a> = 0;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a7c80f2332b97a3228e2ad7621162167a">numOfLoad</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a4d15f2de3f226c26cb2af57176444ec9">numOfStore</a> = <a class="code" href="classSVF_1_1SVFGStat.html#ac86d6d7cb0090ab665729b56111ca464">numOfCopy</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a862cd075a7c9d5019acfabe608ab7905">numOfGep</a> = <a class="code" href="classSVF_1_1SVFGStat.html#aa6a39e0f1d41d67cb3441389a943bf5f">numOfAddr</a> = 0;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a9fc87025af3b7e54442e78f46ebe0360">numOfMSSAPhi</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a0e1fcb9154aad266406c4da4861ba020">numOfPhi</a> = 0;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a5f0c72186ee16f5e88782b5edc9fa5b1">avgWeight</a> = 0;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a4328f75f379e692901b95bacdf8dd413">avgInDegree</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a123305ef02a5bfa127a1e172beb5e8cf">avgOutDegree</a> = 0;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a536b591b21756519262873462001f421">maxInDegree</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a6694ace7ee1b24b0c5ce42e06e4db2cf">maxOutDegree</a> = 0;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a364d684cbefed1793d7c4506fb1fa0fd">avgIndInDegree</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a7854ee895f1965ea02f5d04f81589826">avgIndOutDegree</a> = 0;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a2f1bb17038de877fd1ccffdea3f3cde3">maxIndInDegree</a> = <a class="code" href="classSVF_1_1SVFGStat.html#ac7cb2228bd31e8ebdf33ae2bfd399683">maxIndOutDegree</a> = 0;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a7929d8ba565ecb04efd236ccb19a4658">totalInEdge</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a18211427d08f70d252512d387763ce4a">totalOutEdge</a> = 0;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a8cd6254435994d9aea27b5519491fc6a">totalIndInEdge</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a982ce49695344bcde4cbbb445de69c8d">totalIndOutEdge</a> = 0;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a0a39eb7aab584cc285c32545ddb57ad8">totalIndEdgeLabels</a> = 0;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a0f37f7f530e3fd494c9d6bb477ca68d5">totalIndCallEdge</a> = <a class="code" href="classSVF_1_1SVFGStat.html#afd0f43a7d7138a8013930fd103ce7c47">totalIndRetEdge</a> = 0;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a1e93c866f3d780cb1cfdaf1dd143ea24">totalDirCallEdge</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a63bd38fa93d665037932bcda3cc342c6">totalDirRetEdge</a> = 0;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGStat.html#a947dcd586a9ccf8b60243153769aaf31"> 168</a></span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFGStat.html#a947dcd586a9ccf8b60243153769aaf31">SVFGStat::getSCCRep</a>(<a class="code" href="classSVF_1_1SCCDetection.html">SVFGSCC</a>* scc, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="keyword"></span>{</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">return</span> scc-><a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> }</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGStat.html#a42b67371df87ba647166000912f53243"> 172</a></span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFGStat.html#a42b67371df87ba647166000912f53243">SVFGStat::nodeInCycle</a>(<a class="code" href="classSVF_1_1SCCDetection.html">SVFGSCC</a>* scc, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keyword"></span>{</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">return</span> scc-><a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGStat.html#a037600bfff11659542f8595d8700dec4"> 177</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGStat.html#a037600bfff11659542f8595d8700dec4">SVFGStat::performStat</a>()</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="classSVF_1_1PTAStat.html#afe854f7416ea408104721a083ee9fee0">endClk</a>();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a737352ac44d808c55a91e8bd5e9e0aac">clear</a>();</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a3c016e166b8e84eb3b98bc3717cba5d8">processGraph</a>();</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"TotalTime"</span>] = (<a class="code" href="classSVF_1_1PTAStat.html#a267ba4aac2e7ceb65f008f9486d3d9f7">endTime</a> - <a class="code" href="classSVF_1_1PTAStat.html#a59e0fe6fa506f1cf319b5acaf9d28be9">startTime</a>)/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"ConnDirEdgeTime"</span>] = (<a class="code" href="classSVF_1_1SVFGStat.html#ac243fababbb9d2f3efbea5411f947c21">connectDirSVFGEdgeTimeEnd</a> - <a class="code" href="classSVF_1_1SVFGStat.html#a0a967faad014cdd53f5dddfdc59edbc3">connectDirSVFGEdgeTimeStart</a>)/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</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>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"ConnIndEdgeTime"</span>] = (<a class="code" href="classSVF_1_1SVFGStat.html#a3210cc1283669129234aa2c3feb67654">connectIndSVFGEdgeTimeEnd</a> - <a class="code" href="classSVF_1_1SVFGStat.html#a2a697caecf23413187aef90a8097e0b0">connectIndSVFGEdgeTimeStart</a>)/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</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="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"TLNodeTime"</span>] = (<a class="code" href="classSVF_1_1SVFGStat.html#a89f40e0cb98fdb65a320686b1698d909">addTopLevelNodeTimeEnd</a> - <a class="code" href="classSVF_1_1SVFGStat.html#ad72d8706cdc97443556c0d878a393727">addTopLevelNodeTimeStart</a>)/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"ATNodeTime"</span>] = (<a class="code" href="classSVF_1_1SVFGStat.html#a2f7a49d2b3aae6cdb1cbc0e8ae18d1c2">addAddrTakenNodeTimeEnd</a> - <a class="code" href="classSVF_1_1SVFGStat.html#aa35ff9ddfc4f00be698a903adf3285f5">addAddrTakenNodeTimeStart</a>)/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</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>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"OptTime"</span>] = (<a class="code" href="classSVF_1_1SVFGStat.html#ac06625b26e1aa1a0ed171c9f5cea0f35">svfgOptTimeEnd</a> - <a class="code" href="classSVF_1_1SVFGStat.html#a1e92f02d43f06ef31e107859d1bd8ac2">svfgOptTimeStart</a>)/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalNode"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#ab499c24856a990dd4adb366107eb3302">numOfNodes</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"FormalIn"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#abc5e079242666bb55ec7dbc7f258b3db">numOfFormalIn</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"FormalOut"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#ab20900eb0ecb0d2e1e601755848ac531">numOfFormalOut</a>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"FormalParam"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a1e9ddd5678b05e145af41a6d53f47748">numOfFormalParam</a>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"FormalRet"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a29807c066e60ef3905a5e01e0b86ffd2">numOfFormalRet</a>;</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>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ActualIn"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a5365744d2ec3594e2255d274f7256569">numOfActualIn</a>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ActualOut"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a122555f5c4b9746cc2b7f38c7cd6b505">numOfActualOut</a>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ActualParam"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a0494c59483520b57acdca95952c93d76">numOfActualParam</a>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ActualRet"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#ad37e5b2e57e02f8e4319f6d038c51414">numOfActualRet</a>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"Addr"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#aa6a39e0f1d41d67cb3441389a943bf5f">numOfAddr</a>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"Copy"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#ac86d6d7cb0090ab665729b56111ca464">numOfCopy</a>;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"Gep"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a862cd075a7c9d5019acfabe608ab7905">numOfGep</a>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"Store"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a4d15f2de3f226c26cb2af57176444ec9">numOfStore</a>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"Load"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a7c80f2332b97a3228e2ad7621162167a">numOfLoad</a>;</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>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PHI"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a0e1fcb9154aad266406c4da4861ba020">numOfPhi</a>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MSSAPhi"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a9fc87025af3b7e54442e78f46ebe0360">numOfMSSAPhi</a>;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgWeight"</span>] = (<a class="code" href="classSVF_1_1SVFGStat.html#a8cd6254435994d9aea27b5519491fc6a">totalIndInEdge</a> == 0) ? 0 : ((<span class="keywordtype">double</span>)<a class="code" href="classSVF_1_1SVFGStat.html#a5f0c72186ee16f5e88782b5edc9fa5b1">avgWeight</a> / <a class="code" href="classSVF_1_1SVFGStat.html#a8cd6254435994d9aea27b5519491fc6a">totalIndInEdge</a>);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalEdge"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a7929d8ba565ecb04efd236ccb19a4658">totalInEdge</a>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"DirectEdge"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a7929d8ba565ecb04efd236ccb19a4658">totalInEdge</a> - <a class="code" href="classSVF_1_1SVFGStat.html#a8cd6254435994d9aea27b5519491fc6a">totalIndInEdge</a>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"IndirectEdge"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a8cd6254435994d9aea27b5519491fc6a">totalIndInEdge</a>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"IndirectEdgeLabels"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a0a39eb7aab584cc285c32545ddb57ad8">totalIndEdgeLabels</a>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"IndCallEdge"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a0f37f7f530e3fd494c9d6bb477ca68d5">totalIndCallEdge</a>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"IndRetEdge"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#afd0f43a7d7138a8013930fd103ce7c47">totalIndRetEdge</a>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"DirectCallEdge"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a1e93c866f3d780cb1cfdaf1dd143ea24">totalDirCallEdge</a>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"DirectRetEdge"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a63bd38fa93d665037932bcda3cc342c6">totalDirRetEdge</a>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"AvgInDegree"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a4328f75f379e692901b95bacdf8dd413">avgInDegree</a>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"AvgOutDegree"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a123305ef02a5bfa127a1e172beb5e8cf">avgOutDegree</a>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxInDegree"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a536b591b21756519262873462001f421">maxInDegree</a>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxOutDegree"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a6694ace7ee1b24b0c5ce42e06e4db2cf">maxOutDegree</a>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> </div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"AvgIndInDeg"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a364d684cbefed1793d7c4506fb1fa0fd">avgIndInDegree</a>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"AvgIndOutDeg"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a7854ee895f1965ea02f5d04f81589826">avgIndOutDegree</a>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxIndInDeg"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a2f1bb17038de877fd1ccffdea3f3cde3">maxIndInDegree</a>;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxIndOutDeg"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#ac7cb2228bd31e8ebdf33ae2bfd399683">maxIndOutDegree</a>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a2e0adcfbe233523212e1ffbf5b01ba88">printStat</a>();</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span> }</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGStat.html#a3c016e166b8e84eb3b98bc3717cba5d8"> 243</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGStat.html#a3c016e166b8e84eb3b98bc3717cba5d8">SVFGStat::processGraph</a>()</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> nodeHasIndInEdge;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> nodeHasIndOutEdge;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  SVFG::SVFGNodeIDToNodeMapTy::iterator it = <a class="code" href="classSVF_1_1SVFGStat.html#a3d06ead4c3222ce8a0535d9f3d504c3d">graph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>();</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  SVFG::SVFGNodeIDToNodeMapTy::iterator eit = <a class="code" href="classSVF_1_1SVFGStat.html#a3d06ead4c3222ce8a0535d9f3d504c3d">graph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordflow">for</span> (; it != eit; ++it)</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <a class="code" href="classSVF_1_1SVFGStat.html#ab499c24856a990dd4adb366107eb3302">numOfNodes</a>++;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">if</span> (SVFUtil::isa<FormalINSVFGNode>(it->second))</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="classSVF_1_1SVFGStat.html#abc5e079242666bb55ec7dbc7f258b3db">numOfFormalIn</a>++;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<FormalOUTSVFGNode>(it->second))</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <a class="code" href="classSVF_1_1SVFGStat.html#ab20900eb0ecb0d2e1e601755848ac531">numOfFormalOut</a>++;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<FormalParmSVFGNode>(it->second))</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a1e9ddd5678b05e145af41a6d53f47748">numOfFormalParam</a>++;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<FormalRetSVFGNode>(it->second))</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a29807c066e60ef3905a5e01e0b86ffd2">numOfFormalRet</a>++;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualINSVFGNode>(it->second))</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a5365744d2ec3594e2255d274f7256569">numOfActualIn</a>++;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualOUTSVFGNode>(it->second))</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a122555f5c4b9746cc2b7f38c7cd6b505">numOfActualOut</a>++;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualParmSVFGNode>(it->second))</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a0494c59483520b57acdca95952c93d76">numOfActualParam</a>++;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualRetSVFGNode>(it->second))</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <a class="code" href="classSVF_1_1SVFGStat.html#ad37e5b2e57e02f8e4319f6d038c51414">numOfActualRet</a>++;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<AddrSVFGNode>(it->second))</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="classSVF_1_1SVFGStat.html#aa6a39e0f1d41d67cb3441389a943bf5f">numOfAddr</a>++;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<CopySVFGNode>(it->second))</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <a class="code" href="classSVF_1_1SVFGStat.html#ac86d6d7cb0090ab665729b56111ca464">numOfCopy</a>++;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<GepSVFGNode>(it->second))</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a862cd075a7c9d5019acfabe608ab7905">numOfGep</a>++;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<LoadSVFGNode>(it->second))</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a7c80f2332b97a3228e2ad7621162167a">numOfLoad</a>++;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<StoreSVFGNode>(it->second))</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a4d15f2de3f226c26cb2af57176444ec9">numOfStore</a>++;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<PHISVFGNode>(it->second))</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a0e1fcb9154aad266406c4da4861ba020">numOfPhi</a>++;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<MSSAPHISVFGNode>(it->second))</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a9fc87025af3b7e54442e78f46ebe0360">numOfMSSAPhi</a>++;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = it->second;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a570b8466e99ce5f68e02546d1ef21971">calculateNodeDegrees</a>(node, nodeHasIndInEdge, nodeHasIndOutEdge);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFGStat.html#ab499c24856a990dd4adb366107eb3302">numOfNodes</a> > 0)</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  {</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a4328f75f379e692901b95bacdf8dd413">avgInDegree</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a7929d8ba565ecb04efd236ccb19a4658">totalInEdge</a> / <a class="code" href="classSVF_1_1SVFGStat.html#ab499c24856a990dd4adb366107eb3302">numOfNodes</a>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a123305ef02a5bfa127a1e172beb5e8cf">avgOutDegree</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a18211427d08f70d252512d387763ce4a">totalOutEdge</a> / <a class="code" href="classSVF_1_1SVFGStat.html#ab499c24856a990dd4adb366107eb3302">numOfNodes</a>;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  }</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">if</span> (!nodeHasIndInEdge.empty())</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a364d684cbefed1793d7c4506fb1fa0fd">avgIndInDegree</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a8cd6254435994d9aea27b5519491fc6a">totalIndInEdge</a> / nodeHasIndInEdge.size();</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> </div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keywordflow">if</span> (!nodeHasIndOutEdge.empty())</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a7854ee895f1965ea02f5d04f81589826">avgIndOutDegree</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a982ce49695344bcde4cbbb445de69c8d">totalIndOutEdge</a> / nodeHasIndOutEdge.size();</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span> }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGStat.html#a570b8466e99ce5f68e02546d1ef21971"> 301</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGStat.html#a570b8466e99ce5f68e02546d1ef21971">SVFGStat::calculateNodeDegrees</a>(<a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node, <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>& nodeHasIndInEdge, <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>& nodeHasIndOutEdge)</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> {</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="comment">// Incoming edge</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html#a557334ef75bb5479b045f68c27b38701">SVFGEdge::SVFGEdgeSetTy</a>& inEdges = node-><a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>();</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="comment">// total in edge</span></div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">if</span> (inEdges.size() > <a class="code" href="classSVF_1_1SVFGStat.html#a536b591b21756519262873462001f421">maxInDegree</a>)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a536b591b21756519262873462001f421">maxInDegree</a> = inEdges.size();</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a7929d8ba565ecb04efd236ccb19a4658">totalInEdge</a> += inEdges.size();</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="comment">// indirect in edge</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> indInEdges = 0;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  SVFGEdge::SVFGEdgeSetTy::const_iterator edgeIt = inEdges.begin();</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  SVFGEdge::SVFGEdgeSetTy::const_iterator edgeEit = inEdges.end();</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a>* edge = SVFUtil::dyn_cast<IndirectSVFGEdge>(*edgeIt))</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  indInEdges++;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  nodeHasIndInEdge.insert(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="comment">// get edge's weight</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="comment">// TODO: try a new method to calculate weight.</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& cpts = edge->getPointsTo();</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a5f0c72186ee16f5e88782b5edc9fa5b1">avgWeight</a> += cpts.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a0a39eb7aab584cc285c32545ddb57ad8">totalIndEdgeLabels</a> += cpts.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  }</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keywordflow">if</span> (SVFUtil::isa<CallDirSVFGEdge>(*edgeIt))</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a1e93c866f3d780cb1cfdaf1dd143ea24">totalDirCallEdge</a>++;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<CallIndSVFGEdge>(*edgeIt))</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a0f37f7f530e3fd494c9d6bb477ca68d5">totalIndCallEdge</a>++;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<RetDirSVFGEdge>(*edgeIt))</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a63bd38fa93d665037932bcda3cc342c6">totalDirRetEdge</a>++;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<RetIndSVFGEdge>(*edgeIt))</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <a class="code" href="classSVF_1_1SVFGStat.html#afd0f43a7d7138a8013930fd103ce7c47">totalIndRetEdge</a>++;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  }</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">if</span> (indInEdges > <a class="code" href="classSVF_1_1SVFGStat.html#a2f1bb17038de877fd1ccffdea3f3cde3">maxIndInDegree</a>)</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a2f1bb17038de877fd1ccffdea3f3cde3">maxIndInDegree</a> = indInEdges;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a8cd6254435994d9aea27b5519491fc6a">totalIndInEdge</a> += indInEdges;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="comment">/*-----------------------------------------------------*/</span></div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="comment">// Outgoing edge</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html#a557334ef75bb5479b045f68c27b38701">SVFGEdge::SVFGEdgeSetTy</a>& outEdges = node-><a class="code" href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">getOutEdges</a>();</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="comment">// total out edge</span></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keywordflow">if</span> (outEdges.size() > <a class="code" href="classSVF_1_1SVFGStat.html#a6694ace7ee1b24b0c5ce42e06e4db2cf">maxOutDegree</a>)</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a6694ace7ee1b24b0c5ce42e06e4db2cf">maxOutDegree</a> = outEdges.size();</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a18211427d08f70d252512d387763ce4a">totalOutEdge</a> += outEdges.size();</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="comment">// indirect out edge</span></div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> indOutEdges = 0;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  edgeIt = outEdges.begin();</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  edgeEit = outEdges.end();</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">if</span> ((*edgeIt)->isIndirectVFGEdge())</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  {</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  indOutEdges++;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  nodeHasIndOutEdge.insert(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  }</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  }</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordflow">if</span> (indOutEdges > <a class="code" href="classSVF_1_1SVFGStat.html#ac7cb2228bd31e8ebdf33ae2bfd399683">maxIndOutDegree</a>)</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <a class="code" href="classSVF_1_1SVFGStat.html#ac7cb2228bd31e8ebdf33ae2bfd399683">maxIndOutDegree</a> = indOutEdges;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a982ce49695344bcde4cbbb445de69c8d">totalIndOutEdge</a> += indOutEdges;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span> }</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div><div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGStat.html#a87d5e8ec0e13416cff36a18644a5b94f"> 368</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGStat.html#a87d5e8ec0e13416cff36a18644a5b94f">SVFGStat::performSCCStat</a>(<a class="code" href="classSVF_1_1SVFGStat.html#afeddbe4020e9b3c928856c2dc86af838">SVFGEdgeSet</a> insensitiveCalRetEdges)</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span> {</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>.clear();</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>.clear();</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.clear();</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> </div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordtype">unsigned</span> totalNode = 0;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordtype">unsigned</span> totalCycle = 0;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keywordtype">unsigned</span> <a class="code" href="classSVF_1_1SVFGStat.html#a42b67371df87ba647166000912f53243">nodeInCycle</a> = 0;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordtype">unsigned</span> maxNodeInCycle = 0;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordtype">unsigned</span> totalEdge = 0;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordtype">unsigned</span> edgeInCycle = 0;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> </div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordtype">unsigned</span> totalDirectEdge = 0;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordtype">unsigned</span> directEdgeInCycle = 0;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keywordtype">unsigned</span> totalIndirectEdge = 0;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordtype">unsigned</span> indirectEdgeInCycle = 0;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordtype">unsigned</span> totalCallEdge = 0;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordtype">unsigned</span> callEdgeInCycle = 0;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordtype">unsigned</span> insensitiveCallEdge = 0;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordtype">unsigned</span> totalRetEdge = 0;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordtype">unsigned</span> retEdgeInCycle = 0;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keywordtype">unsigned</span> insensitiveRetEdge = 0;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <a class="code" href="classSVF_1_1SCCDetection.html">SVFGSCC</a>* svfgSCC = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFGStat.html#a149edd19cd5adafec13cbb49c590f0a8">SVFGSCC</a>(<a class="code" href="classSVF_1_1SVFGStat.html#a3d06ead4c3222ce8a0535d9f3d504c3d">graph</a>);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  svfgSCC-><a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>();</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> sccRepNodeSet;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  SVFG::SVFGNodeIDToNodeMapTy::iterator it = <a class="code" href="classSVF_1_1SVFGStat.html#a3d06ead4c3222ce8a0535d9f3d504c3d">graph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>();</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  SVFG::SVFGNodeIDToNodeMapTy::iterator eit = <a class="code" href="classSVF_1_1SVFGStat.html#a3d06ead4c3222ce8a0535d9f3d504c3d">graph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordflow">for</span> (; it != eit; ++it)</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  {</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  totalNode++;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordflow">if</span>(svfgSCC-><a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(it->first))</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  {</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  nodeInCycle++;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  sccRepNodeSet.insert(svfgSCC-><a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(it->first));</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& subNodes = svfgSCC-><a class="code" href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">subNodes</a>(it->first);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keywordflow">if</span>(subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>() > maxNodeInCycle)</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  maxNodeInCycle = subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  }</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> </div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  SVFGEdge::SVFGEdgeSetTy::const_iterator edgeIt = it->second->InEdgeBegin();</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  SVFGEdge::SVFGEdgeSetTy::const_iterator edgeEit = it->second->InEdgeEnd();</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a> *edge = *edgeIt;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  totalEdge++;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordtype">bool</span> eCycle = <span class="keyword">false</span>;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SVFGStat.html#a947dcd586a9ccf8b60243153769aaf31">getSCCRep</a>(svfgSCC,edge-><a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>()) == <a class="code" href="classSVF_1_1SVFGStat.html#a947dcd586a9ccf8b60243153769aaf31">getSCCRep</a>(svfgSCC,edge-><a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>()))</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  {</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  edgeInCycle++;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  eCycle = <span class="keyword">true</span>;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span> </div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">if</span> (edge-><a class="code" href="classSVF_1_1VFGEdge.html#a8777555f00696706de250159b920d14b">isDirectVFGEdge</a>())</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  totalDirectEdge++;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordflow">if</span>(eCycle)</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  directEdgeInCycle++;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  }</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="keywordflow">if</span> (edge-><a class="code" href="classSVF_1_1VFGEdge.html#aa8f30d093d4950724a6688707326b57b">isIndirectVFGEdge</a>())</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  totalIndirectEdge++;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keywordflow">if</span>(eCycle)</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  indirectEdgeInCycle++;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  }</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">if</span> (edge-><a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>())</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  {</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  totalCallEdge++;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keywordflow">if</span>(eCycle)</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  callEdgeInCycle++;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  }</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span> </div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keywordflow">if</span>(insensitiveCalRetEdges.find(edge)!=insensitiveCalRetEdges.end())</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  {</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  insensitiveCallEdge++;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  }</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  }</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keywordflow">if</span> (edge-><a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  {</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  totalRetEdge++;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">if</span>(eCycle)</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  {</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  retEdgeInCycle++;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  }</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span> </div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keywordflow">if</span>(insensitiveCalRetEdges.find(edge)!=insensitiveCalRetEdges.end())</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  {</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  insensitiveRetEdge++;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  }</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  }</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  }</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  }</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span> </div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span> </div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  totalCycle = sccRepNodeSet.size();</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span> </div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> </div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalNode"</span>] = totalNode;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalCycle"</span>] = totalCycle;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NodeInCycle"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a42b67371df87ba647166000912f53243">nodeInCycle</a>;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxNodeInCycle"</span>] = maxNodeInCycle;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalEdge"</span>] = totalEdge;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"EdgeInCycle"</span>] = edgeInCycle;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span> </div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalDirEdge"</span>] = totalDirectEdge;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"DirEdgeInCycle"</span>] = directEdgeInCycle;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalIndEdge"</span>] = totalIndirectEdge;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"IndEdgeInCycle"</span>] = indirectEdgeInCycle;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span> </div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalCallEdge"</span>] = totalCallEdge;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"CallEdgeInCycle"</span>] = callEdgeInCycle;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"InsenCallEdge"</span>] = insensitiveCallEdge;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> </div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalRetEdge"</span>] = totalRetEdge;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"RetEdgeInCycle"</span>] = retEdgeInCycle;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"InsenRetEdge"</span>] = insensitiveRetEdge;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span> </div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span> </div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\n****SVFG SCC Stat****\n"</span>;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <a class="code" href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">PTAStat::printStat</a>();</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keyword">delete</span> svfgSCC;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span> </div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span> }</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span> </div><div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGStat.html#a2e0adcfbe233523212e1ffbf5b01ba88"> 499</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGStat.html#a2e0adcfbe233523212e1ffbf5b01ba88">SVFGStat::printStat</a>(<span class="keywordtype">string</span> str)</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span> {</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\n****SVFG Statistics****\n"</span>;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <a class="code" href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">PTAStat::printStat</a>(str);</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span> }</div><div class="ttc" id="classSVF_1_1MemSSAStat_html_a8b4b9466a676d2391c71d38e8be16bc9"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#a8b4b9466a676d2391c71d38e8be16bc9">SVF::MemSSAStat::performStat</a></div><div class="ttdeci">virtual void performStat() override</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#l00073">SVFGStat.cpp:73</a></div></div>
|
|
69
|
+
<a href="SVFGStat_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">//===- SVFGStat.cpp -- SVFG statistics---------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * SVFGStat.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: 28/11/2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Author: yesen</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="SVFG_8h.html">Graphs/SVFG.h</a>"</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="SVFGStat_8h.html">Graphs/SVFGStat.h</a>"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="PTACallGraph_8h.html">Graphs/PTACallGraph.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">using namespace </span><a class="code" href="namespacestd.html">std</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a7dd7e6af850b9d724ea580450bfd3afd">MemSSAStat::TotalTimeOfConstructMemSSA</a> = <span class="stringliteral">"TotalMSSATime"</span>; </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a74c36654b7452aa94aa241881f0a83c5">MemSSAStat::TimeOfGeneratingMemRegions</a> = <span class="stringliteral">"GenRegionTime"</span>; </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a48c70f0ed1c7d031a3cd528035162e52">MemSSAStat::TimeOfCreateMUCHI</a> = <span class="stringliteral">"GenMUCHITime"</span>; </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a0c24822c8549af6a96e82312954fab9b">MemSSAStat::TimeOfInsertingPHI</a> = <span class="stringliteral">"InsertPHITime"</span>; </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a887ff23a7ea1a18f08b1744ff30da773">MemSSAStat::TimeOfSSARenaming</a> = <span class="stringliteral">"SSARenameTime"</span>; </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#acf3732557238de882bf7f34c49bd6cee">MemSSAStat::NumOfMaxRegion</a> = <span class="stringliteral">"MaxRegSize"</span>; </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a6e29fa9c935de324441c765e40faa2a5">MemSSAStat::NumOfAveragePtsInRegion</a> = <span class="stringliteral">"AverageRegSize"</span>; </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a95695aa32886776804e192b4c4ddcc1d">MemSSAStat::NumOfMemRegions</a> = <span class="stringliteral">"MemRegions"</span>; </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#ad96437d0c28f8088c711a718d2f2730e">MemSSAStat::NumOfEntryChi</a> = <span class="stringliteral">"FunEntryChi"</span>; </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a1459465f0a76c09b5dd7d777467ac2e4">MemSSAStat::NumOfRetMu</a> = <span class="stringliteral">"FunRetMu"</span>; </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a921a0f4eba4b891ab9b7699ea0d3f91c">MemSSAStat::NumOfCSChi</a> = <span class="stringliteral">"CSChiNode"</span>; </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a7b07190a20361e30999cd9107749599d">MemSSAStat::NumOfCSMu</a> = <span class="stringliteral">"CSMuNode"</span>; </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a284dbb01e051945a40179b315bdb112f">MemSSAStat::NumOfLoadMu</a> = <span class="stringliteral">"LoadMuNode"</span>; </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a810965c025da84c58575c8066bc84056">MemSSAStat::NumOfStoreChi</a> = <span class="stringliteral">"StoreChiNode"</span>; </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a4b598cb1d06c4c0963787036862b1c3d">MemSSAStat::NumOfMSSAPhi</a> = <span class="stringliteral">"MSSAPhi"</span>; </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> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#aee2e0df55c40745a9b9aac415aa7a399">MemSSAStat::NumOfFunHasEntryChi</a> = <span class="stringliteral">"FunHasEntryChi"</span>; </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#ab1cdbd2ebe54dc5bb752a89d069423b7">MemSSAStat::NumOfFunHasRetMu</a> = <span class="stringliteral">"FunHasRetMu"</span>; </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#ae57c6e5b97581150b7561c93e0887569">MemSSAStat::NumOfCSHasChi</a> = <span class="stringliteral">"CSHasChi"</span>; </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#af5855348e45f50d16cd41cfa9c28f67c">MemSSAStat::NumOfCSHasMu</a> = <span class="stringliteral">"CSHasMu"</span>; </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#ad3139d2643f5e79dcd4ca9569ebbe7df">MemSSAStat::NumOfLoadHasMu</a> = <span class="stringliteral">"LoadHasMu"</span>; </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a3bc14307bd0f986cbd8ba5970f1abf0f">MemSSAStat::NumOfStoreHasChi</a> = <span class="stringliteral">"StoreHasChi"</span>; </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1MemSSAStat.html#a67d9c55f52cb59168e89320c3264a15a">MemSSAStat::NumOfBBHasMSSAPhi</a> = <span class="stringliteral">"BBHasMSSAPhi"</span>; </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSAStat.html#a53f3d85a8eb63676d3dc47ee648efb66"> 65</a></span> <a class="code" href="classSVF_1_1MemSSAStat.html#a53f3d85a8eb63676d3dc47ee648efb66">MemSSAStat::MemSSAStat</a>(<a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* memSSA) : <a class="code" href="classSVF_1_1PTAStat.html">PTAStat</a>(nullptr)</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>  <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a> = memSSA;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="classSVF_1_1SVFStat.html#a730cc814fede3edb563aa9957c869e9e">startClk</a>();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSAStat.html#a8b4b9466a676d2391c71d38e8be16bc9"> 74</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSAStat.html#a8b4b9466a676d2391c71d38e8be16bc9">MemSSAStat::performStat</a>()</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="classSVF_1_1SVFStat.html#a1b7f1e3381de87f75f06cddb9c6c1ec1">endClk</a>();</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>  <a class="code" href="classSVF_1_1MRGenerator.html">MRGenerator</a>* mrGenerator = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#ab2dfdcf6fb50ba6cacad1254350a5b09">getMRGenerator</a>();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> regionNumber = mrGenerator-><a class="code" href="classSVF_1_1MRGenerator.html#aff53860ef2b0effb9250dc7348640085">getMRNum</a>();</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> maxRegionSize = 0;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalRegionPtsNum = 0;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">MRGenerator::MRSet</a> & mrSet = mrGenerator-><a class="code" href="classSVF_1_1MRGenerator.html#a1f69924c587c4e68a029fd4e86cffacf">getMRSet</a>();</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  MRGenerator::MRSet::const_iterator it = mrSet.begin();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  MRGenerator::MRSet::const_iterator eit = mrSet.end();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">for</span> (; it != eit; it++)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* region = *it;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> regionSize = region-><a class="code" href="classSVF_1_1MemRegion.html#a99f106d47fd67f1ae53e144d72a223c9">getRegionSize</a>();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">if</span> (regionSize > maxRegionSize)</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  maxRegionSize = regionSize;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  totalRegionPtsNum += regionSize;</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="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a7dd7e6af850b9d724ea580450bfd3afd">TotalTimeOfConstructMemSSA</a>] = (<a class="code" href="classSVF_1_1PTAStat.html#a267ba4aac2e7ceb65f008f9486d3d9f7">endTime</a> - <a class="code" href="classSVF_1_1PTAStat.html#a59e0fe6fa506f1cf319b5acaf9d28be9">startTime</a>)/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a74c36654b7452aa94aa241881f0a83c5">TimeOfGeneratingMemRegions</a>] = <a class="code" href="classSVF_1_1MemSSA.html#a37dca8a7d155de4870358146d219b5e5">MemSSA::timeOfGeneratingMemRegions</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a48c70f0ed1c7d031a3cd528035162e52">TimeOfCreateMUCHI</a>] = <a class="code" href="classSVF_1_1MemSSA.html#a4d2418b7df74f23d8fd328f66e29f198">MemSSA::timeOfCreateMUCHI</a>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a0c24822c8549af6a96e82312954fab9b">TimeOfInsertingPHI</a>] = <a class="code" href="classSVF_1_1MemSSA.html#a3c7b5fa73fdc7c805ee3673fbe812b44">MemSSA::timeOfInsertingPHI</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a887ff23a7ea1a18f08b1744ff30da773">TimeOfSSARenaming</a>] = <a class="code" href="classSVF_1_1MemSSA.html#a97ccd5e0b9ab6144415e26bdf95cbabd">MemSSA::timeOfSSARenaming</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#acf3732557238de882bf7f34c49bd6cee">NumOfMaxRegion</a>] = maxRegionSize;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a6e29fa9c935de324441c765e40faa2a5">NumOfAveragePtsInRegion</a>] = (regionNumber == 0) ? 0 : ((<span class="keywordtype">double</span>)totalRegionPtsNum / regionNumber);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a95695aa32886776804e192b4c4ddcc1d">NumOfMemRegions</a>] = regionNumber;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#ad96437d0c28f8088c711a718d2f2730e">NumOfEntryChi</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a15272a4ed019d1c323d1826c1bedb70f">getFunEntryChiNum</a>();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a1459465f0a76c09b5dd7d777467ac2e4">NumOfRetMu</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a67175188232e08f5c5374f92ff61810f">getFunRetMuNum</a>();</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a921a0f4eba4b891ab9b7699ea0d3f91c">NumOfCSChi</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a2c65795ca63a53c833f5ac17a752b6dc">getCallSiteChiNum</a>();</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a7b07190a20361e30999cd9107749599d">NumOfCSMu</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a9e8c5b85957485635d0f72c2f48bb8b5">getCallSiteMuNum</a>();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a284dbb01e051945a40179b315bdb112f">NumOfLoadMu</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#aafc83f7f22ebf3b3683607440c488bef">getLoadMuNum</a>();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a810965c025da84c58575c8066bc84056">NumOfStoreChi</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#aa8c45b455e6fc60cab955534c3e50bfa">getStoreChiNum</a>();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a4b598cb1d06c4c0963787036862b1c3d">NumOfMSSAPhi</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a9bb6512999cbf9c7c03153be77c8af20">getBBPhiNum</a>();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#aee2e0df55c40745a9b9aac415aa7a399">NumOfFunHasEntryChi</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#afd4787df4466c24948d8384e3a756198">getFunToEntryChiSetMap</a>().size();</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#ab1cdbd2ebe54dc5bb752a89d069423b7">NumOfFunHasRetMu</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a44cbdb1231c2709c24d19ad2bae2475a">getFunToRetMuSetMap</a>().size();</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#ae57c6e5b97581150b7561c93e0887569">NumOfCSHasChi</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a8f88acad31782bfa962e4349d8f4185d">getCallSiteToChiSetMap</a>().size();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#af5855348e45f50d16cd41cfa9c28f67c">NumOfCSHasMu</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a06081aa029b1fe3f9427f85a0261fd43">getCallSiteToMuSetMap</a>().size();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#ad3139d2643f5e79dcd4ca9569ebbe7df">NumOfLoadHasMu</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a70dd35ef458c452330dfebcdde17b84c">getLoadToMUSetMap</a>().size();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a3bc14307bd0f986cbd8ba5970f1abf0f">NumOfStoreHasChi</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a97166aa7102816a16734d7e2f1c130b0">getStoreToChiSetMap</a>().size();</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1MemSSAStat.html#a67d9c55f52cb59168e89320c3264a15a">NumOfBBHasMSSAPhi</a>] = <a class="code" href="classSVF_1_1MemSSAStat.html#ab29515f4e5b1f090c06a6e39761d3394">mssa</a>-><a class="code" href="classSVF_1_1MemSSA.html#a966477062a453901da3631015fcf737d">getBBToPhiSetMap</a>().size();</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classSVF_1_1MemSSAStat.html#ad5fbe23c3374e5b3a45ac5fa4900441a">printStat</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> }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classSVF_1_1MemSSAStat.html#ad5fbe23c3374e5b3a45ac5fa4900441a"> 128</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MemSSAStat.html#ad5fbe23c3374e5b3a45ac5fa4900441a">MemSSAStat::printStat</a>(<span class="keywordtype">string</span> str)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classSVF_1_1PTAStat.html#aca3e99ad83bddabee1dd565522691c78">PTAStat::printStat</a>(<span class="stringliteral">"Memory SSA Statistics"</span>);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGStat.html#ae61d5bd92ef495a0f6c2f9dedac3da03"> 136</a></span> <a class="code" href="classSVF_1_1SVFGStat.html#ae61d5bd92ef495a0f6c2f9dedac3da03">SVFGStat::SVFGStat</a>(<a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* g) : <a class="code" href="classSVF_1_1PTAStat.html">PTAStat</a>(nullptr)</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a3d06ead4c3222ce8a0535d9f3d504c3d">graph</a> = g;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a737352ac44d808c55a91e8bd5e9e0aac">clear</a>();</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="classSVF_1_1SVFStat.html#a730cc814fede3edb563aa9957c869e9e">startClk</a>();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a0a967faad014cdd53f5dddfdc59edbc3">connectDirSVFGEdgeTimeStart</a> = <a class="code" href="classSVF_1_1SVFGStat.html#ac243fababbb9d2f3efbea5411f947c21">connectDirSVFGEdgeTimeEnd</a> = 0;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a2a697caecf23413187aef90a8097e0b0">connectIndSVFGEdgeTimeStart</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a3210cc1283669129234aa2c3feb67654">connectIndSVFGEdgeTimeEnd</a> = 0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="classSVF_1_1SVFGStat.html#ad72d8706cdc97443556c0d878a393727">addTopLevelNodeTimeStart</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a89f40e0cb98fdb65a320686b1698d909">addTopLevelNodeTimeEnd</a> = 0;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="classSVF_1_1SVFGStat.html#aa35ff9ddfc4f00be698a903adf3285f5">addAddrTakenNodeTimeStart</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a2f7a49d2b3aae6cdb1cbc0e8ae18d1c2">addAddrTakenNodeTimeEnd</a> = 0;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a1e92f02d43f06ef31e107859d1bd8ac2">svfgOptTimeStart</a> = <a class="code" href="classSVF_1_1SVFGStat.html#ac06625b26e1aa1a0ed171c9f5cea0f35">svfgOptTimeEnd</a> = 0;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGStat.html#a737352ac44d808c55a91e8bd5e9e0aac"> 148</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGStat.html#a737352ac44d808c55a91e8bd5e9e0aac">SVFGStat::clear</a>()</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="classSVF_1_1SVFGStat.html#ab499c24856a990dd4adb366107eb3302">numOfNodes</a> = 0;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="classSVF_1_1SVFGStat.html#abc5e079242666bb55ec7dbc7f258b3db">numOfFormalIn</a> = <a class="code" href="classSVF_1_1SVFGStat.html#ab20900eb0ecb0d2e1e601755848ac531">numOfFormalOut</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a1e9ddd5678b05e145af41a6d53f47748">numOfFormalParam</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a29807c066e60ef3905a5e01e0b86ffd2">numOfFormalRet</a> = 0;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a5365744d2ec3594e2255d274f7256569">numOfActualIn</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a122555f5c4b9746cc2b7f38c7cd6b505">numOfActualOut</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a0494c59483520b57acdca95952c93d76">numOfActualParam</a> = <a class="code" href="classSVF_1_1SVFGStat.html#ad37e5b2e57e02f8e4319f6d038c51414">numOfActualRet</a> = 0;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a7c80f2332b97a3228e2ad7621162167a">numOfLoad</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a4d15f2de3f226c26cb2af57176444ec9">numOfStore</a> = <a class="code" href="classSVF_1_1SVFGStat.html#ac86d6d7cb0090ab665729b56111ca464">numOfCopy</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a862cd075a7c9d5019acfabe608ab7905">numOfGep</a> = <a class="code" href="classSVF_1_1SVFGStat.html#aa6a39e0f1d41d67cb3441389a943bf5f">numOfAddr</a> = 0;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a9fc87025af3b7e54442e78f46ebe0360">numOfMSSAPhi</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a0e1fcb9154aad266406c4da4861ba020">numOfPhi</a> = 0;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a5f0c72186ee16f5e88782b5edc9fa5b1">avgWeight</a> = 0;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a4328f75f379e692901b95bacdf8dd413">avgInDegree</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a123305ef02a5bfa127a1e172beb5e8cf">avgOutDegree</a> = 0;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a536b591b21756519262873462001f421">maxInDegree</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a6694ace7ee1b24b0c5ce42e06e4db2cf">maxOutDegree</a> = 0;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a364d684cbefed1793d7c4506fb1fa0fd">avgIndInDegree</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a7854ee895f1965ea02f5d04f81589826">avgIndOutDegree</a> = 0;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a2f1bb17038de877fd1ccffdea3f3cde3">maxIndInDegree</a> = <a class="code" href="classSVF_1_1SVFGStat.html#ac7cb2228bd31e8ebdf33ae2bfd399683">maxIndOutDegree</a> = 0;</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_1SVFGStat.html#a7929d8ba565ecb04efd236ccb19a4658">totalInEdge</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a18211427d08f70d252512d387763ce4a">totalOutEdge</a> = 0;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a8cd6254435994d9aea27b5519491fc6a">totalIndInEdge</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a982ce49695344bcde4cbbb445de69c8d">totalIndOutEdge</a> = 0;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a0a39eb7aab584cc285c32545ddb57ad8">totalIndEdgeLabels</a> = 0;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a0f37f7f530e3fd494c9d6bb477ca68d5">totalIndCallEdge</a> = <a class="code" href="classSVF_1_1SVFGStat.html#afd0f43a7d7138a8013930fd103ce7c47">totalIndRetEdge</a> = 0;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a1e93c866f3d780cb1cfdaf1dd143ea24">totalDirCallEdge</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a63bd38fa93d665037932bcda3cc342c6">totalDirRetEdge</a> = 0;</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"><a class="line" href="classSVF_1_1SVFGStat.html#a947dcd586a9ccf8b60243153769aaf31"> 169</a></span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFGStat.html#a947dcd586a9ccf8b60243153769aaf31">SVFGStat::getSCCRep</a>(<a class="code" href="classSVF_1_1SCCDetection.html">SVFGSCC</a>* scc, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword"></span>{</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> scc-><a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> }</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGStat.html#a42b67371df87ba647166000912f53243"> 173</a></span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFGStat.html#a42b67371df87ba647166000912f53243">SVFGStat::nodeInCycle</a>(<a class="code" href="classSVF_1_1SCCDetection.html">SVFGSCC</a>* scc, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword"></span>{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">return</span> scc-><a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGStat.html#a037600bfff11659542f8595d8700dec4"> 178</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGStat.html#a037600bfff11659542f8595d8700dec4">SVFGStat::performStat</a>()</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="classSVF_1_1SVFStat.html#a1b7f1e3381de87f75f06cddb9c6c1ec1">endClk</a>();</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a737352ac44d808c55a91e8bd5e9e0aac">clear</a>();</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a3c016e166b8e84eb3b98bc3717cba5d8">processGraph</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>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"TotalTime"</span>] = (<a class="code" href="classSVF_1_1PTAStat.html#a267ba4aac2e7ceb65f008f9486d3d9f7">endTime</a> - <a class="code" href="classSVF_1_1PTAStat.html#a59e0fe6fa506f1cf319b5acaf9d28be9">startTime</a>)/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"ConnDirEdgeTime"</span>] = (<a class="code" href="classSVF_1_1SVFGStat.html#ac243fababbb9d2f3efbea5411f947c21">connectDirSVFGEdgeTimeEnd</a> - <a class="code" href="classSVF_1_1SVFGStat.html#a0a967faad014cdd53f5dddfdc59edbc3">connectDirSVFGEdgeTimeStart</a>)/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"ConnIndEdgeTime"</span>] = (<a class="code" href="classSVF_1_1SVFGStat.html#a3210cc1283669129234aa2c3feb67654">connectIndSVFGEdgeTimeEnd</a> - <a class="code" href="classSVF_1_1SVFGStat.html#a2a697caecf23413187aef90a8097e0b0">connectIndSVFGEdgeTimeStart</a>)/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"TLNodeTime"</span>] = (<a class="code" href="classSVF_1_1SVFGStat.html#a89f40e0cb98fdb65a320686b1698d909">addTopLevelNodeTimeEnd</a> - <a class="code" href="classSVF_1_1SVFGStat.html#ad72d8706cdc97443556c0d878a393727">addTopLevelNodeTimeStart</a>)/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"ATNodeTime"</span>] = (<a class="code" href="classSVF_1_1SVFGStat.html#a2f7a49d2b3aae6cdb1cbc0e8ae18d1c2">addAddrTakenNodeTimeEnd</a> - <a class="code" href="classSVF_1_1SVFGStat.html#aa35ff9ddfc4f00be698a903adf3285f5">addAddrTakenNodeTimeStart</a>)/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"OptTime"</span>] = (<a class="code" href="classSVF_1_1SVFGStat.html#ac06625b26e1aa1a0ed171c9f5cea0f35">svfgOptTimeEnd</a> - <a class="code" href="classSVF_1_1SVFGStat.html#a1e92f02d43f06ef31e107859d1bd8ac2">svfgOptTimeStart</a>)/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</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_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalNode"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#ab499c24856a990dd4adb366107eb3302">numOfNodes</a>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"FormalIn"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#abc5e079242666bb55ec7dbc7f258b3db">numOfFormalIn</a>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"FormalOut"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#ab20900eb0ecb0d2e1e601755848ac531">numOfFormalOut</a>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"FormalParam"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a1e9ddd5678b05e145af41a6d53f47748">numOfFormalParam</a>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"FormalRet"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a29807c066e60ef3905a5e01e0b86ffd2">numOfFormalRet</a>;</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>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ActualIn"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a5365744d2ec3594e2255d274f7256569">numOfActualIn</a>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ActualOut"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a122555f5c4b9746cc2b7f38c7cd6b505">numOfActualOut</a>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ActualParam"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a0494c59483520b57acdca95952c93d76">numOfActualParam</a>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ActualRet"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#ad37e5b2e57e02f8e4319f6d038c51414">numOfActualRet</a>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"Addr"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#aa6a39e0f1d41d67cb3441389a943bf5f">numOfAddr</a>;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"Copy"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#ac86d6d7cb0090ab665729b56111ca464">numOfCopy</a>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"Gep"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a862cd075a7c9d5019acfabe608ab7905">numOfGep</a>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"Store"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a4d15f2de3f226c26cb2af57176444ec9">numOfStore</a>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"Load"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a7c80f2332b97a3228e2ad7621162167a">numOfLoad</a>;</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>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PHI"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a0e1fcb9154aad266406c4da4861ba020">numOfPhi</a>;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MSSAPhi"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a9fc87025af3b7e54442e78f46ebe0360">numOfMSSAPhi</a>;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"AvgWeight"</span>] = (<a class="code" href="classSVF_1_1SVFGStat.html#a8cd6254435994d9aea27b5519491fc6a">totalIndInEdge</a> == 0) ? 0 : ((<span class="keywordtype">double</span>)<a class="code" href="classSVF_1_1SVFGStat.html#a5f0c72186ee16f5e88782b5edc9fa5b1">avgWeight</a> / <a class="code" href="classSVF_1_1SVFGStat.html#a8cd6254435994d9aea27b5519491fc6a">totalIndInEdge</a>);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalEdge"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a7929d8ba565ecb04efd236ccb19a4658">totalInEdge</a>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"DirectEdge"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a7929d8ba565ecb04efd236ccb19a4658">totalInEdge</a> - <a class="code" href="classSVF_1_1SVFGStat.html#a8cd6254435994d9aea27b5519491fc6a">totalIndInEdge</a>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"IndirectEdge"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a8cd6254435994d9aea27b5519491fc6a">totalIndInEdge</a>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"IndirectEdgeLabels"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a0a39eb7aab584cc285c32545ddb57ad8">totalIndEdgeLabels</a>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"IndCallEdge"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a0f37f7f530e3fd494c9d6bb477ca68d5">totalIndCallEdge</a>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"IndRetEdge"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#afd0f43a7d7138a8013930fd103ce7c47">totalIndRetEdge</a>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"DirectCallEdge"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a1e93c866f3d780cb1cfdaf1dd143ea24">totalDirCallEdge</a>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"DirectRetEdge"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a63bd38fa93d665037932bcda3cc342c6">totalDirRetEdge</a>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"AvgInDegree"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a4328f75f379e692901b95bacdf8dd413">avgInDegree</a>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"AvgOutDegree"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a123305ef02a5bfa127a1e172beb5e8cf">avgOutDegree</a>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxInDegree"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a536b591b21756519262873462001f421">maxInDegree</a>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxOutDegree"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a6694ace7ee1b24b0c5ce42e06e4db2cf">maxOutDegree</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="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"AvgIndInDeg"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a364d684cbefed1793d7c4506fb1fa0fd">avgIndInDegree</a>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"AvgIndOutDeg"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a7854ee895f1965ea02f5d04f81589826">avgIndOutDegree</a>;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxIndInDeg"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a2f1bb17038de877fd1ccffdea3f3cde3">maxIndInDegree</a>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxIndOutDeg"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#ac7cb2228bd31e8ebdf33ae2bfd399683">maxIndOutDegree</a>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a2e0adcfbe233523212e1ffbf5b01ba88">printStat</a>();</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> </div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGStat.html#a3c016e166b8e84eb3b98bc3717cba5d8"> 244</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGStat.html#a3c016e166b8e84eb3b98bc3717cba5d8">SVFGStat::processGraph</a>()</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> {</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> nodeHasIndInEdge;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> nodeHasIndOutEdge;</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>  SVFG::SVFGNodeIDToNodeMapTy::iterator it = <a class="code" href="classSVF_1_1SVFGStat.html#a3d06ead4c3222ce8a0535d9f3d504c3d">graph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  SVFG::SVFGNodeIDToNodeMapTy::iterator eit = <a class="code" href="classSVF_1_1SVFGStat.html#a3d06ead4c3222ce8a0535d9f3d504c3d">graph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">for</span> (; it != eit; ++it)</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <a class="code" href="classSVF_1_1SVFGStat.html#ab499c24856a990dd4adb366107eb3302">numOfNodes</a>++;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">if</span> (SVFUtil::isa<FormalINSVFGNode>(it->second))</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="classSVF_1_1SVFGStat.html#abc5e079242666bb55ec7dbc7f258b3db">numOfFormalIn</a>++;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<FormalOUTSVFGNode>(it->second))</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <a class="code" href="classSVF_1_1SVFGStat.html#ab20900eb0ecb0d2e1e601755848ac531">numOfFormalOut</a>++;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<FormalParmSVFGNode>(it->second))</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a1e9ddd5678b05e145af41a6d53f47748">numOfFormalParam</a>++;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<FormalRetSVFGNode>(it->second))</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a29807c066e60ef3905a5e01e0b86ffd2">numOfFormalRet</a>++;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualINSVFGNode>(it->second))</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a5365744d2ec3594e2255d274f7256569">numOfActualIn</a>++;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualOUTSVFGNode>(it->second))</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a122555f5c4b9746cc2b7f38c7cd6b505">numOfActualOut</a>++;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualParmSVFGNode>(it->second))</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a0494c59483520b57acdca95952c93d76">numOfActualParam</a>++;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualRetSVFGNode>(it->second))</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <a class="code" href="classSVF_1_1SVFGStat.html#ad37e5b2e57e02f8e4319f6d038c51414">numOfActualRet</a>++;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<AddrSVFGNode>(it->second))</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <a class="code" href="classSVF_1_1SVFGStat.html#aa6a39e0f1d41d67cb3441389a943bf5f">numOfAddr</a>++;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<CopySVFGNode>(it->second))</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <a class="code" href="classSVF_1_1SVFGStat.html#ac86d6d7cb0090ab665729b56111ca464">numOfCopy</a>++;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<GepSVFGNode>(it->second))</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a862cd075a7c9d5019acfabe608ab7905">numOfGep</a>++;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<LoadSVFGNode>(it->second))</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a7c80f2332b97a3228e2ad7621162167a">numOfLoad</a>++;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<StoreSVFGNode>(it->second))</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a4d15f2de3f226c26cb2af57176444ec9">numOfStore</a>++;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<PHISVFGNode>(it->second))</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a0e1fcb9154aad266406c4da4861ba020">numOfPhi</a>++;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<MSSAPHISVFGNode>(it->second))</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a9fc87025af3b7e54442e78f46ebe0360">numOfMSSAPhi</a>++;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = it->second;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a570b8466e99ce5f68e02546d1ef21971">calculateNodeDegrees</a>(node, nodeHasIndInEdge, nodeHasIndOutEdge);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFGStat.html#ab499c24856a990dd4adb366107eb3302">numOfNodes</a> > 0)</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a4328f75f379e692901b95bacdf8dd413">avgInDegree</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a7929d8ba565ecb04efd236ccb19a4658">totalInEdge</a> / <a class="code" href="classSVF_1_1SVFGStat.html#ab499c24856a990dd4adb366107eb3302">numOfNodes</a>;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a123305ef02a5bfa127a1e172beb5e8cf">avgOutDegree</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a18211427d08f70d252512d387763ce4a">totalOutEdge</a> / <a class="code" href="classSVF_1_1SVFGStat.html#ab499c24856a990dd4adb366107eb3302">numOfNodes</a>;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">if</span> (!nodeHasIndInEdge.empty())</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a364d684cbefed1793d7c4506fb1fa0fd">avgIndInDegree</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a8cd6254435994d9aea27b5519491fc6a">totalIndInEdge</a> / nodeHasIndInEdge.size();</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">if</span> (!nodeHasIndOutEdge.empty())</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a7854ee895f1965ea02f5d04f81589826">avgIndOutDegree</a> = <a class="code" href="classSVF_1_1SVFGStat.html#a982ce49695344bcde4cbbb445de69c8d">totalIndOutEdge</a> / nodeHasIndOutEdge.size();</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> }</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGStat.html#a570b8466e99ce5f68e02546d1ef21971"> 302</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGStat.html#a570b8466e99ce5f68e02546d1ef21971">SVFGStat::calculateNodeDegrees</a>(<a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node, <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>& nodeHasIndInEdge, <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>& nodeHasIndOutEdge)</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="comment">// Incoming edge</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html#a557334ef75bb5479b045f68c27b38701">SVFGEdge::SVFGEdgeSetTy</a>& inEdges = node-><a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>();</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="comment">// total in edge</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">if</span> (inEdges.size() > <a class="code" href="classSVF_1_1SVFGStat.html#a536b591b21756519262873462001f421">maxInDegree</a>)</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a536b591b21756519262873462001f421">maxInDegree</a> = inEdges.size();</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a7929d8ba565ecb04efd236ccb19a4658">totalInEdge</a> += inEdges.size();</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="comment">// indirect in edge</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> indInEdges = 0;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  SVFGEdge::SVFGEdgeSetTy::const_iterator edgeIt = inEdges.begin();</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  SVFGEdge::SVFGEdgeSetTy::const_iterator edgeEit = inEdges.end();</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a>* edge = SVFUtil::dyn_cast<IndirectSVFGEdge>(*edgeIt))</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  {</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  indInEdges++;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  nodeHasIndInEdge.insert(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="comment">// get edge's weight</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="comment">// TODO: try a new method to calculate weight.</span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& cpts = edge->getPointsTo();</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a5f0c72186ee16f5e88782b5edc9fa5b1">avgWeight</a> += cpts.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a0a39eb7aab584cc285c32545ddb57ad8">totalIndEdgeLabels</a> += cpts.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  }</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">if</span> (SVFUtil::isa<CallDirSVFGEdge>(*edgeIt))</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a1e93c866f3d780cb1cfdaf1dd143ea24">totalDirCallEdge</a>++;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<CallIndSVFGEdge>(*edgeIt))</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a0f37f7f530e3fd494c9d6bb477ca68d5">totalIndCallEdge</a>++;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<RetDirSVFGEdge>(*edgeIt))</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a63bd38fa93d665037932bcda3cc342c6">totalDirRetEdge</a>++;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<RetIndSVFGEdge>(*edgeIt))</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <a class="code" href="classSVF_1_1SVFGStat.html#afd0f43a7d7138a8013930fd103ce7c47">totalIndRetEdge</a>++;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  }</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordflow">if</span> (indInEdges > <a class="code" href="classSVF_1_1SVFGStat.html#a2f1bb17038de877fd1ccffdea3f3cde3">maxIndInDegree</a>)</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a2f1bb17038de877fd1ccffdea3f3cde3">maxIndInDegree</a> = indInEdges;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a8cd6254435994d9aea27b5519491fc6a">totalIndInEdge</a> += indInEdges;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="comment">/*-----------------------------------------------------*/</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="comment">// Outgoing edge</span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html#a557334ef75bb5479b045f68c27b38701">SVFGEdge::SVFGEdgeSetTy</a>& outEdges = node-><a class="code" href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">getOutEdges</a>();</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="comment">// total out edge</span></div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">if</span> (outEdges.size() > <a class="code" href="classSVF_1_1SVFGStat.html#a6694ace7ee1b24b0c5ce42e06e4db2cf">maxOutDegree</a>)</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a6694ace7ee1b24b0c5ce42e06e4db2cf">maxOutDegree</a> = outEdges.size();</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a18211427d08f70d252512d387763ce4a">totalOutEdge</a> += outEdges.size();</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span> </div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="comment">// indirect out edge</span></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> indOutEdges = 0;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  edgeIt = outEdges.begin();</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  edgeEit = outEdges.end();</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  {</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="keywordflow">if</span> ((*edgeIt)->isIndirectVFGEdge())</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  {</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  indOutEdges++;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  nodeHasIndOutEdge.insert(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  }</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  }</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordflow">if</span> (indOutEdges > <a class="code" href="classSVF_1_1SVFGStat.html#ac7cb2228bd31e8ebdf33ae2bfd399683">maxIndOutDegree</a>)</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <a class="code" href="classSVF_1_1SVFGStat.html#ac7cb2228bd31e8ebdf33ae2bfd399683">maxIndOutDegree</a> = indOutEdges;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <a class="code" href="classSVF_1_1SVFGStat.html#a982ce49695344bcde4cbbb445de69c8d">totalIndOutEdge</a> += indOutEdges;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> }</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span> </div><div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGStat.html#a87d5e8ec0e13416cff36a18644a5b94f"> 369</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGStat.html#a87d5e8ec0e13416cff36a18644a5b94f">SVFGStat::performSCCStat</a>(<a class="code" href="classSVF_1_1SVFGStat.html#afeddbe4020e9b3c928856c2dc86af838">SVFGEdgeSet</a> insensitiveCalRetEdges)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <a class="code" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a>.clear();</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>.clear();</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>.clear();</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordtype">unsigned</span> totalNode = 0;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keywordtype">unsigned</span> totalCycle = 0;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordtype">unsigned</span> <a class="code" href="classSVF_1_1SVFGStat.html#a42b67371df87ba647166000912f53243">nodeInCycle</a> = 0;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordtype">unsigned</span> maxNodeInCycle = 0;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordtype">unsigned</span> totalEdge = 0;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordtype">unsigned</span> edgeInCycle = 0;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordtype">unsigned</span> totalDirectEdge = 0;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keywordtype">unsigned</span> directEdgeInCycle = 0;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordtype">unsigned</span> totalIndirectEdge = 0;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordtype">unsigned</span> indirectEdgeInCycle = 0;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordtype">unsigned</span> totalCallEdge = 0;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordtype">unsigned</span> callEdgeInCycle = 0;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordtype">unsigned</span> insensitiveCallEdge = 0;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordtype">unsigned</span> totalRetEdge = 0;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keywordtype">unsigned</span> retEdgeInCycle = 0;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordtype">unsigned</span> insensitiveRetEdge = 0;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <a class="code" href="classSVF_1_1SCCDetection.html">SVFGSCC</a>* svfgSCC = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFGStat.html#a149edd19cd5adafec13cbb49c590f0a8">SVFGSCC</a>(<a class="code" href="classSVF_1_1SVFGStat.html#a3d06ead4c3222ce8a0535d9f3d504c3d">graph</a>);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  svfgSCC-><a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>();</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> sccRepNodeSet;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  SVFG::SVFGNodeIDToNodeMapTy::iterator it = <a class="code" href="classSVF_1_1SVFGStat.html#a3d06ead4c3222ce8a0535d9f3d504c3d">graph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>();</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  SVFG::SVFGNodeIDToNodeMapTy::iterator eit = <a class="code" href="classSVF_1_1SVFGStat.html#a3d06ead4c3222ce8a0535d9f3d504c3d">graph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">for</span> (; it != eit; ++it)</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  {</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  totalNode++;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keywordflow">if</span>(svfgSCC-><a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(it->first))</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  {</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  nodeInCycle++;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  sccRepNodeSet.insert(svfgSCC-><a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(it->first));</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& subNodes = svfgSCC-><a class="code" href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">subNodes</a>(it->first);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="keywordflow">if</span>(subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>() > maxNodeInCycle)</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  maxNodeInCycle = subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  }</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  SVFGEdge::SVFGEdgeSetTy::const_iterator edgeIt = it->second->InEdgeBegin();</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  SVFGEdge::SVFGEdgeSetTy::const_iterator edgeEit = it->second->InEdgeEnd();</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span> </div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a> *edge = *edgeIt;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  totalEdge++;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordtype">bool</span> eCycle = <span class="keyword">false</span>;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SVFGStat.html#a947dcd586a9ccf8b60243153769aaf31">getSCCRep</a>(svfgSCC,edge-><a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>()) == <a class="code" href="classSVF_1_1SVFGStat.html#a947dcd586a9ccf8b60243153769aaf31">getSCCRep</a>(svfgSCC,edge-><a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>()))</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  {</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  edgeInCycle++;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  eCycle = <span class="keyword">true</span>;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  }</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span> </div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordflow">if</span> (edge-><a class="code" href="classSVF_1_1VFGEdge.html#a8777555f00696706de250159b920d14b">isDirectVFGEdge</a>())</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  {</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  totalDirectEdge++;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="keywordflow">if</span>(eCycle)</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  directEdgeInCycle++;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span> </div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  }</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="keywordflow">if</span> (edge-><a class="code" href="classSVF_1_1VFGEdge.html#aa8f30d093d4950724a6688707326b57b">isIndirectVFGEdge</a>())</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  totalIndirectEdge++;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="keywordflow">if</span>(eCycle)</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  indirectEdgeInCycle++;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  }</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keywordflow">if</span> (edge-><a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>())</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  {</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  totalCallEdge++;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">if</span>(eCycle)</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  {</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  callEdgeInCycle++;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  }</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span> </div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keywordflow">if</span>(insensitiveCalRetEdges.find(edge)!=insensitiveCalRetEdges.end())</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  insensitiveCallEdge++;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  }</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  }</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keywordflow">if</span> (edge-><a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  {</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  totalRetEdge++;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keywordflow">if</span>(eCycle)</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  {</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  retEdgeInCycle++;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  }</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="keywordflow">if</span>(insensitiveCalRetEdges.find(edge)!=insensitiveCalRetEdges.end())</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  {</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  insensitiveRetEdge++;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  }</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  }</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  }</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  }</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span> </div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  totalCycle = sccRepNodeSet.size();</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> </div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span> </div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalNode"</span>] = totalNode;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalCycle"</span>] = totalCycle;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NodeInCycle"</span>] = <a class="code" href="classSVF_1_1SVFGStat.html#a42b67371df87ba647166000912f53243">nodeInCycle</a>;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxNodeInCycle"</span>] = maxNodeInCycle;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalEdge"</span>] = totalEdge;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"EdgeInCycle"</span>] = edgeInCycle;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> </div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalDirEdge"</span>] = totalDirectEdge;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"DirEdgeInCycle"</span>] = directEdgeInCycle;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalIndEdge"</span>] = totalIndirectEdge;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"IndEdgeInCycle"</span>] = indirectEdgeInCycle;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalCallEdge"</span>] = totalCallEdge;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"CallEdgeInCycle"</span>] = callEdgeInCycle;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"InsenCallEdge"</span>] = insensitiveCallEdge;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalRetEdge"</span>] = totalRetEdge;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"RetEdgeInCycle"</span>] = retEdgeInCycle;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"InsenRetEdge"</span>] = insensitiveRetEdge;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span> </div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span> </div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\n****SVFG SCC Stat****\n"</span>;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <a class="code" href="classSVF_1_1PTAStat.html#aca3e99ad83bddabee1dd565522691c78">PTAStat::printStat</a>();</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span> </div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keyword">delete</span> svfgSCC;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span> </div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span> }</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span> </div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFGStat.html#a2e0adcfbe233523212e1ffbf5b01ba88"> 500</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFGStat.html#a2e0adcfbe233523212e1ffbf5b01ba88">SVFGStat::printStat</a>(<span class="keywordtype">string</span> str)</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span> {</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\n****SVFG Statistics****\n"</span>;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <a class="code" href="classSVF_1_1PTAStat.html#aca3e99ad83bddabee1dd565522691c78">PTAStat::printStat</a>(str);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span> }</div><div class="ttc" id="classSVF_1_1MemSSAStat_html_a8b4b9466a676d2391c71d38e8be16bc9"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#a8b4b9466a676d2391c71d38e8be16bc9">SVF::MemSSAStat::performStat</a></div><div class="ttdeci">virtual void performStat() override</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#l00074">SVFGStat.cpp:74</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_ac86d6d7cb0090ab665729b56111ca464"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#ac86d6d7cb0090ab665729b56111ca464">SVF::SVFGStat::numOfCopy</a></div><div class="ttdeci">int numOfCopy</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00186">SVFGStat.h:186</a></div></div>
|
|
71
71
|
<div class="ttc" id="classSVF_1_1MemSSAStat_html_a95695aa32886776804e192b4c4ddcc1d"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#a95695aa32886776804e192b4c4ddcc1d">SVF::MemSSAStat::NumOfMemRegions</a></div><div class="ttdeci">static const char * NumOfMemRegions</div><div class="ttdoc">Number of memory regions. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00060">SVFGStat.h:60</a></div></div>
|
|
72
72
|
<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>
|
|
73
73
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a29807c066e60ef3905a5e01e0b86ffd2"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a29807c066e60ef3905a5e01e0b86ffd2">SVF::SVFGStat::numOfFormalRet</a></div><div class="ttdeci">int numOfFormalRet</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00177">SVFGStat.h:177</a></div></div>
|
|
74
|
+
<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
75
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a37dca8a7d155de4870358146d219b5e5"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a37dca8a7d155de4870358146d219b5e5">SVF::MemSSA::timeOfGeneratingMemRegions</a></div><div class="ttdeci">static double timeOfGeneratingMemRegions</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00101">MemSSA.h:101</a></div></div>
|
|
75
76
|
<div class="ttc" id="classSVF_1_1MemSSAStat_html_a284dbb01e051945a40179b315bdb112f"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#a284dbb01e051945a40179b315bdb112f">SVF::MemSSAStat::NumOfLoadMu</a></div><div class="ttdeci">static const char * NumOfLoadMu</div><div class="ttdoc">Number of load mu. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00065">SVFGStat.h:65</a></div></div>
|
|
76
77
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a89f40e0cb98fdb65a320686b1698d909"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a89f40e0cb98fdb65a320686b1698d909">SVF::SVFGStat::addTopLevelNodeTimeEnd</a></div><div class="ttdeci">double addTopLevelNodeTimeEnd</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00217">SVFGStat.h:217</a></div></div>
|
|
@@ -81,6 +82,7 @@ $(function() {
|
|
|
81
82
|
<div class="ttc" id="classSVF_1_1MemSSAStat_html_a887ff23a7ea1a18f08b1744ff30da773"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#a887ff23a7ea1a18f08b1744ff30da773">SVF::MemSSAStat::TimeOfSSARenaming</a></div><div class="ttdeci">static const char * TimeOfSSARenaming</div><div class="ttdoc">Time for SSA rename. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00056">SVFGStat.h:56</a></div></div>
|
|
82
83
|
<div class="ttc" id="classSVF_1_1MemSSAStat_html_ad96437d0c28f8088c711a718d2f2730e"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#ad96437d0c28f8088c711a718d2f2730e">SVF::MemSSAStat::NumOfEntryChi</a></div><div class="ttdeci">static const char * NumOfEntryChi</div><div class="ttdoc">Number of function entry chi. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00061">SVFGStat.h:61</a></div></div>
|
|
83
84
|
<div class="ttc" id="classSVF_1_1GenericNode_html_afc8b5f86d7795b6a0dfc0687d942d79b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">SVF::GenericNode::getInEdges</a></div><div class="ttdeci">const GEdgeSetTy & getInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00186">GenericGraph.h:186</a></div></div>
|
|
85
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_aca3e99ad83bddabee1dd565522691c78"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aca3e99ad83bddabee1dd565522691c78">SVF::PTAStat::printStat</a></div><div class="ttdeci">virtual void printStat(std::string str="") override</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00273">PTAStat.cpp:273</a></div></div>
|
|
84
86
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
|
|
85
87
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_afeddbe4020e9b3c928856c2dc86af838"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#afeddbe4020e9b3c928856c2dc86af838">SVF::SVFGStat::SVFGEdgeSet</a></div><div class="ttdeci">OrderedSet< const SVFGEdge * > SVFGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00096">SVFGStat.h:96</a></div></div>
|
|
86
88
|
<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>
|
|
@@ -89,7 +91,7 @@ $(function() {
|
|
|
89
91
|
<div class="ttc" id="classSVF_1_1VFGEdge_html_aa8f30d093d4950724a6688707326b57b"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#aa8f30d093d4950724a6688707326b57b">SVF::VFGEdge::isIndirectVFGEdge</a></div><div class="ttdeci">bool isIndirectVFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00080">VFGEdge.h:80</a></div></div>
|
|
90
92
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a8cd6254435994d9aea27b5519491fc6a"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a8cd6254435994d9aea27b5519491fc6a">SVF::SVFGStat::totalIndInEdge</a></div><div class="ttdeci">int totalIndInEdge</div><div class="ttdoc">Total number of indirect SVFG edges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00195">SVFGStat.h:195</a></div></div>
|
|
91
93
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a2a697caecf23413187aef90a8097e0b0"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a2a697caecf23413187aef90a8097e0b0">SVF::SVFGStat::connectIndSVFGEdgeTimeStart</a></div><div class="ttdeci">double connectIndSVFGEdgeTimeStart</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00225">SVFGStat.h:225</a></div></div>
|
|
92
|
-
<div class="ttc" id="classSVF_1_1SVFGStat_html_a570b8466e99ce5f68e02546d1ef21971"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a570b8466e99ce5f68e02546d1ef21971">SVF::SVFGStat::calculateNodeDegrees</a></div><div class="ttdeci">void calculateNodeDegrees(SVFGNode *node, NodeSet &nodeHasIndInEdge, NodeSet &nodeHasIndOutEdge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#
|
|
94
|
+
<div class="ttc" id="classSVF_1_1SVFGStat_html_a570b8466e99ce5f68e02546d1ef21971"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a570b8466e99ce5f68e02546d1ef21971">SVF::SVFGStat::calculateNodeDegrees</a></div><div class="ttdeci">void calculateNodeDegrees(SVFGNode *node, NodeSet &nodeHasIndInEdge, NodeSet &nodeHasIndOutEdge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#l00302">SVFGStat.cpp:302</a></div></div>
|
|
93
95
|
<div class="ttc" id="classSVF_1_1VFGEdge_html_a3937eef974c3953f1d1e7d64c5a24ff3"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">SVF::VFGEdge::isRetVFGEdge</a></div><div class="ttdeci">bool isRetVFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00088">VFGEdge.h:88</a></div></div>
|
|
94
96
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
|
|
95
97
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a0a967faad014cdd53f5dddfdc59edbc3"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a0a967faad014cdd53f5dddfdc59edbc3">SVF::SVFGStat::connectDirSVFGEdgeTimeStart</a></div><div class="ttdeci">double connectDirSVFGEdgeTimeStart</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00222">SVFGStat.h:222</a></div></div>
|
|
@@ -100,10 +102,12 @@ $(function() {
|
|
|
100
102
|
<div class="ttc" id="classSVF_1_1MemSSAStat_html_a48c70f0ed1c7d031a3cd528035162e52"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#a48c70f0ed1c7d031a3cd528035162e52">SVF::MemSSAStat::TimeOfCreateMUCHI</a></div><div class="ttdeci">static const char * TimeOfCreateMUCHI</div><div class="ttdoc">Time for generating mu/chi for load/store/calls. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00054">SVFGStat.h:54</a></div></div>
|
|
101
103
|
<div class="ttc" id="SVFG_8h_html"><div class="ttname"><a href="SVFG_8h.html">SVFG.h</a></div></div>
|
|
102
104
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a149edd19cd5adafec13cbb49c590f0a8"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a149edd19cd5adafec13cbb49c590f0a8">SVF::SVFGStat::SVFGSCC</a></div><div class="ttdeci">SCCDetection< SVFG * > SVFGSCC</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00097">SVFGStat.h:97</a></div></div>
|
|
103
|
-
<div class="ttc" id="classSVF_1_1SVFGStat_html_a87d5e8ec0e13416cff36a18644a5b94f"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a87d5e8ec0e13416cff36a18644a5b94f">SVF::SVFGStat::performSCCStat</a></div><div class="ttdeci">virtual void performSCCStat(SVFGEdgeSet insensitiveCalRetEdges)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#
|
|
105
|
+
<div class="ttc" id="classSVF_1_1SVFGStat_html_a87d5e8ec0e13416cff36a18644a5b94f"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a87d5e8ec0e13416cff36a18644a5b94f">SVF::SVFGStat::performSCCStat</a></div><div class="ttdeci">virtual void performSCCStat(SVFGEdgeSet insensitiveCalRetEdges)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#l00369">SVFGStat.cpp:369</a></div></div>
|
|
106
|
+
<div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div></div>
|
|
104
107
|
<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>
|
|
105
108
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a8f88acad31782bfa962e4349d8f4185d"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a8f88acad31782bfa962e4349d8f4185d">SVF::MemSSA::getCallSiteToChiSetMap</a></div><div class="ttdeci">CallSiteToCHISetMap & getCallSiteToChiSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00432">MemSSA.h:432</a></div></div>
|
|
106
109
|
<div class="ttc" id="classSVF_1_1MemSSAStat_html_a74c36654b7452aa94aa241881f0a83c5"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#a74c36654b7452aa94aa241881f0a83c5">SVF::MemSSAStat::TimeOfGeneratingMemRegions</a></div><div class="ttdeci">static const char * TimeOfGeneratingMemRegions</div><div class="ttdoc">Time for allocating regions. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00053">SVFGStat.h:53</a></div></div>
|
|
110
|
+
<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>
|
|
107
111
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a536b591b21756519262873462001f421"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a536b591b21756519262873462001f421">SVF::SVFGStat::maxInDegree</a></div><div class="ttdeci">u32_t maxInDegree</div><div class="ttdoc">max in degrees of SVFG nodes. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00208">SVFGStat.h:208</a></div></div>
|
|
108
112
|
<div class="ttc" id="classSVF_1_1MRGenerator_html_a1f69924c587c4e68a029fd4e86cffacf"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a1f69924c587c4e68a029fd4e86cffacf">SVF::MRGenerator::getMRSet</a></div><div class="ttdeci">MRSet & getMRSet()</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00176">MemRegion.h:176</a></div></div>
|
|
109
113
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a1e92f02d43f06ef31e107859d1bd8ac2"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a1e92f02d43f06ef31e107859d1bd8ac2">SVF::SVFGStat::svfgOptTimeStart</a></div><div class="ttdeci">double svfgOptTimeStart</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00228">SVFGStat.h:228</a></div></div>
|
|
@@ -114,12 +118,12 @@ $(function() {
|
|
|
114
118
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_ad37e5b2e57e02f8e4319f6d038c51414"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#ad37e5b2e57e02f8e4319f6d038c51414">SVF::SVFGStat::numOfActualRet</a></div><div class="ttdeci">int numOfActualRet</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00182">SVFGStat.h:182</a></div></div>
|
|
115
119
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a0f37f7f530e3fd494c9d6bb477ca68d5"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a0f37f7f530e3fd494c9d6bb477ca68d5">SVF::SVFGStat::totalIndCallEdge</a></div><div class="ttdeci">int totalIndCallEdge</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00199">SVFGStat.h:199</a></div></div>
|
|
116
120
|
<div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
|
|
117
|
-
<div class="ttc" id="classSVF_1_1SVFGStat_html_a2e0adcfbe233523212e1ffbf5b01ba88"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a2e0adcfbe233523212e1ffbf5b01ba88">SVF::SVFGStat::printStat</a></div><div class="ttdeci">virtual void printStat(std::string str="") override</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#
|
|
121
|
+
<div class="ttc" id="classSVF_1_1SVFGStat_html_a2e0adcfbe233523212e1ffbf5b01ba88"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a2e0adcfbe233523212e1ffbf5b01ba88">SVF::SVFGStat::printStat</a></div><div class="ttdeci">virtual void printStat(std::string str="") override</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#l00500">SVFGStat.cpp:500</a></div></div>
|
|
118
122
|
<div class="ttc" id="classSVF_1_1MemSSA_html_ab2dfdcf6fb50ba6cacad1254350a5b09"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ab2dfdcf6fb50ba6cacad1254350a5b09">SVF::MemSSA::getMRGenerator</a></div><div class="ttdeci">MRGenerator * getMRGenerator()</div><div class="ttdoc">Return MRGenerator. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00320">MemSSA.h:320</a></div></div>
|
|
119
123
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_aa35ff9ddfc4f00be698a903adf3285f5"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#aa35ff9ddfc4f00be698a903adf3285f5">SVF::SVFGStat::addAddrTakenNodeTimeStart</a></div><div class="ttdeci">double addAddrTakenNodeTimeStart</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00219">SVFGStat.h:219</a></div></div>
|
|
120
124
|
<div class="ttc" id="classSVF_1_1SCCDetection_html"><div class="ttname"><a href="classSVF_1_1SCCDetection.html">SVF::SCCDetection</a></div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00054">SCC.h:54</a></div></div>
|
|
121
125
|
<div class="ttc" id="classSVF_1_1MemSSAStat_html_a7dd7e6af850b9d724ea580450bfd3afd"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#a7dd7e6af850b9d724ea580450bfd3afd">SVF::MemSSAStat::TotalTimeOfConstructMemSSA</a></div><div class="ttdeci">static const char * TotalTimeOfConstructMemSSA</div><div class="ttdoc">Total time for constructing memory SSA. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00052">SVFGStat.h:52</a></div></div>
|
|
122
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a267ba4aac2e7ceb65f008f9486d3d9f7"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a267ba4aac2e7ceb65f008f9486d3d9f7">SVF::PTAStat::endTime</a></div><div class="ttdeci">double endTime</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
126
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a267ba4aac2e7ceb65f008f9486d3d9f7"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a267ba4aac2e7ceb65f008f9486d3d9f7">SVF::PTAStat::endTime</a></div><div class="ttdeci">double endTime</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00127">PTAStat.h:127</a></div></div>
|
|
123
127
|
<div class="ttc" id="classSVF_1_1MemSSAStat_html_a6e29fa9c935de324441c765e40faa2a5"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#a6e29fa9c935de324441c765e40faa2a5">SVF::MemSSAStat::NumOfAveragePtsInRegion</a></div><div class="ttdeci">static const char * NumOfAveragePtsInRegion</div><div class="ttdoc">Number of average points-to set in region. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00059">SVFGStat.h:59</a></div></div>
|
|
124
128
|
<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>
|
|
125
129
|
<div class="ttc" id="SVFGStat_8h_html"><div class="ttname"><a href="SVFGStat_8h.html">SVFGStat.h</a></div></div>
|
|
@@ -128,16 +132,14 @@ $(function() {
|
|
|
128
132
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a97166aa7102816a16734d7e2f1c130b0"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a97166aa7102816a16734d7e2f1c130b0">SVF::MemSSA::getStoreToChiSetMap</a></div><div class="ttdeci">StoreToChiSetMap & getStoreToChiSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00416">MemSSA.h:416</a></div></div>
|
|
129
133
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a122555f5c4b9746cc2b7f38c7cd6b505"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a122555f5c4b9746cc2b7f38c7cd6b505">SVF::SVFGStat::numOfActualOut</a></div><div class="ttdeci">int numOfActualOut</div><div class="ttdoc">number of actual out svfg nodes. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00180">SVFGStat.h:180</a></div></div>
|
|
130
134
|
<div class="ttc" id="classSVF_1_1MemSSAStat_html_ab1cdbd2ebe54dc5bb752a89d069423b7"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#ab1cdbd2ebe54dc5bb752a89d069423b7">SVF::MemSSAStat::NumOfFunHasRetMu</a></div><div class="ttdeci">static const char * NumOfFunHasRetMu</div><div class="ttdoc">Number of functions which have return mu. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00070">SVFGStat.h:70</a></div></div>
|
|
131
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_afa718535839a939e51afc0f8c1fbdac6"><div class="ttname"><a href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">SVF::PTAStat::generalNumMap</a></div><div class="ttdeci">NUMStatMap generalNumMap</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00147">PTAStat.h:147</a></div></div>
|
|
132
135
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a2f7a49d2b3aae6cdb1cbc0e8ae18d1c2"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a2f7a49d2b3aae6cdb1cbc0e8ae18d1c2">SVF::SVFGStat::addAddrTakenNodeTimeEnd</a></div><div class="ttdeci">double addAddrTakenNodeTimeEnd</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00220">SVFGStat.h:220</a></div></div>
|
|
133
136
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a63bd38fa93d665037932bcda3cc342c6"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a63bd38fa93d665037932bcda3cc342c6">SVF::SVFGStat::totalDirRetEdge</a></div><div class="ttdeci">int totalDirRetEdge</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00202">SVFGStat.h:202</a></div></div>
|
|
134
137
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_ab20900eb0ecb0d2e1e601755848ac531"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#ab20900eb0ecb0d2e1e601755848ac531">SVF::SVFGStat::numOfFormalOut</a></div><div class="ttdeci">int numOfFormalOut</div><div class="ttdoc">number of formal out svfg nodes. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00175">SVFGStat.h:175</a></div></div>
|
|
135
138
|
<div class="ttc" id="classSVF_1_1MemSSA_html"><div class="ttname"><a href="classSVF_1_1MemSSA.html">SVF::MemSSA</a></div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00046">MemSSA.h:46</a></div></div>
|
|
136
139
|
<div class="ttc" id="classSVF_1_1MemSSAStat_html_acf3732557238de882bf7f34c49bd6cee"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#acf3732557238de882bf7f34c49bd6cee">SVF::MemSSAStat::NumOfMaxRegion</a></div><div class="ttdeci">static const char * NumOfMaxRegion</div><div class="ttdoc">Number of max points-to set in region. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00058">SVFGStat.h:58</a></div></div>
|
|
140
|
+
<div class="ttc" id="classSVF_1_1SVFStat_html_a07b6f8cb424b84b468c4518140fa3a41"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">SVF::SVFStat::generalNumMap</a></div><div class="ttdeci">NUMStatMap generalNumMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00073">SVFStat.h:73</a></div></div>
|
|
137
141
|
<div class="ttc" id="classSVF_1_1MemSSAStat_html_a67d9c55f52cb59168e89320c3264a15a"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#a67d9c55f52cb59168e89320c3264a15a">SVF::MemSSAStat::NumOfBBHasMSSAPhi</a></div><div class="ttdeci">static const char * NumOfBBHasMSSAPhi</div><div class="ttdoc">Number of basic blocks which have mssa phi. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00075">SVFGStat.h:75</a></div></div>
|
|
138
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a3724756ac0527ba3d199be32e38c6337"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">SVF::PTAStat::timeStatMap</a></div><div class="ttdeci">TIMEStatMap timeStatMap</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00149">PTAStat.h:149</a></div></div>
|
|
139
142
|
<div class="ttc" id="classSVF_1_1GenericNode_html_a2d9cd758d6f8c5189d9b90b74f43e009"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">SVF::GenericNode::getOutEdges</a></div><div class="ttdeci">const GEdgeSetTy & getOutEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00182">GenericGraph.h:182</a></div></div>
|
|
140
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a5524ff7901659f56e9de343992be8f3b"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a5524ff7901659f56e9de343992be8f3b">SVF::PTAStat::startClk</a></div><div class="ttdeci">virtual void startClk()</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00134">PTAStat.h:134</a></div></div>
|
|
141
143
|
<div class="ttc" id="classSVF_1_1VFGEdge_html_a8777555f00696706de250159b920d14b"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a8777555f00696706de250159b920d14b">SVF::VFGEdge::isDirectVFGEdge</a></div><div class="ttdeci">bool isDirectVFGEdge() const</div><div class="ttdoc">Get methods of the components. </div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00076">VFGEdge.h:76</a></div></div>
|
|
142
144
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a4d2418b7df74f23d8fd328f66e29f198"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a4d2418b7df74f23d8fd328f66e29f198">SVF::MemSSA::timeOfCreateMUCHI</a></div><div class="ttdeci">static double timeOfCreateMUCHI</div><div class="ttdoc">Time for generating mu/chi for load/store/calls. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00102">MemSSA.h:102</a></div></div>
|
|
143
145
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a15272a4ed019d1c323d1826c1bedb70f"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a15272a4ed019d1c323d1826c1bedb70f">SVF::MemSSA::getFunEntryChiNum</a></div><div class="ttdeci">u32_t getFunEntryChiNum() const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00508">MemSSA.cpp:508</a></div></div>
|
|
@@ -151,22 +153,22 @@ $(function() {
|
|
|
151
153
|
<div class="ttc" id="classSVF_1_1MRGenerator_html"><div class="ttname"><a href="classSVF_1_1MRGenerator.html">SVF::MRGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00127">MemRegion.h:127</a></div></div>
|
|
152
154
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a1e9ddd5678b05e145af41a6d53f47748"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a1e9ddd5678b05e145af41a6d53f47748">SVF::SVFGStat::numOfFormalParam</a></div><div class="ttdeci">int numOfFormalParam</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00176">SVFGStat.h:176</a></div></div>
|
|
153
155
|
<div class="ttc" id="classSVF_1_1MemSSAStat_html_a4b598cb1d06c4c0963787036862b1c3d"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#a4b598cb1d06c4c0963787036862b1c3d">SVF::MemSSAStat::NumOfMSSAPhi</a></div><div class="ttdeci">static const char * NumOfMSSAPhi</div><div class="ttdoc">Number of mssa phi. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00067">SVFGStat.h:67</a></div></div>
|
|
154
|
-
<div class="ttc" id="
|
|
155
|
-
<div class="ttc" id="
|
|
156
|
+
<div class="ttc" id="classSVF_1_1SVFGStat_html_a3c016e166b8e84eb3b98bc3717cba5d8"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a3c016e166b8e84eb3b98bc3717cba5d8">SVF::SVFGStat::processGraph</a></div><div class="ttdeci">void processGraph()</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#l00244">SVFGStat.cpp:244</a></div></div>
|
|
157
|
+
<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#l00074">SVFStat.h:74</a></div></div>
|
|
156
158
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a4d15f2de3f226c26cb2af57176444ec9"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a4d15f2de3f226c26cb2af57176444ec9">SVF::SVFGStat::numOfStore</a></div><div class="ttdeci">int numOfStore</div><div class="ttdoc">number of store svfg nodes. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00185">SVFGStat.h:185</a></div></div>
|
|
157
159
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a3210cc1283669129234aa2c3feb67654"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a3210cc1283669129234aa2c3feb67654">SVF::SVFGStat::connectIndSVFGEdgeTimeEnd</a></div><div class="ttdeci">double connectIndSVFGEdgeTimeEnd</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00226">SVFGStat.h:226</a></div></div>
|
|
158
|
-
<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#
|
|
160
|
+
<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>
|
|
159
161
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a2c65795ca63a53c833f5ac17a752b6dc"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a2c65795ca63a53c833f5ac17a752b6dc">SVF::MemSSA::getCallSiteChiNum</a></div><div class="ttdeci">u32_t getCallSiteChiNum() const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00559">MemSSA.cpp:559</a></div></div>
|
|
160
162
|
<div class="ttc" id="SVFBasicTypes_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00182">SVFBasicTypes.h:182</a></div></div>
|
|
161
163
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a4328f75f379e692901b95bacdf8dd413"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a4328f75f379e692901b95bacdf8dd413">SVF::SVFGStat::avgInDegree</a></div><div class="ttdeci">int avgInDegree</div><div class="ttdoc">average in degrees of SVFG nodes. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00206">SVFGStat.h:206</a></div></div>
|
|
162
|
-
<div class="ttc" id="classSVF_1_1SVFGStat_html_a037600bfff11659542f8595d8700dec4"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a037600bfff11659542f8595d8700dec4">SVF::SVFGStat::performStat</a></div><div class="ttdeci">virtual void performStat() override</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#
|
|
163
|
-
<div class="ttc" id="classSVF_1_1SVFGStat_html_a737352ac44d808c55a91e8bd5e9e0aac"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a737352ac44d808c55a91e8bd5e9e0aac">SVF::SVFGStat::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#
|
|
164
|
+
<div class="ttc" id="classSVF_1_1SVFGStat_html_a037600bfff11659542f8595d8700dec4"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a037600bfff11659542f8595d8700dec4">SVF::SVFGStat::performStat</a></div><div class="ttdeci">virtual void performStat() override</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#l00178">SVFGStat.cpp:178</a></div></div>
|
|
165
|
+
<div class="ttc" id="classSVF_1_1SVFGStat_html_a737352ac44d808c55a91e8bd5e9e0aac"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a737352ac44d808c55a91e8bd5e9e0aac">SVF::SVFGStat::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#l00148">SVFGStat.cpp:148</a></div></div>
|
|
164
166
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a9e8c5b85957485635d0f72c2f48bb8b5"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a9e8c5b85957485635d0f72c2f48bb8b5">SVF::MemSSA::getCallSiteMuNum</a></div><div class="ttdeci">u32_t getCallSiteMuNum() const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00542">MemSSA.cpp:542</a></div></div>
|
|
165
167
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a70dd35ef458c452330dfebcdde17b84c"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a70dd35ef458c452330dfebcdde17b84c">SVF::MemSSA::getLoadToMUSetMap</a></div><div class="ttdeci">LoadToMUSetMap & getLoadToMUSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00412">MemSSA.h:412</a></div></div>
|
|
166
168
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a364d684cbefed1793d7c4506fb1fa0fd"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a364d684cbefed1793d7c4506fb1fa0fd">SVF::SVFGStat::avgIndInDegree</a></div><div class="ttdeci">int avgIndInDegree</div><div class="ttdoc">average indirect in degrees of SVFG nodes. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00211">SVFGStat.h:211</a></div></div>
|
|
167
169
|
<div class="ttc" id="classSVF_1_1MemRegion_html_a99f106d47fd67f1ae53e144d72a223c9"><div class="ttname"><a href="classSVF_1_1MemRegion.html#a99f106d47fd67f1ae53e144d72a223c9">SVF::MemRegion::getRegionSize</a></div><div class="ttdeci">u32_t getRegionSize() const</div><div class="ttdoc">Return memory object number inside a region. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00118">MemRegion.h:118</a></div></div>
|
|
168
170
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_abc5e079242666bb55ec7dbc7f258b3db"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#abc5e079242666bb55ec7dbc7f258b3db">SVF::SVFGStat::numOfFormalIn</a></div><div class="ttdeci">int numOfFormalIn</div><div class="ttdoc">number of formal in svfg nodes. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00174">SVFGStat.h:174</a></div></div>
|
|
169
|
-
<div class="ttc" id="classSVF_1_1MemSSAStat_html_a53f3d85a8eb63676d3dc47ee648efb66"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#a53f3d85a8eb63676d3dc47ee648efb66">SVF::MemSSAStat::MemSSAStat</a></div><div class="ttdeci">MemSSAStat(MemSSA *)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#
|
|
171
|
+
<div class="ttc" id="classSVF_1_1MemSSAStat_html_a53f3d85a8eb63676d3dc47ee648efb66"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#a53f3d85a8eb63676d3dc47ee648efb66">SVF::MemSSAStat::MemSSAStat</a></div><div class="ttdeci">MemSSAStat(MemSSA *)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#l00065">SVFGStat.cpp:65</a></div></div>
|
|
170
172
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a966477062a453901da3631015fcf737d"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a966477062a453901da3631015fcf737d">SVF::MemSSA::getBBToPhiSetMap</a></div><div class="ttdeci">BBToPhiSetMap & getBBToPhiSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00436">MemSSA.h:436</a></div></div>
|
|
171
173
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a862cd075a7c9d5019acfabe608ab7905"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a862cd075a7c9d5019acfabe608ab7905">SVF::SVFGStat::numOfGep</a></div><div class="ttdeci">int numOfGep</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00187">SVFGStat.h:187</a></div></div>
|
|
172
174
|
<div class="ttc" id="classSVF_1_1MemSSA_html_aa8c45b455e6fc60cab955534c3e50bfa"><div class="ttname"><a href="classSVF_1_1MemSSA.html#aa8c45b455e6fc60cab955534c3e50bfa">SVF::MemSSA::getStoreChiNum</a></div><div class="ttdeci">u32_t getStoreChiNum() const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00491">MemSSA.cpp:491</a></div></div>
|
|
@@ -181,9 +183,9 @@ $(function() {
|
|
|
181
183
|
<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>
|
|
182
184
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00169">GenericGraph.h:169</a></div></div>
|
|
183
185
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_ac243fababbb9d2f3efbea5411f947c21"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#ac243fababbb9d2f3efbea5411f947c21">SVF::SVFGStat::connectDirSVFGEdgeTimeEnd</a></div><div class="ttdeci">double connectDirSVFGEdgeTimeEnd</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00223">SVFGStat.h:223</a></div></div>
|
|
184
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a59e0fe6fa506f1cf319b5acaf9d28be9"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a59e0fe6fa506f1cf319b5acaf9d28be9">SVF::PTAStat::startTime</a></div><div class="ttdeci">double startTime</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
186
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a59e0fe6fa506f1cf319b5acaf9d28be9"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a59e0fe6fa506f1cf319b5acaf9d28be9">SVF::PTAStat::startTime</a></div><div class="ttdeci">double startTime</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00126">PTAStat.h:126</a></div></div>
|
|
185
187
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_ad72d8706cdc97443556c0d878a393727"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#ad72d8706cdc97443556c0d878a393727">SVF::SVFGStat::addTopLevelNodeTimeStart</a></div><div class="ttdeci">double addTopLevelNodeTimeStart</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00216">SVFGStat.h:216</a></div></div>
|
|
186
|
-
<div class="ttc" id="classSVF_1_1SVFGStat_html_a42b67371df87ba647166000912f53243"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a42b67371df87ba647166000912f53243">SVF::SVFGStat::nodeInCycle</a></div><div class="ttdeci">NodeID nodeInCycle(SVFGSCC *scc, NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#
|
|
188
|
+
<div class="ttc" id="classSVF_1_1SVFGStat_html_a42b67371df87ba647166000912f53243"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a42b67371df87ba647166000912f53243">SVF::SVFGStat::nodeInCycle</a></div><div class="ttdeci">NodeID nodeInCycle(SVFGSCC *scc, NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#l00173">SVFGStat.cpp:173</a></div></div>
|
|
187
189
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a06081aa029b1fe3f9427f85a0261fd43"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a06081aa029b1fe3f9427f85a0261fd43">SVF::MemSSA::getCallSiteToMuSetMap</a></div><div class="ttdeci">CallSiteToMUSetMap & getCallSiteToMuSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00428">MemSSA.h:428</a></div></div>
|
|
188
190
|
<div class="ttc" id="classSVF_1_1MemSSAStat_html_a7b07190a20361e30999cd9107749599d"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#a7b07190a20361e30999cd9107749599d">SVF::MemSSAStat::NumOfCSMu</a></div><div class="ttdeci">static const char * NumOfCSMu</div><div class="ttdoc">Number of call site mu. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00064">SVFGStat.h:64</a></div></div>
|
|
189
191
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a982ce49695344bcde4cbbb445de69c8d"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a982ce49695344bcde4cbbb445de69c8d">SVF::SVFGStat::totalIndOutEdge</a></div><div class="ttdeci">int totalIndOutEdge</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00196">SVFGStat.h:196</a></div></div>
|
|
@@ -192,11 +194,11 @@ $(function() {
|
|
|
192
194
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a5d699af73b1e7ad4e3a5f6d26b8b6d15"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">SVF::SCCDetection::isInCycle</a></div><div class="ttdeci">bool isInCycle(NodeID n) const</div><div class="ttdoc">whether the node is in a cycle </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00149">SCC.h:149</a></div></div>
|
|
193
195
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_ab499c24856a990dd4adb366107eb3302"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#ab499c24856a990dd4adb366107eb3302">SVF::SVFGStat::numOfNodes</a></div><div class="ttdeci">int numOfNodes</div><div class="ttdoc">number of svfg nodes. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00172">SVFGStat.h:172</a></div></div>
|
|
194
196
|
<div class="ttc" id="classSVF_1_1MemRegion_html"><div class="ttname"><a href="classSVF_1_1MemRegion.html">SVF::MemRegion</a></div><div class="ttdoc">Memory Region class. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00051">MemRegion.h:51</a></div></div>
|
|
195
|
-
<div class="ttc" id="classSVF_1_1SVFGStat_html_a947dcd586a9ccf8b60243153769aaf31"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a947dcd586a9ccf8b60243153769aaf31">SVF::SVFGStat::getSCCRep</a></div><div class="ttdeci">NodeID getSCCRep(SVFGSCC *scc, NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#
|
|
197
|
+
<div class="ttc" id="classSVF_1_1SVFGStat_html_a947dcd586a9ccf8b60243153769aaf31"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a947dcd586a9ccf8b60243153769aaf31">SVF::SVFGStat::getSCCRep</a></div><div class="ttdeci">NodeID getSCCRep(SVFGSCC *scc, NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#l00169">SVFGStat.cpp:169</a></div></div>
|
|
196
198
|
<div class="ttc" id="classSVF_1_1MemSSAStat_html_aee2e0df55c40745a9b9aac415aa7a399"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#aee2e0df55c40745a9b9aac415aa7a399">SVF::MemSSAStat::NumOfFunHasEntryChi</a></div><div class="ttdeci">static const char * NumOfFunHasEntryChi</div><div class="ttdoc">Number of functions which have entry chi. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00069">SVFGStat.h:69</a></div></div>
|
|
197
199
|
<div class="ttc" id="classSVF_1_1IndirectSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1IndirectSVFGEdge.html">SVF::IndirectSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00042">SVFGEdge.h:42</a></div></div>
|
|
198
200
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a67175188232e08f5c5374f92ff61810f"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a67175188232e08f5c5374f92ff61810f">SVF::MemSSA::getFunRetMuNum</a></div><div class="ttdeci">u32_t getFunRetMuNum() const</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00525">MemSSA.cpp:525</a></div></div>
|
|
199
|
-
<div class="ttc" id="classSVF_1_1SVFGStat_html_ae61d5bd92ef495a0f6c2f9dedac3da03"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#ae61d5bd92ef495a0f6c2f9dedac3da03">SVF::SVFGStat::SVFGStat</a></div><div class="ttdeci">SVFGStat(SVFG *g)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#
|
|
201
|
+
<div class="ttc" id="classSVF_1_1SVFGStat_html_ae61d5bd92ef495a0f6c2f9dedac3da03"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#ae61d5bd92ef495a0f6c2f9dedac3da03">SVF::SVFGStat::SVFGStat</a></div><div class="ttdeci">SVFGStat(SVFG *g)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#l00136">SVFGStat.cpp:136</a></div></div>
|
|
200
202
|
<div class="ttc" id="classSVF_1_1MemSSAStat_html_a0c24822c8549af6a96e82312954fab9b"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#a0c24822c8549af6a96e82312954fab9b">SVF::MemSSAStat::TimeOfInsertingPHI</a></div><div class="ttdeci">static const char * TimeOfInsertingPHI</div><div class="ttdoc">Time for inserting phis. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00055">SVFGStat.h:55</a></div></div>
|
|
201
203
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a7854ee895f1965ea02f5d04f81589826"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a7854ee895f1965ea02f5d04f81589826">SVF::SVFGStat::avgIndOutDegree</a></div><div class="ttdeci">int avgIndOutDegree</div><div class="ttdoc">average indirect out degrees of SVFG nodes. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00212">SVFGStat.h:212</a></div></div>
|
|
202
204
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a0494c59483520b57acdca95952c93d76"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a0494c59483520b57acdca95952c93d76">SVF::SVFGStat::numOfActualParam</a></div><div class="ttdeci">int numOfActualParam</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00181">SVFGStat.h:181</a></div></div>
|
|
@@ -206,13 +208,12 @@ $(function() {
|
|
|
206
208
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a5365744d2ec3594e2255d274f7256569"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a5365744d2ec3594e2255d274f7256569">SVF::SVFGStat::numOfActualIn</a></div><div class="ttdeci">int numOfActualIn</div><div class="ttdoc">number of actual in svfg nodes. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00179">SVFGStat.h:179</a></div></div>
|
|
207
209
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_ac06625b26e1aa1a0ed171c9f5cea0f35"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#ac06625b26e1aa1a0ed171c9f5cea0f35">SVF::SVFGStat::svfgOptTimeEnd</a></div><div class="ttdeci">double svfgOptTimeEnd</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00229">SVFGStat.h:229</a></div></div>
|
|
208
210
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a5f0c72186ee16f5e88782b5edc9fa5b1"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a5f0c72186ee16f5e88782b5edc9fa5b1">SVF::SVFGStat::avgWeight</a></div><div class="ttdeci">int avgWeight</div><div class="ttdoc">average weight. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00204">SVFGStat.h:204</a></div></div>
|
|
209
|
-
<div class="ttc" id="classSVF_1_1MemSSAStat_html_ad5fbe23c3374e5b3a45ac5fa4900441a"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#ad5fbe23c3374e5b3a45ac5fa4900441a">SVF::MemSSAStat::printStat</a></div><div class="ttdeci">virtual void printStat(std::string str="") override</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#
|
|
211
|
+
<div class="ttc" id="classSVF_1_1MemSSAStat_html_ad5fbe23c3374e5b3a45ac5fa4900441a"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#ad5fbe23c3374e5b3a45ac5fa4900441a">SVF::MemSSAStat::printStat</a></div><div class="ttdeci">virtual void printStat(std::string str="") override</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#l00128">SVFGStat.cpp:128</a></div></div>
|
|
210
212
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a3c7b5fa73fdc7c805ee3673fbe812b44"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a3c7b5fa73fdc7c805ee3673fbe812b44">SVF::MemSSA::timeOfInsertingPHI</a></div><div class="ttdeci">static double timeOfInsertingPHI</div><div class="ttdoc">Time for inserting phis. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00103">MemSSA.h:103</a></div></div>
|
|
211
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_afdb975520329be0c33cc7bdd51ba7031"><div class="ttname"><a href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">SVF::PTAStat::PTNumStatMap</a></div><div class="ttdeci">NUMStatMap PTNumStatMap</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
213
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_afdb975520329be0c33cc7bdd51ba7031"><div class="ttname"><a href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">SVF::PTAStat::PTNumStatMap</a></div><div class="ttdeci">NUMStatMap PTNumStatMap</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00123">PTAStat.h:123</a></div></div>
|
|
212
214
|
<div class="ttc" id="classSVF_1_1MRGenerator_html_a98ac3bf264e6a85d172c2c4264ea908f"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a98ac3bf264e6a85d172c2c4264ea908f">SVF::MRGenerator::MRSet</a></div><div class="ttdeci">OrderedSet< const MemRegion *, MemRegion::equalMemRegion > MRSet</div><div class="ttdoc">Get typedef from Pointer Analysis. </div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00137">MemRegion.h:137</a></div></div>
|
|
213
215
|
<div class="ttc" id="classSVF_1_1MemSSAStat_html_ae57c6e5b97581150b7561c93e0887569"><div class="ttname"><a href="classSVF_1_1MemSSAStat.html#ae57c6e5b97581150b7561c93e0887569">SVF::MemSSAStat::NumOfCSHasChi</a></div><div class="ttdeci">static const char * NumOfCSHasChi</div><div class="ttdoc">Number of call sites which have chi. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00071">SVFGStat.h:71</a></div></div>
|
|
214
216
|
<div class="ttc" id="classSVF_1_1SVFGStat_html_a0e1fcb9154aad266406c4da4861ba020"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a0e1fcb9154aad266406c4da4861ba020">SVF::SVFGStat::numOfPhi</a></div><div class="ttdeci">int numOfPhi</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00191">SVFGStat.h:191</a></div></div>
|
|
215
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_aa5f455bfa79743b8e263431593d29bbf"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">SVF::PTAStat::printStat</a></div><div class="ttdeci">virtual void printStat(string str="")</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00292">PTAStat.cpp:292</a></div></div>
|
|
216
217
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a44cbdb1231c2709c24d19ad2bae2475a"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a44cbdb1231c2709c24d19ad2bae2475a">SVF::MemSSA::getFunToRetMuSetMap</a></div><div class="ttdeci">FunToReturnMuSetMap & getFunToRetMuSetMap()</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00420">MemSSA.h:420</a></div></div>
|
|
217
218
|
<div class="ttc" id="classSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
|
|
218
219
|
</div><!-- fragment --></div><!-- contents -->
|