svf-tools 1.0.362 → 1.0.366
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/AndersenStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +34 -32
- package/SVF-doxygen/html/html/ConsG_8h_source.html +20 -20
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +13 -15
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +14 -14
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +12 -6
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +90 -84
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +43 -39
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +41 -39
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +21 -20
- package/SVF-doxygen/html/html/SVFStatements_8h.html +2 -0
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +78 -62
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +12 -12
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +5 -5
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +42 -40
- package/SVF-doxygen/html/html/VFG_8h_source.html +26 -26
- package/SVF-doxygen/html/html/annotated.html +58 -57
- package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +14 -13
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +4 -3
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AssignStmt-members.html +14 -13
- package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +4 -3
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +30 -28
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +26 -22
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +16 -15
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +41 -40
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +14 -13
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +30 -28
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +27 -23
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +79 -77
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt-members.html +14 -13
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +4 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +20 -21
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +15 -14
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +4 -5
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt-members.html +14 -13
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +33 -31
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +66 -24
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +9 -10
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +21 -16
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +186 -73
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +38 -40
- package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +14 -13
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +177 -176
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +160 -90
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +36 -34
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +340 -223
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt-members.html +17 -16
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +9 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt-members.html +154 -0
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +704 -0
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +17 -16
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +39 -39
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +17 -16
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +15 -14
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +17 -16
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +15 -14
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +17 -16
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +29 -28
- package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +61 -59
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/html/classes.html +70 -70
- package/SVF-doxygen/html/html/functions_a.html +12 -8
- package/SVF-doxygen/html/html/functions_b.html +4 -2
- package/SVF-doxygen/html/html/functions_c.html +31 -29
- package/SVF-doxygen/html/html/functions_eval_s.html +3 -0
- package/SVF-doxygen/html/html/functions_func.html +12 -8
- package/SVF-doxygen/html/html/functions_func_c.html +18 -17
- package/SVF-doxygen/html/html/functions_func_g.html +19 -6
- package/SVF-doxygen/html/html/functions_func_o.html +2 -1
- package/SVF-doxygen/html/html/functions_func_s.html +8 -5
- package/SVF-doxygen/html/html/functions_func_t.html +1 -0
- package/SVF-doxygen/html/html/functions_func_u.html +1 -0
- package/SVF-doxygen/html/html/functions_g.html +22 -9
- package/SVF-doxygen/html/html/functions_i.html +3 -3
- package/SVF-doxygen/html/html/functions_l.html +3 -3
- package/SVF-doxygen/html/html/functions_m.html +1 -1
- package/SVF-doxygen/html/html/functions_o.html +20 -13
- package/SVF-doxygen/html/html/functions_p.html +6 -6
- package/SVF-doxygen/html/html/functions_s.html +23 -17
- package/SVF-doxygen/html/html/functions_t.html +5 -4
- package/SVF-doxygen/html/html/functions_type_o.html +3 -0
- package/SVF-doxygen/html/html/functions_u.html +1 -0
- package/SVF-doxygen/html/html/functions_vars_c.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_o.html +3 -0
- package/SVF-doxygen/html/html/hierarchy.html +55 -54
- package/SVF-doxygen/html/html/namespaceSVF.html +3 -1
- package/SVF-doxygen/html/html/search/all_1.js +4 -3
- package/SVF-doxygen/html/html/search/all_10.js +7 -7
- package/SVF-doxygen/html/html/search/all_12.js +1 -1
- package/SVF-doxygen/html/html/search/all_13.js +8 -6
- package/SVF-doxygen/html/html/search/all_14.js +4 -4
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_2.js +1 -1
- package/SVF-doxygen/html/html/search/all_3.js +3 -3
- package/SVF-doxygen/html/html/search/all_7.js +5 -1
- package/SVF-doxygen/html/html/search/all_9.js +1 -1
- package/SVF-doxygen/html/html/search/all_c.js +2 -2
- package/SVF-doxygen/html/html/search/all_d.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +1 -1
- package/SVF-doxygen/html/html/search/all_f.js +3 -1
- package/SVF-doxygen/html/html/search/classes_f.js +1 -0
- package/SVF-doxygen/html/html/search/enumvalues_f.js +1 -0
- package/SVF-doxygen/html/html/search/functions_0.js +4 -3
- package/SVF-doxygen/html/html/search/functions_10.js +1 -0
- package/SVF-doxygen/html/html/search/functions_11.js +1 -1
- package/SVF-doxygen/html/html/search/functions_12.js +1 -1
- package/SVF-doxygen/html/html/search/functions_2.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +5 -1
- package/SVF-doxygen/html/html/search/functions_d.js +1 -1
- package/SVF-doxygen/html/html/search/functions_e.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_e.js +1 -0
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_3.js +1 -0
- package/SVF-doxygen/html/html/search/variables_e.js +1 -1
- package/SVF-doxygen/html/html/search/variables_f.js +1 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +16 -16
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +16 -16
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +18 -18
- package/include/Graphs/VFG.h +1 -1
- package/include/MemoryModel/SVFIR.h +3 -1
- package/include/MemoryModel/SVFStatements.h +76 -4
- package/include/SVF-FE/SVFIRBuilder.h +12 -2
- package/lib/Graphs/ConsG.cpp +9 -0
- package/lib/Graphs/ICFG.cpp +12 -17
- package/lib/Graphs/VFG.cpp +9 -0
- package/lib/MemoryModel/PAGBuilderFromFile.cpp +3 -1
- package/lib/MemoryModel/PointerAnalysis.cpp +0 -3
- package/lib/MemoryModel/SVFIR.cpp +24 -3
- package/lib/MemoryModel/SVFStatements.cpp +14 -0
- package/lib/SVF-FE/SVFIRBuilder.cpp +55 -13
- package/lib/SVF-FE/SymbolTableBuilder.cpp +1 -0
- package/package.json +1 -1
|
@@ -66,180 +66,195 @@ $(function() {
|
|
|
66
66
|
<div class="title">SVFStatements.h</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="SVFStatements_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===- SVFStatements.h -- SVF statements-------------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">/*</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> * SVFStatements.h</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> *</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Created on: Nov 10, 2013</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> */</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef PAGEDGE_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#define PAGEDGE_H_</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="GenericGraph_8h.html">Graphs/GenericGraph.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="LocationSet_8h.html">MemoryModel/LocationSet.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="ICFGNode_8h.html">Graphs/ICFGNode.h</a>"</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971"> 41</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">/*</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> * SVFIR program statements (PAGEdges)</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> */</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericEdge.html">GenericEdge<SVFVar></a> <a class="code" href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971">GenericPAGEdgeTy</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html"> 47</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> : <span class="keyword">public</span> GenericPAGEdgeTy</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9"> 54</a></span>  <span class="keyword">enum</span> <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">PEDGEK</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688"> 56</a></span>  <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">Addr</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">Copy</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">Store</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">Load</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">Call</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">Ret</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">Gep</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">UnaryOp</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">Branch</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">ThreadFork</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">ThreadJoin</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  };</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17"> 60</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">value</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36"> 61</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *<a class="code" href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36">basicBlock</a>; </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a50046a1500ec6e2819ef55162e70cc71"> 62</a></span>  <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *<a class="code" href="classSVF_1_1SVFStmt.html#a50046a1500ec6e2819ef55162e70cc71">icfgNode</a>; </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060"> 63</a></span>  <a class="code" href="namespaceSVF.html#ae71551d6a1fc300e0403297aa25ddf94">EdgeID</a> <a class="code" href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060">edgeId</a>; </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#af1a9c2a18805560e46425bd98a35dea9"> 65</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#af1a9c2a18805560e46425bd98a35dea9">totalEdgeNum</a>; </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a47102f72115d41bff899b1b2ffec75b1">SVFStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k);</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#aac79c7e8d390f297002782afb0ba3ff0"> 70</a></span>  <a class="code" href="classSVF_1_1SVFStmt.html#aac79c7e8d390f297002782afb0ba3ff0">~SVFStmt</a>()</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ac517a3166a3afe45d04480534ac3bb50"> 76</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFStmt.html#ac517a3166a3afe45d04480534ac3bb50">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>*)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  }</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a00339663741d9f581d2f3ecae5a3e7e3"> 80</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFStmt.html#a00339663741d9f581d2f3ecae5a3e7e3">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</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="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a> ||</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a> ||</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a> ||</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a> ||</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a> ||</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a> ||</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a> ||</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a> ||</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a> ||</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVFStmt::UnaryOp</a> ||</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a> ||</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#af7bb0d687fc61cae1de639c88e472491"> 98</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ae71551d6a1fc300e0403297aa25ddf94">EdgeID</a> <a class="code" href="classSVF_1_1SVFStmt.html#af7bb0d687fc61cae1de639c88e472491">getEdgeID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060">edgeId</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">isPTAEdge</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a86628ea173dec4934322f5d1caf2e1db"> 107</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a86628ea173dec4934322f5d1caf2e1db">getInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>>(<a class="code" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">value</a>);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a24dddb4e346a6e569908e3efe8a6ecc0"> 111</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFStmt.html#a24dddb4e346a6e569908e3efe8a6ecc0">setValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val)</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>  value = val;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882"> 115</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">getValue</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">value</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a852730edf374d18a3fb3985211ed7623"> 119</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFStmt.html#a852730edf374d18a3fb3985211ed7623">setBB</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  basicBlock = bb;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a793c53e0b4f9a58099c096f0a0856495"> 123</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a793c53e0b4f9a58099c096f0a0856495">getBB</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36">basicBlock</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"><a class="line" href="classSVF_1_1SVFStmt.html#adb92a92f5c878576dff26cb38eab8c8c"> 127</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFStmt.html#adb92a92f5c878576dff26cb38eab8c8c">setICFGNode</a>(<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *node)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  icfgNode = node;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  }</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#aa809a57c8cdaaa35dfc3cc0f3b33b52b"> 131</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* <a class="code" href="classSVF_1_1SVFStmt.html#aa809a57c8cdaaa35dfc3cc0f3b33b52b">getICFGNode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a50046a1500ec6e2819ef55162e70cc71">icfgNode</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b"> 138</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> <a class="code" href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b">makeEdgeFlagWithAddionalOpnd</a>(<a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* var)</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  Var2LabelMap::const_iterator iter = <a class="code" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">var2LabelMap</a>.find(var);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> label = (iter != <a class="code" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">var2LabelMap</a>.end()) ?</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  iter->second : <a class="code" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed">multiOpndLabelCounter</a>++;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  return (label << <a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>) | k;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00"> 147</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> <a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">makeEdgeFlagWithCallInst</a>(<a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* cs)</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  Inst2LabelMap::const_iterator iter = <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.find(cs);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> label = (iter != <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.end()) ?</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  iter->second : <a class="code" href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4">callEdgeLabelCounter</a>++;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  return (label << <a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>) | k;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18"> 157</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> <a class="code" href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18">makeEdgeFlagWithStoreInst</a>(<a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* store)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  Inst2LabelMap::const_iterator iter = <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.find(store);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> label = (iter != <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.end()) ?</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  iter->second : <a class="code" href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27">storeEdgeLabelCounter</a>++;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  return (label << <a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>) | k;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ad75e4c84f7d37824eb096aacca930ead"> 170</a></span>  <span class="keyword">friend</span> <a class="code" href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">raw_ostream</a>& <a class="code" href="classSVF_1_1SVFStmt.html#ad75e4c84f7d37824eb096aacca930ead">operator<< </a>(<a class="code" href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">raw_ostream</a> &o, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> &edge)</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  o << edge.<a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>();</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">return</span> o;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4"> 177</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericNode.html#a03c6da4a73c47f84f5c5b47252bc339a">GenericNode<SVFVar,SVFStmt>::GEdgeSetTy</a> <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmtSetTy</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa"> 178</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<EdgeID, SVFStmtSetTy></a> <a class="code" href="classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa">PAGEdgeToSetMapTy</a>;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66"> 179</a></span>  <span class="keyword">typedef</span> PAGEdgeToSetMapTy <a class="code" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66">KindToSVFStmtMapTy</a>;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2"> 180</a></span>  <span class="keyword">typedef</span> SVFStmtSetTy <a class="code" href="classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2">PAGEdgeSetTy</a>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a5a3db6b1335b4adc55b961a6f480f228"> 183</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const ICFGNode*, u32_t></a> <a class="code" href="classSVF_1_1SVFStmt.html#a5a3db6b1335b4adc55b961a6f480f228">Inst2LabelMap</a>;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb"> 184</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFVar*, u32_t></a> <a class="code" href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb">Var2LabelMap</a>;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c"> 185</a></span>  <span class="keyword">static</span> Inst2LabelMap <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>; </div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007"> 186</a></span>  <span class="keyword">static</span> Var2LabelMap <a class="code" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">var2LabelMap</a>; </div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4"> 187</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4">callEdgeLabelCounter</a>; </div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27"> 188</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27">storeEdgeLabelCounter</a>; </div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed"> 189</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed">multiOpndLabelCounter</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> <span class="comment">/*</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="comment"> Parent class of Addr, Copy, Store, Load, Call, Ret, NormalGep, VariantGep, ThreadFork, ThreadJoin</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment"> connecting RHS expression and LHS expression with an assignment (e.g., LHSExpr = RHSExpr)</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment"> Only one operand on the right handside of an assignment</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment">*/</span></div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html"> 197</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>{</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(); </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> &); </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> &); </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620"> 210</a></span>  <a class="code" href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620">AssignStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k) : <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(s,d,k)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7"> 217</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> *)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  }</div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#ad5e2d41b8cd548628b59227368388ed0"> 221</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AssignStmt.html#ad5e2d41b8cd548628b59227368388ed0">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a> ||</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a> ||</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a> ||</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a> ||</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a> ||</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a> ||</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a> ||</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a> ||</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  }</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a8b2837153dcf9f7e2adc3b30b2dd0245"> 233</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AssignStmt.html#a8b2837153dcf9f7e2adc3b30b2dd0245">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a> ||</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a> ||</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a> ||</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a> ||</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a> ||</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a> ||</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a> ||</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a> ||</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28"> 247</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVFStmt::getSrcNode</a>();</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  } </div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a973a2b79da223275ed6a1831837b89c7"> 250</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1AssignStmt.html#a973a2b79da223275ed6a1831837b89c7">getLHSVar</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVFStmt::getDstNode</a>();</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  } </div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d"> 253</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVFStmt::getSrcID</a>();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  } </div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840"> 256</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVFStmt::getDstID</a>();</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  } </div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span> = 0;</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="l00266"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html"> 266</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> {</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>(); </div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> &); </div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> &); </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> <span class="keyword">public</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"><a class="line" href="classSVF_1_1AddrStmt.html#a32e129c9f7aa16be8c5c8569989f691f"> 276</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AddrStmt.html#a32e129c9f7aa16be8c5c8569989f691f">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *)</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>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#aeec83dc4e79ee62c92c75aa778a475ad"> 280</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AddrStmt.html#aeec83dc4e79ee62c92c75aa778a475ad">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  }</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#a6876ffc2c97c5ba64155891b55a7884c"> 284</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AddrStmt.html#a6876ffc2c97c5ba64155891b55a7884c">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#a42caa75acb42ce8e290c1278622f139c"> 291</a></span>  <a class="code" href="classSVF_1_1AddrStmt.html#a42caa75acb42ce8e290c1278622f139c">AddrStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">Addr</a>)</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</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> </div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html"> 302</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>(); </div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> &); </div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> &); </div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div><div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a253c81c922bef6e2d520262c2f7793c4"> 311</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CopyStmt.html#a253c81c922bef6e2d520262c2f7793c4">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> *)</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  }</div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a5e883bb0bc30cf8b7d325b66f7a42848"> 315</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CopyStmt.html#a5e883bb0bc30cf8b7d325b66f7a42848">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a>;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div><div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a12e960569a9f4beae99195a0fe2d3b68"> 319</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CopyStmt.html#a12e960569a9f4beae99195a0fe2d3b68">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a>;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a69b179ef052408034786d32a52c52389"> 326</a></span>  <a class="code" href="classSVF_1_1CopyStmt.html#a69b179ef052408034786d32a52c52389">CopyStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">Copy</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>  }</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> };</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div><div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html"> 336</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>(); </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> &); </div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> &); </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html#ae3c219e8af92e222f55c930009db6e67"> 346</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreStmt.html#ae3c219e8af92e222f55c930009db6e67">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *)</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>  <span class="keywordflow">return</span> <span class="keyword">true</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"><a class="line" href="classSVF_1_1StoreStmt.html#a31f69e402887eff60e2055799ed561b9"> 350</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreStmt.html#a31f69e402887eff60e2055799ed561b9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  {</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>;</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_1StoreStmt.html#ab71bf959fce0e702556dd753636298b2"> 354</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreStmt.html#ab71bf959fce0e702556dd753636298b2">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html#a39ee0d8cc951aff0d6418a3d743fb3ae"> 361</a></span>  <a class="code" href="classSVF_1_1StoreStmt.html#a39ee0d8cc951aff0d6418a3d743fb3ae">StoreStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a>* st) :</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s, d, <a class="code" href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18">makeEdgeFlagWithStoreInst</a>(<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">Store</a>, st))</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  {</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  }</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">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> };</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span> </div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div><div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html"> 373</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>(); </div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> &); </div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> &); </div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div><div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#a03d6f1ee2f52b34d905b204eb53d6560"> 383</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadStmt.html#a03d6f1ee2f52b34d905b204eb53d6560">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *)</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  }</div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#ac252b1e9b7c01108d1aff602fbe1ef40"> 387</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadStmt.html#ac252b1e9b7c01108d1aff602fbe1ef40">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  }</div><div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#ab30f370a8a2a3e63765c1e4843f07826"> 391</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadStmt.html#ab30f370a8a2a3e63765c1e4843f07826">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  {</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#a92c5817abfaa1f6fbc9ee911f458dfb2"> 398</a></span>  <a class="code" href="classSVF_1_1LoadStmt.html#a92c5817abfaa1f6fbc9ee911f458dfb2">LoadStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">Load</a>)</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  }</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> };</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> </div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html"> 409</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>(); </div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> &); </div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> &); </div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div><div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a543a3f4801b22719f7b9677246bf2ac7"> 416</a></span>  <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1GepStmt.html#a543a3f4801b22719f7b9677246bf2ac7">ls</a>; </div><div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#af8eefbd002ec36f36612b8e9ccdbc757"> 417</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#af8eefbd002ec36f36612b8e9ccdbc757">variantField</a>; </div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a441cd8487b320ceff9d62884b4f28176"> 421</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#a441cd8487b320ceff9d62884b4f28176">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *)</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  }</div><div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a92016e7d6061e4a157c9cd39ad94cc20"> 425</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#a92016e7d6061e4a157c9cd39ad94cc20">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a>;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  }</div><div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#ac47064e21e2afdf7bd85c6acba44367f"> 429</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#ac47064e21e2afdf7bd85c6acba44367f">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a>;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span> </div><div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8"> 435</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& <a class="code" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">getLocationSet</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(isVariantFieldGep()==<span class="keyword">false</span> && <span class="stringliteral">"Can't retrieve the LocationSet if using a variable field index (pointer arithmetic) for struct field access "</span>);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">return</span> ls;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  }</div><div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a37811e62495493454405cb33e4a2b904"> 440</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html#a9bb7e08f7cfb2859d25b0e68e21fec89">LocationSet::OffsetValueVec</a>& <a class="code" href="classSVF_1_1GepStmt.html#a37811e62495493454405cb33e4a2b904">getOffsetValueVec</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">return</span> getLocationSet().getOffsetValueVec();</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  }</div><div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4"> 445</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">isConstantOffset</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keywordflow">return</span> getLocationSet().isConstantOffset();</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  }</div><div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a33b3b9ef0cf7e2ea6400aef74a399adf"> 449</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#abe09d99af006554a5c00803e9a89f9a6">s64_t</a> <a class="code" href="classSVF_1_1GepStmt.html#a33b3b9ef0cf7e2ea6400aef74a399adf">accumulateConstantOffset</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keywordflow">return</span> getLocationSet().accumulateConstantOffset();</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  }</div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#adf6912f8ddae4f765b685a4f9d3be602"> 454</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#abe09d99af006554a5c00803e9a89f9a6">s64_t</a> <a class="code" href="classSVF_1_1GepStmt.html#adf6912f8ddae4f765b685a4f9d3be602">getConstantFieldIdx</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordflow">return</span> getLocationSet().accumulateConstantFieldIdx();</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  }</div><div class="line"><a name="l00459"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788"> 459</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788">isVariantFieldGep</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="keywordflow">return</span> variantField;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  } </div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div><div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#ae4509ee7b57121da3c67de00e8bdf0b3"> 465</a></span>  <a class="code" href="classSVF_1_1GepStmt.html#ae4509ee7b57121da3c67de00e8bdf0b3">GepStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& l, <span class="keywordtype">bool</span> varfld=<span class="keyword">false</span>) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">Gep</a>), ls(l), variantField(varfld)</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  }</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> </div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span> };</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div><div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html"> 477</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CallPE.html">CallPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> {</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(); </div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> &); </div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> &); </div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div><div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a60e8280eb3e77e67e3dfa4dcee943edf"> 484</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1CallPE.html#a60e8280eb3e77e67e3dfa4dcee943edf">inst</a>; </div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div><div class="line"><a name="l00488"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a6df0149f79122c5a7d517f75d0235e73"> 488</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallPE.html#a6df0149f79122c5a7d517f75d0235e73">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *)</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  {</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  }</div><div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a188c51f3e378c451d34e90c96cca0cf5"> 492</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallPE.html#a188c51f3e378c451d34e90c96cca0cf5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a></div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  || edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  }</div><div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a0d89c20d1d3ccee5f3e45a32085117aa"> 497</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallPE.html#a0d89c20d1d3ccee5f3e45a32085117aa">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  {</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a></div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  || edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  }</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span> </div><div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#af84a1badb8734b54bf01b2b5b89af091"> 505</a></span>  <a class="code" href="classSVF_1_1CallPE.html#af84a1badb8734b54bf01b2b5b89af091">CallPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* i, <a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k = <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a>) :</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">makeEdgeFlagWithCallInst</a>(k,i)), inst(i)</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  {</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  }</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span> </div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span> </div><div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#aa50cca8bd91ffb135a7998b58ad7966f"> 512</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1CallPE.html#aa50cca8bd91ffb135a7998b58ad7966f">getCallInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  }</div><div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#ab548c22dfbfeeaeb8ffe83417b396c09"> 516</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1CallPE.html#ab548c22dfbfeeaeb8ffe83417b396c09">getCallSite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  }</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span> </div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span> };</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span> </div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span> </div><div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html"> 529</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1RetPE.html">RetPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span> {</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(); </div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> &); </div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> &); </div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span> </div><div class="line"><a name="l00536"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a028363b55fa19897a93f1c78ec905723"> 536</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1RetPE.html#a028363b55fa19897a93f1c78ec905723">inst</a>; </div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span> </div><div class="line"><a name="l00540"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a43c6965616d67e77087b486265139d21"> 540</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPE.html#a43c6965616d67e77087b486265139d21">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *)</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  {</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  }</div><div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a9cd78a723ed55ed6f334a329576a7471"> 544</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPE.html#a9cd78a723ed55ed6f334a329576a7471">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  {</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a></div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  || edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  }</div><div class="line"><a name="l00549"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a2f0121f26e79fe3766cba93b42dc1119"> 549</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPE.html#a2f0121f26e79fe3766cba93b42dc1119">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  {</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a></div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  || edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  }</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span> </div><div class="line"><a name="l00557"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#afed855f9ee0dfddc4808672ae32263b2"> 557</a></span>  <a class="code" href="classSVF_1_1RetPE.html#afed855f9ee0dfddc4808672ae32263b2">RetPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* i, <a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k = <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a>) :</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">makeEdgeFlagWithCallInst</a>(k,i)), inst(i)</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  {</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  }</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span> </div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span> </div><div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a9bbf558ffc8e3c1136e20d18d4c95f42"> 564</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1RetPE.html#a9bbf558ffc8e3c1136e20d18d4c95f42">getCallInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  }</div><div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#ab03f10c0375846a733f3257736a84f9d"> 568</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1RetPE.html#ab03f10c0375846a733f3257736a84f9d">getCallSite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  }</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span> </div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span> };</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span> </div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="comment">/*</span></div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="comment">* Program statements with multiple operands including BinaryOPStmt, CmpStmt and PhiStmt</span></div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="comment">*/</span></div><div class="line"><a name="l00580"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html"> 580</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>{</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007"> 582</a></span>  <span class="keyword">typedef</span> std::vector<SVFVar*> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(); </div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> &); </div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> &); </div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span> </div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00593"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880"> 593</a></span>  OPVars <a class="code" href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880">opVars</a>;</div><div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#aad0c81aeb48e5d94dd8c60d87b41714c"> 595</a></span>  <a class="code" href="classSVF_1_1MultiOpndStmt.html#aad0c81aeb48e5d94dd8c60d87b41714c">MultiOpndStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* r, <span class="keyword">const</span> OPVars& opnds, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k): <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(opnds.at(0), r, k), opVars(opnds)</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  {</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  }</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span> </div><div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#aa0d9a26d3ad17432505b1f5bb36368d9"> 601</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#aa0d9a26d3ad17432505b1f5bb36368d9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *)</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  {</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  }</div><div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a5de8ff8363cb3f0b1427b69aa1058470"> 605</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#a5de8ff8363cb3f0b1427b69aa1058470">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *node)</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  {</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keywordflow">return</span> node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a> ||</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a> ||</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>;</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  }</div><div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#ad20128715a7aaf173d60fe8f14575678"> 611</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#ad20128715a7aaf173d60fe8f14575678">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *node)</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  {</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keywordflow">return</span> node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a> ||</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a> ||</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>;</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  }</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span> </div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* getOpVar(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos)<span class="keyword"> const</span></div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keywordflow">return</span> opVars.at(pos);</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  }</div><div class="line"><a name="l00626"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601"> 626</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601">getRes</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVFStmt::getDstNode</a>();</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  }</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  </div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getOpVarID(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos) <span class="keyword">const</span>;</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getResID() <span class="keyword">const</span>;</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span> </div><div class="line"><a name="l00634"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3"> 634</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">getOpVarNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="keywordflow">return</span> opVars.size();</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  }</div><div class="line"><a name="l00638"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b"> 638</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> OPVars& <a class="code" href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">getOpndVars</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  <span class="keywordflow">return</span> opVars;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  }</div><div class="line"><a name="l00641"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9"> 641</a></span>  <span class="keyword">inline</span> OPVars::const_iterator <a class="code" href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9">opVarBegin</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <span class="keywordflow">return</span> opVars.begin();</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  }</div><div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#ad53097d07487d564e7d13f9d7d9ab10c"> 645</a></span>  <span class="keyword">inline</span> OPVars::const_iterator <a class="code" href="classSVF_1_1MultiOpndStmt.html#ad53097d07487d564e7d13f9d7d9ab10c">opVerEnd</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="keywordflow">return</span> opVars.end();</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  }</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span> };</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span> </div><div class="line"><a name="l00656"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html"> 656</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span> {</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>(); </div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> &); </div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> &); </div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span> </div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span> </div><div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#abb620d35e77989c2f7f9ed480e5fa1e9"> 666</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#abb620d35e77989c2f7f9ed480e5fa1e9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> *)</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  {</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  }</div><div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ac214292370d79324f6da8624fe2c7139"> 670</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#ac214292370d79324f6da8624fe2c7139">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  {</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  }</div><div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ae547394a731d29b44565d3e56a326354"> 674</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#ae547394a731d29b44565d3e56a326354">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  {</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>;</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  }</div><div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#a904591799ce401e8d3ee6aa634325ba3"> 678</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#a904591799ce401e8d3ee6aa634325ba3">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  {</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>;</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  }</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span> </div><div class="line"><a name="l00685"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#a7a5147246ce71f9863398abdd6ddcfc2"> 685</a></span>  <a class="code" href="classSVF_1_1PhiStmt.html#a7a5147246ce71f9863398abdd6ddcfc2">PhiStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>& opnds) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a>)</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  {</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  }</div><div class="line"><a name="l00688"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ae20d273a8afe603395b6621f04e6cb65"> 688</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PhiStmt.html#ae20d273a8afe603395b6621f04e6cb65">addOpVar</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* op){</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  opVars.push_back(op);</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  }</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span> </div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  <span class="keywordtype">bool</span> isFunctionRetPhi() <span class="keyword">const</span>;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span> </div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span> };</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span> </div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span> </div><div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html"> 703</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span> {</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>(); </div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> &); </div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> &); </div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span> </div><div class="line"><a name="l00710"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a26fc263da6ab3fee40a335d367419328"> 710</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CmpStmt.html#a26fc263da6ab3fee40a335d367419328">predicate</a>;</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span> </div><div class="line"><a name="l00714"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#adec661dd23b7806b35abba2d44aebc61"> 714</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#adec661dd23b7806b35abba2d44aebc61">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> *)</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  {</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  }</div><div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a16a5fddf61f6a13ee34dde0c4267d0e5"> 718</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#a16a5fddf61f6a13ee34dde0c4267d0e5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  {</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a>;</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  }</div><div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a679ec89e3fa17a17dcc8fafeb30d3a61"> 722</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#a679ec89e3fa17a17dcc8fafeb30d3a61">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  {</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a>;</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  }</div><div class="line"><a name="l00726"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#af9f7fe4aa92bb443cd517f06a8fb94cd"> 726</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#af9f7fe4aa92bb443cd517f06a8fb94cd">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  {</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a>;</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  }</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span> </div><div class="line"><a name="l00733"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a02c4846269bd28bd4e8b127532cb737a"> 733</a></span>  <a class="code" href="classSVF_1_1CmpStmt.html#a02c4846269bd28bd4e8b127532cb737a">CmpStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>& opnds, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pre) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>), predicate(pre)</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  {</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  }</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span> </div><div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632"> 737</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <span class="keywordflow">return</span> predicate;</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  }</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  </div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span> };</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span> </div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span> </div><div class="line"><a name="l00749"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html"> 749</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span> {</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>(); </div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> &); </div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> &); </div><div class="line"><a name="l00755"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a"> 755</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a">opcode</a>;</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span> </div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span> </div><div class="line"><a name="l00760"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#ab5a0f41455474643e8dd97aaab0aaab5"> 760</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#ab5a0f41455474643e8dd97aaab0aaab5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> *)</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  {</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  }</div><div class="line"><a name="l00764"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#abc24c2d50b164a637ad0cec371cb7e63"> 764</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#abc24c2d50b164a637ad0cec371cb7e63">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  {</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a>;</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  }</div><div class="line"><a name="l00768"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#a7cae2a90a33225c90eb035cf9e663d3d"> 768</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a7cae2a90a33225c90eb035cf9e663d3d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  {</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a>;</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  }</div><div class="line"><a name="l00772"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#ac8831079a5a9c6d50fbd09ff545e7cfd"> 772</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#ac8831079a5a9c6d50fbd09ff545e7cfd">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  {</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a>;</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  }</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span> </div><div class="line"><a name="l00779"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#a7470a2412985bbb227bb62d8a297b7f1"> 779</a></span>  <a class="code" href="classSVF_1_1BinaryOPStmt.html#a7470a2412985bbb227bb62d8a297b7f1">BinaryOPStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>& opnds, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> oc) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a>), opcode(oc)</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  {</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  }</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span> </div><div class="line"><a name="l00783"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f"> 783</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">getOpcode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  <span class="keywordflow">return</span> opcode;</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  }</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span> </div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span> };</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span> </div><div class="line"><a name="l00794"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html"> 794</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a></div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span> {</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>(); </div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> &); </div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> &); </div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span> </div><div class="line"><a name="l00805"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6"> 805</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6">opcode</a>;</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span> </div><div class="line"><a name="l00809"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#abb10688145fa76629916ec3df61b6c95"> 809</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html#abb10688145fa76629916ec3df61b6c95">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> *)</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  {</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  }</div><div class="line"><a name="l00813"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a2a4b7e3a4c5be8a253b542f144f830b7"> 813</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html#a2a4b7e3a4c5be8a253b542f144f830b7">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  {</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVFStmt::UnaryOp</a>;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  }</div><div class="line"><a name="l00817"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#add29b76e0ef73da2606bac97f74a7896"> 817</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html#add29b76e0ef73da2606bac97f74a7896">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  {</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVFStmt::UnaryOp</a>;</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  }</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span> </div><div class="line"><a name="l00824"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a2b91333ac3d4b5e1099590aeb15d38ba"> 824</a></span>  <a class="code" href="classSVF_1_1UnaryOPStmt.html#a2b91333ac3d4b5e1099590aeb15d38ba">UnaryOPStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> oc) : <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">UnaryOp</a>), opcode(oc)</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  {</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  }</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span> </div><div class="line"><a name="l00828"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6"> 828</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6">getOpcode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <span class="keywordflow">return</span> opcode;</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  }</div><div class="line"><a name="l00832"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#abde2b32d5bbd37df0e194b1a4e78483b"> 832</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1UnaryOPStmt.html#abde2b32d5bbd37df0e194b1a4e78483b">getOpVar</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVFStmt::getSrcNode</a>();</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  }</div><div class="line"><a name="l00835"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a919db9b8c9287c3802f563840b56c4f1"> 835</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1UnaryOPStmt.html#a919db9b8c9287c3802f563840b56c4f1">getRes</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVFStmt::getDstNode</a>();</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  }</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getOpVarID() <span class="keyword">const</span>;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getResID() <span class="keyword">const</span>;</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span> </div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span> };</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span> </div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span> </div><div class="line"><a name="l00848"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html"> 848</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a></div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span> {</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00851"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#ac486fb3a118e6153892b998b0ef46890"> 851</a></span>  <span class="keyword">typedef</span> std::vector<std::pair<const ICFGNode*, s64_t> > <a class="code" href="classSVF_1_1BranchStmt.html#ac486fb3a118e6153892b998b0ef46890">SuccAndCondPairVec</a>;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>(); </div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> &); </div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> &); </div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span> </div><div class="line"><a name="l00861"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a40854cd95fbae16ef8e370255d0e3cf5"> 861</a></span>  SuccAndCondPairVec <a class="code" href="classSVF_1_1BranchStmt.html#a40854cd95fbae16ef8e370255d0e3cf5">successors</a>;</div><div class="line"><a name="l00862"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f"> 862</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f">cond</a>;</div><div class="line"><a name="l00863"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a33887345c00ffda9ca7dca59d61e184a"> 863</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1BranchStmt.html#a33887345c00ffda9ca7dca59d61e184a">brInst</a>;</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span> </div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span> </div><div class="line"><a name="l00868"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a750ffca6648fafedfb271fb90d975847"> 868</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchStmt.html#a750ffca6648fafedfb271fb90d975847">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> *)</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  {</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  }</div><div class="line"><a name="l00872"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a55b867cd85dbbe43e2f7c1bad5dce647"> 872</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchStmt.html#a55b867cd85dbbe43e2f7c1bad5dce647">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  {</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">SVFStmt::Branch</a>;</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  }</div><div class="line"><a name="l00876"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#adf97a239f15b635580cef475980e8d82"> 876</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchStmt.html#adf97a239f15b635580cef475980e8d82">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  {</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">SVFStmt::Branch</a>;</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  }</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span> </div><div class="line"><a name="l00883"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a5e102d5c08b7121efc87b99651f0b5d2"> 883</a></span>  <a class="code" href="classSVF_1_1BranchStmt.html#a5e102d5c08b7121efc87b99651f0b5d2">BranchStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* inst, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* c, <span class="keyword">const</span> SuccAndCondPairVec& succs) : <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(c,inst,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">Branch</a>), successors(succs), cond(c), brInst(inst)</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  {</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  }</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span> </div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  <span class="keywordtype">bool</span> isUnconditional() <span class="keyword">const</span>;</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  <span class="keywordtype">bool</span> isConditional() <span class="keyword">const</span>;</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* getCondition() <span class="keyword">const</span>;</div><div class="line"><a name="l00893"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a2c6fe09027838f9e0ad9ab8193ce8e9b"> 893</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1BranchStmt.html#a2c6fe09027838f9e0ad9ab8193ce8e9b">getBranchInst</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  <span class="keywordflow">return</span> brInst;</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  }</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  </div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span> </div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span> </div><div class="line"><a name="l00908"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b"> 908</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b">getNumSuccessors</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  <span class="keywordflow">return</span> successors.size();</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  }</div><div class="line"><a name="l00911"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a93040c884df211ac62d53ceafdd9c4dd"> 911</a></span>  <span class="keyword">const</span> SuccAndCondPairVec& <a class="code" href="classSVF_1_1BranchStmt.html#a93040c884df211ac62d53ceafdd9c4dd">getSuccessors</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  <span class="keywordflow">return</span> successors;</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  }</div><div class="line"><a name="l00914"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8"> 914</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* <a class="code" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">getSuccessor</a> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i)<span class="keyword"> const</span>{</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  <span class="keywordflow">return</span> successors.at(i).first;</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  }</div><div class="line"><a name="l00917"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a7d2fa666602e0444d3e019563c0e7556"> 917</a></span>  <a class="code" href="namespaceSVF.html#abe09d99af006554a5c00803e9a89f9a6">s64_t</a> <a class="code" href="classSVF_1_1BranchStmt.html#a7d2fa666602e0444d3e019563c0e7556">getSuccessorCondValue</a> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i)<span class="keyword"> const</span>{ </div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  <span class="keywordflow">return</span> successors.at(i).second;</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  }</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span> };</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span> </div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span> </div><div class="line"><a name="l00928"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html"> 928</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a></div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span> {</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>(); </div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> &); </div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> &); </div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span> </div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span> </div><div class="line"><a name="l00938"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#a79317f2ac92ace129a1ccf802406498d"> 938</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDForkPE.html#a79317f2ac92ace129a1ccf802406498d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> *)</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  {</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  }</div><div class="line"><a name="l00942"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#a68f16df5a9b44dd2492c33fb0a1b5f0c"> 942</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDForkPE.html#a68f16df5a9b44dd2492c33fb0a1b5f0c">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  {</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  }</div><div class="line"><a name="l00946"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#a9e160158fe61958bcd6ef2a7da559018"> 946</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDForkPE.html#a9e160158fe61958bcd6ef2a7da559018">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  {</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  }</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span> </div><div class="line"><a name="l00953"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#ae84750b6511817b2db33d11c59d0f5bc"> 953</a></span>  <a class="code" href="classSVF_1_1TDForkPE.html#ae84750b6511817b2db33d11c59d0f5bc">TDForkPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* i) :</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(s,d,i,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">ThreadFork</a>)</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  {</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  }</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span> </div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span> };</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span> </div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span> </div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span> </div><div class="line"><a name="l00966"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html"> 966</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a></div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span> {</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>(); </div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> &); </div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> &); </div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span> </div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span> </div><div class="line"><a name="l00976"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#ace17257476d0ee089a9f9cb8dc63e3f2"> 976</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDJoinPE.html#ace17257476d0ee089a9f9cb8dc63e3f2">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> *)</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  {</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  }</div><div class="line"><a name="l00980"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#a18e24262f5be7835bc830ea410acc19d"> 980</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDJoinPE.html#a18e24262f5be7835bc830ea410acc19d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  {</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  }</div><div class="line"><a name="l00984"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#a22303af690086961b8d2356b345f882b"> 984</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDJoinPE.html#a22303af690086961b8d2356b345f882b">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  {</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  }</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span> </div><div class="line"><a name="l00991"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#afb9137169d75204a09975a219334b752"> 991</a></span>  <a class="code" href="classSVF_1_1TDJoinPE.html#afb9137169d75204a09975a219334b752">TDJoinPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* i) :</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(s,d,i,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">ThreadJoin</a>)</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  {</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  }</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span> </div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span> };</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span> </div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> </div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> <span class="preprocessor">#endif </span><span class="comment">/* PAGEDGE_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1CmpStmt_html_a16a5fddf61f6a13ee34dde0c4267d0e5"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a16a5fddf61f6a13ee34dde0c4267d0e5">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00718">SVFStatements.h:718</a></div></div>
|
|
69
|
+
<a href="SVFStatements_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===- SVFStatements.h -- SVF statements-------------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">/*</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> * SVFStatements.h</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> *</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Created on: Nov 10, 2013</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> */</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef PAGEDGE_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#define PAGEDGE_H_</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="GenericGraph_8h.html">Graphs/GenericGraph.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="LocationSet_8h.html">MemoryModel/LocationSet.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="ICFGNode_8h.html">Graphs/ICFGNode.h</a>"</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971"> 41</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">/*</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> * SVFIR program statements (PAGEdges)</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> */</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericEdge.html">GenericEdge<SVFVar></a> <a class="code" href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971">GenericPAGEdgeTy</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html"> 47</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> : <span class="keyword">public</span> GenericPAGEdgeTy</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9"> 54</a></span>  <span class="keyword">enum</span> <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">PEDGEK</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688"> 56</a></span>  <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">Addr</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">Copy</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">Store</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">Load</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">Call</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">Ret</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">Gep</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">Select</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">UnaryOp</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">Branch</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">ThreadFork</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">ThreadJoin</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  };</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17"> 60</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">value</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36"> 61</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *<a class="code" href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36">basicBlock</a>; </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a50046a1500ec6e2819ef55162e70cc71"> 62</a></span>  <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *<a class="code" href="classSVF_1_1SVFStmt.html#a50046a1500ec6e2819ef55162e70cc71">icfgNode</a>; </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060"> 63</a></span>  <a class="code" href="namespaceSVF.html#ae71551d6a1fc300e0403297aa25ddf94">EdgeID</a> <a class="code" href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060">edgeId</a>; </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#af1a9c2a18805560e46425bd98a35dea9"> 65</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#af1a9c2a18805560e46425bd98a35dea9">totalEdgeNum</a>; </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a47102f72115d41bff899b1b2ffec75b1">SVFStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k);</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#aac79c7e8d390f297002782afb0ba3ff0"> 70</a></span>  <a class="code" href="classSVF_1_1SVFStmt.html#aac79c7e8d390f297002782afb0ba3ff0">~SVFStmt</a>()</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ac517a3166a3afe45d04480534ac3bb50"> 76</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFStmt.html#ac517a3166a3afe45d04480534ac3bb50">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>*)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  }</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a00339663741d9f581d2f3ecae5a3e7e3"> 80</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFStmt.html#a00339663741d9f581d2f3ecae5a3e7e3">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</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="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a> ||</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a> ||</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a> ||</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a> ||</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a> ||</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a> ||</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a> ||</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a> ||</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a> ||</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVFStmt::UnaryOp</a> ||</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a> ||</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#af7bb0d687fc61cae1de639c88e472491"> 98</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ae71551d6a1fc300e0403297aa25ddf94">EdgeID</a> <a class="code" href="classSVF_1_1SVFStmt.html#af7bb0d687fc61cae1de639c88e472491">getEdgeID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060">edgeId</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">isPTAEdge</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a86628ea173dec4934322f5d1caf2e1db"> 107</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a86628ea173dec4934322f5d1caf2e1db">getInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>>(<a class="code" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">value</a>);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a24dddb4e346a6e569908e3efe8a6ecc0"> 111</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFStmt.html#a24dddb4e346a6e569908e3efe8a6ecc0">setValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val)</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>  value = val;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882"> 115</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">getValue</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">value</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a852730edf374d18a3fb3985211ed7623"> 119</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFStmt.html#a852730edf374d18a3fb3985211ed7623">setBB</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  basicBlock = bb;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a793c53e0b4f9a58099c096f0a0856495"> 123</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a793c53e0b4f9a58099c096f0a0856495">getBB</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36">basicBlock</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"><a class="line" href="classSVF_1_1SVFStmt.html#adb92a92f5c878576dff26cb38eab8c8c"> 127</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFStmt.html#adb92a92f5c878576dff26cb38eab8c8c">setICFGNode</a>(<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *node)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  icfgNode = node;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  }</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#aa809a57c8cdaaa35dfc3cc0f3b33b52b"> 131</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* <a class="code" href="classSVF_1_1SVFStmt.html#aa809a57c8cdaaa35dfc3cc0f3b33b52b">getICFGNode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a50046a1500ec6e2819ef55162e70cc71">icfgNode</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b"> 138</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> <a class="code" href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b">makeEdgeFlagWithAddionalOpnd</a>(<a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* var)</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  Var2LabelMap::const_iterator iter = <a class="code" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">var2LabelMap</a>.find(var);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> label = (iter != <a class="code" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">var2LabelMap</a>.end()) ?</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  iter->second : <a class="code" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed">multiOpndLabelCounter</a>++;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  return (label << <a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>) | k;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00"> 147</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> <a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">makeEdgeFlagWithCallInst</a>(<a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* cs)</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  Inst2LabelMap::const_iterator iter = <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.find(cs);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> label = (iter != <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.end()) ?</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  iter->second : <a class="code" href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4">callEdgeLabelCounter</a>++;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  return (label << <a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>) | k;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18"> 157</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> <a class="code" href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18">makeEdgeFlagWithStoreInst</a>(<a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* store)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  Inst2LabelMap::const_iterator iter = <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.find(store);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> label = (iter != <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.end()) ?</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  iter->second : <a class="code" href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27">storeEdgeLabelCounter</a>++;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  return (label << <a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>) | k;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ad75e4c84f7d37824eb096aacca930ead"> 170</a></span>  <span class="keyword">friend</span> <a class="code" href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">raw_ostream</a>& <a class="code" href="classSVF_1_1SVFStmt.html#ad75e4c84f7d37824eb096aacca930ead">operator<< </a>(<a class="code" href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">raw_ostream</a> &o, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> &edge)</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  o << edge.<a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>();</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">return</span> o;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4"> 177</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericNode.html#a03c6da4a73c47f84f5c5b47252bc339a">GenericNode<SVFVar,SVFStmt>::GEdgeSetTy</a> <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmtSetTy</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa"> 178</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<EdgeID, SVFStmtSetTy></a> <a class="code" href="classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa">PAGEdgeToSetMapTy</a>;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66"> 179</a></span>  <span class="keyword">typedef</span> PAGEdgeToSetMapTy <a class="code" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66">KindToSVFStmtMapTy</a>;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2"> 180</a></span>  <span class="keyword">typedef</span> SVFStmtSetTy <a class="code" href="classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2">PAGEdgeSetTy</a>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a5a3db6b1335b4adc55b961a6f480f228"> 183</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const ICFGNode*, u32_t></a> <a class="code" href="classSVF_1_1SVFStmt.html#a5a3db6b1335b4adc55b961a6f480f228">Inst2LabelMap</a>;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb"> 184</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFVar*, u32_t></a> <a class="code" href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb">Var2LabelMap</a>;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c"> 185</a></span>  <span class="keyword">static</span> Inst2LabelMap <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>; </div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007"> 186</a></span>  <span class="keyword">static</span> Var2LabelMap <a class="code" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">var2LabelMap</a>; </div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4"> 187</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4">callEdgeLabelCounter</a>; </div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27"> 188</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27">storeEdgeLabelCounter</a>; </div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed"> 189</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed">multiOpndLabelCounter</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> <span class="comment">/*</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="comment"> Parent class of Addr, Copy, Store, Load, Call, Ret, NormalGep, VariantGep, ThreadFork, ThreadJoin</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment"> connecting RHS expression and LHS expression with an assignment (e.g., LHSExpr = RHSExpr)</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment"> Only one operand on the right handside of an assignment</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment">*/</span></div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html"> 197</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>{</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(); </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> &); </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> &); </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620"> 210</a></span>  <a class="code" href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620">AssignStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k) : <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(s,d,k)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7"> 217</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> *)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  }</div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#ad5e2d41b8cd548628b59227368388ed0"> 221</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AssignStmt.html#ad5e2d41b8cd548628b59227368388ed0">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a> ||</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a> ||</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a> ||</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a> ||</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a> ||</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a> ||</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a> ||</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a> ||</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  }</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a8b2837153dcf9f7e2adc3b30b2dd0245"> 233</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AssignStmt.html#a8b2837153dcf9f7e2adc3b30b2dd0245">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a> ||</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a> ||</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a> ||</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a> ||</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a> ||</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a> ||</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a> ||</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a> ||</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28"> 247</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVFStmt::getSrcNode</a>();</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  } </div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a973a2b79da223275ed6a1831837b89c7"> 250</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1AssignStmt.html#a973a2b79da223275ed6a1831837b89c7">getLHSVar</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVFStmt::getDstNode</a>();</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  } </div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d"> 253</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVFStmt::getSrcID</a>();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  } </div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840"> 256</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVFStmt::getDstID</a>();</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  } </div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span> = 0;</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="l00266"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html"> 266</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> {</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>(); </div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> &); </div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> &); </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> <span class="keyword">public</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"><a class="line" href="classSVF_1_1AddrStmt.html#a32e129c9f7aa16be8c5c8569989f691f"> 276</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AddrStmt.html#a32e129c9f7aa16be8c5c8569989f691f">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *)</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>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#aeec83dc4e79ee62c92c75aa778a475ad"> 280</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AddrStmt.html#aeec83dc4e79ee62c92c75aa778a475ad">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  }</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#a6876ffc2c97c5ba64155891b55a7884c"> 284</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AddrStmt.html#a6876ffc2c97c5ba64155891b55a7884c">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#a42caa75acb42ce8e290c1278622f139c"> 291</a></span>  <a class="code" href="classSVF_1_1AddrStmt.html#a42caa75acb42ce8e290c1278622f139c">AddrStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">Addr</a>)</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</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> </div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html"> 302</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>(); </div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> &); </div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> &); </div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div><div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a253c81c922bef6e2d520262c2f7793c4"> 311</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CopyStmt.html#a253c81c922bef6e2d520262c2f7793c4">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> *)</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  }</div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a5e883bb0bc30cf8b7d325b66f7a42848"> 315</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CopyStmt.html#a5e883bb0bc30cf8b7d325b66f7a42848">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a>;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div><div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a12e960569a9f4beae99195a0fe2d3b68"> 319</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CopyStmt.html#a12e960569a9f4beae99195a0fe2d3b68">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a>;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a69b179ef052408034786d32a52c52389"> 326</a></span>  <a class="code" href="classSVF_1_1CopyStmt.html#a69b179ef052408034786d32a52c52389">CopyStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">Copy</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>  }</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> };</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div><div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html"> 336</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>(); </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> &); </div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> &); </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html#ae3c219e8af92e222f55c930009db6e67"> 346</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreStmt.html#ae3c219e8af92e222f55c930009db6e67">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *)</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>  <span class="keywordflow">return</span> <span class="keyword">true</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"><a class="line" href="classSVF_1_1StoreStmt.html#a31f69e402887eff60e2055799ed561b9"> 350</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreStmt.html#a31f69e402887eff60e2055799ed561b9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  {</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>;</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_1StoreStmt.html#ab71bf959fce0e702556dd753636298b2"> 354</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreStmt.html#ab71bf959fce0e702556dd753636298b2">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html#a39ee0d8cc951aff0d6418a3d743fb3ae"> 361</a></span>  <a class="code" href="classSVF_1_1StoreStmt.html#a39ee0d8cc951aff0d6418a3d743fb3ae">StoreStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a>* st) :</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s, d, <a class="code" href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18">makeEdgeFlagWithStoreInst</a>(<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">Store</a>, st))</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  {</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  }</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">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> };</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span> </div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div><div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html"> 373</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>(); </div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> &); </div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> &); </div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div><div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#a03d6f1ee2f52b34d905b204eb53d6560"> 383</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadStmt.html#a03d6f1ee2f52b34d905b204eb53d6560">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *)</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  }</div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#ac252b1e9b7c01108d1aff602fbe1ef40"> 387</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadStmt.html#ac252b1e9b7c01108d1aff602fbe1ef40">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  }</div><div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#ab30f370a8a2a3e63765c1e4843f07826"> 391</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadStmt.html#ab30f370a8a2a3e63765c1e4843f07826">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  {</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#a92c5817abfaa1f6fbc9ee911f458dfb2"> 398</a></span>  <a class="code" href="classSVF_1_1LoadStmt.html#a92c5817abfaa1f6fbc9ee911f458dfb2">LoadStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">Load</a>)</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  }</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> };</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> </div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html"> 409</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>(); </div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> &); </div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> &); </div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div><div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a543a3f4801b22719f7b9677246bf2ac7"> 416</a></span>  <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1GepStmt.html#a543a3f4801b22719f7b9677246bf2ac7">ls</a>; </div><div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#af8eefbd002ec36f36612b8e9ccdbc757"> 417</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#af8eefbd002ec36f36612b8e9ccdbc757">variantField</a>; </div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a441cd8487b320ceff9d62884b4f28176"> 421</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#a441cd8487b320ceff9d62884b4f28176">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *)</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  }</div><div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a92016e7d6061e4a157c9cd39ad94cc20"> 425</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#a92016e7d6061e4a157c9cd39ad94cc20">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a>;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  }</div><div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#ac47064e21e2afdf7bd85c6acba44367f"> 429</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#ac47064e21e2afdf7bd85c6acba44367f">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a>;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span> </div><div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8"> 435</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& <a class="code" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">getLocationSet</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(isVariantFieldGep()==<span class="keyword">false</span> && <span class="stringliteral">"Can't retrieve the LocationSet if using a variable field index (pointer arithmetic) for struct field access "</span>);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">return</span> ls;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  }</div><div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a37811e62495493454405cb33e4a2b904"> 440</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html#a9bb7e08f7cfb2859d25b0e68e21fec89">LocationSet::OffsetValueVec</a>& <a class="code" href="classSVF_1_1GepStmt.html#a37811e62495493454405cb33e4a2b904">getOffsetValueVec</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">return</span> getLocationSet().getOffsetValueVec();</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  }</div><div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4"> 445</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">isConstantOffset</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keywordflow">return</span> getLocationSet().isConstantOffset();</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  }</div><div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a33b3b9ef0cf7e2ea6400aef74a399adf"> 449</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#abe09d99af006554a5c00803e9a89f9a6">s64_t</a> <a class="code" href="classSVF_1_1GepStmt.html#a33b3b9ef0cf7e2ea6400aef74a399adf">accumulateConstantOffset</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keywordflow">return</span> getLocationSet().accumulateConstantOffset();</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  }</div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#adf6912f8ddae4f765b685a4f9d3be602"> 454</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#abe09d99af006554a5c00803e9a89f9a6">s64_t</a> <a class="code" href="classSVF_1_1GepStmt.html#adf6912f8ddae4f765b685a4f9d3be602">getConstantFieldIdx</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordflow">return</span> getLocationSet().accumulateConstantFieldIdx();</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  }</div><div class="line"><a name="l00459"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788"> 459</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788">isVariantFieldGep</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="keywordflow">return</span> variantField;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  } </div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div><div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#ae4509ee7b57121da3c67de00e8bdf0b3"> 465</a></span>  <a class="code" href="classSVF_1_1GepStmt.html#ae4509ee7b57121da3c67de00e8bdf0b3">GepStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& l, <span class="keywordtype">bool</span> varfld=<span class="keyword">false</span>) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">Gep</a>), ls(l), variantField(varfld)</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  }</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> </div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span> };</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div><div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html"> 477</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CallPE.html">CallPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> {</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(); </div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> &); </div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> &); </div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div><div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a60e8280eb3e77e67e3dfa4dcee943edf"> 484</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1CallPE.html#a60e8280eb3e77e67e3dfa4dcee943edf">inst</a>; </div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div><div class="line"><a name="l00488"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a6df0149f79122c5a7d517f75d0235e73"> 488</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallPE.html#a6df0149f79122c5a7d517f75d0235e73">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *)</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  {</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  }</div><div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a188c51f3e378c451d34e90c96cca0cf5"> 492</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallPE.html#a188c51f3e378c451d34e90c96cca0cf5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a></div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  || edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  }</div><div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a0d89c20d1d3ccee5f3e45a32085117aa"> 497</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallPE.html#a0d89c20d1d3ccee5f3e45a32085117aa">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  {</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a></div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  || edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  }</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span> </div><div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#af84a1badb8734b54bf01b2b5b89af091"> 505</a></span>  <a class="code" href="classSVF_1_1CallPE.html#af84a1badb8734b54bf01b2b5b89af091">CallPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* i, <a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k = <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a>) :</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">makeEdgeFlagWithCallInst</a>(k,i)), inst(i)</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  {</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  }</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span> </div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span> </div><div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#aa50cca8bd91ffb135a7998b58ad7966f"> 512</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1CallPE.html#aa50cca8bd91ffb135a7998b58ad7966f">getCallInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  }</div><div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#ab548c22dfbfeeaeb8ffe83417b396c09"> 516</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1CallPE.html#ab548c22dfbfeeaeb8ffe83417b396c09">getCallSite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  }</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span> </div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span> };</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span> </div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span> </div><div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html"> 529</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1RetPE.html">RetPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span> {</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(); </div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> &); </div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> &); </div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span> </div><div class="line"><a name="l00536"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a028363b55fa19897a93f1c78ec905723"> 536</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1RetPE.html#a028363b55fa19897a93f1c78ec905723">inst</a>; </div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span> </div><div class="line"><a name="l00540"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a43c6965616d67e77087b486265139d21"> 540</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPE.html#a43c6965616d67e77087b486265139d21">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *)</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  {</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  }</div><div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a9cd78a723ed55ed6f334a329576a7471"> 544</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPE.html#a9cd78a723ed55ed6f334a329576a7471">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  {</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a></div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  || edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  }</div><div class="line"><a name="l00549"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a2f0121f26e79fe3766cba93b42dc1119"> 549</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPE.html#a2f0121f26e79fe3766cba93b42dc1119">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  {</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a></div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  || edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  }</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span> </div><div class="line"><a name="l00557"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#afed855f9ee0dfddc4808672ae32263b2"> 557</a></span>  <a class="code" href="classSVF_1_1RetPE.html#afed855f9ee0dfddc4808672ae32263b2">RetPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* i, <a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k = <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a>) :</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">makeEdgeFlagWithCallInst</a>(k,i)), inst(i)</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  {</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  }</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span> </div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span> </div><div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a9bbf558ffc8e3c1136e20d18d4c95f42"> 564</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1RetPE.html#a9bbf558ffc8e3c1136e20d18d4c95f42">getCallInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  }</div><div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#ab03f10c0375846a733f3257736a84f9d"> 568</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1RetPE.html#ab03f10c0375846a733f3257736a84f9d">getCallSite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  }</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span> </div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span> };</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span> </div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="comment">/*</span></div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="comment">* Program statements with multiple operands including BinaryOPStmt, CmpStmt and PhiStmt</span></div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="comment">*/</span></div><div class="line"><a name="l00580"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html"> 580</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>{</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007"> 582</a></span>  <span class="keyword">typedef</span> std::vector<SVFVar*> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(); </div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> &); </div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> &); </div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span> </div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00593"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880"> 593</a></span>  OPVars <a class="code" href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880">opVars</a>;</div><div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#aad0c81aeb48e5d94dd8c60d87b41714c"> 595</a></span>  <a class="code" href="classSVF_1_1MultiOpndStmt.html#aad0c81aeb48e5d94dd8c60d87b41714c">MultiOpndStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* r, <span class="keyword">const</span> OPVars& opnds, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k): <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(opnds.at(0), r, k), opVars(opnds)</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  {</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  }</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span> </div><div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#aa0d9a26d3ad17432505b1f5bb36368d9"> 601</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#aa0d9a26d3ad17432505b1f5bb36368d9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *)</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  {</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  }</div><div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a5de8ff8363cb3f0b1427b69aa1058470"> 605</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#a5de8ff8363cb3f0b1427b69aa1058470">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *node)</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  {</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keywordflow">return</span> node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a> ||</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">Select</a> ||</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a> ||</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>;</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  }</div><div class="line"><a name="l00612"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#ad20128715a7aaf173d60fe8f14575678"> 612</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#ad20128715a7aaf173d60fe8f14575678">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *node)</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  {</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="keywordflow">return</span> node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a> ||</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">Select</a> ||</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a> ||</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>;</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  }</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span> </div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* getOpVar(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos)<span class="keyword"> const</span></div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="keywordflow">return</span> opVars.at(pos);</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  }</div><div class="line"><a name="l00628"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601"> 628</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601">getRes</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVFStmt::getDstNode</a>();</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  }</div><div class="line"><a name="l00633"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#af3c4989a458a1e5f7a5e0ba8e5c8b6ae"> 633</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MultiOpndStmt.html#af3c4989a458a1e5f7a5e0ba8e5c8b6ae">getOpPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* op)<span class="keyword"> const</span>{</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < getOpVarNum(); i++){</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <span class="keywordflow">if</span>(getOpVar(i)==op)</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="keywordflow">return</span> i;</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  }</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"this operand not found!"</span>);</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  }</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span> </div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getOpVarID(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos) <span class="keyword">const</span>;</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getResID() <span class="keyword">const</span>;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span> </div><div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3"> 645</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">getOpVarNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="keywordflow">return</span> opVars.size();</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  }</div><div class="line"><a name="l00649"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b"> 649</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> OPVars& <a class="code" href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">getOpndVars</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  <span class="keywordflow">return</span> opVars;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  }</div><div class="line"><a name="l00652"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9"> 652</a></span>  <span class="keyword">inline</span> OPVars::const_iterator <a class="code" href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9">opVarBegin</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  <span class="keywordflow">return</span> opVars.begin();</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  }</div><div class="line"><a name="l00656"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#ad53097d07487d564e7d13f9d7d9ab10c"> 656</a></span>  <span class="keyword">inline</span> OPVars::const_iterator <a class="code" href="classSVF_1_1MultiOpndStmt.html#ad53097d07487d564e7d13f9d7d9ab10c">opVerEnd</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  <span class="keywordflow">return</span> opVars.end();</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  }</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span> };</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span> </div><div class="line"><a name="l00667"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html"> 667</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span> {</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ac505a4fe33e82f555663872e81220ba4"> 670</a></span>  <span class="keyword">typedef</span> std::vector<const ICFGNode* > <a class="code" href="classSVF_1_1PhiStmt.html#ac505a4fe33e82f555663872e81220ba4">OpICFGNodeVec</a>;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span> </div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>(); </div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> &); </div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> &); </div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span> </div><div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#a4c75a8f8430621aaec62a5189db136b5"> 677</a></span>  OpICFGNodeVec <a class="code" href="classSVF_1_1PhiStmt.html#a4c75a8f8430621aaec62a5189db136b5">opICFGNodes</a>;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span> </div><div class="line"><a name="l00681"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#abb620d35e77989c2f7f9ed480e5fa1e9"> 681</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#abb620d35e77989c2f7f9ed480e5fa1e9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> *)</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  {</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  }</div><div class="line"><a name="l00685"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ac214292370d79324f6da8624fe2c7139"> 685</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#ac214292370d79324f6da8624fe2c7139">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  {</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>;</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  }</div><div class="line"><a name="l00689"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ae547394a731d29b44565d3e56a326354"> 689</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#ae547394a731d29b44565d3e56a326354">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  {</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>;</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  }</div><div class="line"><a name="l00693"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#a904591799ce401e8d3ee6aa634325ba3"> 693</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#a904591799ce401e8d3ee6aa634325ba3">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  {</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>;</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  }</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span> </div><div class="line"><a name="l00700"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ac2374acf4477a4bc5d188797ea9baaf3"> 700</a></span>  <a class="code" href="classSVF_1_1PhiStmt.html#ac2374acf4477a4bc5d188797ea9baaf3">PhiStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>& opnds, <span class="keyword">const</span> OpICFGNodeVec& icfgNodes) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a>), opICFGNodes(icfgNodes)</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  {</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(opnds.size()==icfgNodes.size() && <span class="stringliteral">"Numbers of operands and their ICFGNodes are not consistent?"</span>);</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  }</div><div class="line"><a name="l00704"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ac3541a25f83ce8465d7b35010ba50b37"> 704</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PhiStmt.html#ac3541a25f83ce8465d7b35010ba50b37">addOpVar</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* op, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* inode){</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  opVars.push_back(op);</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  opICFGNodes.push_back(inode);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(opVars.size()==opICFGNodes.size() && <span class="stringliteral">"Numbers of operands and their ICFGNodes are not consistent?"</span>);</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  }</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span> </div><div class="line"><a name="l00711"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#af7e57da55f80c53a6f483976202e4c5c"> 711</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* <a class="code" href="classSVF_1_1PhiStmt.html#af7e57da55f80c53a6f483976202e4c5c">getOpICFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* op)<span class="keyword"> const</span>{</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <span class="keywordflow">return</span> opICFGNodes.at(getOpPos(op));</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  }</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span> </div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <span class="keywordtype">bool</span> isFunctionRetPhi() <span class="keyword">const</span>;</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span> </div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span> };</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span> </div><div class="line"><a name="l00725"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html"> 725</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span> {</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a>(); </div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> &); </div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> &); </div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span> </div><div class="line"><a name="l00732"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#a2d6e9d7131bc69a0e88b703c2c03d7e2"> 732</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1SelectStmt.html#a2d6e9d7131bc69a0e88b703c2c03d7e2">condition</a>;</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span> </div><div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#a89f27a20f9c2acc66c4c6152e79ee30e"> 736</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SelectStmt.html#a89f27a20f9c2acc66c4c6152e79ee30e">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> *)</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  {</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  }</div><div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#a3cb54c9a91a32e12c5f8ee452fcf64be"> 740</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SelectStmt.html#a3cb54c9a91a32e12c5f8ee452fcf64be">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  {</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">SVFStmt::Select</a>;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  }</div><div class="line"><a name="l00744"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#a0b73ca0dedc4b7c718585577424fa0ce"> 744</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SelectStmt.html#a0b73ca0dedc4b7c718585577424fa0ce">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  {</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">SVFStmt::Select</a>;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  }</div><div class="line"><a name="l00748"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#aa9d3eeb27fee7084bcd2921c98be1bd1"> 748</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SelectStmt.html#aa9d3eeb27fee7084bcd2921c98be1bd1">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  {</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">SVFStmt::Select</a>;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  }</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span> </div><div class="line"><a name="l00755"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#ae654d9036e291e723a3f1f7eab5b018b"> 755</a></span>  <a class="code" href="classSVF_1_1SelectStmt.html#ae654d9036e291e723a3f1f7eab5b018b">SelectStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>& opnds, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* cond) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">Select</a>), condition(cond)</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  {</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(opnds.size()==2 && <span class="stringliteral">"SelectStmt can only have two operands!"</span>);</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  }</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span> </div><div class="line"><a name="l00761"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c"> 761</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">getCondition</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keywordflow">return</span> condition;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  }</div><div class="line"><a name="l00764"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568"> 764</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">getTrueValue</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <span class="keywordflow">return</span> getOpVar(0);</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  }</div><div class="line"><a name="l00767"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad"> 767</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">getFalseValue</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <span class="keywordflow">return</span> getOpVar(1);</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  }</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span> };</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span> </div><div class="line"><a name="l00775"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html"> 775</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span> {</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>(); </div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> &); </div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> &); </div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span> </div><div class="line"><a name="l00782"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a26fc263da6ab3fee40a335d367419328"> 782</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CmpStmt.html#a26fc263da6ab3fee40a335d367419328">predicate</a>;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span> </div><div class="line"><a name="l00786"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#adec661dd23b7806b35abba2d44aebc61"> 786</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#adec661dd23b7806b35abba2d44aebc61">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> *)</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  {</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  }</div><div class="line"><a name="l00790"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a16a5fddf61f6a13ee34dde0c4267d0e5"> 790</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#a16a5fddf61f6a13ee34dde0c4267d0e5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  {</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a>;</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  }</div><div class="line"><a name="l00794"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a679ec89e3fa17a17dcc8fafeb30d3a61"> 794</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#a679ec89e3fa17a17dcc8fafeb30d3a61">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  {</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a>;</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  }</div><div class="line"><a name="l00798"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#af9f7fe4aa92bb443cd517f06a8fb94cd"> 798</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#af9f7fe4aa92bb443cd517f06a8fb94cd">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  {</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a>;</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  }</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span> </div><div class="line"><a name="l00805"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a02c4846269bd28bd4e8b127532cb737a"> 805</a></span>  <a class="code" href="classSVF_1_1CmpStmt.html#a02c4846269bd28bd4e8b127532cb737a">CmpStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>& opnds, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pre) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>), predicate(pre)</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  {</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  }</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span> </div><div class="line"><a name="l00809"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632"> 809</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  <span class="keywordflow">return</span> predicate;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  }</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  </div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span> };</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span> </div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span> </div><div class="line"><a name="l00821"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html"> 821</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span> {</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>(); </div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> &); </div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> &); </div><div class="line"><a name="l00827"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a"> 827</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a">opcode</a>;</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span> </div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span> </div><div class="line"><a name="l00832"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#ab5a0f41455474643e8dd97aaab0aaab5"> 832</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#ab5a0f41455474643e8dd97aaab0aaab5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> *)</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  {</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  }</div><div class="line"><a name="l00836"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#abc24c2d50b164a637ad0cec371cb7e63"> 836</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#abc24c2d50b164a637ad0cec371cb7e63">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  {</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a>;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  }</div><div class="line"><a name="l00840"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#a7cae2a90a33225c90eb035cf9e663d3d"> 840</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a7cae2a90a33225c90eb035cf9e663d3d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  {</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a>;</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  }</div><div class="line"><a name="l00844"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#ac8831079a5a9c6d50fbd09ff545e7cfd"> 844</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#ac8831079a5a9c6d50fbd09ff545e7cfd">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  {</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a>;</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  }</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span> </div><div class="line"><a name="l00851"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#a7470a2412985bbb227bb62d8a297b7f1"> 851</a></span>  <a class="code" href="classSVF_1_1BinaryOPStmt.html#a7470a2412985bbb227bb62d8a297b7f1">BinaryOPStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>& opnds, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> oc) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a>), opcode(oc)</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  {</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  }</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span> </div><div class="line"><a name="l00855"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f"> 855</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">getOpcode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  <span class="keywordflow">return</span> opcode;</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  }</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span> </div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span> };</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span> </div><div class="line"><a name="l00866"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html"> 866</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a></div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span> {</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>(); </div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> &); </div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> &); </div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span> </div><div class="line"><a name="l00877"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6"> 877</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6">opcode</a>;</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span> </div><div class="line"><a name="l00881"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#abb10688145fa76629916ec3df61b6c95"> 881</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html#abb10688145fa76629916ec3df61b6c95">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> *)</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  {</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  }</div><div class="line"><a name="l00885"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a2a4b7e3a4c5be8a253b542f144f830b7"> 885</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html#a2a4b7e3a4c5be8a253b542f144f830b7">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  {</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVFStmt::UnaryOp</a>;</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  }</div><div class="line"><a name="l00889"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#add29b76e0ef73da2606bac97f74a7896"> 889</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html#add29b76e0ef73da2606bac97f74a7896">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  {</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVFStmt::UnaryOp</a>;</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  }</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span> </div><div class="line"><a name="l00896"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a2b91333ac3d4b5e1099590aeb15d38ba"> 896</a></span>  <a class="code" href="classSVF_1_1UnaryOPStmt.html#a2b91333ac3d4b5e1099590aeb15d38ba">UnaryOPStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> oc) : <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">UnaryOp</a>), opcode(oc)</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  {</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  }</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span> </div><div class="line"><a name="l00900"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6"> 900</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6">getOpcode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  <span class="keywordflow">return</span> opcode;</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  }</div><div class="line"><a name="l00904"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#abde2b32d5bbd37df0e194b1a4e78483b"> 904</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1UnaryOPStmt.html#abde2b32d5bbd37df0e194b1a4e78483b">getOpVar</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVFStmt::getSrcNode</a>();</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  }</div><div class="line"><a name="l00907"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a919db9b8c9287c3802f563840b56c4f1"> 907</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1UnaryOPStmt.html#a919db9b8c9287c3802f563840b56c4f1">getRes</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVFStmt::getDstNode</a>();</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  }</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getOpVarID() <span class="keyword">const</span>;</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getResID() <span class="keyword">const</span>;</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span> </div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span> };</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span> </div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span> </div><div class="line"><a name="l00920"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html"> 920</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a></div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span> {</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00923"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#ac486fb3a118e6153892b998b0ef46890"> 923</a></span>  <span class="keyword">typedef</span> std::vector<std::pair<const ICFGNode*, s64_t> > <a class="code" href="classSVF_1_1BranchStmt.html#ac486fb3a118e6153892b998b0ef46890">SuccAndCondPairVec</a>;</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>(); </div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> &); </div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> &); </div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span> </div><div class="line"><a name="l00933"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a40854cd95fbae16ef8e370255d0e3cf5"> 933</a></span>  SuccAndCondPairVec <a class="code" href="classSVF_1_1BranchStmt.html#a40854cd95fbae16ef8e370255d0e3cf5">successors</a>;</div><div class="line"><a name="l00934"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f"> 934</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f">cond</a>;</div><div class="line"><a name="l00935"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a33887345c00ffda9ca7dca59d61e184a"> 935</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1BranchStmt.html#a33887345c00ffda9ca7dca59d61e184a">brInst</a>;</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span> </div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span> </div><div class="line"><a name="l00940"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a750ffca6648fafedfb271fb90d975847"> 940</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchStmt.html#a750ffca6648fafedfb271fb90d975847">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> *)</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  {</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  }</div><div class="line"><a name="l00944"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a55b867cd85dbbe43e2f7c1bad5dce647"> 944</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchStmt.html#a55b867cd85dbbe43e2f7c1bad5dce647">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  {</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">SVFStmt::Branch</a>;</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  }</div><div class="line"><a name="l00948"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#adf97a239f15b635580cef475980e8d82"> 948</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchStmt.html#adf97a239f15b635580cef475980e8d82">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  {</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">SVFStmt::Branch</a>;</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  }</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span> </div><div class="line"><a name="l00955"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a5e102d5c08b7121efc87b99651f0b5d2"> 955</a></span>  <a class="code" href="classSVF_1_1BranchStmt.html#a5e102d5c08b7121efc87b99651f0b5d2">BranchStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* inst, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* c, <span class="keyword">const</span> SuccAndCondPairVec& succs) : <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(c,inst,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">Branch</a>), successors(succs), cond(c), brInst(inst)</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  {</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  }</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span> </div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  <span class="keywordtype">bool</span> isUnconditional() <span class="keyword">const</span>;</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  <span class="keywordtype">bool</span> isConditional() <span class="keyword">const</span>;</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* getCondition() <span class="keyword">const</span>;</div><div class="line"><a name="l00965"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a2c6fe09027838f9e0ad9ab8193ce8e9b"> 965</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1BranchStmt.html#a2c6fe09027838f9e0ad9ab8193ce8e9b">getBranchInst</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  <span class="keywordflow">return</span> brInst;</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  }</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  </div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span> </div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span> </div><div class="line"><a name="l00980"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b"> 980</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b">getNumSuccessors</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  <span class="keywordflow">return</span> successors.size();</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  }</div><div class="line"><a name="l00983"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a93040c884df211ac62d53ceafdd9c4dd"> 983</a></span>  <span class="keyword">const</span> SuccAndCondPairVec& <a class="code" href="classSVF_1_1BranchStmt.html#a93040c884df211ac62d53ceafdd9c4dd">getSuccessors</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  <span class="keywordflow">return</span> successors;</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  }</div><div class="line"><a name="l00986"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8"> 986</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* <a class="code" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">getSuccessor</a> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i)<span class="keyword"> const</span>{</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <span class="keywordflow">return</span> successors.at(i).first;</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  }</div><div class="line"><a name="l00989"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a7d2fa666602e0444d3e019563c0e7556"> 989</a></span>  <a class="code" href="namespaceSVF.html#abe09d99af006554a5c00803e9a89f9a6">s64_t</a> <a class="code" href="classSVF_1_1BranchStmt.html#a7d2fa666602e0444d3e019563c0e7556">getSuccessorCondValue</a> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i)<span class="keyword"> const</span>{ </div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  <span class="keywordflow">return</span> successors.at(i).second;</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  }</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span> };</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span> </div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span> </div><div class="line"><a name="l01000"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html"> 1000</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a></div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> {</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>(); </div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> &); </div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> &); </div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> </div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> </div><div class="line"><a name="l01010"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#a79317f2ac92ace129a1ccf802406498d"> 1010</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDForkPE.html#a79317f2ac92ace129a1ccf802406498d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> *)</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  {</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  }</div><div class="line"><a name="l01014"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#a68f16df5a9b44dd2492c33fb0a1b5f0c"> 1014</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDForkPE.html#a68f16df5a9b44dd2492c33fb0a1b5f0c">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  {</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  }</div><div class="line"><a name="l01018"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#a9e160158fe61958bcd6ef2a7da559018"> 1018</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDForkPE.html#a9e160158fe61958bcd6ef2a7da559018">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  {</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  }</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> </div><div class="line"><a name="l01025"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#ae84750b6511817b2db33d11c59d0f5bc"> 1025</a></span>  <a class="code" href="classSVF_1_1TDForkPE.html#ae84750b6511817b2db33d11c59d0f5bc">TDForkPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* i) :</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(s,d,i,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">ThreadFork</a>)</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  {</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  }</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> </div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> };</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> </div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> </div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> </div><div class="line"><a name="l01038"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html"> 1038</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a></div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> {</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>(); </div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> &); </div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> &); </div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> </div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> </div><div class="line"><a name="l01048"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#ace17257476d0ee089a9f9cb8dc63e3f2"> 1048</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDJoinPE.html#ace17257476d0ee089a9f9cb8dc63e3f2">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> *)</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  {</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  }</div><div class="line"><a name="l01052"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#a18e24262f5be7835bc830ea410acc19d"> 1052</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDJoinPE.html#a18e24262f5be7835bc830ea410acc19d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  {</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  }</div><div class="line"><a name="l01056"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#a22303af690086961b8d2356b345f882b"> 1056</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDJoinPE.html#a22303af690086961b8d2356b345f882b">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  {</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  }</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> </div><div class="line"><a name="l01063"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#afb9137169d75204a09975a219334b752"> 1063</a></span>  <a class="code" href="classSVF_1_1TDJoinPE.html#afb9137169d75204a09975a219334b752">TDJoinPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* i) :</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>  <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(s,d,i,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">ThreadJoin</a>)</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>  {</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>  }</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> </div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> };</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> </div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> </div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> <span class="preprocessor">#endif </span><span class="comment">/* PAGEDGE_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1CmpStmt_html_a16a5fddf61f6a13ee34dde0c4267d0e5"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a16a5fddf61f6a13ee34dde0c4267d0e5">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00790">SVFStatements.h:790</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a793c53e0b4f9a58099c096f0a0856495"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a793c53e0b4f9a58099c096f0a0856495">SVF::SVFStmt::getBB</a></div><div class="ttdeci">const BasicBlock * getBB() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00123">SVFStatements.h:123</a></div></div>
|
|
71
|
-
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_a0c4f900cf7321e8385b4f45e5cba3d1a"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a">SVF::BinaryOPStmt::opcode</a></div><div class="ttdeci">u32_t opcode</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
71
|
+
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_a0c4f900cf7321e8385b4f45e5cba3d1a"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a">SVF::BinaryOPStmt::opcode</a></div><div class="ttdeci">u32_t opcode</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00827">SVFStatements.h:827</a></div></div>
|
|
72
72
|
<div class="ttc" id="classSVF_1_1AddrStmt_html"><div class="ttname"><a href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00266">SVFStatements.h:266</a></div></div>
|
|
73
73
|
<div class="ttc" id="classSVF_1_1CallPE_html_a188c51f3e378c451d34e90c96cca0cf5"><div class="ttname"><a href="classSVF_1_1CallPE.html#a188c51f3e378c451d34e90c96cca0cf5">SVF::CallPE::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00492">SVFStatements.h:492</a></div></div>
|
|
74
74
|
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a5de8ff8363cb3f0b1427b69aa1058470"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a5de8ff8363cb3f0b1427b69aa1058470">SVF::MultiOpndStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00605">SVFStatements.h:605</a></div></div>
|
|
75
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html_ac3541a25f83ce8465d7b35010ba50b37"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ac3541a25f83ce8465d7b35010ba50b37">SVF::PhiStmt::addOpVar</a></div><div class="ttdeci">void addOpVar(SVFVar *op, const ICFGNode *inode)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00704">SVFStatements.h:704</a></div></div>
|
|
75
76
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_adb92a92f5c878576dff26cb38eab8c8c"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#adb92a92f5c878576dff26cb38eab8c8c">SVF::SVFStmt::setICFGNode</a></div><div class="ttdeci">void setICFGNode(ICFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00127">SVFStatements.h:127</a></div></div>
|
|
76
77
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_abe8525c542def8162b094c169a01993b"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">SVF::GenericEdge::getEdgeKind</a></div><div class="ttdeci">GEdgeKind getEdgeKind() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00081">GenericGraph.h:81</a></div></div>
|
|
77
78
|
<div class="ttc" id="classSVF_1_1AssignStmt_html_a4f94b6731f324e44fc4d4e06d7acdbf7"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7">SVF::AssignStmt::classof</a></div><div class="ttdeci">static bool classof(const AssignStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00217">SVFStatements.h:217</a></div></div>
|
|
78
79
|
<div class="ttc" id="classSVF_1_1CallPE_html_ab548c22dfbfeeaeb8ffe83417b396c09"><div class="ttname"><a href="classSVF_1_1CallPE.html#ab548c22dfbfeeaeb8ffe83417b396c09">SVF::CallPE::getCallSite</a></div><div class="ttdeci">const CallICFGNode * getCallSite() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00516">SVFStatements.h:516</a></div></div>
|
|
79
|
-
<div class="ttc" id="classSVF_1_1PhiStmt_html_a904591799ce401e8d3ee6aa634325ba3"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#a904591799ce401e8d3ee6aa634325ba3">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
80
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html_a904591799ce401e8d3ee6aa634325ba3"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#a904591799ce401e8d3ee6aa634325ba3">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00693">SVFStatements.h:693</a></div></div>
|
|
80
81
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a2bdfa37167b5496629e5cae62705d5f2"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2">SVF::SVFStmt::PAGEdgeSetTy</a></div><div class="ttdeci">SVFStmtSetTy PAGEdgeSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00180">SVFStatements.h:180</a></div></div>
|
|
81
82
|
<div class="ttc" id="classSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00529">SVFStatements.h:529</a></div></div>
|
|
82
83
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVF::SVFStmt::UnaryOp</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
83
|
-
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a0441f2646fed28830439c41a0704ed4b"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">SVF::MultiOpndStmt::getOpndVars</a></div><div class="ttdeci">const OPVars & getOpndVars() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
84
|
+
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a0441f2646fed28830439c41a0704ed4b"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">SVF::MultiOpndStmt::getOpndVars</a></div><div class="ttdeci">const OPVars & getOpndVars() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00649">SVFStatements.h:649</a></div></div>
|
|
84
85
|
<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>
|
|
85
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_adcf5cabe6e0a87cded5ef1fdf7273f3f"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f">SVF::BranchStmt::cond</a></div><div class="ttdeci">const SVFVar * cond</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
86
|
-
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_af29723d5e777b10d53d48263a786f5b6"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6">SVF::UnaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
86
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_adcf5cabe6e0a87cded5ef1fdf7273f3f"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f">SVF::BranchStmt::cond</a></div><div class="ttdeci">const SVFVar * cond</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00934">SVFStatements.h:934</a></div></div>
|
|
87
|
+
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_af29723d5e777b10d53d48263a786f5b6"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6">SVF::UnaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00900">SVFStatements.h:900</a></div></div>
|
|
87
88
|
<div class="ttc" id="classSVF_1_1LoadStmt_html_ab30f370a8a2a3e63765c1e4843f07826"><div class="ttname"><a href="classSVF_1_1LoadStmt.html#ab30f370a8a2a3e63765c1e4843f07826">SVF::LoadStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00391">SVFStatements.h:391</a></div></div>
|
|
88
89
|
<div class="ttc" id="classSVF_1_1GepStmt_html_a37811e62495493454405cb33e4a2b904"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a37811e62495493454405cb33e4a2b904">SVF::GepStmt::getOffsetValueVec</a></div><div class="ttdeci">const LocationSet::OffsetValueVec & getOffsetValueVec() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00440">SVFStatements.h:440</a></div></div>
|
|
90
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html_aa9d3eeb27fee7084bcd2921c98be1bd1"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#aa9d3eeb27fee7084bcd2921c98be1bd1">SVF::SelectStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00748">SVFStatements.h:748</a></div></div>
|
|
91
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html_ac2374acf4477a4bc5d188797ea9baaf3"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ac2374acf4477a4bc5d188797ea9baaf3">SVF::PhiStmt::PhiStmt</a></div><div class="ttdeci">PhiStmt(SVFVar *s, const OPVars &opnds, const OpICFGNodeVec &icfgNodes)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00700">SVFStatements.h:700</a></div></div>
|
|
89
92
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVF::SVFStmt::Gep</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
90
93
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVF::SVFStmt::Phi</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
91
94
|
<div class="ttc" id="classSVF_1_1AddrStmt_html_a32e129c9f7aa16be8c5c8569989f691f"><div class="ttname"><a href="classSVF_1_1AddrStmt.html#a32e129c9f7aa16be8c5c8569989f691f">SVF::AddrStmt::classof</a></div><div class="ttdeci">static bool classof(const AddrStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00276">SVFStatements.h:276</a></div></div>
|
|
92
95
|
<div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00077">BasicTypes.h:77</a></div></div>
|
|
93
96
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVF::SVFStmt::Load</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
94
97
|
<div class="ttc" id="namespaceSVF_html_a424cc053c29ad7303699c529d1a2cc71"><div class="ttname"><a href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">SVF::raw_ostream</a></div><div class="ttdeci">llvm::raw_ostream raw_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00099">BasicTypes.h:99</a></div></div>
|
|
95
|
-
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_a7cae2a90a33225c90eb035cf9e663d3d"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a7cae2a90a33225c90eb035cf9e663d3d">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
98
|
+
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_a7cae2a90a33225c90eb035cf9e663d3d"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a7cae2a90a33225c90eb035cf9e663d3d">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00840">SVFStatements.h:840</a></div></div>
|
|
96
99
|
<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>
|
|
97
100
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
98
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_ac486fb3a118e6153892b998b0ef46890"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#ac486fb3a118e6153892b998b0ef46890">SVF::BranchStmt::SuccAndCondPairVec</a></div><div class="ttdeci">std::vector< std::pair< const ICFGNode *, s64_t > > SuccAndCondPairVec</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
101
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_ac486fb3a118e6153892b998b0ef46890"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#ac486fb3a118e6153892b998b0ef46890">SVF::BranchStmt::SuccAndCondPairVec</a></div><div class="ttdeci">std::vector< std::pair< const ICFGNode *, s64_t > > SuccAndCondPairVec</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00923">SVFStatements.h:923</a></div></div>
|
|
99
102
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_aa809a57c8cdaaa35dfc3cc0f3b33b52b"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#aa809a57c8cdaaa35dfc3cc0f3b33b52b">SVF::SVFStmt::getICFGNode</a></div><div class="ttdeci">ICFGNode * getICFGNode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00131">SVFStatements.h:131</a></div></div>
|
|
100
103
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVF::SVFStmt::PEDGEK</a></div><div class="ttdeci">PEDGEK</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00054">SVFStatements.h:54</a></div></div>
|
|
101
104
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a53b7e0d8666e37c23dc2c7d0fc931f27"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27">SVF::SVFStmt::storeEdgeLabelCounter</a></div><div class="ttdeci">static u64_t storeEdgeLabelCounter</div><div class="ttdoc">Store Instruction counter. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00188">SVFStatements.h:188</a></div></div>
|
|
102
|
-
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a00a14ad8f49912b876fd9d729fea4601"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601">SVF::MultiOpndStmt::getRes</a></div><div class="ttdeci">const SVFVar * getRes() const</div><div class="ttdoc">Result SVFVar. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
103
|
-
<div class="ttc" id="
|
|
105
|
+
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a00a14ad8f49912b876fd9d729fea4601"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601">SVF::MultiOpndStmt::getRes</a></div><div class="ttdeci">const SVFVar * getRes() const</div><div class="ttdoc">Result SVFVar. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00628">SVFStatements.h:628</a></div></div>
|
|
106
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html_ae654d9036e291e723a3f1f7eab5b018b"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#ae654d9036e291e723a3f1f7eab5b018b">SVF::SelectStmt::SelectStmt</a></div><div class="ttdeci">SelectStmt(SVFVar *s, const OPVars &opnds, const SVFVar *cond)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00755">SVFStatements.h:755</a></div></div>
|
|
107
|
+
<div class="ttc" id="classSVF_1_1TDJoinPE_html_a22303af690086961b8d2356b345f882b"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#a22303af690086961b8d2356b345f882b">SVF::TDJoinPE::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01056">SVFStatements.h:1056</a></div></div>
|
|
104
108
|
<div class="ttc" id="classSVF_1_1LocationSet_html_a9bb7e08f7cfb2859d25b0e68e21fec89"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a9bb7e08f7cfb2859d25b0e68e21fec89">SVF::LocationSet::OffsetValueVec</a></div><div class="ttdeci">std::vector< std::pair< const Value *, const Type * > > OffsetValueVec</div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00081">LocationSet.h:81</a></div></div>
|
|
105
109
|
<div class="ttc" id="classSVF_1_1AssignStmt_html_a973a2b79da223275ed6a1831837b89c7"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a973a2b79da223275ed6a1831837b89c7">SVF::AssignStmt::getLHSVar</a></div><div class="ttdeci">SVFVar * getLHSVar() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00250">SVFStatements.h:250</a></div></div>
|
|
110
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html_af64d7855e352a0afb5d2e98a8622a4ad"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">SVF::SelectStmt::getFalseValue</a></div><div class="ttdeci">const SVFVar * getFalseValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00767">SVFStatements.h:767</a></div></div>
|
|
106
111
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVF::SVFStmt::Cmp</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
107
112
|
<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>
|
|
108
113
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a24227d7f1dd472f47bf94cb5db8505c4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4">SVF::SVFStmt::callEdgeLabelCounter</a></div><div class="ttdeci">static u64_t callEdgeLabelCounter</div><div class="ttdoc">Call site Instruction counter. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00187">SVFStatements.h:187</a></div></div>
|
|
109
114
|
<div class="ttc" id="classSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00409">SVFStatements.h:409</a></div></div>
|
|
110
115
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a5a3db6b1335b4adc55b961a6f480f228"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a5a3db6b1335b4adc55b961a6f480f228">SVF::SVFStmt::Inst2LabelMap</a></div><div class="ttdeci">Map< const ICFGNode *, u32_t > Inst2LabelMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00183">SVFStatements.h:183</a></div></div>
|
|
111
116
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a65ee8b43a3a4999eb112a197d1a9f882"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">SVF::SVFStmt::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00115">SVFStatements.h:115</a></div></div>
|
|
112
|
-
<div class="ttc" id="classSVF_1_1CmpStmt_html_aa6a21fb1cfbc263bb38651176c495632"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">SVF::CmpStmt::getPredicate</a></div><div class="ttdeci">u32_t getPredicate() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
117
|
+
<div class="ttc" id="classSVF_1_1CmpStmt_html_aa6a21fb1cfbc263bb38651176c495632"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">SVF::CmpStmt::getPredicate</a></div><div class="ttdeci">u32_t getPredicate() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00809">SVFStatements.h:809</a></div></div>
|
|
113
118
|
<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>
|
|
114
119
|
<div class="ttc" id="classSVF_1_1StoreStmt_html_ab71bf959fce0e702556dd753636298b2"><div class="ttname"><a href="classSVF_1_1StoreStmt.html#ab71bf959fce0e702556dd753636298b2">SVF::StoreStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00354">SVFStatements.h:354</a></div></div>
|
|
115
120
|
<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>
|
|
116
121
|
<div class="ttc" id="classSVF_1_1CopyStmt_html_a12e960569a9f4beae99195a0fe2d3b68"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#a12e960569a9f4beae99195a0fe2d3b68">SVF::CopyStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00319">SVFStatements.h:319</a></div></div>
|
|
117
122
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a4513c6e66b46c36219ba6d7403f3eb00"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">SVF::SVFStmt::makeEdgeFlagWithCallInst</a></div><div class="ttdeci">static GEdgeFlag makeEdgeFlagWithCallInst(GEdgeKind k, const ICFGNode *cs)</div><div class="ttdoc">Compute the unique edgeFlag value from edge kind and call site Instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00147">SVFStatements.h:147</a></div></div>
|
|
118
|
-
<div class="ttc" id="
|
|
119
|
-
<div class="ttc" id="
|
|
123
|
+
<div class="ttc" id="classSVF_1_1TDJoinPE_html_ace17257476d0ee089a9f9cb8dc63e3f2"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#ace17257476d0ee089a9f9cb8dc63e3f2">SVF::TDJoinPE::classof</a></div><div class="ttdeci">static bool classof(const TDJoinPE *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01048">SVFStatements.h:1048</a></div></div>
|
|
124
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html_a4c75a8f8430621aaec62a5189db136b5"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#a4c75a8f8430621aaec62a5189db136b5">SVF::PhiStmt::opICFGNodes</a></div><div class="ttdeci">OpICFGNodeVec opICFGNodes</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00677">SVFStatements.h:677</a></div></div>
|
|
120
125
|
<div class="ttc" id="classSVF_1_1AssignStmt_html_a4cec89489e82c60c287cae3327f3f01d"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">SVF::AssignStmt::getRHSVarID</a></div><div class="ttdeci">NodeID getRHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00253">SVFStatements.h:253</a></div></div>
|
|
121
126
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a8cd7b6c6fd8b030b1421d95a086359f4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVF::SVFStmt::SVFStmtSetTy</a></div><div class="ttdeci">GenericNode< SVFVar, SVFStmt >::GEdgeSetTy SVFStmtSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00177">SVFStatements.h:177</a></div></div>
|
|
122
127
|
<div class="ttc" id="classSVF_1_1RetPE_html_afed855f9ee0dfddc4808672ae32263b2"><div class="ttname"><a href="classSVF_1_1RetPE.html#afed855f9ee0dfddc4808672ae32263b2">SVF::RetPE::RetPE</a></div><div class="ttdeci">RetPE(SVFVar *s, SVFVar *d, const CallICFGNode *i, GEdgeKind k=SVFStmt::Ret)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00557">SVFStatements.h:557</a></div></div>
|
|
123
128
|
<div class="ttc" id="classSVF_1_1AddrStmt_html_a6876ffc2c97c5ba64155891b55a7884c"><div class="ttname"><a href="classSVF_1_1AddrStmt.html#a6876ffc2c97c5ba64155891b55a7884c">SVF::AddrStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00284">SVFStatements.h:284</a></div></div>
|
|
124
129
|
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a172025849492f4de8f87564ef08f5880"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880">SVF::MultiOpndStmt::opVars</a></div><div class="ttdeci">OPVars opVars</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00593">SVFStatements.h:593</a></div></div>
|
|
125
|
-
<div class="ttc" id="classSVF_1_1TDForkPE_html_a79317f2ac92ace129a1ccf802406498d"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#a79317f2ac92ace129a1ccf802406498d">SVF::TDForkPE::classof</a></div><div class="ttdeci">static bool classof(const TDForkPE *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
130
|
+
<div class="ttc" id="classSVF_1_1TDForkPE_html_a79317f2ac92ace129a1ccf802406498d"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#a79317f2ac92ace129a1ccf802406498d">SVF::TDForkPE::classof</a></div><div class="ttdeci">static bool classof(const TDForkPE *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01010">SVFStatements.h:1010</a></div></div>
|
|
126
131
|
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_aa0d9a26d3ad17432505b1f5bb36368d9"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#aa0d9a26d3ad17432505b1f5bb36368d9">SVF::MultiOpndStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00601">SVFStatements.h:601</a></div></div>
|
|
127
132
|
<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>
|
|
128
133
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_ad0b4dbe87e009518f22360c48b0d0c22"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">SVF::SVFStmt::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00061">SVFStatements.cpp:61</a></div></div>
|
|
129
134
|
<div class="ttc" id="classSVF_1_1GepStmt_html_a33b3b9ef0cf7e2ea6400aef74a399adf"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a33b3b9ef0cf7e2ea6400aef74a399adf">SVF::GepStmt::accumulateConstantOffset</a></div><div class="ttdeci">s64_t accumulateConstantOffset() const</div><div class="ttdoc">Return accumulated constant offset (when accessing array or struct) if this offset is a constant...</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00449">SVFStatements.h:449</a></div></div>
|
|
130
|
-
<div class="ttc" id="classSVF_1_1TDForkPE_html_a68f16df5a9b44dd2492c33fb0a1b5f0c"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#a68f16df5a9b44dd2492c33fb0a1b5f0c">SVF::TDForkPE::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
135
|
+
<div class="ttc" id="classSVF_1_1TDForkPE_html_a68f16df5a9b44dd2492c33fb0a1b5f0c"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#a68f16df5a9b44dd2492c33fb0a1b5f0c">SVF::TDForkPE::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01014">SVFStatements.h:1014</a></div></div>
|
|
131
136
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a00339663741d9f581d2f3ecae5a3e7e3"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a00339663741d9f581d2f3ecae5a3e7e3">SVF::SVFStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00080">SVFStatements.h:80</a></div></div>
|
|
132
137
|
<div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00100">SVFBasicTypes.h:100</a></div></div>
|
|
133
138
|
<div class="ttc" id="classSVF_1_1RetPE_html_a9bbf558ffc8e3c1136e20d18d4c95f42"><div class="ttname"><a href="classSVF_1_1RetPE.html#a9bbf558ffc8e3c1136e20d18d4c95f42">SVF::RetPE::getCallInst</a></div><div class="ttdeci">const CallICFGNode * getCallInst() const</div><div class="ttdoc">Get method for call instruction at caller. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00564">SVFStatements.h:564</a></div></div>
|
|
134
139
|
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html">SVF::MultiOpndStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00580">SVFStatements.h:580</a></div></div>
|
|
135
140
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_abb83549118bcd7216a053d82f7180d1c"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">SVF::SVFStmt::inst2LabelMap</a></div><div class="ttdeci">static Inst2LabelMap inst2LabelMap</div><div class="ttdoc">Call site Instruction to label map. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00185">SVFStatements.h:185</a></div></div>
|
|
141
|
+
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_af3c4989a458a1e5f7a5e0ba8e5c8b6ae"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#af3c4989a458a1e5f7a5e0ba8e5c8b6ae">SVF::MultiOpndStmt::getOpPos</a></div><div class="ttdeci">const u32_t getOpPos(const SVFVar *op) const</div><div class="ttdoc">Return the position of this op. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00633">SVFStatements.h:633</a></div></div>
|
|
136
142
|
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_aad0c81aeb48e5d94dd8c60d87b41714c"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#aad0c81aeb48e5d94dd8c60d87b41714c">SVF::MultiOpndStmt::MultiOpndStmt</a></div><div class="ttdeci">MultiOpndStmt(SVFVar *r, const OPVars &opnds, GEdgeFlag k)</div><div class="ttdoc">Constructor, only used by subclassess but not external users. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00595">SVFStatements.h:595</a></div></div>
|
|
137
143
|
<div class="ttc" id="classSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
|
|
144
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html_ad4c3e9529176478bb726279a76050e8c"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">SVF::SelectStmt::getCondition</a></div><div class="ttdeci">const SVFVar * getCondition() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00761">SVFStatements.h:761</a></div></div>
|
|
138
145
|
<div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00075">SVFBasicTypes.h:75</a></div></div>
|
|
139
146
|
<div class="ttc" id="namespaceSVF_html_abe09d99af006554a5c00803e9a89f9a6"><div class="ttname"><a href="namespaceSVF.html#abe09d99af006554a5c00803e9a89f9a6">SVF::s64_t</a></div><div class="ttdeci">signed s64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00078">SVFBasicTypes.h:78</a></div></div>
|
|
140
147
|
<div class="ttc" id="classSVF_1_1CallPE_html_aa50cca8bd91ffb135a7998b58ad7966f"><div class="ttname"><a href="classSVF_1_1CallPE.html#aa50cca8bd91ffb135a7998b58ad7966f">SVF::CallPE::getCallInst</a></div><div class="ttdeci">const CallICFGNode * getCallInst() const</div><div class="ttdoc">Get method for the call instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00512">SVFStatements.h:512</a></div></div>
|
|
141
|
-
<div class="ttc" id="classSVF_1_1TDJoinPE_html"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html">SVF::TDJoinPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
148
|
+
<div class="ttc" id="classSVF_1_1TDJoinPE_html"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html">SVF::TDJoinPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01038">SVFStatements.h:1038</a></div></div>
|
|
142
149
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_ac517a3166a3afe45d04480534ac3bb50"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#ac517a3166a3afe45d04480534ac3bb50">SVF::SVFStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *)</div><div class="ttdoc">ClassOf. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00076">SVFStatements.h:76</a></div></div>
|
|
143
150
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a93fc6c4c991931c78c48500c2db50f66"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66">SVF::SVFStmt::KindToSVFStmtMapTy</a></div><div class="ttdeci">PAGEdgeToSetMapTy KindToSVFStmtMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00179">SVFStatements.h:179</a></div></div>
|
|
144
151
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a9ea22adbfc307dddee42ffec07cc88ed"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed">SVF::SVFStmt::multiOpndLabelCounter</a></div><div class="ttdeci">static u64_t multiOpndLabelCounter</div><div class="ttdoc">MultiOpndStmt counter. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00189">SVFStatements.h:189</a></div></div>
|
|
145
|
-
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a919db9b8c9287c3802f563840b56c4f1"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a919db9b8c9287c3802f563840b56c4f1">SVF::UnaryOPStmt::getRes</a></div><div class="ttdeci">const SVFVar * getRes() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
152
|
+
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a919db9b8c9287c3802f563840b56c4f1"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a919db9b8c9287c3802f563840b56c4f1">SVF::UnaryOPStmt::getRes</a></div><div class="ttdeci">const SVFVar * getRes() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00907">SVFStatements.h:907</a></div></div>
|
|
146
153
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a24c64109d27ef7549d1c7a07c391e007"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">SVF::SVFStmt::var2LabelMap</a></div><div class="ttdeci">static Var2LabelMap var2LabelMap</div><div class="ttdoc">Second operand of MultiOpndStmt to label map. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00186">SVFStatements.h:186</a></div></div>
|
|
147
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_a40854cd95fbae16ef8e370255d0e3cf5"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a40854cd95fbae16ef8e370255d0e3cf5">SVF::BranchStmt::successors</a></div><div class="ttdeci">SuccAndCondPairVec successors</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
154
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a40854cd95fbae16ef8e370255d0e3cf5"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a40854cd95fbae16ef8e370255d0e3cf5">SVF::BranchStmt::successors</a></div><div class="ttdeci">SuccAndCondPairVec successors</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00933">SVFStatements.h:933</a></div></div>
|
|
148
155
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVF::SVFStmt::Copy</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
149
156
|
<div class="ttc" id="classSVF_1_1GenericEdge_html"><div class="ttname"><a href="classSVF_1_1GenericEdge.html">SVF::GenericEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00042">GenericGraph.h:42</a></div></div>
|
|
150
157
|
<div class="ttc" id="classSVF_1_1RetPE_html_a43c6965616d67e77087b486265139d21"><div class="ttname"><a href="classSVF_1_1RetPE.html#a43c6965616d67e77087b486265139d21">SVF::RetPE::classof</a></div><div class="ttdeci">static bool classof(const RetPE *)</div><div class="ttdoc">the callsite instruction return to </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00540">SVFStatements.h:540</a></div></div>
|
|
151
158
|
<div class="ttc" id="classSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00477">SVFStatements.h:477</a></div></div>
|
|
152
|
-
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html">SVF::UnaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
159
|
+
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html">SVF::UnaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00866">SVFStatements.h:866</a></div></div>
|
|
153
160
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVF::SVFStmt::Ret</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
154
161
|
<div class="ttc" id="classSVF_1_1RetPE_html_ab03f10c0375846a733f3257736a84f9d"><div class="ttname"><a href="classSVF_1_1RetPE.html#ab03f10c0375846a733f3257736a84f9d">SVF::RetPE::getCallSite</a></div><div class="ttdeci">const CallICFGNode * getCallSite() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00568">SVFStatements.h:568</a></div></div>
|
|
155
162
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_af1a9c2a18805560e46425bd98a35dea9"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#af1a9c2a18805560e46425bd98a35dea9">SVF::SVFStmt::totalEdgeNum</a></div><div class="ttdeci">static u32_t totalEdgeNum</div><div class="ttdoc">Total edge number. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00065">SVFStatements.h:65</a></div></div>
|
|
156
|
-
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_ad0a7c5e87355d7a83176343322db448f"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">SVF::BinaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
163
|
+
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_ad0a7c5e87355d7a83176343322db448f"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">SVF::BinaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00855">SVFStatements.h:855</a></div></div>
|
|
157
164
|
<div class="ttc" id="classSVF_1_1CopyStmt_html_a253c81c922bef6e2d520262c2f7793c4"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#a253c81c922bef6e2d520262c2f7793c4">SVF::CopyStmt::classof</a></div><div class="ttdeci">static bool classof(const CopyStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00311">SVFStatements.h:311</a></div></div>
|
|
158
165
|
<div class="ttc" id="classSVF_1_1StoreStmt_html_ae3c219e8af92e222f55c930009db6e67"><div class="ttname"><a href="classSVF_1_1StoreStmt.html#ae3c219e8af92e222f55c930009db6e67">SVF::StoreStmt::classof</a></div><div class="ttdeci">static bool classof(const StoreStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00346">SVFStatements.h:346</a></div></div>
|
|
159
166
|
<div class="ttc" id="classSVF_1_1GepStmt_html_ac47064e21e2afdf7bd85c6acba44367f"><div class="ttname"><a href="classSVF_1_1GepStmt.html#ac47064e21e2afdf7bd85c6acba44367f">SVF::GepStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00429">SVFStatements.h:429</a></div></div>
|
|
160
|
-
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_abebed8985cb4d4d1361c42e5454c90b9"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9">SVF::MultiOpndStmt::opVarBegin</a></div><div class="ttdeci">OPVars::const_iterator opVarBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
167
|
+
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_abebed8985cb4d4d1361c42e5454c90b9"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9">SVF::MultiOpndStmt::opVarBegin</a></div><div class="ttdeci">OPVars::const_iterator opVarBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00652">SVFStatements.h:652</a></div></div>
|
|
161
168
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_ad75e4c84f7d37824eb096aacca930ead"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#ad75e4c84f7d37824eb096aacca930ead">SVF::SVFStmt::operator<<</a></div><div class="ttdeci">friend raw_ostream & operator<<(raw_ostream &o, const SVFStmt &edge)</div><div class="ttdoc">Overloading operator << for dumping SVFVar value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00170">SVFStatements.h:170</a></div></div>
|
|
162
169
|
<div class="ttc" id="classSVF_1_1RetPE_html_a028363b55fa19897a93f1c78ec905723"><div class="ttname"><a href="classSVF_1_1RetPE.html#a028363b55fa19897a93f1c78ec905723">SVF::RetPE::inst</a></div><div class="ttdeci">const CallICFGNode * inst</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00536">SVFStatements.h:536</a></div></div>
|
|
163
170
|
<div class="ttc" id="classSVF_1_1GepStmt_html_a441cd8487b320ceff9d62884b4f28176"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a441cd8487b320ceff9d62884b4f28176">SVF::GepStmt::classof</a></div><div class="ttdeci">static bool classof(const GepStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00421">SVFStatements.h:421</a></div></div>
|
|
164
171
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">SVF::SVFStmt::Branch</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
165
172
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a6a689f62af301bd6ac09d7019aba1c17"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">SVF::SVFStmt::value</a></div><div class="ttdeci">const Value * value</div><div class="ttdoc">LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00060">SVFStatements.h:60</a></div></div>
|
|
166
|
-
<div class="ttc" id="
|
|
173
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html_a89f27a20f9c2acc66c4c6152e79ee30e"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a89f27a20f9c2acc66c4c6152e79ee30e">SVF::SelectStmt::classof</a></div><div class="ttdeci">static bool classof(const SelectStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00736">SVFStatements.h:736</a></div></div>
|
|
174
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a7d9a6ebb2d95942c453864b5327b1ae8"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">SVF::BranchStmt::getSuccessor</a></div><div class="ttdeci">const ICFGNode * getSuccessor(u32_t i) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00986">SVFStatements.h:986</a></div></div>
|
|
167
175
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a229c78147511f2a581c761552179b6fa"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa">SVF::SVFStmt::PAGEdgeToSetMapTy</a></div><div class="ttdeci">Map< EdgeID, SVFStmtSetTy > PAGEdgeToSetMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00178">SVFStatements.h:178</a></div></div>
|
|
168
|
-
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_abb10688145fa76629916ec3df61b6c95"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#abb10688145fa76629916ec3df61b6c95">SVF::UnaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const UnaryOPStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
176
|
+
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_abb10688145fa76629916ec3df61b6c95"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#abb10688145fa76629916ec3df61b6c95">SVF::UnaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const UnaryOPStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00881">SVFStatements.h:881</a></div></div>
|
|
169
177
|
<div class="ttc" id="classSVF_1_1GenericNode_html_a03c6da4a73c47f84f5c5b47252bc339a"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a03c6da4a73c47f84f5c5b47252bc339a">SVF::GenericNode::GEdgeSetTy</a></div><div class="ttdeci">OrderedSet< EdgeType *, typename EdgeType::equalGEdge > GEdgeSetTy</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00136">GenericGraph.h:136</a></div></div>
|
|
170
|
-
<div class="ttc" id="classSVF_1_1CmpStmt_html_a679ec89e3fa17a17dcc8fafeb30d3a61"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a679ec89e3fa17a17dcc8fafeb30d3a61">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
178
|
+
<div class="ttc" id="classSVF_1_1CmpStmt_html_a679ec89e3fa17a17dcc8fafeb30d3a61"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a679ec89e3fa17a17dcc8fafeb30d3a61">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00794">SVFStatements.h:794</a></div></div>
|
|
171
179
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
|
|
172
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_a33887345c00ffda9ca7dca59d61e184a"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a33887345c00ffda9ca7dca59d61e184a">SVF::BranchStmt::brInst</a></div><div class="ttdeci">const SVFVar * brInst</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
180
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a33887345c00ffda9ca7dca59d61e184a"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a33887345c00ffda9ca7dca59d61e184a">SVF::BranchStmt::brInst</a></div><div class="ttdeci">const SVFVar * brInst</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00935">SVFStatements.h:935</a></div></div>
|
|
173
181
|
<div class="ttc" id="classSVF_1_1AddrStmt_html_aeec83dc4e79ee62c92c75aa778a475ad"><div class="ttname"><a href="classSVF_1_1AddrStmt.html#aeec83dc4e79ee62c92c75aa778a475ad">SVF::AddrStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00280">SVFStatements.h:280</a></div></div>
|
|
174
|
-
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_abde2b32d5bbd37df0e194b1a4e78483b"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#abde2b32d5bbd37df0e194b1a4e78483b">SVF::UnaryOPStmt::getOpVar</a></div><div class="ttdeci">const SVFVar * getOpVar() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
182
|
+
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_abde2b32d5bbd37df0e194b1a4e78483b"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#abde2b32d5bbd37df0e194b1a4e78483b">SVF::UnaryOPStmt::getOpVar</a></div><div class="ttdeci">const SVFVar * getOpVar() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00904">SVFStatements.h:904</a></div></div>
|
|
175
183
|
<div class="ttc" id="namespaceSVF_html_ab502ff5e204678640c1081d104f60971"><div class="ttname"><a href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971">SVF::GenericPAGEdgeTy</a></div><div class="ttdeci">GenericEdge< SVFVar > GenericPAGEdgeTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00041">SVFStatements.h:41</a></div></div>
|
|
176
184
|
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00079">BasicTypes.h:79</a></div></div>
|
|
177
185
|
<div class="ttc" id="GenericGraph_8h_html"><div class="ttname"><a href="GenericGraph_8h.html">GenericGraph.h</a></div></div>
|
|
178
186
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a852730edf374d18a3fb3985211ed7623"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a852730edf374d18a3fb3985211ed7623">SVF::SVFStmt::setBB</a></div><div class="ttdeci">void setBB(const BasicBlock *bb)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00119">SVFStatements.h:119</a></div></div>
|
|
179
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_adf97a239f15b635580cef475980e8d82"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#adf97a239f15b635580cef475980e8d82">SVF::BranchStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
187
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_adf97a239f15b635580cef475980e8d82"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#adf97a239f15b635580cef475980e8d82">SVF::BranchStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00948">SVFStatements.h:948</a></div></div>
|
|
180
188
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_aab8892b73370c32b48621cd1d0cce614"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">SVF::GenericEdge::GEdgeFlag</a></div><div class="ttdeci">u64_t GEdgeFlag</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00052">GenericGraph.h:52</a></div></div>
|
|
189
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html_a2d6e9d7131bc69a0e88b703c2c03d7e2"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a2d6e9d7131bc69a0e88b703c2c03d7e2">SVF::SelectStmt::condition</a></div><div class="ttdeci">const SVFVar * condition</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00732">SVFStatements.h:732</a></div></div>
|
|
190
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html_a0b73ca0dedc4b7c718585577424fa0ce"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a0b73ca0dedc4b7c718585577424fa0ce">SVF::SelectStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00744">SVFStatements.h:744</a></div></div>
|
|
181
191
|
<div class="ttc" id="classSVF_1_1AssignStmt_html"><div class="ttname"><a href="classSVF_1_1AssignStmt.html">SVF::AssignStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00197">SVFStatements.h:197</a></div></div>
|
|
182
|
-
<div class="ttc" id="classSVF_1_1TDForkPE_html_ae84750b6511817b2db33d11c59d0f5bc"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#ae84750b6511817b2db33d11c59d0f5bc">SVF::TDForkPE::TDForkPE</a></div><div class="ttdeci">TDForkPE(SVFVar *s, SVFVar *d, const CallICFGNode *i)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
183
|
-
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_ab5a0f41455474643e8dd97aaab0aaab5"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ab5a0f41455474643e8dd97aaab0aaab5">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const BinaryOPStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
192
|
+
<div class="ttc" id="classSVF_1_1TDForkPE_html_ae84750b6511817b2db33d11c59d0f5bc"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#ae84750b6511817b2db33d11c59d0f5bc">SVF::TDForkPE::TDForkPE</a></div><div class="ttdeci">TDForkPE(SVFVar *s, SVFVar *d, const CallICFGNode *i)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01025">SVFStatements.h:1025</a></div></div>
|
|
193
|
+
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_ab5a0f41455474643e8dd97aaab0aaab5"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ab5a0f41455474643e8dd97aaab0aaab5">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const BinaryOPStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00832">SVFStatements.h:832</a></div></div>
|
|
184
194
|
<div class="ttc" id="classSVF_1_1LoadStmt_html_a92c5817abfaa1f6fbc9ee911f458dfb2"><div class="ttname"><a href="classSVF_1_1LoadStmt.html#a92c5817abfaa1f6fbc9ee911f458dfb2">SVF::LoadStmt::LoadStmt</a></div><div class="ttdeci">LoadStmt(SVFVar *s, SVFVar *d)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00398">SVFStatements.h:398</a></div></div>
|
|
185
195
|
<div class="ttc" id="classSVF_1_1LoadStmt_html_a03d6f1ee2f52b34d905b204eb53d6560"><div class="ttname"><a href="classSVF_1_1LoadStmt.html#a03d6f1ee2f52b34d905b204eb53d6560">SVF::LoadStmt::classof</a></div><div class="ttdeci">static bool classof(const LoadStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00383">SVFStatements.h:383</a></div></div>
|
|
186
196
|
<div class="ttc" id="classSVF_1_1RetPE_html_a9cd78a723ed55ed6f334a329576a7471"><div class="ttname"><a href="classSVF_1_1RetPE.html#a9cd78a723ed55ed6f334a329576a7471">SVF::RetPE::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00544">SVFStatements.h:544</a></div></div>
|
|
187
197
|
<div class="ttc" id="classSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00373">SVFStatements.h:373</a></div></div>
|
|
188
198
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a3b20523aed66ac8943d7d00ff777137b"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b">SVF::SVFStmt::makeEdgeFlagWithAddionalOpnd</a></div><div class="ttdeci">static GEdgeFlag makeEdgeFlagWithAddionalOpnd(GEdgeKind k, const SVFVar *var)</div><div class="ttdoc">Compute the unique edgeFlag value from edge kind and second variable operand for MultiOpndStmt. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00138">SVFStatements.h:138</a></div></div>
|
|
189
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html"><div class="ttname"><a href="classSVF_1_1BranchStmt.html">SVF::BranchStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
190
|
-
<div class="ttc" id="classSVF_1_1CmpStmt_html_adec661dd23b7806b35abba2d44aebc61"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#adec661dd23b7806b35abba2d44aebc61">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const CmpStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
191
|
-
<div class="ttc" id="classSVF_1_1PhiStmt_html_ae547394a731d29b44565d3e56a326354"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ae547394a731d29b44565d3e56a326354">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
192
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_a93040c884df211ac62d53ceafdd9c4dd"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a93040c884df211ac62d53ceafdd9c4dd">SVF::BranchStmt::getSuccessors</a></div><div class="ttdeci">const SuccAndCondPairVec & getSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
193
|
-
<div class="ttc" id="classSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
194
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_a2c6fe09027838f9e0ad9ab8193ce8e9b"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a2c6fe09027838f9e0ad9ab8193ce8e9b">SVF::BranchStmt::getBranchInst</a></div><div class="ttdeci">const SVFVar * getBranchInst() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
199
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html"><div class="ttname"><a href="classSVF_1_1BranchStmt.html">SVF::BranchStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00920">SVFStatements.h:920</a></div></div>
|
|
200
|
+
<div class="ttc" id="classSVF_1_1CmpStmt_html_adec661dd23b7806b35abba2d44aebc61"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#adec661dd23b7806b35abba2d44aebc61">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const CmpStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00786">SVFStatements.h:786</a></div></div>
|
|
201
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html_ae547394a731d29b44565d3e56a326354"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ae547394a731d29b44565d3e56a326354">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00689">SVFStatements.h:689</a></div></div>
|
|
202
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a93040c884df211ac62d53ceafdd9c4dd"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a93040c884df211ac62d53ceafdd9c4dd">SVF::BranchStmt::getSuccessors</a></div><div class="ttdeci">const SuccAndCondPairVec & getSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00983">SVFStatements.h:983</a></div></div>
|
|
203
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00667">SVFStatements.h:667</a></div></div>
|
|
204
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a2c6fe09027838f9e0ad9ab8193ce8e9b"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a2c6fe09027838f9e0ad9ab8193ce8e9b">SVF::BranchStmt::getBranchInst</a></div><div class="ttdeci">const SVFVar * getBranchInst() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00965">SVFStatements.h:965</a></div></div>
|
|
195
205
|
<div class="ttc" id="classSVF_1_1CopyStmt_html_a69b179ef052408034786d32a52c52389"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#a69b179ef052408034786d32a52c52389">SVF::CopyStmt::CopyStmt</a></div><div class="ttdeci">CopyStmt(SVFVar *s, SVFVar *d)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00326">SVFStatements.h:326</a></div></div>
|
|
196
|
-
<div class="ttc" id="classSVF_1_1CmpStmt_html_a26fc263da6ab3fee40a335d367419328"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a26fc263da6ab3fee40a335d367419328">SVF::CmpStmt::predicate</a></div><div class="ttdeci">u32_t predicate</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
197
|
-
<div class="ttc" id="classSVF_1_1PhiStmt_html_ae20d273a8afe603395b6621f04e6cb65"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ae20d273a8afe603395b6621f04e6cb65">SVF::PhiStmt::addOpVar</a></div><div class="ttdeci">void addOpVar(SVFVar *op)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00688">SVFStatements.h:688</a></div></div>
|
|
206
|
+
<div class="ttc" id="classSVF_1_1CmpStmt_html_a26fc263da6ab3fee40a335d367419328"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a26fc263da6ab3fee40a335d367419328">SVF::CmpStmt::predicate</a></div><div class="ttdeci">u32_t predicate</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00782">SVFStatements.h:782</a></div></div>
|
|
198
207
|
<div class="ttc" id="classSVF_1_1AssignStmt_html_a98f731be7be9bc8e7fd09f5c2204c840"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">SVF::AssignStmt::getLHSVarID</a></div><div class="ttdeci">NodeID getLHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00256">SVFStatements.h:256</a></div></div>
|
|
199
208
|
<div class="ttc" id="classSVF_1_1StoreStmt_html_a31f69e402887eff60e2055799ed561b9"><div class="ttname"><a href="classSVF_1_1StoreStmt.html#a31f69e402887eff60e2055799ed561b9">SVF::StoreStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00350">SVFStatements.h:350</a></div></div>
|
|
209
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html_af7e57da55f80c53a6f483976202e4c5c"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#af7e57da55f80c53a6f483976202e4c5c">SVF::PhiStmt::getOpICFGNode</a></div><div class="ttdeci">const ICFGNode * getOpICFGNode(const SVFVar *op) const</div><div class="ttdoc">Return the corresponding ICFGNode of this operand. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00711">SVFStatements.h:711</a></div></div>
|
|
200
210
|
<div class="ttc" id="classSVF_1_1LoadStmt_html_ac252b1e9b7c01108d1aff602fbe1ef40"><div class="ttname"><a href="classSVF_1_1LoadStmt.html#ac252b1e9b7c01108d1aff602fbe1ef40">SVF::LoadStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00387">SVFStatements.h:387</a></div></div>
|
|
201
211
|
<div class="ttc" id="classSVF_1_1GepStmt_html_adf6912f8ddae4f765b685a4f9d3be602"><div class="ttname"><a href="classSVF_1_1GepStmt.html#adf6912f8ddae4f765b685a4f9d3be602">SVF::GepStmt::getConstantFieldIdx</a></div><div class="ttdeci">s64_t getConstantFieldIdx() const</div><div class="ttdoc">Field index of the gep statement if it access the field of a struct. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00454">SVFStatements.h:454</a></div></div>
|
|
202
|
-
<div class="ttc" id="classSVF_1_1CmpStmt_html_a02c4846269bd28bd4e8b127532cb737a"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a02c4846269bd28bd4e8b127532cb737a">SVF::CmpStmt::CmpStmt</a></div><div class="ttdeci">CmpStmt(SVFVar *s, const OPVars &opnds, u32_t pre)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
203
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_a55b867cd85dbbe43e2f7c1bad5dce647"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a55b867cd85dbbe43e2f7c1bad5dce647">SVF::BranchStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
212
|
+
<div class="ttc" id="classSVF_1_1CmpStmt_html_a02c4846269bd28bd4e8b127532cb737a"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a02c4846269bd28bd4e8b127532cb737a">SVF::CmpStmt::CmpStmt</a></div><div class="ttdeci">CmpStmt(SVFVar *s, const OPVars &opnds, u32_t pre)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00805">SVFStatements.h:805</a></div></div>
|
|
213
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a55b867cd85dbbe43e2f7c1bad5dce647"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a55b867cd85dbbe43e2f7c1bad5dce647">SVF::BranchStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00944">SVFStatements.h:944</a></div></div>
|
|
204
214
|
<div class="ttc" id="classSVF_1_1GepStmt_html_ab6f37c073e4755c4b8bb3ed6365687f4"><div class="ttname"><a href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">SVF::GepStmt::isConstantOffset</a></div><div class="ttdeci">bool isConstantOffset() const</div><div class="ttdoc">Return TRUE if this is a constant location set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00445">SVFStatements.h:445</a></div></div>
|
|
205
215
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVF::SVFStmt::ThreadJoin</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
206
216
|
<div class="ttc" id="classSVF_1_1GepStmt_html_ae4509ee7b57121da3c67de00e8bdf0b3"><div class="ttname"><a href="classSVF_1_1GepStmt.html#ae4509ee7b57121da3c67de00e8bdf0b3">SVF::GepStmt::GepStmt</a></div><div class="ttdeci">GepStmt(SVFVar *s, SVFVar *d, const LocationSet &l, bool varfld=false)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00465">SVFStatements.h:465</a></div></div>
|
|
207
|
-
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a099df135a83d28a2e6f344e008fe1cc6"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6">SVF::UnaryOPStmt::opcode</a></div><div class="ttdeci">u32_t opcode</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
217
|
+
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a099df135a83d28a2e6f344e008fe1cc6"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6">SVF::UnaryOPStmt::opcode</a></div><div class="ttdeci">u32_t opcode</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00877">SVFStatements.h:877</a></div></div>
|
|
208
218
|
<div class="ttc" id="classSVF_1_1AssignStmt_html_aff4c35109790daed3c6170c985153620"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620">SVF::AssignStmt::AssignStmt</a></div><div class="ttdeci">AssignStmt(SVFVar *s, SVFVar *d, GEdgeFlag k)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00210">SVFStatements.h:210</a></div></div>
|
|
209
|
-
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_af300571886b7aa2d84b0a70851c99bc3"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">SVF::MultiOpndStmt::getOpVarNum</a></div><div class="ttdeci">u32_t getOpVarNum() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
219
|
+
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_af300571886b7aa2d84b0a70851c99bc3"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">SVF::MultiOpndStmt::getOpVarNum</a></div><div class="ttdeci">u32_t getOpVarNum() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00645">SVFStatements.h:645</a></div></div>
|
|
210
220
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a24dddb4e346a6e569908e3efe8a6ecc0"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a24dddb4e346a6e569908e3efe8a6ecc0">SVF::SVFStmt::setValue</a></div><div class="ttdeci">void setValue(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00111">SVFStatements.h:111</a></div></div>
|
|
211
|
-
<div class="ttc" id="classSVF_1_1PhiStmt_html_abb620d35e77989c2f7f9ed480e5fa1e9"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#abb620d35e77989c2f7f9ed480e5fa1e9">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const PhiStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
221
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html_abb620d35e77989c2f7f9ed480e5fa1e9"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#abb620d35e77989c2f7f9ed480e5fa1e9">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const PhiStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00681">SVFStatements.h:681</a></div></div>
|
|
212
222
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_ad178ccbc7800527c3dc406ad5fa069bb"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb">SVF::SVFStmt::Var2LabelMap</a></div><div class="ttdeci">Map< const SVFVar *, u32_t > Var2LabelMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00184">SVFStatements.h:184</a></div></div>
|
|
213
223
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ab47ca533c415841ef75456cbad439589"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVF::GenericEdge::getSrcNode</a></div><div class="ttdeci">NodeType * getSrcNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00085">GenericGraph.h:85</a></div></div>
|
|
214
224
|
<div class="ttc" id="classSVF_1_1GepStmt_html_af8eefbd002ec36f36612b8e9ccdbc757"><div class="ttname"><a href="classSVF_1_1GepStmt.html#af8eefbd002ec36f36612b8e9ccdbc757">SVF::GepStmt::variantField</a></div><div class="ttdeci">bool variantField</div><div class="ttdoc">Gep statement with a variant field index (pointer arithmetic) for struct field access (e...</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00417">SVFStatements.h:417</a></div></div>
|
|
215
|
-
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_add29b76e0ef73da2606bac97f74a7896"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#add29b76e0ef73da2606bac97f74a7896">SVF::UnaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
225
|
+
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_add29b76e0ef73da2606bac97f74a7896"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#add29b76e0ef73da2606bac97f74a7896">SVF::UnaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00889">SVFStatements.h:889</a></div></div>
|
|
216
226
|
<div class="ttc" id="classSVF_1_1GepStmt_html_abec33091e0dac0cdd5b95b6d7b0db3d8"><div class="ttname"><a href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">SVF::GepStmt::getLocationSet</a></div><div class="ttdeci">const LocationSet & getLocationSet() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00435">SVFStatements.h:435</a></div></div>
|
|
217
227
|
<div class="ttc" id="classSVF_1_1GepStmt_html_a92016e7d6061e4a157c9cd39ad94cc20"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a92016e7d6061e4a157c9cd39ad94cc20">SVF::GepStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00425">SVFStatements.h:425</a></div></div>
|
|
218
|
-
<div class="ttc" id="classSVF_1_1TDForkPE_html"><div class="ttname"><a href="classSVF_1_1TDForkPE.html">SVF::TDForkPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
228
|
+
<div class="ttc" id="classSVF_1_1TDForkPE_html"><div class="ttname"><a href="classSVF_1_1TDForkPE.html">SVF::TDForkPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01000">SVFStatements.h:1000</a></div></div>
|
|
219
229
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_ad61722f886afaaee722ac55a4eed4d18"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18">SVF::SVFStmt::makeEdgeFlagWithStoreInst</a></div><div class="ttdeci">static GEdgeFlag makeEdgeFlagWithStoreInst(GEdgeKind k, const ICFGNode *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00157">SVFStatements.h:157</a></div></div>
|
|
220
|
-
<div class="ttc" id="
|
|
230
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html_ac505a4fe33e82f555663872e81220ba4"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ac505a4fe33e82f555663872e81220ba4">SVF::PhiStmt::OpICFGNodeVec</a></div><div class="ttdeci">std::vector< const ICFGNode *> OpICFGNodeVec</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00670">SVFStatements.h:670</a></div></div>
|
|
231
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a750ffca6648fafedfb271fb90d975847"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a750ffca6648fafedfb271fb90d975847">SVF::BranchStmt::classof</a></div><div class="ttdeci">static bool classof(const BranchStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00940">SVFStatements.h:940</a></div></div>
|
|
221
232
|
<div class="ttc" id="classSVF_1_1AssignStmt_html_ad5e2d41b8cd548628b59227368388ed0"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#ad5e2d41b8cd548628b59227368388ed0">SVF::AssignStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00221">SVFStatements.h:221</a></div></div>
|
|
222
233
|
<div class="ttc" id="classSVF_1_1GepStmt_html_a0ddf180a0f7ba64fc8655687910e3788"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788">SVF::GepStmt::isVariantFieldGep</a></div><div class="ttdeci">bool isVariantFieldGep() const</div><div class="ttdoc">Gep statement with a variant field index (pointer arithmetic) for struct field access. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00459">SVFStatements.h:459</a></div></div>
|
|
223
234
|
<div class="ttc" id="classSVF_1_1CallPE_html_a6df0149f79122c5a7d517f75d0235e73"><div class="ttname"><a href="classSVF_1_1CallPE.html#a6df0149f79122c5a7d517f75d0235e73">SVF::CallPE::classof</a></div><div class="ttdeci">static bool classof(const CallPE *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00488">SVFStatements.h:488</a></div></div>
|
|
235
|
+
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">SVF::SVFStmt::Select</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
224
236
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a877c7137875233e147faeb1198243f36"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36">SVF::SVFStmt::basicBlock</a></div><div class="ttdeci">const BasicBlock * basicBlock</div><div class="ttdoc">LLVM BasicBlock. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00061">SVFStatements.h:61</a></div></div>
|
|
225
237
|
<div class="ttc" id="namespaceSVF_html_ae71551d6a1fc300e0403297aa25ddf94"><div class="ttname"><a href="namespaceSVF.html#ae71551d6a1fc300e0403297aa25ddf94">SVF::EdgeID</a></div><div class="ttdeci">u32_t EdgeID</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00081">SVFBasicTypes.h:81</a></div></div>
|
|
226
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_a5e102d5c08b7121efc87b99651f0b5d2"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a5e102d5c08b7121efc87b99651f0b5d2">SVF::BranchStmt::BranchStmt</a></div><div class="ttdeci">BranchStmt(SVFVar *inst, SVFVar *c, const SuccAndCondPairVec &succs)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
238
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a5e102d5c08b7121efc87b99651f0b5d2"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a5e102d5c08b7121efc87b99651f0b5d2">SVF::BranchStmt::BranchStmt</a></div><div class="ttdeci">BranchStmt(SVFVar *inst, SVFVar *c, const SuccAndCondPairVec &succs)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00955">SVFStatements.h:955</a></div></div>
|
|
227
239
|
<div class="ttc" id="classSVF_1_1AssignStmt_html_a8b2837153dcf9f7e2adc3b30b2dd0245"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a8b2837153dcf9f7e2adc3b30b2dd0245">SVF::AssignStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00233">SVFStatements.h:233</a></div></div>
|
|
228
240
|
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
229
241
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_a5aceeb48929f54264807b36569019a8a"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">SVF::GenericEdge::GEdgeKind</a></div><div class="ttdeci">s64_t GEdgeKind</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00053">GenericGraph.h:53</a></div></div>
|
|
230
242
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVF::SVFStmt::ThreadFork</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
243
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html_a3cb54c9a91a32e12c5f8ee452fcf64be"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a3cb54c9a91a32e12c5f8ee452fcf64be">SVF::SelectStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00740">SVFStatements.h:740</a></div></div>
|
|
244
|
+
<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>
|
|
231
245
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVF::SVFStmt::BinaryOp</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
232
|
-
<div class="ttc" id="classSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
246
|
+
<div class="ttc" id="classSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00775">SVFStatements.h:775</a></div></div>
|
|
233
247
|
<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>
|
|
234
|
-
<div class="ttc" id="classSVF_1_1TDForkPE_html_a9e160158fe61958bcd6ef2a7da559018"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#a9e160158fe61958bcd6ef2a7da559018">SVF::TDForkPE::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
248
|
+
<div class="ttc" id="classSVF_1_1TDForkPE_html_a9e160158fe61958bcd6ef2a7da559018"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#a9e160158fe61958bcd6ef2a7da559018">SVF::TDForkPE::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01018">SVFStatements.h:1018</a></div></div>
|
|
235
249
|
<div class="ttc" id="ICFGNode_8h_html"><div class="ttname"><a href="ICFGNode_8h.html">ICFGNode.h</a></div></div>
|
|
236
250
|
<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>
|
|
237
251
|
<div class="ttc" id="classSVF_1_1StoreStmt_html_a39ee0d8cc951aff0d6418a3d743fb3ae"><div class="ttname"><a href="classSVF_1_1StoreStmt.html#a39ee0d8cc951aff0d6418a3d743fb3ae">SVF::StoreStmt::StoreStmt</a></div><div class="ttdeci">StoreStmt(SVFVar *s, SVFVar *d, const IntraICFGNode *st)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00361">SVFStatements.h:361</a></div></div>
|
|
238
252
|
<div class="ttc" id="classSVF_1_1GepStmt_html_a543a3f4801b22719f7b9677246bf2ac7"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a543a3f4801b22719f7b9677246bf2ac7">SVF::GepStmt::ls</a></div><div class="ttdeci">LocationSet ls</div><div class="ttdoc">location set of the gep edge </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00416">SVFStatements.h:416</a></div></div>
|
|
239
253
|
<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#l00072">LocationSet.h:72</a></div></div>
|
|
240
|
-
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a2b91333ac3d4b5e1099590aeb15d38ba"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a2b91333ac3d4b5e1099590aeb15d38ba">SVF::UnaryOPStmt::UnaryOPStmt</a></div><div class="ttdeci">UnaryOPStmt(SVFVar *s, SVFVar *d, u32_t oc)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
254
|
+
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a2b91333ac3d4b5e1099590aeb15d38ba"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a2b91333ac3d4b5e1099590aeb15d38ba">SVF::UnaryOPStmt::UnaryOPStmt</a></div><div class="ttdeci">UnaryOPStmt(SVFVar *s, SVFVar *d, u32_t oc)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00896">SVFStatements.h:896</a></div></div>
|
|
241
255
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0b6c03af568b70903da6b200ac86c951"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">SVF::SVFStmt::isPTAEdge</a></div><div class="ttdeci">bool isPTAEdge() const</div><div class="ttdoc">Whether src and dst nodes are both of pointer type. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00056">SVFStatements.cpp:56</a></div></div>
|
|
242
|
-
<div class="ttc" id="
|
|
256
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html_a537c03b08444da34c26b9e989bb0e568"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">SVF::SelectStmt::getTrueValue</a></div><div class="ttdeci">const SVFVar * getTrueValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00764">SVFStatements.h:764</a></div></div>
|
|
257
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a7d2fa666602e0444d3e019563c0e7556"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a7d2fa666602e0444d3e019563c0e7556">SVF::BranchStmt::getSuccessorCondValue</a></div><div class="ttdeci">s64_t getSuccessorCondValue(u32_t i) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00989">SVFStatements.h:989</a></div></div>
|
|
243
258
|
<div class="ttc" id="classSVF_1_1CallPE_html_a0d89c20d1d3ccee5f3e45a32085117aa"><div class="ttname"><a href="classSVF_1_1CallPE.html#a0d89c20d1d3ccee5f3e45a32085117aa">SVF::CallPE::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00497">SVFStatements.h:497</a></div></div>
|
|
244
259
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_aac79c7e8d390f297002782afb0ba3ff0"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#aac79c7e8d390f297002782afb0ba3ff0">SVF::SVFStmt::~SVFStmt</a></div><div class="ttdeci">~SVFStmt()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00070">SVFStatements.h:70</a></div></div>
|
|
245
260
|
<div class="ttc" id="classSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00336">SVFStatements.h:336</a></div></div>
|
|
@@ -247,27 +262,28 @@ $(function() {
|
|
|
247
262
|
<div class="ttc" id="classSVF_1_1RetPE_html_a2f0121f26e79fe3766cba93b42dc1119"><div class="ttname"><a href="classSVF_1_1RetPE.html#a2f0121f26e79fe3766cba93b42dc1119">SVF::RetPE::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00549">SVFStatements.h:549</a></div></div>
|
|
248
263
|
<div class="ttc" id="classSVF_1_1CopyStmt_html_a5e883bb0bc30cf8b7d325b66f7a42848"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#a5e883bb0bc30cf8b7d325b66f7a42848">SVF::CopyStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00315">SVFStatements.h:315</a></div></div>
|
|
249
264
|
<div class="ttc" id="classSVF_1_1AssignStmt_html_ad03d28d16754c9049dd4d0ad3b6c1e28"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">SVF::AssignStmt::getRHSVar</a></div><div class="ttdeci">SVFVar * getRHSVar() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00247">SVFStatements.h:247</a></div></div>
|
|
250
|
-
<div class="ttc" id="classSVF_1_1TDJoinPE_html_a18e24262f5be7835bc830ea410acc19d"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#a18e24262f5be7835bc830ea410acc19d">SVF::TDJoinPE::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
251
|
-
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_ad20128715a7aaf173d60fe8f14575678"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#ad20128715a7aaf173d60fe8f14575678">SVF::MultiOpndStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
265
|
+
<div class="ttc" id="classSVF_1_1TDJoinPE_html_a18e24262f5be7835bc830ea410acc19d"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#a18e24262f5be7835bc830ea410acc19d">SVF::TDJoinPE::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01052">SVFStatements.h:1052</a></div></div>
|
|
266
|
+
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_ad20128715a7aaf173d60fe8f14575678"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#ad20128715a7aaf173d60fe8f14575678">SVF::MultiOpndStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00612">SVFStatements.h:612</a></div></div>
|
|
252
267
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a47102f72115d41bff899b1b2ffec75b1"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a47102f72115d41bff899b1b2ffec75b1">SVF::SVFStmt::SVFStmt</a></div><div class="ttdeci">SVFStmt(SVFVar *s, SVFVar *d, GEdgeFlag k)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00046">SVFStatements.cpp:46</a></div></div>
|
|
253
|
-
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
254
|
-
<div class="ttc" id="classSVF_1_1PhiStmt_html_ac214292370d79324f6da8624fe2c7139"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ac214292370d79324f6da8624fe2c7139">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
268
|
+
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00821">SVFStatements.h:821</a></div></div>
|
|
269
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html_ac214292370d79324f6da8624fe2c7139"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ac214292370d79324f6da8624fe2c7139">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00685">SVFStatements.h:685</a></div></div>
|
|
270
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html"><div class="ttname"><a href="classSVF_1_1SelectStmt.html">SVF::SelectStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00725">SVFStatements.h:725</a></div></div>
|
|
255
271
|
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_acf8c7cfbf1c8baab672040635bb9a007"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">SVF::MultiOpndStmt::OPVars</a></div><div class="ttdeci">std::vector< SVFVar * > OPVars</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00582">SVFStatements.h:582</a></div></div>
|
|
256
272
|
<div class="ttc" id="classSVF_1_1CallPE_html_af84a1badb8734b54bf01b2b5b89af091"><div class="ttname"><a href="classSVF_1_1CallPE.html#af84a1badb8734b54bf01b2b5b89af091">SVF::CallPE::CallPE</a></div><div class="ttdeci">CallPE(SVFVar *s, SVFVar *d, const CallICFGNode *i, GEdgeKind k=SVFStmt::Call)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00505">SVFStatements.h:505</a></div></div>
|
|
257
273
|
<div class="ttc" id="classSVF_1_1IntraICFGNode_html"><div class="ttname"><a href="classSVF_1_1IntraICFGNode.html">SVF::IntraICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00175">ICFGNode.h:175</a></div></div>
|
|
258
|
-
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a2a4b7e3a4c5be8a253b542f144f830b7"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a2a4b7e3a4c5be8a253b542f144f830b7">SVF::UnaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
259
|
-
<div class="ttc" id="classSVF_1_1CmpStmt_html_af9f7fe4aa92bb443cd517f06a8fb94cd"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#af9f7fe4aa92bb443cd517f06a8fb94cd">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
274
|
+
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a2a4b7e3a4c5be8a253b542f144f830b7"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a2a4b7e3a4c5be8a253b542f144f830b7">SVF::UnaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00885">SVFStatements.h:885</a></div></div>
|
|
275
|
+
<div class="ttc" id="classSVF_1_1CmpStmt_html_af9f7fe4aa92bb443cd517f06a8fb94cd"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#af9f7fe4aa92bb443cd517f06a8fb94cd">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00798">SVFStatements.h:798</a></div></div>
|
|
260
276
|
<div class="ttc" id="classSVF_1_1AddrStmt_html_a42caa75acb42ce8e290c1278622f139c"><div class="ttname"><a href="classSVF_1_1AddrStmt.html#a42caa75acb42ce8e290c1278622f139c">SVF::AddrStmt::AddrStmt</a></div><div class="ttdeci">AddrStmt(SVFVar *s, SVFVar *d)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00291">SVFStatements.h:291</a></div></div>
|
|
261
|
-
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_abc24c2d50b164a637ad0cec371cb7e63"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#abc24c2d50b164a637ad0cec371cb7e63">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
262
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_a022d355bde3d0d0a9471cd125b24583b"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b">SVF::BranchStmt::getNumSuccessors</a></div><div class="ttdeci">u32_t getNumSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
277
|
+
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_abc24c2d50b164a637ad0cec371cb7e63"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#abc24c2d50b164a637ad0cec371cb7e63">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00836">SVFStatements.h:836</a></div></div>
|
|
278
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a022d355bde3d0d0a9471cd125b24583b"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b">SVF::BranchStmt::getNumSuccessors</a></div><div class="ttdeci">u32_t getNumSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00980">SVFStatements.h:980</a></div></div>
|
|
263
279
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a593cc8136f2138a518476405e667e060"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060">SVF::SVFStmt::edgeId</a></div><div class="ttdeci">EdgeID edgeId</div><div class="ttdoc">Edge ID. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00063">SVFStatements.h:63</a></div></div>
|
|
264
|
-
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_ad53097d07487d564e7d13f9d7d9ab10c"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#ad53097d07487d564e7d13f9d7d9ab10c">SVF::MultiOpndStmt::opVerEnd</a></div><div class="ttdeci">OPVars::const_iterator opVerEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
280
|
+
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_ad53097d07487d564e7d13f9d7d9ab10c"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#ad53097d07487d564e7d13f9d7d9ab10c">SVF::MultiOpndStmt::opVerEnd</a></div><div class="ttdeci">OPVars::const_iterator opVerEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00656">SVFStatements.h:656</a></div></div>
|
|
265
281
|
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00078">BasicTypes.h:78</a></div></div>
|
|
266
282
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_af1c2fd4b5ef1d7b7605572bf2489c298"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">SVF::GenericEdge::EdgeKindMaskBits</a></div><div class="ttdeci">static constexpr unsigned char EdgeKindMaskBits</div><div class="ttdoc">We use the lower 8 bits to denote edge kind. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00119">GenericGraph.h:119</a></div></div>
|
|
267
|
-
<div class="ttc" id="classSVF_1_1TDJoinPE_html_afb9137169d75204a09975a219334b752"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#afb9137169d75204a09975a219334b752">SVF::TDJoinPE::TDJoinPE</a></div><div class="ttdeci">TDJoinPE(SVFVar *s, SVFVar *d, const CallICFGNode *i)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
283
|
+
<div class="ttc" id="classSVF_1_1TDJoinPE_html_afb9137169d75204a09975a219334b752"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#afb9137169d75204a09975a219334b752">SVF::TDJoinPE::TDJoinPE</a></div><div class="ttdeci">TDJoinPE(SVFVar *s, SVFVar *d, const CallICFGNode *i)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01063">SVFStatements.h:1063</a></div></div>
|
|
268
284
|
<div class="ttc" id="classSVF_1_1CallPE_html_a60e8280eb3e77e67e3dfa4dcee943edf"><div class="ttname"><a href="classSVF_1_1CallPE.html#a60e8280eb3e77e67e3dfa4dcee943edf">SVF::CallPE::inst</a></div><div class="ttdeci">const CallICFGNode * inst</div><div class="ttdoc">llvm instruction for this call </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00484">SVFStatements.h:484</a></div></div>
|
|
269
|
-
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_ac8831079a5a9c6d50fbd09ff545e7cfd"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ac8831079a5a9c6d50fbd09ff545e7cfd">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
270
|
-
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_a7470a2412985bbb227bb62d8a297b7f1"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a7470a2412985bbb227bb62d8a297b7f1">SVF::BinaryOPStmt::BinaryOPStmt</a></div><div class="ttdeci">BinaryOPStmt(SVFVar *s, const OPVars &opnds, u32_t oc)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
285
|
+
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_ac8831079a5a9c6d50fbd09ff545e7cfd"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ac8831079a5a9c6d50fbd09ff545e7cfd">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00844">SVFStatements.h:844</a></div></div>
|
|
286
|
+
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_a7470a2412985bbb227bb62d8a297b7f1"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a7470a2412985bbb227bb62d8a297b7f1">SVF::BinaryOPStmt::BinaryOPStmt</a></div><div class="ttdeci">BinaryOPStmt(SVFVar *s, const OPVars &opnds, u32_t oc)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00851">SVFStatements.h:851</a></div></div>
|
|
271
287
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a86628ea173dec4934322f5d1caf2e1db"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a86628ea173dec4934322f5d1caf2e1db">SVF::SVFStmt::getInst</a></div><div class="ttdeci">const Instruction * getInst() const</div><div class="ttdoc">Get/set methods for llvm instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00107">SVFStatements.h:107</a></div></div>
|
|
272
288
|
<div class="ttc" id="classSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00302">SVFStatements.h:302</a></div></div>
|
|
273
289
|
<div class="ttc" id="namespaceSVF_html_a366625858f450a1ea5f985a3c83e0f14"><div class="ttname"><a href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">SVF::u64_t</a></div><div class="ttdeci">unsigned long long u64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00077">SVFBasicTypes.h:77</a></div></div>
|