svf-tools 1.0.793 → 1.0.795
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/AccessPath_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CDGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CDG_8h_source.html +27 -28
- package/SVF-doxygen/html/CFBasicBlockGBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/CFBasicBlockGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/CFBasicBlockG_8h_source.html +308 -310
- package/SVF-doxygen/html/CHG_8cpp.html +2 -2
- package/SVF-doxygen/html/CHG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/LLVMModule_8cpp_source.html +5 -5
- package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFType_8cpp.html +2 -2
- package/SVF-doxygen/html/SVFType_8cpp_source.html +57 -55
- package/SVF-doxygen/html/SVFType_8h.html +2 -2
- package/SVF-doxygen/html/SVFType_8h_source.html +10 -10
- package/SVF-doxygen/html/SVFUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFValue_8cpp.html +46 -0
- package/SVF-doxygen/html/SVFValue_8cpp_source.html +266 -256
- package/SVF-doxygen/html/SVFValue_8h_source.html +14 -14
- package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/VFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/WTO_8h_source.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1AccessPath.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CDG.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CDGBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGBuilder.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGraph.html +91 -91
- package/SVF-doxygen/html/classSVF_1_1CFBasicBlockNode.html +24 -27
- package/SVF-doxygen/html/classSVF_1_1CHGraph.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1MemSSA.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1SVFArrayType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFBasicBlock.html +63 -63
- package/SVF-doxygen/html/classSVF_1_1SVFFunction.html +32 -32
- package/SVF-doxygen/html/classSVF_1_1SVFFunctionType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFG.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFInstruction.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFIntegerType.html +7 -7
- package/SVF-doxygen/html/classSVF_1_1SVFLoopAndDomInfo.html +116 -116
- package/SVF-doxygen/html/classSVF_1_1SVFOtherType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFPointerType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFStructType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFType.html +1 -10
- package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1StInfo-members.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1StInfo.html +14 -23
- package/SVF-doxygen/html/classSVF_1_1SymbolTableInfo.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1VFG.html +1 -1
- package/SVF-doxygen/html/functions_a.html +1 -1
- package/SVF-doxygen/html/functions_func.html +1 -1
- package/SVF-doxygen/html/globals.html +2 -0
- package/SVF-doxygen/html/globals_func.html +2 -0
- package/SVF-doxygen/html/menudata.js +4 -2
- package/SVF-doxygen/html/namespaceSVF.html +41 -12
- package/SVF-doxygen/html/namespaceSVF_1_1SVFUtil.html +2 -2
- package/SVF-doxygen/html/namespacemembers.html +3 -36
- package/SVF-doxygen/html/namespacemembers_a.html +112 -0
- package/SVF-doxygen/html/namespacemembers_func.html +3 -6
- package/SVF-doxygen/html/namespacemembers_func_a.html +82 -0
- package/SVF-doxygen/html/search/all_0.js +1 -1
- package/SVF-doxygen/html/search/all_1.js +1 -1
- package/SVF-doxygen/html/search/all_f.js +1 -1
- package/SVF-doxygen/html/search/functions_0.js +1 -1
- package/SVF-doxygen/html/search/functions_1.js +1 -1
- package/SVF-doxygen/html/search/functions_f.js +1 -1
- package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01SVF_1_1CDG_01_5_01_4.html +19 -20
- package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01SVF_1_1CFBasicBlockGraph_01_5_01_4.html +102 -102
- package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CFBasicBlockNode_01_5_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFBasicBlockGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFBasicBlockNode_01_5_01_4.html +1 -1
- package/package.json +1 -1
- package/svf/include/Graphs/CDG.h +2 -3
- package/svf/include/Graphs/CFBasicBlockG.h +3 -5
- package/svf/lib/SVFIR/SVFType.cpp +2 -0
- package/svf/lib/SVFIR/SVFValue.cpp +7 -0
- package/svf-llvm/CMakeLists.txt +1 -1
|
@@ -4866,7 +4866,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
4866
4866
|
<div class="ttc" id="aclassSVF_1_1SVFG_html_a67750c461e3543f6b75d2dd510d67297"><div class="ttname"><a href="classSVF_1_1SVFG.html#a67750c461e3543f6b75d2dd510d67297">SVF::SVFG::addSVFGEdge</a></div><div class="ttdeci">bool addSVFGEdge(SVFGEdge *edge)</div><div class="ttdoc">Add SVFG edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00248">SVFG.h:248</a></div></div>
|
|
4867
4867
|
<div class="ttc" id="aclassSVF_1_1VFG_html_a6c3daf2777cc5f76ce07241f803720f3"><div class="ttname"><a href="classSVF_1_1VFG.html#a6c3daf2777cc5f76ce07241f803720f3">SVF::VFG::globalVFGNodes</a></div><div class="ttdeci">GlobalVFGNodeSet globalVFGNodes</div><div class="ttdoc">set of global store VFG nodes</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00102">VFG.h:102</a></div></div>
|
|
4868
4868
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a38122734cbe71551a420dfb7fee2012e"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a38122734cbe71551a420dfb7fee2012e">SVF::GenericGraph::nodeNum</a></div><div class="ttdeci">u32_t nodeNum</div><div class="ttdoc">total num of edge</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00456">GenericGraph.h:456</a></div></div>
|
|
4869
|
-
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_ae578002917b4ccbf28f172dba30d1d58"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58">SVF::SVFFunction::isVarArg</a></div><div class="ttdeci">bool isVarArg() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#
|
|
4869
|
+
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_ae578002917b4ccbf28f172dba30d1d58"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58">SVF::SVFFunction::isVarArg</a></div><div class="ttdeci">bool isVarArg() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00187">SVFValue.cpp:187</a></div></div>
|
|
4870
4870
|
<div class="ttc" id="anamespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
|
|
4871
4871
|
<div class="ttc" id="aclassSVF_1_1SVFG_html_a74aa824a68f99756ac3e65231c7bc2e9"><div class="ttname"><a href="classSVF_1_1SVFG.html#a74aa824a68f99756ac3e65231c7bc2e9">SVF::SVFG::addActualOUTSVFGNode</a></div><div class="ttdeci">void addActualOUTSVFGNode(const CallICFGNode *callsite, const MRVer *resVer, const NodeID nodeId)</div><div class="ttdoc">Add memory callsite chi SVFG node.</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00427">SVFG.h:427</a></div></div>
|
|
4872
4872
|
<div class="ttc" id="aclassSVF_1_1CallMU_html"><div class="ttname"><a href="classSVF_1_1CallMU.html">SVF::CallMU</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00221">MSSAMuChi.h:221</a></div></div>
|
|
@@ -293,10 +293,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
293
293
|
<p>predecessor Instructions </p>
|
|
294
294
|
<p>Constructor without name, set name with <a class="el" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName()</a> </p>
|
|
295
295
|
|
|
296
|
-
<p class="definition">Definition at line <a class="el" href="SVFValue_8cpp_source.html#
|
|
297
|
-
<div class="fragment"><div class="line"><a name="
|
|
298
|
-
<div class="line"><a name="
|
|
299
|
-
<div class="line"><a name="
|
|
296
|
+
<p class="definition">Definition at line <a class="el" href="SVFValue_8cpp_source.html#l00267">267</a> of file <a class="el" href="SVFValue_8cpp_source.html">SVFValue.cpp</a>.</p>
|
|
297
|
+
<div class="fragment"><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  : <a class="code" href="classSVF_1_1SVFValue.html#af38497e11745949a8a1eeead143efd58">SVFValue</a>(ty, k), <a class="code" href="classSVF_1_1SVFInstruction.html#ade4a9596b2c288f2f74ce813d21fcaa0">bb</a>(<a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>), <a class="code" href="classSVF_1_1SVFInstruction.html#ab092c00376cf697bc4a3b7baa9f3a2f3">terminator</a>(tm), <a class="code" href="classSVF_1_1SVFInstruction.html#a61e04a2e436a4c141980ee06854b74ca">ret</a>(isRet)</div>
|
|
298
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> {</div>
|
|
299
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> }</div>
|
|
300
300
|
</div><!-- fragment -->
|
|
301
301
|
</div>
|
|
302
302
|
</div>
|
|
@@ -280,13 +280,13 @@ Additional Inherited Members</h2></td></tr>
|
|
|
280
280
|
|
|
281
281
|
<p>Implements <a class="el" href="classSVF_1_1SVFType.html#af03420fef3b660f998d0a2f09a18a615">SVF::SVFType</a>.</p>
|
|
282
282
|
|
|
283
|
-
<p class="definition">Definition at line <a class="el" href="SVFType_8cpp_source.html#
|
|
284
|
-
<div class="fragment"><div class="line"><a name="
|
|
285
|
-
<div class="line"><a name="
|
|
286
|
-
<div class="line"><a name="
|
|
287
|
-
<div class="line"><a name="
|
|
288
|
-
<div class="line"><a name="
|
|
289
|
-
<div class="line"><a name="
|
|
283
|
+
<p class="definition">Definition at line <a class="el" href="SVFType_8cpp_source.html#l00026">26</a> of file <a class="el" href="SVFType_8cpp_source.html">SVFType.cpp</a>.</p>
|
|
284
|
+
<div class="fragment"><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div>
|
|
285
|
+
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIntegerType.html#a887e8255bb19f85d80d737ac753f0a87">signAndWidth</a> < 0)</div>
|
|
286
|
+
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  os << <span class="charliteral">'i'</span> << -<a class="code" href="classSVF_1_1SVFIntegerType.html#a887e8255bb19f85d80d737ac753f0a87">signAndWidth</a>;</div>
|
|
287
|
+
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keywordflow">else</span></div>
|
|
288
|
+
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  os << <span class="charliteral">'u'</span> << <a class="code" href="classSVF_1_1SVFIntegerType.html#a887e8255bb19f85d80d737ac753f0a87">signAndWidth</a>;</div>
|
|
289
|
+
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> }</div>
|
|
290
290
|
</div><!-- fragment -->
|
|
291
291
|
</div>
|
|
292
292
|
</div>
|
|
@@ -350,36 +350,36 @@ Friends</h2></td></tr>
|
|
|
350
350
|
</table>
|
|
351
351
|
</div><div class="memdoc">
|
|
352
352
|
|
|
353
|
-
<p class="definition">Definition at line <a class="el" href="SVFValue_8cpp_source.html#
|
|
354
|
-
<div class="fragment"><div class="line"><a name="
|
|
355
|
-
<div class="line"><a name="
|
|
356
|
-
<div class="line"><a name="
|
|
357
|
-
<div class="line"><a name="
|
|
358
|
-
<div class="line"><a name="
|
|
359
|
-
<div class="line"><a name="
|
|
360
|
-
<div class="line"><a name="
|
|
361
|
-
<div class="line"><a name="
|
|
362
|
-
<div class="line"><a name="
|
|
363
|
-
<div class="line"><a name="
|
|
364
|
-
<div class="line"><a name="
|
|
365
|
-
<div class="line"><a name="
|
|
366
|
-
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  {</div>
|
|
367
|
-
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
368
|
-
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div>
|
|
369
|
-
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div>
|
|
370
|
-
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*,BBSet></a>& <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a34296b98ee8dd1bfc0b1ae7fe327cde3">dtBBsMap</a> = <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a2fc6b806a436d8fa65863f6cef99e716">getDomTreeMap</a>();</div>
|
|
371
|
-
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*,BBSet>::const_iterator</a> mapIter = <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a34296b98ee8dd1bfc0b1ae7fe327cde3">dtBBsMap</a>.find(bbKey);</div>
|
|
372
|
-
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">if</span> (mapIter != <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a34296b98ee8dd1bfc0b1ae7fe327cde3">dtBBsMap</a>.end())</div>
|
|
353
|
+
<p class="definition">Definition at line <a class="el" href="SVFValue_8cpp_source.html#l00060">60</a> of file <a class="el" href="SVFValue_8cpp_source.html">SVFValue.cpp</a>.</p>
|
|
354
|
+
<div class="fragment"><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> {</div>
|
|
355
|
+
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">if</span> (bbKey == bbValue)</div>
|
|
356
|
+
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
357
|
+
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
|
|
358
|
+
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="comment">// An unreachable node is dominated by anything.</span></div>
|
|
359
|
+
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#aac4d533d1c7abfefbd54507357e240f4">isUnreachable</a>(bbValue))</div>
|
|
360
|
+
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  {</div>
|
|
361
|
+
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
362
|
+
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div>
|
|
363
|
+
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
|
|
364
|
+
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="comment">// And dominates nothing.</span></div>
|
|
365
|
+
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#aac4d533d1c7abfefbd54507357e240f4">isUnreachable</a>(bbKey))</div>
|
|
373
366
|
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  {</div>
|
|
374
|
-
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="
|
|
375
|
-
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> 
|
|
376
|
-
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> 
|
|
377
|
-
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> 
|
|
378
|
-
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> 
|
|
379
|
-
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> 
|
|
380
|
-
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> 
|
|
381
|
-
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> 
|
|
382
|
-
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> 
|
|
367
|
+
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
368
|
+
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div>
|
|
369
|
+
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div>
|
|
370
|
+
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*,BBSet></a>& <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a34296b98ee8dd1bfc0b1ae7fe327cde3">dtBBsMap</a> = <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a2fc6b806a436d8fa65863f6cef99e716">getDomTreeMap</a>();</div>
|
|
371
|
+
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*,BBSet>::const_iterator</a> mapIter = <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a34296b98ee8dd1bfc0b1ae7fe327cde3">dtBBsMap</a>.find(bbKey);</div>
|
|
372
|
+
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">if</span> (mapIter != <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a34296b98ee8dd1bfc0b1ae7fe327cde3">dtBBsMap</a>.end())</div>
|
|
373
|
+
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  {</div>
|
|
374
|
+
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ad478ac88bc07cf4d6d0ad3517b2c4ab3">BBSet</a> & dtBBs = mapIter->second;</div>
|
|
375
|
+
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">if</span> (dtBBs.find(bbValue) != dtBBs.end())</div>
|
|
376
|
+
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  {</div>
|
|
377
|
+
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
378
|
+
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div>
|
|
379
|
+
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  }</div>
|
|
380
|
+
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div>
|
|
381
|
+
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
382
|
+
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> }</div>
|
|
383
383
|
</div><!-- fragment -->
|
|
384
384
|
</div>
|
|
385
385
|
</div>
|
|
@@ -411,31 +411,31 @@ Friends</h2></td></tr>
|
|
|
411
411
|
|
|
412
412
|
<p>find nearest common post dominator of two basic blocks </p>
|
|
413
413
|
|
|
414
|
-
<p class="definition">Definition at line <a class="el" href="SVFValue_8cpp_source.html#
|
|
415
|
-
<div class="fragment"><div class="line"><a name="
|
|
416
|
-
<div class="line"><a name="
|
|
417
|
-
<div class="line"><a name="
|
|
418
|
-
<div class="line"><a name="
|
|
419
|
-
<div class="line"><a name="
|
|
420
|
-
<div class="line"><a name="
|
|
421
|
-
<div class="line"><a name="
|
|
422
|
-
<div class="line"><a name="
|
|
423
|
-
<div class="line"><a name="
|
|
424
|
-
<div class="line"><a name="
|
|
425
|
-
<div class="line"><a name="
|
|
426
|
-
<div class="line"><a name="
|
|
427
|
-
<div class="line"><a name="
|
|
428
|
-
<div class="line"><a name="
|
|
429
|
-
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  </div>
|
|
430
|
-
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">if</span> (lvA->second < lvB->second) std::swap(A, B);</div>
|
|
431
|
-
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  </div>
|
|
432
|
-
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keyword">const</span> <span class="keyword">auto</span> lvAIdom = <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ae8a308d5ee34c0eb4a6c1278565e5907">getBB2PIdom</a>().find(A);</div>
|
|
433
|
-
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  assert(lvAIdom != <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ae8a308d5ee34c0eb4a6c1278565e5907">getBB2PIdom</a>().end());</div>
|
|
434
|
-
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  A = lvAIdom->second;</div>
|
|
435
|
-
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div>
|
|
414
|
+
<p class="definition">Definition at line <a class="el" href="SVFValue_8cpp_source.html#l00121">121</a> of file <a class="el" href="SVFValue_8cpp_source.html">SVFValue.cpp</a>.</p>
|
|
415
|
+
<div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> {</div>
|
|
416
|
+
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  assert(A && B && <span class="stringliteral">"Pointers are not valid"</span>);</div>
|
|
417
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  assert(A-><a class="code" href="classSVF_1_1SVFBasicBlock.html#af48d08d3adf7dd3ed69d97e4df360059">getParent</a>() == B-><a class="code" href="classSVF_1_1SVFBasicBlock.html#af48d08d3adf7dd3ed69d97e4df360059">getParent</a>() &&</div>
|
|
418
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="stringliteral">"Two blocks are not in same function"</span>);</div>
|
|
419
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
|
|
420
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="comment">// Use level information to go up the tree until the levels match. Then</span></div>
|
|
421
|
+
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// continue going up til we arrive at the same node.</span></div>
|
|
422
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">while</span> (A != B)</div>
|
|
423
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  {</div>
|
|
424
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="comment">// no common PDominator</span></div>
|
|
425
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">if</span>(A == <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>) <span class="keywordflow">return</span> <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>;</div>
|
|
426
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">const</span> <span class="keyword">auto</span> lvA = <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ac285502846c993f149b6bcc3e04f767e">getBBPDomLevel</a>().find(A);</div>
|
|
427
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keyword">const</span> <span class="keyword">auto</span> lvB = <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ac285502846c993f149b6bcc3e04f767e">getBBPDomLevel</a>().find(B);</div>
|
|
428
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  assert(lvA != <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ac285502846c993f149b6bcc3e04f767e">getBBPDomLevel</a>().end() && lvB != <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ac285502846c993f149b6bcc3e04f767e">getBBPDomLevel</a>().end());</div>
|
|
436
429
|
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  </div>
|
|
437
|
-
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> 
|
|
438
|
-
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> 
|
|
430
|
+
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">if</span> (lvA->second < lvB->second) std::swap(A, B);</div>
|
|
431
|
+
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div>
|
|
432
|
+
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keyword">const</span> <span class="keyword">auto</span> lvAIdom = <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ae8a308d5ee34c0eb4a6c1278565e5907">getBB2PIdom</a>().find(A);</div>
|
|
433
|
+
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  assert(lvAIdom != <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ae8a308d5ee34c0eb4a6c1278565e5907">getBB2PIdom</a>().end());</div>
|
|
434
|
+
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  A = lvAIdom->second;</div>
|
|
435
|
+
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  }</div>
|
|
436
|
+
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  </div>
|
|
437
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">return</span> A;</div>
|
|
438
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> }</div>
|
|
439
439
|
</div><!-- fragment -->
|
|
440
440
|
</div>
|
|
441
441
|
</div>
|
|
@@ -705,24 +705,24 @@ Friends</h2></td></tr>
|
|
|
705
705
|
</table>
|
|
706
706
|
</div><div class="memdoc">
|
|
707
707
|
|
|
708
|
-
<p class="definition">Definition at line <a class="el" href="SVFValue_8cpp_source.html#
|
|
709
|
-
<div class="fragment"><div class="line"><a name="
|
|
710
|
-
<div class="line"><a name="
|
|
711
|
-
<div class="line"><a name="
|
|
712
|
-
<div class="line"><a name="
|
|
713
|
-
<div class="line"><a name="
|
|
714
|
-
<div class="line"><a name="
|
|
715
|
-
<div class="line"><a name="
|
|
716
|
-
<div class="line"><a name="
|
|
717
|
-
<div class="line"><a name="
|
|
718
|
-
<div class="line"><a name="
|
|
719
|
-
<div class="line"><a name="
|
|
720
|
-
<div class="line"><a name="
|
|
721
|
-
<div class="line"><a name="
|
|
722
|
-
<div class="line"><a name="
|
|
723
|
-
<div class="line"><a name="
|
|
724
|
-
<div class="line"><a name="
|
|
725
|
-
<div class="line"><a name="
|
|
708
|
+
<p class="definition">Definition at line <a class="el" href="SVFValue_8cpp_source.html#l00041">41</a> of file <a class="el" href="SVFValue_8cpp_source.html">SVFValue.cpp</a>.</p>
|
|
709
|
+
<div class="fragment"><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {</div>
|
|
710
|
+
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#abe37f8896e2491a7a60be3fbfde8123c">hasLoopInfo</a>(bb))</div>
|
|
711
|
+
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  {</div>
|
|
712
|
+
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ae5e2b154313b4330bb015050aec72a1f">LoopBBs</a> blocks = <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a0fb893485fc3df088d921762514faf66">getLoopInfo</a>(bb);</div>
|
|
713
|
+
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">if</span> (!blocks.empty())</div>
|
|
714
|
+
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  {</div>
|
|
715
|
+
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* block : blocks)</div>
|
|
716
|
+
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  {</div>
|
|
717
|
+
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succ : block-><a class="code" href="classSVF_1_1SVFBasicBlock.html#a66f51cd41e93ad055c4a0c2874e73fae">getSuccessors</a>())</div>
|
|
718
|
+
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  {</div>
|
|
719
|
+
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">if</span> ((std::find(blocks.begin(), blocks.end(), succ)==blocks.end()))</div>
|
|
720
|
+
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  exitbbs.push_back(succ);</div>
|
|
721
|
+
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  }</div>
|
|
722
|
+
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  }</div>
|
|
723
|
+
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  }</div>
|
|
724
|
+
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div>
|
|
725
|
+
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> }</div>
|
|
726
726
|
</div><!-- fragment -->
|
|
727
727
|
</div>
|
|
728
728
|
</div>
|
|
@@ -774,12 +774,12 @@ Friends</h2></td></tr>
|
|
|
774
774
|
</table>
|
|
775
775
|
</div><div class="memdoc">
|
|
776
776
|
|
|
777
|
-
<p class="definition">Definition at line <a class="el" href="SVFValue_8cpp_source.html#
|
|
778
|
-
<div class="fragment"><div class="line"><a name="
|
|
779
|
-
<div class="line"><a name="
|
|
780
|
-
<div class="line"><a name="
|
|
781
|
-
<div class="line"><a name="
|
|
782
|
-
<div class="line"><a name="
|
|
777
|
+
<p class="definition">Definition at line <a class="el" href="SVFValue_8cpp_source.html#l00034">34</a> of file <a class="el" href="SVFValue_8cpp_source.html">SVFValue.cpp</a>.</p>
|
|
778
|
+
<div class="fragment"><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div>
|
|
779
|
+
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  assert(<a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#abe37f8896e2491a7a60be3fbfde8123c">hasLoopInfo</a>(bb) && <span class="stringliteral">"loopinfo does not exist (bb not in a loop)"</span>);</div>
|
|
780
|
+
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*, LoopBBs>::const_iterator</a> mapIter = <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ad578beedd9a6b64a57f82d799e6b8fa7">bb2LoopMap</a>.find(bb);</div>
|
|
781
|
+
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">return</span> mapIter->second;</div>
|
|
782
|
+
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> }</div>
|
|
783
783
|
</div><!-- fragment -->
|
|
784
784
|
</div>
|
|
785
785
|
</div>
|
|
@@ -920,16 +920,16 @@ Friends</h2></td></tr>
|
|
|
920
920
|
</table>
|
|
921
921
|
</div><div class="memdoc">
|
|
922
922
|
|
|
923
|
-
<p class="definition">Definition at line <a class="el" href="SVFValue_8cpp_source.html#
|
|
924
|
-
<div class="fragment"><div class="line"><a name="
|
|
925
|
-
<div class="line"><a name="
|
|
926
|
-
<div class="line"><a name="
|
|
927
|
-
<div class="line"><a name="
|
|
928
|
-
<div class="line"><a name="
|
|
929
|
-
<div class="line"><a name="
|
|
930
|
-
<div class="line"><a name="
|
|
931
|
-
<div class="line"><a name="
|
|
932
|
-
<div class="line"><a name="
|
|
923
|
+
<p class="definition">Definition at line <a class="el" href="SVFValue_8cpp_source.html#l00147">147</a> of file <a class="el" href="SVFValue_8cpp_source.html">SVFValue.cpp</a>.</p>
|
|
924
|
+
<div class="fragment"><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> {</div>
|
|
925
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#abe37f8896e2491a7a60be3fbfde8123c">hasLoopInfo</a>(bb))</div>
|
|
926
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  {</div>
|
|
927
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ae5e2b154313b4330bb015050aec72a1f">LoopBBs</a>& blocks = <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a0fb893485fc3df088d921762514faf66">getLoopInfo</a>(bb);</div>
|
|
928
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  assert(!blocks.empty() && <span class="stringliteral">"no available loop info?"</span>);</div>
|
|
929
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">return</span> blocks.front() == bb;</div>
|
|
930
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  }</div>
|
|
931
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
932
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> }</div>
|
|
933
933
|
</div><!-- fragment -->
|
|
934
934
|
</div>
|
|
935
935
|
</div>
|
|
@@ -1032,35 +1032,35 @@ Friends</h2></td></tr>
|
|
|
1032
1032
|
</table>
|
|
1033
1033
|
</div><div class="memdoc">
|
|
1034
1034
|
|
|
1035
|
-
<p class="definition">Definition at line <a class="el" href="SVFValue_8cpp_source.html#
|
|
1036
|
-
<div class="fragment"><div class="line"><a name="
|
|
1037
|
-
<div class="line"><a name="
|
|
1038
|
-
<div class="line"><a name="
|
|
1039
|
-
<div class="line"><a name="
|
|
1040
|
-
<div class="line"><a name="
|
|
1041
|
-
<div class="line"><a name="
|
|
1042
|
-
<div class="line"><a name="
|
|
1043
|
-
<div class="line"><a name="
|
|
1044
|
-
<div class="line"><a name="
|
|
1045
|
-
<div class="line"><a name="
|
|
1046
|
-
<div class="line"><a name="
|
|
1047
|
-
<div class="line"><a name="
|
|
1048
|
-
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {</div>
|
|
1049
|
-
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
1050
|
-
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div>
|
|
1051
|
-
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  </div>
|
|
1052
|
-
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*,BBSet></a>& <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a34296b98ee8dd1bfc0b1ae7fe327cde3">dtBBsMap</a> = <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ad07f95e790b5c3a50c864155aa20a083">getPostDomTreeMap</a>();</div>
|
|
1053
|
-
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*,BBSet>::const_iterator</a> mapIter = <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a34296b98ee8dd1bfc0b1ae7fe327cde3">dtBBsMap</a>.find(bbKey);</div>
|
|
1054
|
-
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">if</span> (mapIter != <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a34296b98ee8dd1bfc0b1ae7fe327cde3">dtBBsMap</a>.end())</div>
|
|
1035
|
+
<p class="definition">Definition at line <a class="el" href="SVFValue_8cpp_source.html#l00091">91</a> of file <a class="el" href="SVFValue_8cpp_source.html">SVFValue.cpp</a>.</p>
|
|
1036
|
+
<div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> {</div>
|
|
1037
|
+
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">if</span> (bbKey == bbValue)</div>
|
|
1038
|
+
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
1039
|
+
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div>
|
|
1040
|
+
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="comment">// An unreachable node is dominated by anything.</span></div>
|
|
1041
|
+
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#aac4d533d1c7abfefbd54507357e240f4">isUnreachable</a>(bbValue))</div>
|
|
1042
|
+
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  {</div>
|
|
1043
|
+
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
1044
|
+
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div>
|
|
1045
|
+
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
|
|
1046
|
+
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="comment">// And dominates nothing.</span></div>
|
|
1047
|
+
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#aac4d533d1c7abfefbd54507357e240f4">isUnreachable</a>(bbKey))</div>
|
|
1055
1048
|
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  {</div>
|
|
1056
|
-
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="
|
|
1057
|
-
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> 
|
|
1058
|
-
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> 
|
|
1059
|
-
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> 
|
|
1060
|
-
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> 
|
|
1061
|
-
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> 
|
|
1062
|
-
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> 
|
|
1063
|
-
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> 
|
|
1049
|
+
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
1050
|
+
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  }</div>
|
|
1051
|
+
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div>
|
|
1052
|
+
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*,BBSet></a>& <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a34296b98ee8dd1bfc0b1ae7fe327cde3">dtBBsMap</a> = <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ad07f95e790b5c3a50c864155aa20a083">getPostDomTreeMap</a>();</div>
|
|
1053
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*,BBSet>::const_iterator</a> mapIter = <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a34296b98ee8dd1bfc0b1ae7fe327cde3">dtBBsMap</a>.find(bbKey);</div>
|
|
1054
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">if</span> (mapIter != <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a34296b98ee8dd1bfc0b1ae7fe327cde3">dtBBsMap</a>.end())</div>
|
|
1055
|
+
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  {</div>
|
|
1056
|
+
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ad478ac88bc07cf4d6d0ad3517b2c4ab3">BBSet</a> & dtBBs = mapIter->second;</div>
|
|
1057
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">if</span> (dtBBs.find(bbValue) != dtBBs.end())</div>
|
|
1058
|
+
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  {</div>
|
|
1059
|
+
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
1060
|
+
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div>
|
|
1061
|
+
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div>
|
|
1062
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
1063
|
+
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> }</div>
|
|
1064
1064
|
</div><!-- fragment -->
|
|
1065
1065
|
</div>
|
|
1066
1066
|
</div>
|
|
@@ -1344,7 +1344,7 @@ Friends</h2></td></tr>
|
|
|
1344
1344
|
<div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_ac285502846c993f149b6bcc3e04f767e"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#ac285502846c993f149b6bcc3e04f767e">SVF::SVFLoopAndDomInfo::getBBPDomLevel</a></div><div class="ttdeci">const Map< const SVFBasicBlock *, u32_t > & getBBPDomLevel() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00118">SVFValue.h:118</a></div></div>
|
|
1345
1345
|
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a66f51cd41e93ad055c4a0c2874e73fae"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a66f51cd41e93ad055c4a0c2874e73fae">SVF::SVFBasicBlock::getSuccessors</a></div><div class="ttdeci">const std::vector< const SVFBasicBlock * > & getSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00601">SVFValue.h:601</a></div></div>
|
|
1346
1346
|
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_af48d08d3adf7dd3ed69d97e4df360059"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#af48d08d3adf7dd3ed69d97e4df360059">SVF::SVFBasicBlock::getParent</a></div><div class="ttdeci">const SVFFunction * getParent() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00577">SVFValue.h:577</a></div></div>
|
|
1347
|
-
<div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_a0fb893485fc3df088d921762514faf66"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#a0fb893485fc3df088d921762514faf66">SVF::SVFLoopAndDomInfo::getLoopInfo</a></div><div class="ttdeci">const LoopBBs & getLoopInfo(const SVFBasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#
|
|
1347
|
+
<div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_a0fb893485fc3df088d921762514faf66"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#a0fb893485fc3df088d921762514faf66">SVF::SVFLoopAndDomInfo::getLoopInfo</a></div><div class="ttdeci">const LoopBBs & getLoopInfo(const SVFBasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00034">SVFValue.cpp:34</a></div></div>
|
|
1348
1348
|
<div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_aac4d533d1c7abfefbd54507357e240f4"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#aac4d533d1c7abfefbd54507357e240f4">SVF::SVFLoopAndDomInfo::isUnreachable</a></div><div class="ttdeci">bool isUnreachable(const SVFBasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00149">SVFValue.h:149</a></div></div>
|
|
1349
1349
|
<div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_af3eeabc8b81b2aff27ae3577195a1eff"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#af3eeabc8b81b2aff27ae3577195a1eff">SVF::SVFLoopAndDomInfo::reachableBBs</a></div><div class="ttdeci">BBList reachableBBs</div><div class="ttdoc">reachable BasicBlocks from the function entry.</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00060">SVFValue.h:60</a></div></div>
|
|
1350
1350
|
<div class="ttc" id="acJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
|
|
@@ -285,10 +285,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
285
285
|
|
|
286
286
|
<p>Implements <a class="el" href="classSVF_1_1SVFType.html#af03420fef3b660f998d0a2f09a18a615">SVF::SVFType</a>.</p>
|
|
287
287
|
|
|
288
|
-
<p class="definition">Definition at line <a class="el" href="SVFType_8cpp_source.html#
|
|
289
|
-
<div class="fragment"><div class="line"><a name="
|
|
290
|
-
<div class="line"><a name="
|
|
291
|
-
<div class="line"><a name="
|
|
288
|
+
<p class="definition">Definition at line <a class="el" href="SVFType_8cpp_source.html#l00049">49</a> of file <a class="el" href="SVFType_8cpp_source.html">SVFType.cpp</a>.</p>
|
|
289
|
+
<div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div>
|
|
290
|
+
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  os << <a class="code" href="classSVF_1_1SVFOtherType.html#aff34f4a447b923dbb524c30adcb4aef3">repr</a>;</div>
|
|
291
|
+
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div>
|
|
292
292
|
</div><!-- fragment -->
|
|
293
293
|
</div>
|
|
294
294
|
</div>
|
|
@@ -280,10 +280,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
280
280
|
|
|
281
281
|
<p>Implements <a class="el" href="classSVF_1_1SVFType.html#af03420fef3b660f998d0a2f09a18a615">SVF::SVFType</a>.</p>
|
|
282
282
|
|
|
283
|
-
<p class="definition">Definition at line <a class="el" href="SVFType_8cpp_source.html#
|
|
284
|
-
<div class="fragment"><div class="line"><a name="
|
|
285
|
-
<div class="line"><a name="
|
|
286
|
-
<div class="line"><a name="
|
|
283
|
+
<p class="definition">Definition at line <a class="el" href="SVFType_8cpp_source.html#l00021">21</a> of file <a class="el" href="SVFType_8cpp_source.html">SVFType.cpp</a>.</p>
|
|
284
|
+
<div class="fragment"><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> {</div>
|
|
285
|
+
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  os << *<a class="code" href="classSVF_1_1SVFPointerType.html#a067e8f095942e095aa1721dee3a241ea">getPtrElementType</a>() << <span class="charliteral">'*'</span>;</div>
|
|
286
|
+
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> }</div>
|
|
287
287
|
</div><!-- fragment -->
|
|
288
288
|
</div>
|
|
289
289
|
</div>
|
|
@@ -282,10 +282,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
282
282
|
|
|
283
283
|
<p>Implements <a class="el" href="classSVF_1_1SVFType.html#af03420fef3b660f998d0a2f09a18a615">SVF::SVFType</a>.</p>
|
|
284
284
|
|
|
285
|
-
<p class="definition">Definition at line <a class="el" href="SVFType_8cpp_source.html#
|
|
286
|
-
<div class="fragment"><div class="line"><a name="
|
|
287
|
-
<div class="line"><a name="
|
|
288
|
-
<div class="line"><a name="
|
|
285
|
+
<p class="definition">Definition at line <a class="el" href="SVFType_8cpp_source.html#l00039">39</a> of file <a class="el" href="SVFType_8cpp_source.html">SVFType.cpp</a>.</p>
|
|
286
|
+
<div class="fragment"><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div>
|
|
287
|
+
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  os << <span class="stringliteral">"S."</span> << <a class="code" href="classSVF_1_1SVFStructType.html#a21782d68a616fb955d4988382eea61cf">name</a>;</div>
|
|
288
|
+
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> }</div>
|
|
289
289
|
</div><!-- fragment -->
|
|
290
290
|
</div>
|
|
291
291
|
</div>
|
|
@@ -605,13 +605,6 @@ Friends</h2></td></tr>
|
|
|
605
605
|
</div><div class="memdoc">
|
|
606
606
|
<dl class="section note"><dt>Note</dt><dd>Use <code>os<<svfType</code> or <code>svfType.print(os)</code> when possible to avoid string concatenation. </dd></dl>
|
|
607
607
|
|
|
608
|
-
<p class="definition">Definition at line <a class="el" href="SVFType_8cpp_source.html#l00006">6</a> of file <a class="el" href="SVFType_8cpp_source.html">SVFType.cpp</a>.</p>
|
|
609
|
-
<div class="fragment"><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> {</div>
|
|
610
|
-
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  std::ostringstream os;</div>
|
|
611
|
-
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  <a class="code" href="classSVF_1_1SVFType.html#af03420fef3b660f998d0a2f09a18a615">print</a>(os);</div>
|
|
612
|
-
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  <span class="keywordflow">return</span> os.str();</div>
|
|
613
|
-
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> }</div>
|
|
614
|
-
</div><!-- fragment -->
|
|
615
608
|
</div>
|
|
616
609
|
</div>
|
|
617
610
|
<h2 class="groupheader">Friends And Related Function Documentation</h2>
|
|
@@ -768,9 +761,8 @@ Friends</h2></td></tr>
|
|
|
768
761
|
|
|
769
762
|
</div>
|
|
770
763
|
</div>
|
|
771
|
-
<hr/>The documentation for this class was generated from the following
|
|
764
|
+
<hr/>The documentation for this class was generated from the following file:<ul>
|
|
772
765
|
<li>/home/runner/work/SVF/SVF/svf/include/SVFIR/<a class="el" href="SVFType_8h_source.html">SVFType.h</a></li>
|
|
773
|
-
<li>/home/runner/work/SVF/SVF/svf/lib/SVFIR/<a class="el" href="SVFType_8cpp_source.html">SVFType.cpp</a></li>
|
|
774
766
|
</ul>
|
|
775
767
|
</div><!-- contents -->
|
|
776
768
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a333e01a9c431c8f53bd2fc597bd5c40cac8c846ff3208d07a4a39c7a21433c6a5"><div class="ttname"><a href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cac8c846ff3208d07a4a39c7a21433c6a5">SVF::SVFType::SVFArrayTy</a></div><div class="ttdeci">@ SVFArrayTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00257">SVFType.h:257</a></div></div>
|
|
@@ -779,7 +771,6 @@ Friends</h2></td></tr>
|
|
|
779
771
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a86ea48a882823de2e3e906220dc0111e"><div class="ttname"><a href="classSVF_1_1SVFType.html#a86ea48a882823de2e3e906220dc0111e">SVF::SVFType::typeinfo</a></div><div class="ttdeci">StInfo * typeinfo</div><div class="ttdoc">Return a pointer to the current type.</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00265">SVFType.h:265</a></div></div>
|
|
780
772
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a333e01a9c431c8f53bd2fc597bd5c40ca01274de074f51be05f2ad6b2d0ca9dd6"><div class="ttname"><a href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40ca01274de074f51be05f2ad6b2d0ca9dd6">SVF::SVFType::SVFFunctionTy</a></div><div class="ttdeci">@ SVFFunctionTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00255">SVFType.h:255</a></div></div>
|
|
781
773
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a428617a1e7addda6094ddd80bdbb62c8"><div class="ttname"><a href="classSVF_1_1SVFType.html#a428617a1e7addda6094ddd80bdbb62c8">SVF::SVFType::kind</a></div><div class="ttdeci">GNodeK kind</div><div class="ttdoc">used for classof</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00262">SVFType.h:262</a></div></div>
|
|
782
|
-
<div class="ttc" id="aclassSVF_1_1SVFType_html_af03420fef3b660f998d0a2f09a18a615"><div class="ttname"><a href="classSVF_1_1SVFType.html#af03420fef3b660f998d0a2f09a18a615">SVF::SVFType::print</a></div><div class="ttdeci">virtual void print(std::ostream &os) const =0</div></div>
|
|
783
774
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a333e01a9c431c8f53bd2fc597bd5c40cae8c18603570fa65fa5a9aabdf2f5d0a1"><div class="ttname"><a href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae8c18603570fa65fa5a9aabdf2f5d0a1">SVF::SVFType::SVFPointerTy</a></div><div class="ttdeci">@ SVFPointerTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00253">SVFType.h:253</a></div></div>
|
|
784
775
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a333e01a9c431c8f53bd2fc597bd5c40ca2862d2a6ef2e31bf7fa1cc2f72d65725"><div class="ttname"><a href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40ca2862d2a6ef2e31bf7fa1cc2f72d65725">SVF::SVFType::SVFTy</a></div><div class="ttdeci">@ SVFTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00252">SVFType.h:252</a></div></div>
|
|
785
776
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a25faa037b356801c8c678f8c00dada33"><div class="ttname"><a href="classSVF_1_1SVFType.html#a25faa037b356801c8c678f8c00dada33">SVF::SVFType::getPointerToTy</a></div><div class="ttdeci">const SVFPointerType * getPointerToTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00264">SVFType.h:264</a></div></div>
|