svf-tools 1.0.378 → 1.0.382
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ConsG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +6 -6
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/LocationSet_8h.html +0 -2
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +28 -21
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +4 -5
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +59 -58
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +8 -8
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +27 -27
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +8 -8
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +23 -23
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +80 -84
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +79 -77
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/annotated.html +192 -193
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AssignStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +54 -54
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +87 -87
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +88 -92
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +61 -60
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +295 -243
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +17 -11
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1StInfo-members.html +24 -23
- package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +99 -64
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +126 -110
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +3 -3
- package/SVF-doxygen/html/html/classes.html +97 -98
- package/SVF-doxygen/html/html/functions_f.html +12 -18
- package/SVF-doxygen/html/html/functions_func_f.html +0 -3
- package/SVF-doxygen/html/html/functions_func_g.html +23 -24
- package/SVF-doxygen/html/html/functions_func_s.html +1 -1
- package/SVF-doxygen/html/html/functions_g.html +24 -25
- package/SVF-doxygen/html/html/functions_l.html +5 -5
- package/SVF-doxygen/html/html/functions_n.html +6 -6
- package/SVF-doxygen/html/html/functions_o.html +3 -3
- package/SVF-doxygen/html/html/functions_p.html +9 -9
- package/SVF-doxygen/html/html/functions_r.html +3 -5
- package/SVF-doxygen/html/html/functions_s.html +4 -4
- package/SVF-doxygen/html/html/functions_t.html +3 -3
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_f.html +3 -6
- package/SVF-doxygen/html/html/functions_w.html +9 -5
- package/SVF-doxygen/html/html/hierarchy.html +332 -333
- package/SVF-doxygen/html/html/namespaceSVF.html +0 -2
- package/SVF-doxygen/html/html/search/all_10.js +6 -6
- package/SVF-doxygen/html/html/search/all_12.js +2 -2
- package/SVF-doxygen/html/html/search/all_13.js +5 -5
- package/SVF-doxygen/html/html/search/all_14.js +3 -3
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_6.js +2 -4
- package/SVF-doxygen/html/html/search/all_7.js +6 -6
- package/SVF-doxygen/html/html/search/all_c.js +4 -4
- package/SVF-doxygen/html/html/search/all_d.js +2 -2
- package/SVF-doxygen/html/html/search/all_e.js +3 -3
- package/SVF-doxygen/html/html/search/all_f.js +1 -1
- package/SVF-doxygen/html/html/search/classes_5.js +0 -1
- package/SVF-doxygen/html/html/search/functions_10.js +2 -2
- package/SVF-doxygen/html/html/search/functions_5.js +0 -1
- package/SVF-doxygen/html/html/search/functions_6.js +6 -6
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_6.js +2 -3
- package/SVF-doxygen/html/html/search/variables_d.js +2 -2
- package/SVF-doxygen/html/html/search/variables_e.js +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +4 -4
- package/include/MemoryModel/LocationSet.h +0 -24
- package/include/MemoryModel/SVFIR.h +1 -1
- package/include/MemoryModel/SVFStatements.h +1 -1
- package/include/MemoryModel/SVFVariables.h +1 -1
- package/include/MemoryModel/SymbolTableInfo.h +17 -10
- package/include/SVF-FE/SVFIRBuilder.h +8 -4
- package/lib/Graphs/IRGraph.cpp +3 -3
- package/lib/MemoryModel/SVFStatements.cpp +7 -5
- package/lib/MemoryModel/SymbolTableInfo.cpp +56 -57
- package/lib/SVF-FE/SVFIRBuilder.cpp +52 -57
- package/lib/SVF-FE/SymbolTableBuilder.cpp +3 -3
- package/package.json +1 -1
|
@@ -68,11 +68,11 @@ $(function() {
|
|
|
68
68
|
<div class="contents">
|
|
69
69
|
<a href="PTAStat_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">//===- PTAStat.cpp -- Base class for statistics in SVF-----------------------//</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"> * PTAStat.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: Oct 13, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Author: Yulei Sui</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 <iomanip></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="PTACallGraph_8h.html">Graphs/PTACallGraph.h</a>"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="PTAStat_8h.html">MemoryModel/PTAStat.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="PointerAnalysisImpl_8h.html">MemoryModel/PointerAnalysisImpl.h</a>"</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="SVFIR_8h.html">MemoryModel/SVFIR.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="Options_8h.html">Util/Options.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a25001a6d794d91056f37d954d9660910">PTAStat:: TotalAnalysisTime</a> = <span class="stringliteral">"TotalTime"</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_1PTAStat.html#ad4c1cf3750341f73987c37745f3bd2aa">PTAStat:: SCCDetectionTime</a> = <span class="stringliteral">"SCCDetectTime"</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_1PTAStat.html#a8c4101e697057269def501d14a987287">PTAStat:: SCCMergeTime</a> = <span class="stringliteral">"SCCMergeTime"</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_1PTAStat.html#aeb6a52c31ecd004670e85f24b01d75d6">PTAStat:: ProcessLoadStoreTime</a> = <span class="stringliteral">"LoadStoreTime"</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_1PTAStat.html#a95a0a7861731072baeaf75354531875f">PTAStat:: ProcessCopyGepTime</a> = <span class="stringliteral">"CopyGepTime"</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_1PTAStat.html#a8aedfeb35f76e6d33135637156468894">PTAStat:: UpdateCallGraphTime</a> = <span class="stringliteral">"UpdateCGTime"</span>; </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a1a4d418fd9e5413e7ffbbfe57f5e0560">PTAStat:: TotalNumOfPointers</a> = <span class="stringliteral">"TotalPointers"</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_1PTAStat.html#acd9848f15aa359550e86c7b857df84ed">PTAStat:: TotalNumOfObjects</a> = <span class="stringliteral">"TotalObjects"</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_1PTAStat.html#ac0e0a1c49d33e02f5cc0f21565ce627d">PTAStat:: TotalNumOfFieldObjects</a> = <span class="stringliteral">"TotalFieldObjects"</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_1PTAStat.html#af6a6e3ea4c7f8e1c984bea8d5fb9a7c0">PTAStat:: MaxStructSize</a> = <span class="stringliteral">"MaxStructSize"</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_1PTAStat.html#a3afc0a36232a0388d8aa42c68219cb26">PTAStat:: TotalNumOfEdges</a> = <span class="stringliteral">"TotalSVFStmts"</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_1PTAStat.html#ae9952b7456b5102113d1fee4d9d7801a">PTAStat:: NumOfFunctionObjs</a> = <span class="stringliteral">"FunctionObjs"</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_1PTAStat.html#a57574c85a5a875a05ef83d3c916cf3e5">PTAStat:: NumOfGlobalObjs</a> = <span class="stringliteral">"GlobalObjs"</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_1PTAStat.html#a4aff48eaa2045ee619a8ea793a9234b8">PTAStat:: NumOfHeapObjs</a> = <span class="stringliteral">"HeapObjs"</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_1PTAStat.html#ae05503909688a17dc1f282d1d029d24e">PTAStat:: NumOfStackObjs</a> = <span class="stringliteral">"StackObjs"</span>; </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#ad1a7e7aec8f272017be7d0b6acda86a4">PTAStat::NumberOfFieldInsensitiveObj</a> = <span class="stringliteral">"FIObjNum"</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_1PTAStat.html#ab62eb21c7dc03f68b0509c31451b2e98">PTAStat::NumberOfFieldSensitiveObj</a> = <span class="stringliteral">"FSObjNum"</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a95edd35cec92fa4cacc8b59b5eecc827">PTAStat:: NumOfObjsHasVarStruct</a> = <span class="stringliteral">"VarStructObj"</span>; </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a78693e8bf93d712eb76c9d6dc0c45ae6">PTAStat:: NumOfObjsHasVarArray</a> = <span class="stringliteral">"VarArrayObj"</span>; </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a918051b1d0eb4f49c349352408cc9751">PTAStat:: NumOfObjsHasConstStruct</a> = <span class="stringliteral">"ConstStructObj"</span>; </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#adb31b163f0cbb9d9ce207ef5d8c075fa">PTAStat:: NumOfObjsHasConstArray</a> = <span class="stringliteral">"ConstArrayObj"</span>; </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a9014371b8ed95ab8135eed2a7fa945f1">PTAStat:: NumOfNonPtrObjs</a> = <span class="stringliteral">"NonPtrObj"</span>; </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#ae74458d96423e4a7391fe8697d5a9a67">PTAStat:: NumOfConstantObjs</a> = <span class="stringliteral">"ConstantObj"</span>; </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#ac5bf59a0a7a760c9fec5f22dedec5eb6">PTAStat:: NumOfAddrs</a> = <span class="stringliteral">"AddrsNum"</span>; </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a4aa7356142f51d942063be5a2910940f">PTAStat:: NumOfLoads</a> = <span class="stringliteral">"LoadsNum"</span>; </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a656ad9980ff05af396ed6754c50916e7">PTAStat:: NumOfStores</a> = <span class="stringliteral">"StoresNum"</span>; </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a97a8b662356fc89cdd2cb9463fa5578b">PTAStat:: NumOfCopys</a> = <span class="stringliteral">"CopysNum"</span>; </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#acc5e4740e11cb6f9794723e5f61ab63b">PTAStat:: NumOfGeps</a> = <span class="stringliteral">"GepsNum"</span>; </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a6cbeca77d0681f7da28979cbd0f661b2">PTAStat:: NumOfCalls</a> = <span class="stringliteral">"CallsNum"</span>; </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a0a552611fcd20e1310290bdae404a514">PTAStat:: NumOfReturns</a> = <span class="stringliteral">"ReturnsNum"</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> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a0de03cdb382b353c6c1495c0f80cfe19">PTAStat:: NumOfProcessedAddrs</a> = <span class="stringliteral">"AddrProcessed"</span>; </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a17531fa1df42df0b19191d61853380d9">PTAStat:: NumOfProcessedLoads</a> = <span class="stringliteral">"LoadProcessed"</span>; </div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a5b9bc0e9dac6ac97199476f6b7ea1edf">PTAStat:: NumOfProcessedStores</a> = <span class="stringliteral">"StoreProcessed"</span>; </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#ad30b36fb1884d1ef0b01c3b36a245211">PTAStat:: NumOfProcessedCopys</a> = <span class="stringliteral">"CopyProcessed"</span>; </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#aaa9d98f868c0724cb57c6934e783d1e5">PTAStat:: NumOfProcessedGeps</a> = <span class="stringliteral">"GepProcessed"</span>; </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> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a07a1db62ddba50bda787b2985ef8d135">PTAStat::NumOfSfr</a> = <span class="stringliteral">"NumOfSFRs"</span>; </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a1745e5c3c026a130a70954da9c0074b1">PTAStat::NumOfFieldExpand</a> = <span class="stringliteral">"NumOfFieldExpand"</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a218748b401bdd3d5eebd45eea0026b12">PTAStat:: NumOfPointers</a> = <span class="stringliteral">"Pointers"</span>; </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a164249b9d35606387e628529c643d119">PTAStat:: NumOfGepFieldPointers</a> = <span class="stringliteral">"DYFieldPtrs"</span>; </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a5c09f41916e40d784a63e301584511f9">PTAStat:: NumOfMemObjects</a> = <span class="stringliteral">"MemObjects"</span>; </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a16f9bdb5387471d0bd825c4a9cbcb22e">PTAStat:: NumOfGepFieldObjects</a> = <span class="stringliteral">"DYFieldObjs"</span>; </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#adb0edbe88a74e5e89921bcfafa4759c6">PTAStat:: AveragePointsToSetSize</a> = <span class="stringliteral">"AvgPtsSetSize"</span>; </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a1649c9f893c5b9ec2d57a399bc050030">PTAStat:: AverageTopLevPointsToSetSize</a> = <span class="stringliteral">"AvgTopLvlPtsSize"</span>; </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#af2b45aab2eee96a1cabba3025e4375a2">PTAStat:: MaxPointsToSetSize</a> = <span class="stringliteral">"MaxPtsSetSize"</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> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#ae95fb0771a71ead27da79a45cac47a36">PTAStat:: NumOfIterations</a> = <span class="stringliteral">"Iterations"</span>; </div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a618707c52da086e04f5e7bff31794cf3">PTAStat:: NumOfIndirectCallSites</a> = <span class="stringliteral">"IndCallSites"</span>; </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#ad51d2bd924f049e440b3d0dd0d423524">PTAStat:: NumOfIndirectEdgeSolved</a> = <span class="stringliteral">"IndEdgeSolved"</span>; </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#ad1731b88c24bb79728f62cd3e9c55699">PTAStat:: NumOfSCCDetection</a> = <span class="stringliteral">"NumOfSCCDetect"</span>; </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#ac518843a4148ecc45027ccc19a690c05">PTAStat:: NumOfCycles</a> = <span class="stringliteral">"TotalCycleNum"</span>; </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#aefcc3638fac7034ab3542be8eb01ab58">PTAStat:: NumOfPWCCycles</a> = <span class="stringliteral">"TotalPWCCycleNum"</span>; </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#aea3e95097b3b9d326bef0d36f17e51a5">PTAStat:: NumOfNodesInCycles</a> = <span class="stringliteral">"NodesInCycles"</span>; </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#ab754f7768ffcd6f232b8cdf0fef6fc4e">PTAStat:: MaxNumOfNodesInSCC</a> = <span class="stringliteral">"MaxNodesInSCC"</span>; </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classSVF_1_1PTAStat.html#a1211e1c7f16b715f32ecdef83f39a8c6">PTAStat:: NumOfNullPointer</a> = <span class="stringliteral">"NullPointer"</span>; </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1PTAStat.html#ac9b65b591200c16c420fbd26710b448f"> 108</a></span> <a class="code" href="classSVF_1_1PTAStat.html#ac9b65b591200c16c420fbd26710b448f">PTAStat::PTAStat</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* p) : startTime(0), endTime(0), pta(p)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((<a class="code" href="classSVF_1_1Options.html#a6a62b34de8ec23899a8024e0450c43df">Options::ClockType</a> == ClockType::Wall || <a class="code" href="classSVF_1_1Options.html#a6a62b34de8ec23899a8024e0450c43df">Options::ClockType</a> == ClockType::CPU)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  && <span class="stringliteral">"PTAStat: unknown clock type!"</span>);</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> </div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc"> 114</a></span> <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">PTAStat::getClk</a>(<span class="keywordtype">bool</span> mark) {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a5cfcf1ddc44ff175c4766f88bf204c03">Options::MarkedClocksOnly</a> && !mark) <span class="keywordflow">return</span> 0.0;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a6a62b34de8ec23899a8024e0450c43df">Options::ClockType</a> == ClockType::Wall)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keyword">struct </span>timespec time;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  clock_gettime(CLOCK_MONOTONIC, &time);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">return</span> (<span class="keywordtype">double</span>)(time.tv_nsec + time.tv_sec * 1000000000) / 1000000.0;</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>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a6a62b34de8ec23899a8024e0450c43df">Options::ClockType</a> == ClockType::CPU)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">return</span> <a class="code" href="SVFBasicTypes_8h.html#af091e361d7961cb895ff2101eceed953">CLOCK_IN_MS</a>();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PTAStat::getClk: unknown clock type"</span>);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</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="l00132"></a><span class="lineno"><a class="line" href="classSVF_1_1PTAStat.html#acfed70588cf921694db35990ec3c7497"> 132</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTAStat.html#acfed70588cf921694db35990ec3c7497">PTAStat::performStat</a>()</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="classSVF_1_1PTAStat.html#a1772bc87370b5625f71edd4476277064">callgraphStat</a>();</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfFunction = 0;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfGlobal = 0;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfStack = 0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHeap = 0;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasVarArray = 0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasVarStruct = 0;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasConstArray = 0;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasConstStruct = 0;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfScalar = 0;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfConstant = 0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fiObjNumber = 0;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fsObjNumber = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<SymID></a> memObjSet;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> it = pag-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = pag-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = it->second;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* obj = SVFUtil::dyn_cast<ObjVar>(node))</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = obj->getMemObj();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordflow">if</span> (memObjSet.insert(mem-><a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>()).second == <span class="keyword">false</span>)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">if</span>(mem-><a class="code" href="classSVF_1_1MemObj.html#a7b890ca9e93b1c61cc6437b7e6a82a8c">isBlackHoleObj</a>())</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">if</span>(mem-><a class="code" href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">isFunction</a>())</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  numOfFunction++;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">if</span>(mem-><a class="code" href="classSVF_1_1MemObj.html#a40462512a99eb258d8cd442c38d812b4">isGlobalObj</a>())</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  numOfGlobal++;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">if</span>(mem-><a class="code" href="classSVF_1_1MemObj.html#af7316c697eafc71d5fc93108da4e2cee">isStack</a>())</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  numOfStack++;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">if</span>(mem-><a class="code" href="classSVF_1_1MemObj.html#a898c5bb3956402578266a6fb142e02b1">isHeap</a>())</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  numOfHeap++;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">if</span>(mem-><a class="code" href="classSVF_1_1MemObj.html#a616e9f4d6f82a253f94391c47668b9a6">isVarArray</a>())</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  numOfHasVarArray++;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">if</span>(mem-><a class="code" href="classSVF_1_1MemObj.html#ad1966c52f95775ac7d65c0ba6632c3cf">isVarStruct</a>())</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  numOfHasVarStruct++;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">if</span>(mem-><a class="code" href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">isConstantArray</a>())</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  numOfHasConstArray++;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">if</span>(mem-><a class="code" href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">isConstantStruct</a>())</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  numOfHasConstStruct++;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">if</span>(mem-><a class="code" href="classSVF_1_1MemObj.html#a6dae1b3429c6049f0153ec006d329082">hasPtrObj</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  numOfScalar++;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">if</span>(mem-><a class="code" href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">isConstDataOrConstGlobal</a>())</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  numOfConstant++;</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>  <span class="keywordflow">if</span> (mem-><a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>())</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  fiObjNumber++;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  fsObjNumber++;</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>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PTAStat.html#a608441b95be0861d8c1b0a035281f4d5">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a108380f6f0b67654bb7c7676686096c8">isLocalVarInRecursiveFun</a>(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</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#a5b4095f427c9c7b9ec0db497ba33baea">localVarInRecursion</a>.set(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</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>  }</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> </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> </div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a1a4d418fd9e5413e7ffbbfe57f5e0560">TotalNumOfPointers</a>] = pag-><a class="code" href="classSVF_1_1IRGraph.html#a0212f3fe2f37363e8060f292c8cf7668">getValueNodeNum</a>() + pag-><a class="code" href="classSVF_1_1SVFIR.html#a8a24e0bf9f95fc1519d4013e0e82dec9">getFieldValNodeNum</a>();</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#acd9848f15aa359550e86c7b857df84ed">TotalNumOfObjects</a>] = pag-><a class="code" href="classSVF_1_1IRGraph.html#a82528aff779ccf8f723f57507dd2d991">getObjectNodeNum</a>();</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ac0e0a1c49d33e02f5cc0f21565ce627d">TotalNumOfFieldObjects</a>] = pag-><a class="code" href="classSVF_1_1SVFIR.html#a3bbaafd80dfcae6ccc82c3d8b9d303ea">getFieldObjNodeNum</a>();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#af6a6e3ea4c7f8e1c984bea8d5fb9a7c0">MaxStructSize</a>] = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-><a class="code" href="classSVF_1_1SymbolTableInfo.html#abc7e567209010286a68634c700d76cca">getMaxStructSize</a>();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a3afc0a36232a0388d8aa42c68219cb26">TotalNumOfEdges</a>] = pag-><a class="code" href="classSVF_1_1IRGraph.html#a821df0fcb66e4f0a5b10c295c24b7c2c">getPAGEdgeNum</a>();</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">"TotalPTASVFStmts"</span>] = pag-><a class="code" href="classSVF_1_1IRGraph.html#a51485004eb28aab6620801205d13ef1b">getPTAPAGEdgeNum</a>();</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ad1a7e7aec8f272017be7d0b6acda86a4">NumberOfFieldInsensitiveObj</a>] = fiObjNumber;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ab62eb21c7dc03f68b0509c31451b2e98">NumberOfFieldSensitiveObj</a>] = fsObjNumber;</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#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ac5bf59a0a7a760c9fec5f22dedec5eb6">NumOfAddrs</a>] = pag-><a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>).size();</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a4aa7356142f51d942063be5a2910940f">NumOfLoads</a>] = pag-><a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>).size();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a656ad9980ff05af396ed6754c50916e7">NumOfStores</a>] = pag-><a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>).size();</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a97a8b662356fc89cdd2cb9463fa5578b">NumOfCopys</a>] = pag-><a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a>).size();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#acc5e4740e11cb6f9794723e5f61ab63b">NumOfGeps</a>] = pag-><a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a>).size();</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a6cbeca77d0681f7da28979cbd0f661b2">NumOfCalls</a>] = pag-><a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a>).size();</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a0a552611fcd20e1310290bdae404a514">NumOfReturns</a>] = pag-><a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a>).size();</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ae9952b7456b5102113d1fee4d9d7801a">NumOfFunctionObjs</a>] = numOfFunction;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a57574c85a5a875a05ef83d3c916cf3e5">NumOfGlobalObjs</a>] = numOfGlobal;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a4aff48eaa2045ee619a8ea793a9234b8">NumOfHeapObjs</a>] = numOfHeap;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ae05503909688a17dc1f282d1d029d24e">NumOfStackObjs</a>] = numOfStack;</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#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a95edd35cec92fa4cacc8b59b5eecc827">NumOfObjsHasVarStruct</a>] = numOfHasVarStruct;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a78693e8bf93d712eb76c9d6dc0c45ae6">NumOfObjsHasVarArray</a>] = numOfHasVarArray;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a918051b1d0eb4f49c349352408cc9751">NumOfObjsHasConstStruct</a>] = numOfHasConstStruct;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#adb31b163f0cbb9d9ce207ef5d8c075fa">NumOfObjsHasConstArray</a>] = numOfHasConstArray;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a9014371b8ed95ab8135eed2a7fa945f1">NumOfNonPtrObjs</a>] = numOfScalar;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a618707c52da086e04f5e7bff31794cf3">NumOfIndirectCallSites</a>] = pag-><a class="code" href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">getIndirectCallsites</a>().size();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">"TotalCallSite"</span>] = pag-><a class="code" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">getCallSiteSet</a>().size();</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">"LocalVarInRecur"</span>] = <a class="code" href="classSVF_1_1PTAStat.html#a5b4095f427c9c7b9ec0db497ba33baea">localVarInRecursion</a>.count();</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classSVF_1_1PTAStat.html#a2d5eedfe3418a3a83c9d254ba28399eb">bitcastInstStat</a>();</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="classSVF_1_1PTAStat.html#ada838d9e03f2be4fb3ceffab3983b564">branchStat</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#aa5f455bfa79743b8e263431593d29bbf">printStat</a>(<span class="stringliteral">"General Stats"</span>);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1PTAStat.html#a1772bc87370b5625f71edd4476277064"> 234</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTAStat.html#a1772bc87370b5625f71edd4476277064">PTAStat::callgraphStat</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> </div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="classSVF_1_1PTACallGraph.html">PTACallGraph</a>* graph = <a class="code" href="classSVF_1_1PTAStat.html#a608441b95be0861d8c1b0a035281f4d5">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>();</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="classSVF_1_1SCCDetection.html">PointerAnalysis::CallGraphSCC</a>* callgraphSCC = <span class="keyword">new</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ac4ad73782f42f90ad7ac9c66edb27c69">PointerAnalysis::CallGraphSCC</a>(graph);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  callgraphSCC-><a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</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>  <span class="keywordtype">unsigned</span> totalNode = 0;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordtype">unsigned</span> totalCycle = 0;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordtype">unsigned</span> nodeInCycle = 0;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordtype">unsigned</span> maxNodeInCycle = 0;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordtype">unsigned</span> totalEdge = 0;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordtype">unsigned</span> edgeInCycle = 0;</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>  <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> sccRepNodeSet;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">PTACallGraph::iterator</a> it = graph-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">PTACallGraph::iterator</a> eit = graph-><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>  totalNode++;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">if</span>(callgraphSCC-><a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(it->first))</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  sccRepNodeSet.insert(callgraphSCC-><a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(it->first));</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  nodeInCycle++;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>& subNodes = callgraphSCC-><a class="code" href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">subNodes</a>(it->first);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordflow">if</span>(subNodes.count() > maxNodeInCycle)</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  maxNodeInCycle = subNodes.count();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html#adf17f5699c9f40ffc8837e813e3af3ec">PTACallGraphNode::const_iterator</a> edgeIt = it->second->InEdgeBegin();</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <a class="code" href="classSVF_1_1PTACallGraphNode.html#adf17f5699c9f40ffc8837e813e3af3ec">PTACallGraphNode::const_iterator</a> edgeEit = it->second->InEdgeEnd();</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="classSVF_1_1PTACallGraphEdge.html">PTACallGraphEdge</a> *edge = *edgeIt;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  totalEdge+= edge-><a class="code" href="classSVF_1_1PTACallGraphEdge.html#af0e9f86be3cf263b868f80d374641fc9">getDirectCalls</a>().size() + edge-><a class="code" href="classSVF_1_1PTACallGraphEdge.html#a76aa19edf03a4cacfa3e27a21abfcd07">getIndirectCalls</a>().size();</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordflow">if</span>(callgraphSCC-><a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(edge-><a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>()) == callgraphSCC-><a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(edge-><a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>()))</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  edgeInCycle+=edge-><a class="code" href="classSVF_1_1PTACallGraphEdge.html#af0e9f86be3cf263b868f80d374641fc9">getDirectCalls</a>().size() + edge-><a class="code" href="classSVF_1_1PTACallGraphEdge.html#a76aa19edf03a4cacfa3e27a21abfcd07">getIndirectCalls</a>().size();</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  }</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  totalCycle = sccRepNodeSet.size();</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalNode"</span>] = totalNode;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalCycle"</span>] = totalCycle;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NodeInCycle"</span>] = nodeInCycle;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxNodeInCycle"</span>] = maxNodeInCycle;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalEdge"</span>] = totalEdge;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"CalRetPairInCycle"</span>] = edgeInCycle;</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_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">PTAStat::printStat</a>(<span class="stringliteral">"CallGraph Stats"</span>);</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>  <span class="keyword">delete</span> callgraphSCC;</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> </div><div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf"> 290</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">PTAStat::printStat</a>(<span class="keywordtype">string</span> statname)</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> {</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>  <a class="code" href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">StringRef</a> fullName(<a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()->getModule()->getModuleIdentifier());</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <a class="code" href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">StringRef</a> name = fullName.split(<span class="charliteral">'/'</span>).second;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <a class="code" href="classSVF_1_1PTAStat.html#a194734855aa1c9e0ba891f1085d50d5d">moduleName</a> = name.split(<span class="charliteral">'.'</span>).first.str();</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>  std::cout << <span class="stringliteral">"\n*********"</span> << statname << <span class="stringliteral">"***************\n"</span>;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  std::cout << <span class="stringliteral">"################ (program : "</span> << <a class="code" href="classSVF_1_1PTAStat.html#a194734855aa1c9e0ba891f1085d50d5d">moduleName</a> << <span class="stringliteral">")###############\n"</span>;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  std::cout.flags(std::ios::left);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordtype">unsigned</span> field_width = 20;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">for</span>(NUMStatMap::iterator it = <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>.begin(), eit = <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>.end(); it!=eit; ++it)</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">// format out put with width 20 space</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  std::cout << std::setw(field_width) << it->first << it->second << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  std::cout << <span class="stringliteral">"-------------------------------------------------------\n"</span>;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">for</span>(TIMEStatMap::iterator it = <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.begin(), eit = <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  {</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="comment">// format out put with width 20 space</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  std::cout << std::setw(field_width) << it->first << it->second << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordflow">for</span>(NUMStatMap::iterator it = <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>.begin(), eit = <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>.end(); it!=eit; ++it)</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="comment">// format out put with width 20 space</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  std::cout << std::setw(field_width) << it->first << it->second << <span class="stringliteral">"\n"</span>;</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> </div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  std::cout << <span class="stringliteral">"#######################################################"</span> << std::endl;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  std::cout.flush();</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>.clear();</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>.clear();</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.clear();</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="classSVF_1_1PTAStat.html#a2d5eedfe3418a3a83c9d254ba28399eb"> 326</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTAStat.html#a2d5eedfe3418a3a83c9d254ba28399eb">PTAStat::bitcastInstStat</a>()</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>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* module = <a class="code" href="classSVF_1_1PTAStat.html#a608441b95be0861d8c1b0a035281f4d5">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#ad8b71cebf46deaf60e2cd4f6d6bb9433">getModule</a>();</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numberOfBitCast = 0;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#ab86e221a93bec67a2ecb7cb53315f569">SVFModule::llvm_const_iterator</a> funIter = module-><a class="code" href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">llvmFunBegin</a>(), funEiter = module-><a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>();</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  funIter != funEiter; ++funIter)</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = *funIter;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">for</span> (Function::const_iterator bbIt = func->begin(), bbEit = func->end();</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  bbIt != bbEit; ++bbIt)</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="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>& bb = *bbIt;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordflow">for</span> (BasicBlock::const_iterator instIt = bb.begin(), instEit = bb.end();</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  instIt != instEit; ++instIt)</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="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>& inst = *instIt;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#afc50da46a6ea7c2cf61683bbec4d7c8d">BitCastInst</a>* bitcast = SVFUtil::dyn_cast<BitCastInst>(&inst))</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="keywordflow">if</span> (SVFUtil::isa<PointerType>(bitcast->getSrcTy()))</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  numberOfBitCast++;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  }</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> </div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">"BitCastNumber"</span>] = numberOfBitCast;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> }</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="classSVF_1_1PTAStat.html#ada838d9e03f2be4fb3ceffab3983b564"> 354</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PTAStat.html#ada838d9e03f2be4fb3ceffab3983b564">PTAStat::branchStat</a>()</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>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* module = <a class="code" href="classSVF_1_1PTAStat.html#a608441b95be0861d8c1b0a035281f4d5">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#ad8b71cebf46deaf60e2cd4f6d6bb9433">getModule</a>();</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfBB_2Succ = 0;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfBB_3Succ = 0;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#ab86e221a93bec67a2ecb7cb53315f569">SVFModule::llvm_const_iterator</a> funIter = module-><a class="code" href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">llvmFunBegin</a>(), funEiter = module-><a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>();</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  funIter != funEiter; ++funIter)</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>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = *funIter;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordflow">for</span> (Function::const_iterator bbIt = func->begin(), bbEit = func->end();</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  bbIt != bbEit; ++bbIt)</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>& bb = *bbIt;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfSucc = bb.getTerminator()->getNumSuccessors();</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">if</span> (numOfSucc == 2)</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  numOfBB_2Succ++;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (numOfSucc > 2)</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  numOfBB_3Succ++;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  }</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  }</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>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">"BBWith2Succ"</span>] = numOfBB_2Succ;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">"BBWith3Succ"</span>] = numOfBB_3Succ;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span> }</div><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#l00361">GenericGraph.h:361</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_1_1PTAStat_html_aea3e95097b3b9d326bef0d36f17e51a5"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aea3e95097b3b9d326bef0d36f17e51a5">SVF::PTAStat::NumOfNodesInCycles</a></div><div class="ttdeci">static const char * NumOfNodesInCycles</div><div class="ttdoc">Number of nodes in cycles detected. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00116">PTAStat.h:116</a></div></div>
|
|
71
|
-
<div class="ttc" id="classSVF_1_1MemObj_html_a7b890ca9e93b1c61cc6437b7e6a82a8c"><div class="ttname"><a href="classSVF_1_1MemObj.html#a7b890ca9e93b1c61cc6437b7e6a82a8c">SVF::MemObj::isBlackHoleObj</a></div><div class="ttdeci">bool isBlackHoleObj() const</div><div class="ttdoc">Whether it is a black hole object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#
|
|
71
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_a7b890ca9e93b1c61cc6437b7e6a82a8c"><div class="ttname"><a href="classSVF_1_1MemObj.html#a7b890ca9e93b1c61cc6437b7e6a82a8c">SVF::MemObj::isBlackHoleObj</a></div><div class="ttdeci">bool isBlackHoleObj() const</div><div class="ttdoc">Whether it is a black hole object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00670">SymbolTableInfo.cpp:670</a></div></div>
|
|
72
72
|
<div class="ttc" id="classSVF_1_1SVFModule_html_af38d0f831967d6d8391a4c84e58d6519"><div class="ttname"><a href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">SVF::SVFModule::llvmFunEnd</a></div><div class="ttdeci">llvm_iterator llvmFunEnd()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00138">SVFModule.h:138</a></div></div>
|
|
73
73
|
<div class="ttc" id="classSVF_1_1PTAStat_html_aeb6a52c31ecd004670e85f24b01d75d6"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aeb6a52c31ecd004670e85f24b01d75d6">SVF::PTAStat::ProcessLoadStoreTime</a></div><div class="ttdeci">static const char * ProcessLoadStoreTime</div><div class="ttdoc">time of processing loads and stores </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00056">PTAStat.h:56</a></div></div>
|
|
74
74
|
<div class="ttc" id="classSVF_1_1PTAStat_html_acc5e4740e11cb6f9794723e5f61ab63b"><div class="ttname"><a href="classSVF_1_1PTAStat.html#acc5e4740e11cb6f9794723e5f61ab63b">SVF::PTAStat::NumOfGeps</a></div><div class="ttdeci">static const char * NumOfGeps</div><div class="ttdoc">SVFIR gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00070">PTAStat.h:70</a></div></div>
|
|
75
|
-
<div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#
|
|
75
|
+
<div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00413">SymbolTableInfo.h:413</a></div></div>
|
|
76
76
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVF::SVFStmt::Call</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
77
77
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a6ab5eff6a576e6d8703c1ea29b7f425d"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">SVF::SCCDetection::subNodes</a></div><div class="ttdeci">const NodeBS & subNodes(NodeID n) const</div><div class="ttdoc">get all subnodes in one scc, if size is empty insert itself into the set </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00173">SCC.h:173</a></div></div>
|
|
78
78
|
<div class="ttc" id="classSVF_1_1PTAStat_html_a16f9bdb5387471d0bd825c4a9cbcb22e"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a16f9bdb5387471d0bd825c4a9cbcb22e">SVF::PTAStat::NumOfGepFieldObjects</a></div><div class="ttdeci">static const char * NumOfGepFieldObjects</div><div class="ttdoc">SVFIR gep object node (field obj, dynamically created dummy node) </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00102">PTAStat.h:102</a></div></div>
|
|
@@ -85,18 +85,18 @@ $(function() {
|
|
|
85
85
|
<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>
|
|
86
86
|
<div class="ttc" id="PTACallGraph_8h_html"><div class="ttname"><a href="PTACallGraph_8h.html">PTACallGraph.h</a></div></div>
|
|
87
87
|
<div class="ttc" id="classSVF_1_1PTAStat_html_af6a6e3ea4c7f8e1c984bea8d5fb9a7c0"><div class="ttname"><a href="classSVF_1_1PTAStat.html#af6a6e3ea4c7f8e1c984bea8d5fb9a7c0">SVF::PTAStat::MaxStructSize</a></div><div class="ttdeci">static const char * MaxStructSize</div><div class="ttdoc">Max struct size. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00063">PTAStat.h:63</a></div></div>
|
|
88
|
-
<div class="ttc" id="classSVF_1_1MemObj_html_ae1d14e2bf0be36cdadebf119822f607b"><div class="ttname"><a href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">SVF::MemObj::isFunction</a></div><div class="ttdeci">bool isFunction() const</div><div class="ttdoc">object attributes methods </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#
|
|
88
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_ae1d14e2bf0be36cdadebf119822f607b"><div class="ttname"><a href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">SVF::MemObj::isFunction</a></div><div class="ttdeci">bool isFunction() const</div><div class="ttdoc">object attributes methods </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00718">SymbolTableInfo.cpp:718</a></div></div>
|
|
89
89
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
90
90
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVF::SVFStmt::Addr</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
91
|
-
<div class="ttc" id="classSVF_1_1MemObj_html_a40462512a99eb258d8cd442c38d812b4"><div class="ttname"><a href="classSVF_1_1MemObj.html#a40462512a99eb258d8cd442c38d812b4">SVF::MemObj::isGlobalObj</a></div><div class="ttdeci">bool isGlobalObj() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#
|
|
92
|
-
<div class="ttc" id="classSVF_1_1MemObj_html_af7316c697eafc71d5fc93108da4e2cee"><div class="ttname"><a href="classSVF_1_1MemObj.html#af7316c697eafc71d5fc93108da4e2cee">SVF::MemObj::isStack</a></div><div class="ttdeci">bool isStack() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#
|
|
91
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_a40462512a99eb258d8cd442c38d812b4"><div class="ttname"><a href="classSVF_1_1MemObj.html#a40462512a99eb258d8cd442c38d812b4">SVF::MemObj::isGlobalObj</a></div><div class="ttdeci">bool isGlobalObj() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00723">SymbolTableInfo.cpp:723</a></div></div>
|
|
92
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_af7316c697eafc71d5fc93108da4e2cee"><div class="ttname"><a href="classSVF_1_1MemObj.html#af7316c697eafc71d5fc93108da4e2cee">SVF::MemObj::isStack</a></div><div class="ttdeci">bool isStack() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00733">SymbolTableInfo.cpp:733</a></div></div>
|
|
93
93
|
<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>
|
|
94
|
-
<div class="ttc" id="classSVF_1_1MemObj_html_a6dae1b3429c6049f0153ec006d329082"><div class="ttname"><a href="classSVF_1_1MemObj.html#a6dae1b3429c6049f0153ec006d329082">SVF::MemObj::hasPtrObj</a></div><div class="ttdeci">bool hasPtrObj() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#
|
|
94
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_a6dae1b3429c6049f0153ec006d329082"><div class="ttname"><a href="classSVF_1_1MemObj.html#a6dae1b3429c6049f0153ec006d329082">SVF::MemObj::hasPtrObj</a></div><div class="ttdeci">bool hasPtrObj() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00783">SymbolTableInfo.cpp:783</a></div></div>
|
|
95
95
|
<div class="ttc" id="classSVF_1_1PTAStat_html_a5c09f41916e40d784a63e301584511f9"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a5c09f41916e40d784a63e301584511f9">SVF::PTAStat::NumOfMemObjects</a></div><div class="ttdeci">static const char * NumOfMemObjects</div><div class="ttdoc">SVFIR object node, each of them maps to a llvm value. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00101">PTAStat.h:101</a></div></div>
|
|
96
96
|
<div class="ttc" id="classSVF_1_1PTAStat_html_a78693e8bf93d712eb76c9d6dc0c45ae6"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a78693e8bf93d712eb76c9d6dc0c45ae6">SVF::PTAStat::NumOfObjsHasVarArray</a></div><div class="ttdeci">static const char * NumOfObjsHasVarArray</div><div class="ttdoc">SVFIR object node has var array (maybe nested with struct) </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00089">PTAStat.h:89</a></div></div>
|
|
97
97
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a123b5006a6da7053e5e357140da3c5a3"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">SVF::SCCDetection::find</a></div><div class="ttdeci">void find(void)</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00308">SCC.h:308</a></div></div>
|
|
98
98
|
<div class="ttc" id="classSVF_1_1PTAStat_html_ac0e0a1c49d33e02f5cc0f21565ce627d"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ac0e0a1c49d33e02f5cc0f21565ce627d">SVF::PTAStat::TotalNumOfFieldObjects</a></div><div class="ttdeci">static const char * TotalNumOfFieldObjects</div><div class="ttdoc">Total SVFIR field object node. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00062">PTAStat.h:62</a></div></div>
|
|
99
|
-
<div class="ttc" id="classSVF_1_1MemObj_html_a7f828731597450f1d43b61413ab0e7bb"><div class="ttname"><a href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">SVF::MemObj::isConstantArray</a></div><div class="ttdeci">bool isConstantArray() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#
|
|
99
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_a7f828731597450f1d43b61413ab0e7bb"><div class="ttname"><a href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">SVF::MemObj::isConstantArray</a></div><div class="ttdeci">bool isConstantArray() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00768">SymbolTableInfo.cpp:768</a></div></div>
|
|
100
100
|
<div class="ttc" id="classSVF_1_1PTAStat_html_a6cbeca77d0681f7da28979cbd0f661b2"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a6cbeca77d0681f7da28979cbd0f661b2">SVF::PTAStat::NumOfCalls</a></div><div class="ttdeci">static const char * NumOfCalls</div><div class="ttdoc">SVFIR call edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00071">PTAStat.h:71</a></div></div>
|
|
101
101
|
<div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00046">SVFVariables.h:46</a></div></div>
|
|
102
102
|
<div class="ttc" id="classSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00314">SVFVariables.h:314</a></div></div>
|
|
@@ -104,7 +104,7 @@ $(function() {
|
|
|
104
104
|
<div class="ttc" id="classSVF_1_1PTAStat_html_ac518843a4148ecc45027ccc19a690c05"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ac518843a4148ecc45027ccc19a690c05">SVF::PTAStat::NumOfCycles</a></div><div class="ttdeci">static const char * NumOfCycles</div><div class="ttdoc">Number of scc cycles detected. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00114">PTAStat.h:114</a></div></div>
|
|
105
105
|
<div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
|
|
106
106
|
<div class="ttc" id="SVFIR_8h_html"><div class="ttname"><a href="SVFIR_8h.html">SVFIR.h</a></div></div>
|
|
107
|
-
<div class="ttc" id="classSVF_1_1MemObj_html_a019a77516c403f1f3cc72917b810a41f"><div class="ttname"><a href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">SVF::MemObj::isConstantStruct</a></div><div class="ttdeci">bool isConstantStruct() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#
|
|
107
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_a019a77516c403f1f3cc72917b810a41f"><div class="ttname"><a href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">SVF::MemObj::isConstantStruct</a></div><div class="ttdeci">bool isConstantStruct() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00763">SymbolTableInfo.cpp:763</a></div></div>
|
|
108
108
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_abc7e567209010286a68634c700d76cca"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#abc7e567209010286a68634c700d76cca">SVF::SymbolTableInfo::getMaxStructSize</a></div><div class="ttdeci">u32_t getMaxStructSize() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00309">SymbolTableInfo.h:309</a></div></div>
|
|
109
109
|
<div class="ttc" id="classSVF_1_1PTAStat_html_a2d5eedfe3418a3a83c9d254ba28399eb"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a2d5eedfe3418a3a83c9d254ba28399eb">SVF::PTAStat::bitcastInstStat</a></div><div class="ttdeci">void bitcastInstStat()</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00326">PTAStat.cpp:326</a></div></div>
|
|
110
110
|
<div class="ttc" id="classSVF_1_1IRGraph_html_a82528aff779ccf8f723f57507dd2d991"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a82528aff779ccf8f723f57507dd2d991">SVF::IRGraph::getObjectNodeNum</a></div><div class="ttdeci">u32_t getObjectNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00173">IRGraph.h:173</a></div></div>
|
|
@@ -145,7 +145,7 @@ $(function() {
|
|
|
145
145
|
<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>
|
|
146
146
|
<div class="ttc" id="classSVF_1_1PTAStat_html_a656ad9980ff05af396ed6754c50916e7"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a656ad9980ff05af396ed6754c50916e7">SVF::PTAStat::NumOfStores</a></div><div class="ttdeci">static const char * NumOfStores</div><div class="ttdoc">SVFIR store edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00068">PTAStat.h:68</a></div></div>
|
|
147
147
|
<div class="ttc" id="classSVF_1_1PTACallGraphEdge_html"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html">SVF::PTACallGraphEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00051">PTACallGraph.h:51</a></div></div>
|
|
148
|
-
<div class="ttc" id="classSVF_1_1MemObj_html_a616e9f4d6f82a253f94391c47668b9a6"><div class="ttname"><a href="classSVF_1_1MemObj.html#a616e9f4d6f82a253f94391c47668b9a6">SVF::MemObj::isVarArray</a></div><div class="ttdeci">bool isVarArray() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#
|
|
148
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_a616e9f4d6f82a253f94391c47668b9a6"><div class="ttname"><a href="classSVF_1_1MemObj.html#a616e9f4d6f82a253f94391c47668b9a6">SVF::MemObj::isVarArray</a></div><div class="ttdeci">bool isVarArray() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00758">SymbolTableInfo.cpp:758</a></div></div>
|
|
149
149
|
<div class="ttc" id="classSVF_1_1PTAStat_html_adb31b163f0cbb9d9ce207ef5d8c075fa"><div class="ttname"><a href="classSVF_1_1PTAStat.html#adb31b163f0cbb9d9ce207ef5d8c075fa">SVF::PTAStat::NumOfObjsHasConstArray</a></div><div class="ttdeci">static const char * NumOfObjsHasConstArray</div><div class="ttdoc">SVFIR object node has const array (maybe nested with struct) </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00091">PTAStat.h:91</a></div></div>
|
|
150
150
|
<div class="ttc" id="classSVF_1_1PTACallGraphNode_html_adf17f5699c9f40ffc8837e813e3af3ec"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html#adf17f5699c9f40ffc8837e813e3af3ec">SVF::PTACallGraphNode::const_iterator</a></div><div class="ttdeci">PTACallGraphEdge::CallGraphEdgeSet::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00180">PTACallGraph.h:180</a></div></div>
|
|
151
151
|
<div class="ttc" id="classSVF_1_1PTAStat_html_a3afc0a36232a0388d8aa42c68219cb26"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a3afc0a36232a0388d8aa42c68219cb26">SVF::PTAStat::TotalNumOfEdges</a></div><div class="ttdeci">static const char * TotalNumOfEdges</div><div class="ttdoc">Total SVFIR edge number. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00064">PTAStat.h:64</a></div></div>
|
|
@@ -154,21 +154,21 @@ $(function() {
|
|
|
154
154
|
<div class="ttc" id="classSVF_1_1PTAStat_html_ab62eb21c7dc03f68b0509c31451b2e98"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ab62eb21c7dc03f68b0509c31451b2e98">SVF::PTAStat::NumberOfFieldSensitiveObj</a></div><div class="ttdeci">static const char * NumberOfFieldSensitiveObj</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00096">PTAStat.h:96</a></div></div>
|
|
155
155
|
<div class="ttc" id="classSVF_1_1PTAStat_html_a4aff48eaa2045ee619a8ea793a9234b8"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a4aff48eaa2045ee619a8ea793a9234b8">SVF::PTAStat::NumOfHeapObjs</a></div><div class="ttdeci">static const char * NumOfHeapObjs</div><div class="ttdoc">SVFIR heap object node. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00085">PTAStat.h:85</a></div></div>
|
|
156
156
|
<div class="ttc" id="classSVF_1_1PTAStat_html_a164249b9d35606387e628529c643d119"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a164249b9d35606387e628529c643d119">SVF::PTAStat::NumOfGepFieldPointers</a></div><div class="ttdeci">static const char * NumOfGepFieldPointers</div><div class="ttdoc">SVFIR gep value node (field value, dynamically created dummy node) </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00099">PTAStat.h:99</a></div></div>
|
|
157
|
-
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#
|
|
157
|
+
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00107">SymbolTableInfo.cpp:107</a></div></div>
|
|
158
158
|
<div class="ttc" id="classSVF_1_1PTAStat_html_aefcc3638fac7034ab3542be8eb01ab58"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aefcc3638fac7034ab3542be8eb01ab58">SVF::PTAStat::NumOfPWCCycles</a></div><div class="ttdeci">static const char * NumOfPWCCycles</div><div class="ttdoc">Number of scc cycles detected. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00115">PTAStat.h:115</a></div></div>
|
|
159
159
|
<div class="ttc" id="namespaceSVF_html_a88fd7387fcf16caf70abe265cdcf90b9"><div class="ttname"><a href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">SVF::StringRef</a></div><div class="ttdeci">llvm::StringRef StringRef</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00102">BasicTypes.h:102</a></div></div>
|
|
160
160
|
<div class="ttc" id="PointerAnalysisImpl_8h_html"><div class="ttname"><a href="PointerAnalysisImpl_8h.html">PointerAnalysisImpl.h</a></div></div>
|
|
161
161
|
<div class="ttc" id="classSVF_1_1PTAStat_html_acfed70588cf921694db35990ec3c7497"><div class="ttname"><a href="classSVF_1_1PTAStat.html#acfed70588cf921694db35990ec3c7497">SVF::PTAStat::performStat</a></div><div class="ttdeci">virtual void performStat()</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00132">PTAStat.cpp:132</a></div></div>
|
|
162
162
|
<div class="ttc" id="classSVF_1_1IRGraph_html_a821df0fcb66e4f0a5b10c295c24b7c2c"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a821df0fcb66e4f0a5b10c295c24b7c2c">SVF::IRGraph::getPAGEdgeNum</a></div><div class="ttdeci">u32_t getPAGEdgeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00190">IRGraph.h:190</a></div></div>
|
|
163
|
-
<div class="ttc" id="classSVF_1_1MemObj_html_ad1966c52f95775ac7d65c0ba6632c3cf"><div class="ttname"><a href="classSVF_1_1MemObj.html#ad1966c52f95775ac7d65c0ba6632c3cf">SVF::MemObj::isVarStruct</a></div><div class="ttdeci">bool isVarStruct() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#
|
|
163
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_ad1966c52f95775ac7d65c0ba6632c3cf"><div class="ttname"><a href="classSVF_1_1MemObj.html#ad1966c52f95775ac7d65c0ba6632c3cf">SVF::MemObj::isVarStruct</a></div><div class="ttdeci">bool isVarStruct() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00753">SymbolTableInfo.cpp:753</a></div></div>
|
|
164
164
|
<div class="ttc" id="namespaceSVF_html_afc50da46a6ea7c2cf61683bbec4d7c8d"><div class="ttname"><a href="namespaceSVF.html#afc50da46a6ea7c2cf61683bbec4d7c8d">SVF::BitCastInst</a></div><div class="ttdeci">llvm::BitCastInst BitCastInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00156">BasicTypes.h:156</a></div></div>
|
|
165
165
|
<div class="ttc" id="Options_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
166
166
|
<div class="ttc" id="classSVF_1_1PTAStat_html_ada838d9e03f2be4fb3ceffab3983b564"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ada838d9e03f2be4fb3ceffab3983b564">SVF::PTAStat::branchStat</a></div><div class="ttdeci">void branchStat()</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00354">PTAStat.cpp:354</a></div></div>
|
|
167
167
|
<div class="ttc" id="classSVF_1_1PTAStat_html_ab754f7768ffcd6f232b8cdf0fef6fc4e"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ab754f7768ffcd6f232b8cdf0fef6fc4e">SVF::PTAStat::MaxNumOfNodesInSCC</a></div><div class="ttdeci">static const char * MaxNumOfNodesInSCC</div><div class="ttdoc">max Number of nodes in one scc </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00117">PTAStat.h:117</a></div></div>
|
|
168
168
|
<div class="ttc" id="classSVF_1_1PTAStat_html_ad30b36fb1884d1ef0b01c3b36a245211"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ad30b36fb1884d1ef0b01c3b36a245211">SVF::PTAStat::NumOfProcessedCopys</a></div><div class="ttdeci">static const char * NumOfProcessedCopys</div><div class="ttdoc">SVFIR processed copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00077">PTAStat.h:77</a></div></div>
|
|
169
|
-
<div class="ttc" id="classSVF_1_1MemObj_html_a898c5bb3956402578266a6fb142e02b1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a898c5bb3956402578266a6fb142e02b1">SVF::MemObj::isHeap</a></div><div class="ttdeci">bool isHeap() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#
|
|
169
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_a898c5bb3956402578266a6fb142e02b1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a898c5bb3956402578266a6fb142e02b1">SVF::MemObj::isHeap</a></div><div class="ttdeci">bool isHeap() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00738">SymbolTableInfo.cpp:738</a></div></div>
|
|
170
170
|
<div class="ttc" id="classSVF_1_1Options_html_a6a62b34de8ec23899a8024e0450c43df"><div class="ttname"><a href="classSVF_1_1Options.html#a6a62b34de8ec23899a8024e0450c43df">SVF::Options::ClockType</a></div><div class="ttdeci">static const llvm::cl::opt< enum PTAStat::ClockType > ClockType</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00023">Options.h:23</a></div></div>
|
|
171
|
-
<div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#
|
|
171
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00707">SymbolTableInfo.cpp:707</a></div></div>
|
|
172
172
|
<div class="ttc" id="classSVF_1_1PTAStat_html_aaa9d98f868c0724cb57c6934e783d1e5"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aaa9d98f868c0724cb57c6934e783d1e5">SVF::PTAStat::NumOfProcessedGeps</a></div><div class="ttdeci">static const char * NumOfProcessedGeps</div><div class="ttdoc">SVFIR processed gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00078">PTAStat.h:78</a></div></div>
|
|
173
173
|
<div class="ttc" id="util_8h_html_a23c00958edf66c39625a0d535dee57b7"><div class="ttname"><a href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a></div><div class="ttdeci">VOID_OR_INT abort()</div></div>
|
|
174
174
|
<div class="ttc" id="classSVF_1_1PTAStat_html_a8aedfeb35f76e6d33135637156468894"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a8aedfeb35f76e6d33135637156468894">SVF::PTAStat::UpdateCallGraphTime</a></div><div class="ttdeci">static const char * UpdateCallGraphTime</div><div class="ttdoc">time of updating call graph </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00058">PTAStat.h:58</a></div></div>
|
|
@@ -176,7 +176,7 @@ $(function() {
|
|
|
176
176
|
<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="ContextDDA_8h_source.html#l00016">ContextDDA.h:16</a></div></div>
|
|
177
177
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a108380f6f0b67654bb7c7676686096c8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a108380f6f0b67654bb7c7676686096c8">SVF::PointerAnalysis::isLocalVarInRecursiveFun</a></div><div class="ttdeci">bool isLocalVarInRecursiveFun(NodeID id) const</div><div class="ttdoc">Whether a local variable is in function recursions. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00156">PointerAnalysis.cpp:156</a></div></div>
|
|
178
178
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVF::SVFStmt::Store</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
179
|
-
<div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#
|
|
179
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00443">SymbolTableInfo.h:443</a></div></div>
|
|
180
180
|
<div class="ttc" id="classSVF_1_1PTAStat_html_a1772bc87370b5625f71edd4476277064"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a1772bc87370b5625f71edd4476277064">SVF::PTAStat::callgraphStat</a></div><div class="ttdeci">virtual void callgraphStat()</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00234">PTAStat.cpp:234</a></div></div>
|
|
181
181
|
<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#l00165">GenericGraph.h:165</a></div></div>
|
|
182
182
|
<div class="ttc" id="classSVF_1_1PTAStat_html_a1a4d418fd9e5413e7ffbbfe57f5e0560"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a1a4d418fd9e5413e7ffbbfe57f5e0560">SVF::PTAStat::TotalNumOfPointers</a></div><div class="ttdeci">static const char * TotalNumOfPointers</div><div class="ttdoc">Total SVFIR value node. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00060">PTAStat.h:60</a></div></div>
|
|
@@ -205,7 +205,7 @@ $(function() {
|
|
|
205
205
|
<div class="ttc" id="classSVF_1_1SVFIR_html_ae2006820c0d00482b85e7ae3adcb5744"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">SVF::SVFIR::getSVFStmtSet</a></div><div class="ttdeci">SVFStmt::SVFStmtSetTy & getSVFStmtSet(SVFStmt::PEDGEK kind)</div><div class="ttdoc">Get/set methods to get SVFStmts based on their kinds and ICFGNodes. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00162">SVFIR.h:162</a></div></div>
|
|
206
206
|
<div class="ttc" id="classSVF_1_1PTAStat_html_a5b4095f427c9c7b9ec0db497ba33baea"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a5b4095f427c9c7b9ec0db497ba33baea">SVF::PTAStat::localVarInRecursion</a></div><div class="ttdeci">NodeBS localVarInRecursion</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00150">PTAStat.h:150</a></div></div>
|
|
207
207
|
<div class="ttc" id="classSVF_1_1PTAStat_html_ad4c1cf3750341f73987c37745f3bd2aa"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ad4c1cf3750341f73987c37745f3bd2aa">SVF::PTAStat::SCCDetectionTime</a></div><div class="ttdeci">static const char * SCCDetectionTime</div><div class="ttdoc">Total SCC detection time. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00053">PTAStat.h:53</a></div></div>
|
|
208
|
-
<div class="ttc" id="classSVF_1_1MemObj_html_a1a4ff4aaaf2573240a318e1b79328cd0"><div class="ttname"><a href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">SVF::MemObj::isConstDataOrConstGlobal</a></div><div class="ttdeci">bool isConstDataOrConstGlobal() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#
|
|
208
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_a1a4ff4aaaf2573240a318e1b79328cd0"><div class="ttname"><a href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">SVF::MemObj::isConstDataOrConstGlobal</a></div><div class="ttdeci">bool isConstDataOrConstGlobal() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00773">SymbolTableInfo.cpp:773</a></div></div>
|
|
209
209
|
<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#l00290">PTAStat.cpp:290</a></div></div>
|
|
210
210
|
<div class="ttc" id="classSVF_1_1PTAStat_html_ac5bf59a0a7a760c9fec5f22dedec5eb6"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ac5bf59a0a7a760c9fec5f22dedec5eb6">SVF::PTAStat::NumOfAddrs</a></div><div class="ttdeci">static const char * NumOfAddrs</div><div class="ttdoc">SVFIR addr edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00066">PTAStat.h:66</a></div></div>
|
|
211
211
|
<div class="ttc" id="classSVF_1_1PTAStat_html_a8c4101e697057269def501d14a987287"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a8c4101e697057269def501d14a987287">SVF::PTAStat::SCCMergeTime</a></div><div class="ttdeci">static const char * SCCMergeTime</div><div class="ttdoc">Total SCC merge time. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00054">PTAStat.h:54</a></div></div>
|
|
@@ -73,7 +73,7 @@ $(function() {
|
|
|
73
73
|
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ae94cea78b71fb75837ee2a17b5ed0e81"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">SVF::BVDataPTAImpl::getPTDataTy</a></div><div class="ttdeci">PTDataTy * getPTDataTy() const</div><div class="ttdoc">Get points-to data structure. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00162">PointerAnalysisImpl.h:162</a></div></div>
|
|
74
74
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a56368369bc37e37b13f19e5eb1890063"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a56368369bc37e37b13f19e5eb1890063">SVF::PointerAnalysis::containBlackHoleNode</a></div><div class="ttdeci">bool containBlackHoleNode(const PointsTo &pts)</div><div class="ttdoc">Determine whether a points-to contains a black hole or constant node. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00305">PointerAnalysis.h:305</a></div></div>
|
|
75
75
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a60b111647e000cc983aa52513f90afbc"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a60b111647e000cc983aa52513f90afbc">SVF::PointerAnalysis::getAllValidPtrs</a></div><div class="ttdeci">OrderedNodeSet & getAllValidPtrs()</div><div class="ttdoc">Get all Valid Pointers for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00222">PointerAnalysis.h:222</a></div></div>
|
|
76
|
-
<div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#
|
|
76
|
+
<div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00413">SymbolTableInfo.h:413</a></div></div>
|
|
77
77
|
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a57ff2bf45ede7a730a8adaba8e61179d"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a57ff2bf45ede7a730a8adaba8e61179d">SVF::BVDataPTAImpl::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalization of pointer analysis, and normalize points-to information to Bit Vector representation...</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00072">PointerAnalysisImpl.cpp:72</a></div></div>
|
|
78
78
|
<div class="ttc" id="namespaceSVF_1_1cppUtil_html_aca6465c72effcaddeb34f55da4555754"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#aca6465c72effcaddeb34f55da4555754">SVF::cppUtil::isVirtualCallSite</a></div><div class="ttdeci">bool isVirtualCallSite(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00257">CPPUtil.cpp:257</a></div></div>
|
|
79
79
|
<div class="ttc" id="IRAnnotator_8h_html"><div class="ttname"><a href="IRAnnotator_8h.html">IRAnnotator.h</a></div></div>
|
|
@@ -153,7 +153,7 @@ $(function() {
|
|
|
153
153
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a202de7ad2bea0311e2f75894c030e7a9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVF::SVFUtil::getLLVMCallSite</a></div><div class="ttdeci">CallSite getLLVMCallSite(const Instruction *inst)</div><div class="ttdoc">Return LLVM callsite given a instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00219">SVFUtil.h:219</a></div></div>
|
|
154
154
|
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee07488c4d53551826439d79b28e2e6d"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee07488c4d53551826439d79b28e2e6d">SVF::BVDataPTAImpl::ptD</a></div><div class="ttdeci">PTDataTy * ptD</div><div class="ttdoc">Points-to data. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00215">PointerAnalysisImpl.h:215</a></div></div>
|
|
155
155
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a77e3c407ea3990413e371589aa468963"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a77e3c407ea3990413e371589aa468963">SVF::SVFIR::getGepObjNodeMap</a></div><div class="ttdeci">NodeLocationSetMap & getGepObjNodeMap()</div><div class="ttdoc">Return GepObjVarMap. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00127">SVFIR.h:127</a></div></div>
|
|
156
|
-
<div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#
|
|
156
|
+
<div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00707">SymbolTableInfo.cpp:707</a></div></div>
|
|
157
157
|
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a94acf249e50ad56f966ddad6843c18f8"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a94acf249e50ad56f966ddad6843c18f8">SVF::BVDataPTAImpl::ptCache</a></div><div class="ttdeci">PersistentPointsToCache< PointsTo > ptCache</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00217">PointerAnalysisImpl.h:217</a></div></div>
|
|
158
158
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85ac581e279a4bd69c059b0e5987f839a1f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ac581e279a4bd69c059b0e5987f839a1f">SVF::PointerAnalysis::AndersenWaveDiffWithType_WPA</a></div><div class="ttdoc">Diff wave propagation with type info andersen-style WPA. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00073">PointerAnalysis.h:73</a></div></div>
|
|
159
159
|
<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="ContextDDA_8h_source.html#l00016">ContextDDA.h:16</a></div></div>
|
|
@@ -162,7 +162,7 @@ $(function() {
|
|
|
162
162
|
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ab0e1242aadfe1e16a2bd1445658a5476"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ab0e1242aadfe1e16a2bd1445658a5476">SVF::BVDataPTAImpl::BVDataPTAImpl</a></div><div class="ttdeci">BVDataPTAImpl(SVFIR *pag, PointerAnalysis::PTATY type, bool alias_check=true)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00025">PointerAnalysisImpl.cpp:25</a></div></div>
|
|
163
163
|
<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#l00165">GenericGraph.h:165</a></div></div>
|
|
164
164
|
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a798c84d5e861de2b61bcb1a86385f721"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">SVF::BVDataPTAImpl::expandFIObjs</a></div><div class="ttdeci">virtual void expandFIObjs(const PointsTo &pts, PointsTo &expandedPts)</div><div class="ttdoc">Expand FI objects. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00082">PointerAnalysisImpl.cpp:82</a></div></div>
|
|
165
|
-
<div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#
|
|
165
|
+
<div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00048">LocationSet.h:48</a></div></div>
|
|
166
166
|
<div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
|
|
167
167
|
<div class="ttc" id="namespaceSVF_html_a3c2bd95727ec0d9c55c631b6617026c8"><div class="ttname"><a href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">SVF::OrderedNodeSet</a></div><div class="ttdeci">OrderedSet< NodeID > OrderedNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00113">SVFBasicTypes.h:113</a></div></div>
|
|
168
168
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5d3c3094e263bf16a4f312a118c1bd36"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5d3c3094e263bf16a4f312a118c1bd36">SVF::PointerAnalysis::ptaImplTy</a></div><div class="ttdeci">PTAImplTy ptaImplTy</div><div class="ttdoc">PTA implementation type. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00153">PointerAnalysis.h:153</a></div></div>
|