svf-tools 1.0.406 → 1.0.409

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.
Files changed (109) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/ConsG_8h_source.html +1 -1
  4. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +4 -4
  6. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +9 -9
  9. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +15 -11
  10. package/SVF-doxygen/html/html/LLVMUtil_8h.html +3 -0
  11. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +20 -19
  12. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +3 -3
  14. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +1 -1
  15. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +11 -11
  16. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +2 -2
  17. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +2 -2
  19. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +4 -4
  20. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +9 -9
  21. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/SVFIR_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +1 -1
  24. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +32 -33
  26. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +5 -5
  27. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +53 -52
  28. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +49 -49
  29. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
  32. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +1 -1
  33. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +1 -1
  34. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +1 -1
  35. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
  36. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +1 -1
  37. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +1 -1
  38. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +1 -1
  39. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  40. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  41. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  42. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +1 -1
  43. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +3 -3
  44. package/SVF-doxygen/html/html/classSVF_1_1MemObj-members.html +29 -28
  45. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +91 -69
  46. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +1 -1
  47. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo-members.html +1 -1
  48. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +97 -97
  49. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  50. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +11 -11
  51. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +6 -6
  52. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +3 -3
  53. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +2 -2
  54. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +9 -9
  55. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
  56. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +36 -36
  57. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder-members.html +7 -8
  58. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +50 -78
  59. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +24 -24
  60. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
  61. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +1 -1
  62. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
  63. package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
  64. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  65. package/SVF-doxygen/html/html/functions_func_g.html +12 -14
  66. package/SVF-doxygen/html/html/functions_g.html +12 -14
  67. package/SVF-doxygen/html/html/functions_i.html +4 -4
  68. package/SVF-doxygen/html/html/functions_l.html +5 -5
  69. package/SVF-doxygen/html/html/functions_p.html +7 -7
  70. package/SVF-doxygen/html/html/functions_r.html +1 -1
  71. package/SVF-doxygen/html/html/functions_s.html +14 -14
  72. package/SVF-doxygen/html/html/functions_t.html +3 -1
  73. package/SVF-doxygen/html/html/functions_v.html +6 -6
  74. package/SVF-doxygen/html/html/globals_r.html +3 -3
  75. package/SVF-doxygen/html/html/globals_s.html +5 -7
  76. package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
  77. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  78. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +73 -41
  79. package/SVF-doxygen/html/html/namespacemembers_func.html +4 -1
  80. package/SVF-doxygen/html/html/namespacemembers_g.html +3 -0
  81. package/SVF-doxygen/html/html/saber_8cpp.html +1 -1
  82. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
  83. package/SVF-doxygen/html/html/search/all_10.js +6 -6
  84. package/SVF-doxygen/html/html/search/all_12.js +2 -2
  85. package/SVF-doxygen/html/html/search/all_13.js +13 -13
  86. package/SVF-doxygen/html/html/search/all_14.js +3 -3
  87. package/SVF-doxygen/html/html/search/all_16.js +3 -3
  88. package/SVF-doxygen/html/html/search/all_7.js +3 -3
  89. package/SVF-doxygen/html/html/search/all_9.js +2 -2
  90. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  91. package/SVF-doxygen/html/html/search/all_e.js +4 -4
  92. package/SVF-doxygen/html/html/search/functions_10.js +1 -1
  93. package/SVF-doxygen/html/html/search/functions_6.js +3 -3
  94. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  95. package/SVF-doxygen/html/html/search/variables_14.js +2 -2
  96. package/SVF-doxygen/html/html/search/variables_e.js +3 -3
  97. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +16 -16
  98. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  99. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  100. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  101. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  102. package/include/MemoryModel/SymbolTableInfo.h +4 -1
  103. package/include/SVF-FE/LLVMUtil.h +3 -0
  104. package/include/SVF-FE/SymbolTableBuilder.h +1 -3
  105. package/lib/Graphs/ICFG.cpp +24 -21
  106. package/lib/MemoryModel/SymbolTableInfo.cpp +6 -11
  107. package/lib/SVF-FE/LLVMUtil.cpp +21 -4
  108. package/lib/SVF-FE/SymbolTableBuilder.cpp +16 -30
  109. package/package.json +1 -1
