svf-tools 1.0.606 → 1.0.607
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/Andersen_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +16 -16
- package/SVF-doxygen/html/html/DCHG_8h_source.html +22 -22
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +22 -22
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +20 -20
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFValue_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/cfl_8cpp.html +1 -1
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +63 -63
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
- package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
- package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
- package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +63 -64
- package/SVF-doxygen/html/html/saber_8cpp.html +1 -1
- package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHNode_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +2 -2
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
- package/include/SVF-LLVM/DCHG.h +2 -0
- package/lib/SVF-LLVM/LLVMUtil.cpp +1 -2
- package/package.json +1 -1
|
@@ -67,17 +67,17 @@ $(function() {
|
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
69
|
<a href="LLVMUtil_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">//===- LLVMUtil.h -- Analysis helper functions----------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * LLVMUtil.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * Created on: Apr 11, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#ifndef INCLUDE_SVF_FE_LLVMUTIL_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#define INCLUDE_SVF_FE_LLVMUTIL_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="BasicTypes_8h.html">SVF-LLVM/BasicTypes.h</a>"</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="SVFUtil_8h.html">Util/SVFUtil.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="BasicTypes_8h.html">SVF-LLVM/BasicTypes.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="SVFValue_8h.html">SVFIR/SVFValue.h</a>"</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="ExtAPI_8h.html">Util/ExtAPI.h</a>"</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="ThreadAPI_8h.html">Util/ThreadAPI.h</a>"</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html"> 43</a></span> <span class="keyword">namespace </span><a class="code" href="namespaceLLVMUtil.html">LLVMUtil</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a5a7dc8680a9714e08b01dd339b85bb20"> 47</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a5a7dc8680a9714e08b01dd339b85bb20">isCallSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst)</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">return</span> SVFUtil::isa<CallBase>(inst);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> }</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#aeaa116fd9718c8b31f30d3fe62bb6403"> 52</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a5a7dc8680a9714e08b01dd339b85bb20">isCallSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">if</span>(SVFUtil::isa<CallBase>(val))</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2"> 61</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">getDefFunForMultipleModule</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">if</span>(fun == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html">LLVMModuleSet</a>* llvmModuleset = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">if</span> (fun->isDeclaration() && llvmModuleset-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a32558da64f03452c502ec57d1e106427">hasDefinition</a>(fun))</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  fun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a6e670254385050b9a5e612f881b07b9c">getDefinition</a>(fun);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">return</span> fun;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a0095d23a9c9d5d62ec4a23c56824b5f0"> 71</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a0095d23a9c9d5d62ec4a23c56824b5f0">getLLVMCallSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* value)</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>  assert(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a5a7dc8680a9714e08b01dd339b85bb20">isCallSite</a>(value) && <span class="stringliteral">"not a callsite?"</span>);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">return</span> SVFUtil::cast<CallBase>(value);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#ad56c48be3ba6ebb95416623256524097"> 77</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad56c48be3ba6ebb95416623256524097">getCallee</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="comment">// FIXME: do we need to strip-off the casts here to discover more library functions</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>>(cs->getCalledOperand()->stripPointerCasts());</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">if</span>(callee)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">getDefFunForMultipleModule</a>(callee);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#af629cd4994be83b34a3a38464783f54e"> 88</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#af629cd4994be83b34a3a38464783f54e">getLLVMFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>>(val->stripPointerCasts());</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> fun;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a76b0d0ac69c170838cfc8ee26f4518a0"> 95</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a76b0d0ac69c170838cfc8ee26f4518a0">getProgFunction</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& funName)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>& M : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()->getLLVMModules())</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">for</span> (Module::const_iterator F = M.begin(), E = M.end(); F != E; ++F)</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fun = &*F;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">if</span> (fun->getName().str()==funName)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">return</span> fun;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#abf4e75ba6236136399d45c85be2328fe"> 110</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abf4e75ba6236136399d45c85be2328fe">isBlackholeSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">return</span> (SVFUtil::isa<UndefValue>(val));</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a847fb0c433b5d3611151636ca4bc5bc5"> 116</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a847fb0c433b5d3611151636ca4bc5bc5">isNullPtrSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a90f6c91ba7a3c31c84b5c25277d83fca">ConstantPointerNull</a>>(val);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870"> 121</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* pty)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor">#if (LLVM_VERSION_MAJOR < 14)</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">return</span> pty->getElementType();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  assert(!pty->isOpaque() && <span class="stringliteral">"Opaque Pointer is used, please recompile the source adding '-Xclang -no-opaque-pointers'"</span>);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">return</span> pty->getNonOpaquePointerElementType();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a6c5f2f951463494af2e7b0d3267f2772"> 133</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a6c5f2f951463494af2e7b0d3267f2772">getRefTypeOfHeapAllocOrStatic</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *refType = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfcall = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">getSVFInstruction</a>(cs);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> svfcs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(svfcall);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="comment">// Case 1: heap object held by *argument, we should get its element type.</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVFUtil::isHeapAllocExtCallViaArg</a>(svfcs))</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordtype">int</span> argPos = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">SVFUtil::getHeapAllocHoldingArgPosition</a>(svfcs);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* arg = cs->getArgOperand(argPos);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *argType = SVFUtil::dyn_cast<PointerType>(arg->getType()))</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  refType = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(argType));</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="comment">// Case 2: heap/static object held by return value.</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">else</span></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>  assert((<a class="code" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">SVFUtil::isStaticExtCall</a>(svfcs) || <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVFUtil::isHeapAllocExtCallViaRet</a>(svfcs))</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  && <span class="stringliteral">"Must be heap alloc via ret, or static allocation site"</span>);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  refType = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>>(cs->getType());</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  assert(refType && <span class="stringliteral">"Allocated object must be held by a pointer-typed value."</span>);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">return</span> refType;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#aa81614cdb6a2a912638d5dc980480af7"> 157</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a6c5f2f951463494af2e7b0d3267f2772">getRefTypeOfHeapAllocOrStatic</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst)</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>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a0095d23a9c9d5d62ec4a23c56824b5f0">getLLVMCallSite</a>(inst);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a6c5f2f951463494af2e7b0d3267f2772">getRefTypeOfHeapAllocOrStatic</a>(cs);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#aca11801ed6ef6ff8d2a1e85bc0fc5794">isObject</a> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* ref);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">isUncalledFunction</a> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a5cbde00eef789f682df972ae71b44449"> 174</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a5cbde00eef789f682df972ae71b44449">ArgInDeadFunction</a> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">return</span> SVFUtil::isa<Argument>(val)</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  && <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">isUncalledFunction</a>(SVFUtil::cast<Argument>(val)->getParent());</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#adad59a953dd81e213db71babbbc9df2f"> 182</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#adad59a953dd81e213db71babbbc9df2f">ArgInProgEntryFunction</a> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">return</span> SVFUtil::isa<Argument>(val)</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  && <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">SVFUtil::isProgEntryFunction</a>(SVFUtil::cast<Argument>(val)->getParent());</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07c785d931cef3c61e3dab4c615770be">isPtrInUncalledFunction</a> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* value);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a17cce1a11e1bfc342a9e3e79fe35deef">isNoCallerFunction</a> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">isUncalledFunction</a>(fun) || <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">SVFUtil::isProgEntryFunction</a>(fun);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a428bd75b33fab60988d8758090712f29"> 202</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a428bd75b33fab60988d8758090712f29">isArgOfUncalledFunction</a> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">return</span> SVFUtil::isa<Argument>(val)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  && <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a17cce1a11e1bfc342a9e3e79fe35deef">isNoCallerFunction</a>(SVFUtil::cast<Argument>(val)->getParent());</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a651b6a1cf3665277d2241220bb145aed">functionDoesNotRet</a> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a7653217714dfac2d92f1307ce8b74ec7">getFunReachableBBs</a> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* svfFun, std::vector<const SVFBasicBlock*>& bbs);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07bd47ccfd02c5a2a6db26b537b2184f">stripConstantCasts</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a38ce45ae5f017c90115ce444b44d478c">stripAllCasts</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val) ;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ae368713463c84425f9a1ad27ff401a47">getTypeOfHeapAlloc</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst) ;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a837d19c740902c419206287bdb21273b">getUniqueUseViaCastInst</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685"> 229</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *<a class="code" href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685">isGepConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span> {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast<ConstantExpr>(val))</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">if</span>(constExpr->getOpcode() == Instruction::GetElementPtr)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  }</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#adfa4a4e6d13004d14137d9168bd32463"> 239</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *<a class="code" href="namespaceSVF_1_1LLVMUtil.html#adfa4a4e6d13004d14137d9168bd32463">isInt2PtrConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast<ConstantExpr>(val))</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">if</span>(constExpr->getOpcode() == Instruction::IntToPtr)</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> }</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a2834d135a2385efff783e6e22d2eff1f"> 249</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2834d135a2385efff783e6e22d2eff1f">isPtr2IntConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast<ConstantExpr>(val))</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">if</span>(constExpr->getOpcode() == Instruction::PtrToInt)</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  }</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#af983b0e1fbd371d8672e8f03f63084fc"> 259</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *<a class="code" href="namespaceSVF_1_1LLVMUtil.html#af983b0e1fbd371d8672e8f03f63084fc">isCastConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast<ConstantExpr>(val))</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">if</span>(constExpr->getOpcode() == Instruction::BitCast)</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</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> </div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#ae59b0dc7f29dbd2018e819f77465f66e"> 269</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *<a class="code" href="namespaceSVF_1_1LLVMUtil.html#ae59b0dc7f29dbd2018e819f77465f66e">isSelectConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast<ConstantExpr>(val))</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="keywordflow">if</span>(constExpr->getOpcode() == Instruction::Select)</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</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> </div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8"> 279</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8">isTruncConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast<ConstantExpr>(val))</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  {</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">if</span>(constExpr->getOpcode() == Instruction::Trunc ||</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  constExpr->getOpcode() == Instruction::FPTrunc ||</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  constExpr->getOpcode() == Instruction::ZExt ||</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  constExpr->getOpcode() == Instruction::SExt ||</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  constExpr->getOpcode() == Instruction::FPExt)</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> }</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div><div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#aa0b3e34188f721ff7145e47cb607c79a"> 293</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *<a class="code" href="namespaceSVF_1_1LLVMUtil.html#aa0b3e34188f721ff7145e47cb607c79a">isCmpConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast<ConstantExpr>(val))</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keywordflow">if</span>(constExpr->getOpcode() == Instruction::ICmp || constExpr->getOpcode() == Instruction::FCmp)</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span> }</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a35b36394af726c679fe2c1b6051db7c4"> 303</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a35b36394af726c679fe2c1b6051db7c4">isBinaryConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast<ConstantExpr>(val))</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">if</span>((constExpr->getOpcode() >= Instruction::BinaryOpsBegin) && (constExpr->getOpcode() <= Instruction::BinaryOpsEnd))</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span> }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div><div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a215cc9fd716798bbb7f96f5b64e01349"> 313</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a215cc9fd716798bbb7f96f5b64e01349">isUnaryConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast<ConstantExpr>(val))</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">if</span>((constExpr->getOpcode() >= Instruction::UnaryOpsBegin) && (constExpr->getOpcode() <= Instruction::UnaryOpsEnd))</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> }</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div><div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a151fd7fb2b2ebe72af7c417defbb4f4d"> 324</a></span> <span class="keyword">inline</span> <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a151fd7fb2b2ebe72af7c417defbb4f4d">getDataLayout</a>(<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mod)</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a> *dl = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keywordflow">if</span> (dl == <span class="keyword">nullptr</span>) dl = <span class="keyword">new</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a>(mod);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">return</span> dl;</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> </div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a3b2ca48c72fba877c6cb3d52e23704e3">getNextInsts</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* curInst, std::vector<const SVFInstruction*>& instList);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ae9ddfd95ec4a36537f582acad0262e70">getPrevInsts</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* curInst, std::vector<const SVFInstruction*>& instList);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a3b2ca48c72fba877c6cb3d52e23704e3">getNextInsts</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* curInst, std::vector<const Instruction*>& instList);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ae9ddfd95ec4a36537f582acad0262e70">getPrevInsts</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* curInst, std::vector<const Instruction*>& instList);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ae617611b584e3d899984c376a6e91987">getBBPredecessorNum</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* BB);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8a8c32a09340f491fffffcb07dd7a41">isIRFile</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> &filename);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span> </div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">processArguments</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv, <span class="keywordtype">int</span> &arg_num, <span class="keywordtype">char</span> **arg_value,</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  std::vector<std::string> &moduleNameVec);</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a09683d4d88a50fa621809c734465f94d">getTypeSizeInBytes</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a09683d4d88a50fa621809c734465f94d">getTypeSizeInBytes</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a> *sty, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> field_index);</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">getSourceLoc</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2b32283ee2dbb9cef1d17ab6f2719e0c">getSourceLocOfFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* F);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a003b769751b93b94bdb011bd704cfde1">isIntrinsicInst</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4638a12f5481dff947b59cf8353e619b">isIntrinsicFun</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span> </div><div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a4f6431ca72e0378bf2428de8a87ba648"> 368</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4f6431ca72e0378bf2428de8a87ba648">getFunction</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>)</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span> {</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(name);</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> }</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div><div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be"> 374</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">isConstDataOrAggData</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> {</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordtype">bool</span> constDataOrConstAggregate = SVFUtil::isa<ConstantData>(val)</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  || SVFUtil::isa<ConstantAggregate>(val)</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  || SVFUtil::isa<MetadataAsValue>(val)</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  || SVFUtil::isa<BlockAddress>(val);</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordflow">return</span> constDataOrConstAggregate;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> }</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div><div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a"> 384</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="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">getGlobalRep</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> {</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* gvar = SVFUtil::dyn_cast<GlobalVariable>(val))</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()->hasGlobalRep(gvar))</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  val = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a757bf149437cce22163c764ea9993e12">getGlobalRep</a>(gvar);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  }</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keywordflow">return</span> val;</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> </div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">isConstantObjSym</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">isConstantObjSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</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> <span class="comment">// Dump Control Flow Graph of llvm function, with instructions</span></div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abc9c437b7da5cfe3d988dadfcbd0635f">viewCFG</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="comment">// Dump Control Flow Graph of llvm function, without instructions</span></div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2abbe4ed46b2031a981d93b3ba9d3fbd">viewCFGOnly</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span> } <span class="comment">// End namespace LLVMUtil</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="preprocessor">#endif </span><span class="comment">/* INCLUDE_SVF_FE_LLVMUTIL_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a4f6431ca72e0378bf2428de8a87ba648"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4f6431ca72e0378bf2428de8a87ba648">SVF::LLVMUtil::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction(std::string name)</div><div class="ttdoc">Get the corresponding Function based on its name. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00368">LLVMUtil.h:368</a></div></div>
|
|
70
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_abc9c437b7da5cfe3d988dadfcbd0635f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#abc9c437b7da5cfe3d988dadfcbd0635f">SVF::LLVMUtil::viewCFG</a></div><div class="ttdeci">void viewCFG(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
71
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a2abbe4ed46b2031a981d93b3ba9d3fbd"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2abbe4ed46b2031a981d93b3ba9d3fbd">SVF::LLVMUtil::viewCFGOnly</a></div><div class="ttdeci">void viewCFGOnly(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
70
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_abc9c437b7da5cfe3d988dadfcbd0635f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#abc9c437b7da5cfe3d988dadfcbd0635f">SVF::LLVMUtil::viewCFG</a></div><div class="ttdeci">void viewCFG(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00228">LLVMUtil.cpp:228</a></div></div>
|
|
71
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a2abbe4ed46b2031a981d93b3ba9d3fbd"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2abbe4ed46b2031a981d93b3ba9d3fbd">SVF::LLVMUtil::viewCFGOnly</a></div><div class="ttdeci">void viewCFGOnly(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00236">LLVMUtil.cpp:236</a></div></div>
|
|
72
72
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a7653217714dfac2d92f1307ce8b74ec7"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a7653217714dfac2d92f1307ce8b74ec7">SVF::LLVMUtil::getFunReachableBBs</a></div><div class="ttdeci">void getFunReachableBBs(const Function *svfFun, std::vector< const SVFBasicBlock *> &bbs)</div><div class="ttdoc">Get reachable basic block from function entry. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00062">LLVMUtil.cpp:62</a></div></div>
|
|
73
73
|
<div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a50fc24901350df9db890ba16a9b87e33"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">SVF::LLVMModuleSet::getSVFFunction</a></div><div class="ttdeci">SVFFunction * getSVFFunction(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00194">LLVMModule.h:194</a></div></div>
|
|
74
74
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_aca11801ed6ef6ff8d2a1e85bc0fc5794"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aca11801ed6ef6ff8d2a1e85bc0fc5794">SVF::LLVMUtil::isObject</a></div><div class="ttdeci">bool isObject(const Value *ref)</div><div class="ttdoc">Return true if this value refers to a object. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00044">LLVMUtil.cpp:44</a></div></div>
|
|
75
75
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a76b0d0ac69c170838cfc8ee26f4518a0"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a76b0d0ac69c170838cfc8ee26f4518a0">SVF::LLVMUtil::getProgFunction</a></div><div class="ttdeci">const Function * getProgFunction(const std::string &funName)</div><div class="ttdoc">Get program entry function from module. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00095">LLVMUtil.h:95</a></div></div>
|
|
76
76
|
<div class="ttc" id="classSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00570">SVFValue.h:570</a></div></div>
|
|
77
77
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a946a2b51b848c45c6c52f03581ee05b8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8">SVF::LLVMUtil::isTruncConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isTruncConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00279">LLVMUtil.h:279</a></div></div>
|
|
78
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_ad8a8c32a09340f491fffffcb07dd7a41"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad8a8c32a09340f491fffffcb07dd7a41">SVF::LLVMUtil::isIRFile</a></div><div class="ttdeci">bool isIRFile(const std::string &filename)</div><div class="ttdoc">Check whether a file is an LLVM IR file. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
78
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_ad8a8c32a09340f491fffffcb07dd7a41"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad8a8c32a09340f491fffffcb07dd7a41">SVF::LLVMUtil::isIRFile</a></div><div class="ttdeci">bool isIRFile(const std::string &filename)</div><div class="ttdoc">Check whether a file is an LLVM IR file. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00396">LLVMUtil.cpp:396</a></div></div>
|
|
79
79
|
<div class="ttc" id="namespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00058">BasicTypes.h:58</a></div></div>
|
|
80
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a4638a12f5481dff947b59cf8353e619b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4638a12f5481dff947b59cf8353e619b">SVF::LLVMUtil::isIntrinsicFun</a></div><div class="ttdeci">bool isIntrinsicFun(const Function *func)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
80
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a4638a12f5481dff947b59cf8353e619b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4638a12f5481dff947b59cf8353e619b">SVF::LLVMUtil::isIntrinsicFun</a></div><div class="ttdeci">bool isIntrinsicFun(const Function *func)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00186">LLVMUtil.cpp:186</a></div></div>
|
|
81
81
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_ab5fc50624b5fe83b676b14bec4b99685"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685">SVF::LLVMUtil::isGepConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isGepConstantExpr(const Value *val)</div><div class="ttdoc">Return corresponding constant expression, otherwise return nullptr. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00229">LLVMUtil.h:229</a></div></div>
|
|
82
82
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a5a7dc8680a9714e08b01dd339b85bb20"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a5a7dc8680a9714e08b01dd339b85bb20">SVF::LLVMUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00047">LLVMUtil.h:47</a></div></div>
|
|
83
83
|
<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#l00060">BasicTypes.h:60</a></div></div>
|
|
@@ -94,7 +94,7 @@ $(function() {
|
|
|
94
94
|
<div class="ttc" id="SVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
|
|
95
95
|
<div class="ttc" id="cJSON_8h_html_a25d22ecc7e656d2c59332072684e8766"><div class="ttname"><a href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a></div><div class="ttdeci">const char *const name</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00264">cJSON.h:264</a></div></div>
|
|
96
96
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type > dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00405">Casting.h:405</a></div></div>
|
|
97
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a003b769751b93b94bdb011bd704cfde1"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a003b769751b93b94bdb011bd704cfde1">SVF::LLVMUtil::isIntrinsicInst</a></div><div class="ttdeci">bool isIntrinsicInst(const Instruction *inst)</div><div class="ttdoc">Return true if it is an intrinsic instruction. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
97
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a003b769751b93b94bdb011bd704cfde1"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a003b769751b93b94bdb011bd704cfde1">SVF::LLVMUtil::isIntrinsicInst</a></div><div class="ttdeci">bool isIntrinsicInst(const Instruction *inst)</div><div class="ttdoc">Return true if it is an intrinsic instruction. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00200">LLVMUtil.cpp:200</a></div></div>
|
|
98
98
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_af983b0e1fbd371d8672e8f03f63084fc"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#af983b0e1fbd371d8672e8f03f63084fc">SVF::LLVMUtil::isCastConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isCastConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00259">LLVMUtil.h:259</a></div></div>
|
|
99
99
|
<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="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
|
|
100
100
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00374">LLVMUtil.h:374</a></div></div>
|
|
@@ -102,13 +102,13 @@ $(function() {
|
|
|
102
102
|
<div class="ttc" id="classSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00147">SVFValue.h:147</a></div></div>
|
|
103
103
|
<div class="ttc" id="classSVF_1_1LLVMModuleSet_html"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html">SVF::LLVMModuleSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00043">LLVMModule.h:43</a></div></div>
|
|
104
104
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a5cbde00eef789f682df972ae71b44449"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a5cbde00eef789f682df972ae71b44449">SVF::LLVMUtil::ArgInDeadFunction</a></div><div class="ttdeci">bool ArgInDeadFunction(const Value *val)</div><div class="ttdoc">whether this is an argument in dead function </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00174">LLVMUtil.h:174</a></div></div>
|
|
105
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_ae368713463c84425f9a1ad27ff401a47"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ae368713463c84425f9a1ad27ff401a47">SVF::LLVMUtil::getTypeOfHeapAlloc</a></div><div class="ttdeci">const Type * getTypeOfHeapAlloc(const Instruction *inst)</div><div class="ttdoc">Get the type of the heap allocation. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
106
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a09683d4d88a50fa621809c734465f94d"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a09683d4d88a50fa621809c734465f94d">SVF::LLVMUtil::getTypeSizeInBytes</a></div><div class="ttdeci">u32_t getTypeSizeInBytes(const Type *type)</div><div class="ttdoc">Helper method to get the size of the type from target data layout. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
107
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a837d19c740902c419206287bdb21273b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a837d19c740902c419206287bdb21273b">SVF::LLVMUtil::getUniqueUseViaCastInst</a></div><div class="ttdeci">const Value * getUniqueUseViaCastInst(const Value *val)</div><div class="ttdoc">Return the bitcast instruction which is val&#39;s only use site, otherwise return nullptr. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
108
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_ad8ee8de153df3f1bbdebb67185a2731c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">SVF::LLVMUtil::isConstantObjSym</a></div><div class="ttdeci">bool isConstantObjSym(const SVFValue *val)</div><div class="ttdoc">Check whether this value points-to a constant object. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
105
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_ae368713463c84425f9a1ad27ff401a47"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ae368713463c84425f9a1ad27ff401a47">SVF::LLVMUtil::getTypeOfHeapAlloc</a></div><div class="ttdeci">const Type * getTypeOfHeapAlloc(const Instruction *inst)</div><div class="ttdoc">Get the type of the heap allocation. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00352">LLVMUtil.cpp:352</a></div></div>
|
|
106
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a09683d4d88a50fa621809c734465f94d"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a09683d4d88a50fa621809c734465f94d">SVF::LLVMUtil::getTypeSizeInBytes</a></div><div class="ttdeci">u32_t getTypeSizeInBytes(const Type *type)</div><div class="ttdoc">Helper method to get the size of the type from target data layout. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00441">LLVMUtil.cpp:441</a></div></div>
|
|
107
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a837d19c740902c419206287bdb21273b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a837d19c740902c419206287bdb21273b">SVF::LLVMUtil::getUniqueUseViaCastInst</a></div><div class="ttdeci">const Value * getUniqueUseViaCastInst(const Value *val)</div><div class="ttdoc">Return the bitcast instruction which is val&#39;s only use site, otherwise return nullptr. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00333">LLVMUtil.cpp:333</a></div></div>
|
|
108
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_ad8ee8de153df3f1bbdebb67185a2731c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">SVF::LLVMUtil::isConstantObjSym</a></div><div class="ttdeci">bool isConstantObjSym(const SVFValue *val)</div><div class="ttdoc">Check whether this value points-to a constant object. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00639">LLVMUtil.cpp:639</a></div></div>
|
|
109
109
|
<div class="ttc" id="namespaceSVF_html_a90f6c91ba7a3c31c84b5c25277d83fca"><div class="ttname"><a href="namespaceSVF.html#a90f6c91ba7a3c31c84b5c25277d83fca">SVF::ConstantPointerNull</a></div><div class="ttdeci">llvm::ConstantPointerNull ConstantPointerNull</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00101">BasicTypes.h:101</a></div></div>
|
|
110
110
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a17cce1a11e1bfc342a9e3e79fe35deef"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a17cce1a11e1bfc342a9e3e79fe35deef">SVF::LLVMUtil::isNoCallerFunction</a></div><div class="ttdeci">bool isNoCallerFunction(const Function *fun)</div><div class="ttdoc">Function does not have any possible caller in the call graph. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00196">LLVMUtil.h:196</a></div></div>
|
|
111
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a651b6a1cf3665277d2241220bb145aed"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a651b6a1cf3665277d2241220bb145aed">SVF::LLVMUtil::functionDoesNotRet</a></div><div class="ttdeci">bool functionDoesNotRet(const Function *fun)</div><div class="ttdoc">Return true if the function has a return instruction reachable from function entry. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
111
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a651b6a1cf3665277d2241220bb145aed"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a651b6a1cf3665277d2241220bb145aed">SVF::LLVMUtil::functionDoesNotRet</a></div><div class="ttdeci">bool functionDoesNotRet(const Function *fun)</div><div class="ttdoc">Return true if the function has a return instruction reachable from function entry. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00097">LLVMUtil.cpp:97</a></div></div>
|
|
112
112
|
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00059">BasicTypes.h:59</a></div></div>
|
|
113
113
|
<div class="ttc" id="ExtAPI_8h_html"><div class="ttname"><a href="ExtAPI_8h.html">ExtAPI.h</a></div></div>
|
|
114
114
|
<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#l00061">BasicTypes.h:61</a></div></div>
|
|
@@ -117,15 +117,15 @@ $(function() {
|
|
|
117
117
|
<div class="ttc" id="namespaceSVF_html_a2bf58575ac7d068e0f1a4cf953b9e6cb"><div class="ttname"><a href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">SVF::StructType</a></div><div class="ttdeci">llvm::StructType StructType</div><div class="ttdoc">LLVM types. </div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00068">BasicTypes.h:68</a></div></div>
|
|
118
118
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a6c5f2f951463494af2e7b0d3267f2772"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a6c5f2f951463494af2e7b0d3267f2772">SVF::LLVMUtil::getRefTypeOfHeapAllocOrStatic</a></div><div class="ttdeci">const PointerType * getRefTypeOfHeapAllocOrStatic(const CallBase *cs)</div><div class="ttdoc">Get the reference type of heap/static object from an allocation site. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00133">LLVMUtil.h:133</a></div></div>
|
|
119
119
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a3d34fcdfc98add848a34fd5259c11eb2"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">SVF::LLVMUtil::getDefFunForMultipleModule</a></div><div class="ttdeci">const Function * getDefFunForMultipleModule(const Function *fun)</div><div class="ttdoc">Get the definition of a function across multiple modules. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00061">LLVMUtil.h:61</a></div></div>
|
|
120
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a07bd47ccfd02c5a2a6db26b537b2184f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a07bd47ccfd02c5a2a6db26b537b2184f">SVF::LLVMUtil::stripConstantCasts</a></div><div class="ttdeci">const Value * stripConstantCasts(const Value *val)</div><div class="ttdoc">Strip off the constant casts. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
120
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a07bd47ccfd02c5a2a6db26b537b2184f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a07bd47ccfd02c5a2a6db26b537b2184f">SVF::LLVMUtil::stripConstantCasts</a></div><div class="ttdeci">const Value * stripConstantCasts(const Value *val)</div><div class="ttdoc">Strip off the constant casts. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00216">LLVMUtil.cpp:216</a></div></div>
|
|
121
121
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aedfa6e9216c6c788c26aef1967689b76"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVF::SVFUtil::isHeapAllocExtCallViaArg</a></div><div class="ttdeci">bool isHeapAllocExtCallViaArg(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00424">SVFUtil.h:424</a></div></div>
|
|
122
122
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab2064cb70c76f399ce115f2621adea35"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVF::SVFUtil::isHeapAllocExtCallViaRet</a></div><div class="ttdeci">bool isHeapAllocExtCallViaRet(const CallSite cs)</div><div class="ttdoc">interfaces to be used externally </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00435">SVFUtil.h:435</a></div></div>
|
|
123
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a07c785d931cef3c61e3dab4c615770be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a07c785d931cef3c61e3dab4c615770be">SVF::LLVMUtil::isPtrInUncalledFunction</a></div><div class="ttdeci">bool isPtrInUncalledFunction(const Value *value)</div><div class="ttdoc">Return true if this is value in a dead function (function without any caller) </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
123
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a07c785d931cef3c61e3dab4c615770be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a07c785d931cef3c61e3dab4c615770be">SVF::LLVMUtil::isPtrInUncalledFunction</a></div><div class="ttdeci">bool isPtrInUncalledFunction(const Value *value)</div><div class="ttdoc">Return true if this is value in a dead function (function without any caller) </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00171">LLVMUtil.cpp:171</a></div></div>
|
|
124
124
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ae62938f722543d6d7fc201b685be1abf"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">SVF::SVFUtil::isStaticExtCall</a></div><div class="ttdeci">bool isStaticExtCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00493">SVFUtil.h:493</a></div></div>
|
|
125
125
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a428bd75b33fab60988d8758090712f29"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a428bd75b33fab60988d8758090712f29">SVF::LLVMUtil::isArgOfUncalledFunction</a></div><div class="ttdeci">bool isArgOfUncalledFunction(const Value *val)</div><div class="ttdoc">Return true if the argument in a function does not have a caller. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00202">LLVMUtil.h:202</a></div></div>
|
|
126
126
|
<div class="ttc" id="BasicTypes_8h_html"><div class="ttname"><a href="BasicTypes_8h.html">BasicTypes.h</a></div></div>
|
|
127
127
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a215cc9fd716798bbb7f96f5b64e01349"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a215cc9fd716798bbb7f96f5b64e01349">SVF::LLVMUtil::isUnaryConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isUnaryConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00313">LLVMUtil.h:313</a></div></div>
|
|
128
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_ae617611b584e3d899984c376a6e91987"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ae617611b584e3d899984c376a6e91987">SVF::LLVMUtil::getBBPredecessorNum</a></div><div class="ttdeci">u32_t getBBPredecessorNum(const BasicBlock *BB)</div><div class="ttdoc">Get num of BB&#39;s predecessors. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
128
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_ae617611b584e3d899984c376a6e91987"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ae617611b584e3d899984c376a6e91987">SVF::LLVMUtil::getBBPredecessorNum</a></div><div class="ttdeci">u32_t getBBPredecessorNum(const BasicBlock *BB)</div><div class="ttdoc">Get num of BB&#39;s predecessors. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00383">LLVMUtil.cpp:383</a></div></div>
|
|
129
129
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a73215bac62f1340a58f6c7f2ba9b0e7b"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">SVF::SVFUtil::getHeapAllocHoldingArgPosition</a></div><div class="ttdeci">int getHeapAllocHoldingArgPosition(const SVFFunction *fun)</div><div class="ttdoc">Get the position of argument that holds an allocated heap object. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00316">SVFUtil.h:316</a></div></div>
|
|
130
130
|
<div class="ttc" id="ThreadAPI_8h_html"><div class="ttname"><a href="ThreadAPI_8h.html">ThreadAPI.h</a></div></div>
|
|
131
131
|
<div class="ttc" id="SVFValue_8h_html"><div class="ttname"><a href="SVFValue_8h.html">SVFValue.h</a></div></div>
|
|
@@ -139,23 +139,23 @@ $(function() {
|
|
|
139
139
|
<div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
|
|
140
140
|
<div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01014">SVFValue.h:1014</a></div></div>
|
|
141
141
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a2834d135a2385efff783e6e22d2eff1f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2834d135a2385efff783e6e22d2eff1f">SVF::LLVMUtil::isPtr2IntConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isPtr2IntConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00249">LLVMUtil.h:249</a></div></div>
|
|
142
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a2c61d741afbcfa853b505cd391f29f9b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">SVF::LLVMUtil::isUncalledFunction</a></div><div class="ttdeci">bool isUncalledFunction(const Function *fun)</div><div class="ttdoc">whether this is a function without any possible caller? </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
143
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a3b2ca48c72fba877c6cb3d52e23704e3"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3b2ca48c72fba877c6cb3d52e23704e3">SVF::LLVMUtil::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *curInst, std::vector< const SVFInstruction *> &instList)</div><div class="ttdoc">Get the next instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
142
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a2c61d741afbcfa853b505cd391f29f9b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">SVF::LLVMUtil::isUncalledFunction</a></div><div class="ttdeci">bool isUncalledFunction(const Function *fun)</div><div class="ttdoc">whether this is a function without any possible caller? </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00138">LLVMUtil.cpp:138</a></div></div>
|
|
143
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a3b2ca48c72fba877c6cb3d52e23704e3"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3b2ca48c72fba877c6cb3d52e23704e3">SVF::LLVMUtil::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *curInst, std::vector< const SVFInstruction *> &instList)</div><div class="ttdoc">Get the next instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00271">LLVMUtil.cpp:271</a></div></div>
|
|
144
144
|
<div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00094">BasicTypes.h:94</a></div></div>
|
|
145
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_ae9ddfd95ec4a36537f582acad0262e70"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ae9ddfd95ec4a36537f582acad0262e70">SVF::LLVMUtil::getPrevInsts</a></div><div class="ttdeci">void getPrevInsts(const Instruction *curInst, std::vector< const SVFInstruction *> &instList)</div><div class="ttdoc">Get the previous instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
145
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_ae9ddfd95ec4a36537f582acad0262e70"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ae9ddfd95ec4a36537f582acad0262e70">SVF::LLVMUtil::getPrevInsts</a></div><div class="ttdeci">void getPrevInsts(const Instruction *curInst, std::vector< const SVFInstruction *> &instList)</div><div class="ttdoc">Get the previous instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00300">LLVMUtil.cpp:300</a></div></div>
|
|
146
146
|
<div class="ttc" id="namespaceSVF_html_a1f4624771922dc8c2447ad7433588c73"><div class="ttname"><a href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">SVF::CallBase</a></div><div class="ttdeci">llvm::CallBase CallBase</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00119">BasicTypes.h:119</a></div></div>
|
|
147
147
|
<div class="ttc" id="namespaceSVF_html_a03db82b8a7914367024723dba4d6ca3c"><div class="ttname"><a href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">SVF::DataLayout</a></div><div class="ttdeci">llvm::DataLayout DataLayout</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00082">BasicTypes.h:82</a></div></div>
|
|
148
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &arg_num, char **arg_value, std::vector< std::string > &moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
148
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &arg_num, char **arg_value, std::vector< std::string > &moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00413">LLVMUtil.cpp:413</a></div></div>
|
|
149
149
|
<div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
150
150
|
<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="ttdoc">LLVM Basic classes. </div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00056">BasicTypes.h:56</a></div></div>
|
|
151
151
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_abba4111230f6009bbf50518ee36a9870"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">SVF::LLVMUtil::getPtrElementType</a></div><div class="ttdeci">static Type * getPtrElementType(const PointerType *pty)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00121">LLVMUtil.h:121</a></div></div>
|
|
152
152
|
<div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a6e670254385050b9a5e612f881b07b9c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a6e670254385050b9a5e612f881b07b9c">SVF::LLVMModuleSet::getDefinition</a></div><div class="ttdeci">const Function * getDefinition(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00259">LLVMModule.h:259</a></div></div>
|
|
153
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a8e4add30bd0ce00d3f2aa2e31c64fef8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">SVF::LLVMUtil::getSourceLoc</a></div><div class="ttdeci">const std::string getSourceLoc(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
154
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a2b32283ee2dbb9cef1d17ab6f2719e0c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2b32283ee2dbb9cef1d17ab6f2719e0c">SVF::LLVMUtil::getSourceLocOfFunction</a></div><div class="ttdeci">const std::string getSourceLocOfFunction(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
153
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a8e4add30bd0ce00d3f2aa2e31c64fef8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">SVF::LLVMUtil::getSourceLoc</a></div><div class="ttdeci">const std::string getSourceLoc(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00465">LLVMUtil.cpp:465</a></div></div>
|
|
154
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a2b32283ee2dbb9cef1d17ab6f2719e0c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2b32283ee2dbb9cef1d17ab6f2719e0c">SVF::LLVMUtil::getSourceLocOfFunction</a></div><div class="ttdeci">const std::string getSourceLocOfFunction(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00569">LLVMUtil.cpp:569</a></div></div>
|
|
155
155
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a847fb0c433b5d3611151636ca4bc5bc5"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a847fb0c433b5d3611151636ca4bc5bc5">SVF::LLVMUtil::isNullPtrSym</a></div><div class="ttdeci">bool isNullPtrSym(const Value *val)</div><div class="ttdoc">Check whether this value is a black hole. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00116">LLVMUtil.h:116</a></div></div>
|
|
156
156
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_abf4e75ba6236136399d45c85be2328fe"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#abf4e75ba6236136399d45c85be2328fe">SVF::LLVMUtil::isBlackholeSym</a></div><div class="ttdeci">bool isBlackholeSym(const Value *val)</div><div class="ttdoc">Check whether this value is a black hole. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00110">LLVMUtil.h:110</a></div></div>
|
|
157
157
|
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a151fd7fb2b2ebe72af7c417defbb4f4d"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a151fd7fb2b2ebe72af7c417defbb4f4d">SVF::LLVMUtil::getDataLayout</a></div><div class="ttdeci">static DataLayout * getDataLayout(Module *mod)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00324">LLVMUtil.h:324</a></div></div>
|
|
158
|
-
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a38ce45ae5f017c90115ce444b44d478c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a38ce45ae5f017c90115ce444b44d478c">SVF::LLVMUtil::stripAllCasts</a></div><div class="ttdeci">const Value * stripAllCasts(const Value *val)</div><div class="ttdoc">Strip off the all casts. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
158
|
+
<div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a38ce45ae5f017c90115ce444b44d478c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a38ce45ae5f017c90115ce444b44d478c">SVF::LLVMUtil::stripAllCasts</a></div><div class="ttdeci">const Value * stripAllCasts(const Value *val)</div><div class="ttdoc">Strip off the all casts. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00247">LLVMUtil.cpp:247</a></div></div>
|
|
159
159
|
<div class="ttc" id="classSVF_1_1LLVMModuleSet_html_ae74f307b6f96950ceedb2c375ef1c3a3"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">SVF::LLVMModuleSet::getSVFInstruction</a></div><div class="ttdeci">SVFInstruction * getSVFInstruction(const Instruction *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00208">LLVMModule.h:208</a></div></div>
|
|
160
160
|
</div><!-- fragment --></div><!-- contents -->
|
|
161
161
|
<!-- start footer part -->
|
|
@@ -77,7 +77,7 @@ $(function() {
|
|
|
77
77
|
<div class="ttc" id="classSVF_1_1LocationSet_html_ad8e250859aa1cf6ce18c6c0b7bbb2710"><div class="ttname"><a href="classSVF_1_1LocationSet.html#ad8e250859aa1cf6ce18c6c0b7bbb2710">SVF::LocationSet::accumulateConstantOffset</a></div><div class="ttdeci">s32_t accumulateConstantOffset() const</div><div class="ttdoc">Return accumulated constant offset given OffsetValueVec. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8cpp_source.html#l00118">LocationSet.cpp:118</a></div></div>
|
|
78
78
|
<div class="ttc" id="classSVF_1_1LocationSet_html_afc0f702b6cce26861b409130fe5e019f"><div class="ttname"><a href="classSVF_1_1LocationSet.html#afc0f702b6cce26861b409130fe5e019f">SVF::LocationSet::computeAllLocations</a></div><div class="ttdeci">NodeBS computeAllLocations() const</div><div class="ttdoc">Compute all possible locations according to offset and number-stride pairs. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8cpp_source.html#l00153">LocationSet.cpp:153</a></div></div>
|
|
79
79
|
<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="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
|
|
80
|
-
<div class="ttc" id="classSVF_1_1SVFType_html_a879a4cc9b217fde0aa350fb8f7f7e047"><div class="ttname"><a href="classSVF_1_1SVFType.html#a879a4cc9b217fde0aa350fb8f7f7e047">SVF::SVFType::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
80
|
+
<div class="ttc" id="classSVF_1_1SVFType_html_a879a4cc9b217fde0aa350fb8f7f7e047"><div class="ttname"><a href="classSVF_1_1SVFType.html#a879a4cc9b217fde0aa350fb8f7f7e047">SVF::SVFType::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00697">LLVMUtil.cpp:697</a></div></div>
|
|
81
81
|
<div class="ttc" id="classSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00147">SVFValue.h:147</a></div></div>
|
|
82
82
|
<div class="ttc" id="classSVF_1_1SparseBitVector_html_abbd0e0cf759fad7858224ed8a63aade8"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">SVF::SparseBitVector::contains</a></div><div class="ttdeci">bool contains(const SparseBitVector< ElementSize > &RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01073">SparseBitVector.h:1073</a></div></div>
|
|
83
83
|
<div class="ttc" id="classSVF_1_1LocationSet_html_a0b4376975f8532c7e2daa759ec7922f7"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a0b4376975f8532c7e2daa759ec7922f7">SVF::LocationSet::getElementNum</a></div><div class="ttdeci">u32_t getElementNum(const SVFType *type) const</div><div class="ttdoc">Return element number of a type. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8cpp_source.html#l00063">LocationSet.cpp:63</a></div></div>
|
|
@@ -95,7 +95,7 @@ $(function() {
|
|
|
95
95
|
<div class="ttc" id="classSVF_1_1LockResultValidator_html_afec6058866fe334646db78227fb4d6a6"><div class="ttname"><a href="classSVF_1_1LockResultValidator.html#afec6058866fe334646db78227fb4d6a6">SVF::LockResultValidator::CxtLockSetStr</a></div><div class="ttdeci">Set< std::string > CxtLockSetStr</div><div class="ttdef"><b>Definition:</b> <a href="LockResultValidator_8h_source.html#l00022">LockResultValidator.h:22</a></div></div>
|
|
96
96
|
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00094">SVFType.h:94</a></div></div>
|
|
97
97
|
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00059">BasicTypes.h:59</a></div></div>
|
|
98
|
-
<div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
98
|
+
<div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00680">LLVMUtil.cpp:680</a></div></div>
|
|
99
99
|
<div class="ttc" id="LockResultValidator_8h_html"><div class="ttname"><a href="LockResultValidator_8h.html">LockResultValidator.h</a></div></div>
|
|
100
100
|
<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#l00061">BasicTypes.h:61</a></div></div>
|
|
101
101
|
<div class="ttc" id="namespaceSVFUtil_html"><div class="ttname"><a href="namespaceSVFUtil.html">SVFUtil</a></div></div>
|
|
@@ -145,7 +145,7 @@ $(function() {
|
|
|
145
145
|
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ae4d0ee03b30220793d24f814e75a440e"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ae4d0ee03b30220793d24f814e75a440e">SVF::ForkJoinAnalysis::handleJoin</a></div><div class="ttdeci">void handleJoin(const CxtStmt &cts, NodeID rootTid)</div><div class="ttdoc">Handle join. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l00799">MHP.cpp:799</a></div></div>
|
|
146
146
|
<div class="ttc" id="classSVF_1_1MHP_html_ac10a8f3a4b09dc257be9edabccea3fbb"><div class="ttname"><a href="classSVF_1_1MHP.html#ac10a8f3a4b09dc257be9edabccea3fbb">SVF::MHP::executedByTheSameThread</a></div><div class="ttdeci">virtual bool executedByTheSameThread(const SVFInstruction *i1, const SVFInstruction *i2)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l00614">MHP.cpp:614</a></div></div>
|
|
147
147
|
<div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a159bbd4352fcffa93c97281ab9d229b1"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a159bbd4352fcffa93c97281ab9d229b1">SVF::ForkJoinAnalysis::LoopBBs</a></div><div class="ttdeci">SVFLoopAndDomInfo::LoopBBs LoopBBs</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00300">MHP.h:300</a></div></div>
|
|
148
|
-
<div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
148
|
+
<div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00680">LLVMUtil.cpp:680</a></div></div>
|
|
149
149
|
<div class="ttc" id="classSVF_1_1MHP_html_af769afe6ba6baccda5a497df181c9fb0"><div class="ttname"><a href="classSVF_1_1MHP.html#af769afe6ba6baccda5a497df181c9fb0">SVF::MHP::handleCall</a></div><div class="ttdeci">void handleCall(const CxtThreadStmt &cts, NodeID rootTid)</div><div class="ttdoc">Handle call. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l00288">MHP.cpp:288</a></div></div>
|
|
150
150
|
<div class="ttc" id="classSVF_1_1CxtStmt_html_a0b593c4ba425937212e2889e64ce4791"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">SVF::CxtStmt::getStmt</a></div><div class="ttdeci">const SVFInstruction * getStmt() const</div><div class="ttdoc">Return current statement. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00062">CxtStmt.h:62</a></div></div>
|
|
151
151
|
<div class="ttc" id="classSVF_1_1MHP_html_abf1f5a7c365dfb95b42015b7b2ad6fbe"><div class="ttname"><a href="classSVF_1_1MHP.html#abf1f5a7c365dfb95b42015b7b2ad6fbe">SVF::MHP::MHP</a></div><div class="ttdeci">MHP(TCT *t)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l00044">MHP.cpp:44</a></div></div>
|
|
@@ -106,7 +106,7 @@ $(function() {
|
|
|
106
106
|
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00094">SVFType.h:94</a></div></div>
|
|
107
107
|
<div class="ttc" id="classSVF_1_1MemSSA_html_acfe05b5b026ed41039540b11fe345734"><div class="ttname"><a href="classSVF_1_1MemSSA.html#acfe05b5b026ed41039540b11fe345734">SVF::MemSSA::BBToMRSetMap</a></div><div class="ttdeci">Map< const SVFBasicBlock *, MRSet > BBToMRSetMap</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00094">MemSSA.h:94</a></div></div>
|
|
108
108
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a89c40c8fad70f3aead6531261e5a3cc3"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a89c40c8fad70f3aead6531261e5a3cc3">SVF::MemSSA::performStat</a></div><div class="ttdeci">void performStat()</div><div class="ttdoc">Perform statistics. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8cpp_source.html#l00451">MemSSA.cpp:451</a></div></div>
|
|
109
|
-
<div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
109
|
+
<div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00680">LLVMUtil.cpp:680</a></div></div>
|
|
110
110
|
<div class="ttc" id="classSVF_1_1SVFBasicBlock_html_a59a4b7d815f624e448afe3ac0e9d18f5"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVF::SVFBasicBlock::getBBPredecessorPos</a></div><div class="ttdeci">u32_t getBBPredecessorPos(const SVFBasicBlock *succbb)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00205">SVFValue.cpp:205</a></div></div>
|
|
111
111
|
<div class="ttc" id="classSVF_1_1MemSSA_html_a81bba824495a882b49e687683954b112"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">SVF::MemSSA::MUSet</a></div><div class="ttdeci">Set< MU * > MUSet</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00070">MemSSA.h:70</a></div></div>
|
|
112
112
|
<div class="ttc" id="namespaceSVFUtil_html"><div class="ttname"><a href="namespaceSVFUtil.html">SVFUtil</a></div></div>
|
|
@@ -144,7 +144,7 @@ $(function() {
|
|
|
144
144
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_ac213302cf5c7cdf3b66f7b18649d0fbc"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVF::GenericGraph< SVFVar, SVFStmt >::iterator</a></div><div class="ttdeci">IDToNodeMapTy::iterator iterator</div><div class="ttdoc">Node Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00346">GenericGraph.h:346</a></div></div>
|
|
145
145
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a18347e41bc66b16e3f42c7c52811ad42"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a18347e41bc66b16e3f42c7c52811ad42">SVF::PointerAnalysis::aliasTestFailNoAlias</a></div><div class="ttdeci">static const std::string aliasTestFailNoAlias</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00122">PointerAnalysis.h:122</a></div></div>
|
|
146
146
|
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00094">SVFType.h:94</a></div></div>
|
|
147
|
-
<div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
147
|
+
<div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00680">LLVMUtil.cpp:680</a></div></div>
|
|
148
148
|
<div class="ttc" id="cJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
|
|
149
149
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html">SVF::PTACallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00218">PTACallGraph.h:218</a></div></div>
|
|
150
150
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a627bdc95485fd65e8846fcaa5e89559f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a627bdc95485fd65e8846fcaa5e89559f">SVF::PointerAnalysis::dumpTopLevelPtsTo</a></div><div class="ttdeci">virtual void dumpTopLevelPtsTo()</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00257">PointerAnalysis.h:257</a></div></div>
|