@@ -3061,7 +3061,7 @@ Private Attributes</h2></td></tr>
3061
3061
  <div class="fragment"><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;{</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1MemSSA.html#a468e1481926df6865678b7232bb79bf3">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="comment">// record which mem region needs to pop stack</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a7c3fda6f082231350524c2d7c16f067e">MRVector</a> memRegs;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="comment">// rename phi result op</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="comment">// for each r = phi (...)</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="comment">// rewrite r as new name</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MemSSA.html#a552bb17f0435e012b7393fb641c19298">hasPHISet</a>(&amp;bb))</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a630be375832b1477989af85dce6760f3">RenamePhiRes</a>(<a class="code" href="classSVF_1_1MemSSA.html#a964f3fe39ece9a7b8b2033428b75a274">getPHISet</a>(&amp;bb),memRegs);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="comment">// process mu and chi</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="comment">// for each mu(r)</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="comment">// rewrite r with top mrver of stack(r)</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="comment">// for each r = chi(r&#39;)</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="comment">// rewrite r&#39; with top mrver of stack(r)</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="comment">// rewrite r with new name</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">for</span> (BasicBlock::const_iterator it = bb.begin(), eit = bb.end();</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; it != eit; ++it)</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; {</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = &amp;*it;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>-&gt;<a class="code" href="classSVF_1_1MRGenerator.html#a6f631290f3da7c308395eb6a9472d7a5">hasSVFStmtList</a>(inst))</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a445d282890dbd2fb51e903255af1cc3e">SVFStmtList</a>&amp; pagEdgeList = <a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>-&gt;<a class="code" href="classSVF_1_1MRGenerator.html#acc78a116ca0be01a359d1313b2ae603c">getPAGEdgesFromInst</a>(inst);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">for</span>(SVFStmtList::const_iterator bit = pagEdgeList.begin(), ebit= pagEdgeList.end();</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; bit!=ebit; ++bit)</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* inst = *bit;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* load = SVFUtil::dyn_cast&lt;LoadStmt&gt;(inst))</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a2527b76b92dffa8f8513ebfdcc8d8133">RenameMuSet</a>(<a class="code" href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">getMUSet</a>(load));</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* store = SVFUtil::dyn_cast&lt;StoreStmt&gt;(inst))</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a6066364112e665c33cbf2ec50ae1e3a8">RenameChiSet</a>(<a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(store),memRegs);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">isNonInstricCallSite</a>(inst))</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">getCallICFGNode</a>(inst);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>-&gt;<a class="code" href="classSVF_1_1MRGenerator.html#af06e8ac43efdedb97a2008cd93fc32d6">hasRefMRSet</a>(cs))</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a2527b76b92dffa8f8513ebfdcc8d8133">RenameMuSet</a>(<a class="code" href="classSVF_1_1MemSSA.html#af4d11a0c7da0ddd7dff8d75a00279847">getMUSet</a>(cs));</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1MemSSA.html#a213ebe634bbdbe33460ccd941c1dc6a5">mrGen</a>-&gt;<a class="code" href="classSVF_1_1MRGenerator.html#a7d66a341805af7ec4e4893e5a7e0bc2d">hasModMRSet</a>(cs))</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a6066364112e665c33cbf2ec50ae1e3a8">RenameChiSet</a>(<a class="code" href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">getCHISet</a>(cs),memRegs);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#abd525a2e3b7b9167b61b2304cc2cbdf2">isReturn</a>(inst))</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(bb.getParent());</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a2527b76b92dffa8f8513ebfdcc8d8133">RenameMuSet</a>(<a class="code" href="classSVF_1_1MemSSA.html#af8c38a7ff8da4206f19c038024606d93">getReturnMuSet</a>(fun));</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; }</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; }</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="comment">// fill phi operands of succ basic blocks</span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">succ_const_iterator</a> sit = succ_begin(&amp;bb), esit = succ_end(&amp;bb);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; sit != esit; ++sit)</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; {</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succ = *sit;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos = <a class="code" href="namespaceSVF_1_1SVFUtil.html#ae40e2e043b04ede541688ce61048fb4e">getBBPredecessorPos</a>(&amp;bb, succ);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MemSSA.html#a552bb17f0435e012b7393fb641c19298">hasPHISet</a>(succ))</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a0ed34f7a27db045c624c5db61d53132b">RenamePhiOps</a>(<a class="code" href="classSVF_1_1MemSSA.html#a964f3fe39ece9a7b8b2033428b75a274">getPHISet</a>(succ),pos,memRegs);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; }</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="comment">// for succ basic block in dominator tree</span></div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(bb.getParent());</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>* <a class="code" href="classSVF_1_1MemSSA.html#a52b1598f44fe6a6e30095f596bf85cb0">dt</a> = <a class="code" href="classSVF_1_1MemSSA.html#a9741a8d0540ba4c27cb667590d246197">getDT</a>(*fun);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF.html#a827d09974dc7bf0849f96823cc2fee89">DomTreeNode</a> *dtNode = dt-&gt;getNode(const_cast&lt;BasicBlock*&gt;(&amp;bb)))</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">for</span> (DomTreeNode::iterator DI = dtNode-&gt;begin(), DE = dtNode-&gt;end();</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; DI != DE; ++DI)</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; {</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#a271c20725d49dd65b95c062938ffde4c">SSARenameBB</a>(*((*DI)-&gt;getBlock()));</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; }</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="comment">// for each r = chi(..), and r = phi(..)</span></div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="comment">// pop ver stack(r)</span></div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">while</span> (!memRegs.empty())</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; {</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* mr = memRegs.back();</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; memRegs.pop_back();</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html#ae4c7b17d8da8278dca362af79f9f268d">mr2VerStackMap</a>[mr].pop_back();</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; }</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;}</div><div class="ttc" id="classSVF_1_1MemSSA_html_a2e656a50f8964fc3e99d1d436de64418"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a2e656a50f8964fc3e99d1d436de64418">SVF::MemSSA::getCHISet</a></div><div class="ttdeci">CHISet &amp; getCHISet(const StoreStmt *st)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00392">MemSSA.h:392</a></div></div>
3062
3062
  <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="Util_2BasicTypes_8h_source.html#l00075">BasicTypes.h:75</a></div></div>
3063
3063
  <div class="ttc" id="classSVF_1_1MemSSA_html_a9741a8d0540ba4c27cb667590d246197"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a9741a8d0540ba4c27cb667590d246197">SVF::MemSSA::getDT</a></div><div class="ttdeci">DominatorTree * getDT(const SVFFunction &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00296">MemSSA.h:296</a></div></div>
3064
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ae40e2e043b04ede541688ce61048fb4e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ae40e2e043b04ede541688ce61048fb4e">SVF::SVFUtil::getBBPredecessorPos</a></div><div class="ttdeci">u32_t getBBPredecessorPos(const BasicBlock *BB, const BasicBlock *Pred)</div><div class="ttdoc">Get basic block predecessor positin. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00317">LLVMUtil.cpp:317</a></div></div>
3064
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ae40e2e043b04ede541688ce61048fb4e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ae40e2e043b04ede541688ce61048fb4e">SVF::SVFUtil::getBBPredecessorPos</a></div><div class="ttdeci">u32_t getBBPredecessorPos(const BasicBlock *BB, const BasicBlock *Pred)</div><div class="ttdoc">Get basic block predecessor positin. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00334">LLVMUtil.cpp:334</a></div></div>
3065
3065
  <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00219">BasicTypes.h:219</a></div></div>
3066
3066
  <div class="ttc" id="classSVF_1_1MemSSA_html_a964f3fe39ece9a7b8b2033428b75a274"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a964f3fe39ece9a7b8b2033428b75a274">SVF::MemSSA::getPHISet</a></div><div class="ttdeci">PHISet &amp; getPHISet(const BasicBlock *bb)</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00404">MemSSA.h:404</a></div></div>
3067
3067
  <div class="ttc" id="classSVF_1_1MRGenerator_html_a7d66a341805af7ec4e4893e5a7e0bc2d"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a7d66a341805af7ec4e4893e5a7e0bc2d">SVF::MRGenerator::hasModMRSet</a></div><div class="ttdeci">bool hasModMRSet(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00455">MemRegion.h:455</a></div></div>
@@ -77,7 +77,7 @@ $(function() {
77
77
  <tr><td class="entry"><a class="el" href="classSVF_1_1ObjTypeInfo.html#abf6bbcccf73bfcd5b950803d349c4eb1">flags</a></td><td class="entry"><a class="el" href="classSVF_1_1ObjTypeInfo.html">SVF::ObjTypeInfo</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
78
78
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830af5f94b2a41dab25fa08c94a989fb9515">FUNCTION_OBJ</a> enum value</td><td class="entry"><a class="el" href="classSVF_1_1ObjTypeInfo.html">SVF::ObjTypeInfo</a></td><td class="entry"></td></tr>
79
79
  <tr><td class="entry"><a class="el" href="classSVF_1_1ObjTypeInfo.html#a81bc3d785062c7e527ecf8e564cd52a4">getMaxFieldOffsetLimit</a>()</td><td class="entry"><a class="el" href="classSVF_1_1ObjTypeInfo.html">SVF::ObjTypeInfo</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
80
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ObjTypeInfo.html#a357e0965ff2a6d5468c87809fcdb2eb9">getNumOfElements</a>()</td><td class="entry"><a class="el" href="classSVF_1_1ObjTypeInfo.html">SVF::ObjTypeInfo</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
80
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ObjTypeInfo.html#a9329740d5db9212c69ed28ca6410559e">getNumOfElements</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1ObjTypeInfo.html">SVF::ObjTypeInfo</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
81
81
  <tr><td class="entry"><a class="el" href="classSVF_1_1ObjTypeInfo.html#a706cdc47e78732853252d5a4af85653a">getType</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1ObjTypeInfo.html">SVF::ObjTypeInfo</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
82
82
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830ad2ba0edfac1460f3fd89e7a6c4c4691b">GLOBVAR_OBJ</a> enum value</td><td class="entry"><a class="el" href="classSVF_1_1ObjTypeInfo.html">SVF::ObjTypeInfo</a></td><td class="entry"></td></tr>
83
83
  <tr><td class="entry"><a class="el" href="classSVF_1_1ObjTypeInfo.html#a8e630eb30d05f665b998c6f9326d65cb">hasFlag</a>(MEMTYPE mask)</td><td class="entry"><a class="el" href="classSVF_1_1ObjTypeInfo.html">SVF::ObjTypeInfo</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>